天天看點

NLP度量名額BELU真的完美麼?

剛接觸自然語言處理的朋友通常會問我:當系統的輸出是文本,而非對輸入文本進行某種分類,如何對該系統進行評估。當模型的輸入是文本資訊,輸出也是文本資訊時,我們稱之為序列到序列問題,也可稱為字元串轉換問題。

序列到序列模組化是解決NLP中較難任務的核心,它包括:

1、 自動文摘(Text Summarization);

2、 文本簡化(Text simplification);

3、 問答(Question answering);

4、 聊天機器人(Chatbots);

5、 機器翻譯(Machine translation);

了解序列到序列模組化問題相對容易,如何對其進行評價才是難點。

對于剛入門NLP的人來說,選取衡量标準較為困難。目前最流行的評價名額之一BLEU雖然常用,但也存在較大的缺陷。

本文将介紹BELU的工作原理,指出其存在的問題,并探索如何結合自己的工作最大程度規避這些問題。

NLP度量名額BELU真的完美麼?

一個難題

BELU最初是評價機器翻譯的名額,是以我們會以翻譯(法語—英語)為例進行講解。

J’ai mangé trois filberts.

下面兩句為英語參考譯文:

I have eaten three hazelnuts.

I ate three filberts.

假設下面的翻譯是由我們訓練的神經網絡産生。

I ate three hazelnuts.

問題來了:如何給上述翻譯結果打分。

要想利用機器學習來建立一個翻譯系統,就需要一個實值分數來對其性能進行衡量。如果我們能夠擷取潛在的最佳得分,便能夠計算它與實際值之間的誤差。這能夠在訓練時為系統提供回報,通過最小實際分數與潛在分數之間的內插補點來改進翻譯模型,并通過檢視同一任務上訓練過的系統得分比較不同的模型。

假設:如果輸出句子中的單詞在任何一個參考句出現,就給它打1分,如果沒有出現,打0分。為了使計數标準化,使分數始終介于0和1之間。我們可以将某個參考譯文中出現的單詞總數除以輸出句子中的單詞總數。我們稱該方法為unigram precision。

在上面的翻譯示例中,“I ate three hazelnuts”,我們能夠在輸出句子中看到至少一個參考句中的單詞,再除以單詞數4,該翻譯的最終得分為1。但如果換成了下面的句子,該如何打分呢?

Three three three three.

按照剛才的衡量标準,得分依舊為1。但很明顯,“I ate three hazelnuts”比“Three three three three”翻譯得好。但如何将這一點告知我們正在訓練的系統呢?

你可以通過限定單詞出現在翻譯句子中的最大次數來調整分數。經過調整,“I ate three hazelnuts”計算出的得分仍然為1,而“Three three three three”為0.25。

這解決了單詞簡單重複的問題,但新問題來了,如果單詞的排列是無序的呢?就像下面:

Ate hazelnuts I three

如果繼續用剛才的方法,這個句子得分為1。通過計數可以解決這個問題,但此時并非統計單個單詞,而是相鄰的單詞。該方法稱為n-grams,n是每組單詞的數量,unigrams,bigrams,trigrams以及4-grams分别由一個、兩個、三個、四個單詞組成。

在這個例子中,我們使用bigrams。通常來講,BLEU的分數是unigram,bigram,trigram,4-grams的權重平均。為了簡便,我們選擇bigram,并忽略句子開頭和結尾定義邊界的單詞。基于上述規則,句子排序如下:

[Ate hazelnuts]

[hazelnuts I]

[I three]

如果我們利用bigrams計算句子得分,“I ate three hazelnuts”是0分,“Three three three three”是0分,“I eat three hazelnuts”為1分,而下面這個例子也是0分:

I ate.

很明顯這不是我們想要的。解決這個問題的方法是将目前的分數乘以一個簡短懲罰因子。通過這個因子,得分高的候選翻譯結果,能夠同時在長度、詞語選擇、詞語順序等方面與參考句子比對。

如果翻譯結果比參考句子更長或者一樣長,懲罰因子為1。

如果翻譯譯文長度比參考譯文要短,就需要一個懲罰的機制去控制。在示例“I ate”中,句子長度為2個單詞,與其最接近的參考句長度為4個單詞。其簡潔懲罰為0.36,乘以bigram的精度分數1,最終得分降至0.36。

該名額旨在探測輸出翻譯與參考語句中有多少個n-grams重疊,并乘以簡潔懲罰值後輸出得分。BLEU由

Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu于2002年

提出,是NLP中非常流行的度量名額,特别是對于系統輸出是文本資訊而不是分類的任務,其中包括機器翻譯和自然語言生成。它解決了我們在文章開頭提出的問題:找到一種方法,告訴我們翻譯結果有多“好”,并為其打分。

BLEU存在的問題

在此之前,先概括一下BLEU的優勢:

**1、它友善,快速,容易計算,結果比較接近人類評分;

2、在相同的任務中,能夠很容易地将模型與基準進行比較;**

但這些便利使得人們過度的使用它,即使在它不是最佳度量标準的任務中也作為了首選。

盡管我們隻以一句話為例進行了介紹,但BLEU是一種語料庫級别的度量标準。計算語料庫中的每個句子的BLEU分數,然後求它們的平均值會使得分數過大。

BLEU的問題主要有以下四點:

1、 不考慮意義;

2、 不直接考慮句子結構

3、 不能很好地處理形态豐富的語言

4、 不能很好的映射到人類判斷

BLEU不考慮意義

由于BLEU不考慮意義,我們便不能隻使用它對機器翻譯進行評估。作為一名機器翻譯軟體的使用者,我更希望準确了解原文的含義,即使翻譯的句子中在文法或句法上有所欠缺,隻要清楚的表達了原文的意義也能接受。

但BLEU并不考慮意義,它隻獎勵精确比對的n-grams。這意味着一個虛詞(如“an”或“on”)的差異和一個更重要的與内容相關的詞語受到的懲罰是一樣的。如果一個譯文中有一個完全有效的同義詞,隻是沒有出現在參考譯文中,也會受到懲罰,但這并不合理。

以下列句子為例對這個問題進行分析:

Original (French): J’ai mangé la pomme.

Reference translation: I ate the apple.

下列的句子都是BLEU評出的 “糟糕的翻譯”:

I consumed the apple.

I ate an apple.

I ate the potato.

但作為機器翻譯的使用者,我覺得前面兩句也表達清楚了原文的意思,即使它們和參考譯文有所出入。第三句話讓人不能接受,它完全改變了原文的意思。

NIST方法是在BLEU方法上的一種改進。最主要的是引入了每個n-gram的資訊量(information)的概念。BLEU算法隻是單純的将n-gram的數目加起來,而NIST是在得到資訊量累加起來再除以整個譯文的n-gram片段數目。這樣相當于對于一些出現少的重點的詞權重就給的大了。是以,在更常見的n-gram(如“of”)上的不比對将受到更小的懲罰,而在更罕見的n-gram(如“buffalo buffalo”)上的不比對将受到更大的懲罰。雖然這解決了賦予虛詞過多權重的問題,但實際上卻使懲罰同義詞(如“ambled”代替“walked”)的問題變得更糟,因為這些同義詞隻出現在更少見的n-gram中,是以懲罰因子會更大。

BLEU不直接考慮句子結構

即使你通過調整詞序改變句子的結構,仍然可以獲得很高的BLEU分數。

句法是對句子結構的研究,以詞作為基本機關,并且各單詞按照一定順序排列。“I saw the dog with the telescope”一句,即能表示“I was using the telescope to look at the dog”,也可以說“the dog had the telescope”。二者的差別通過句子中各單詞的排列順序展現。

在自然語言中,句子的内部結構特别重要,将句子各單詞順序打亂,既破壞了其完整含義,又讓人難以了解。

通過parsing可解決該問題。但parsing的計算相當密集,每次求值時必須解析所有輸出,增加了開銷。

但不考慮句法結構,詞序混亂的翻譯與意思連貫的翻譯獲得相同的分數顯得極其不合理。

Callison-Burch等人在2006年對此進行了說明:

Orejuela appeared calm as he was led to the American plane which will take him to Miami, Florida.

Orejuela appeared calm while being escorted to the plane that would take him to Miami, Florida.

Orejuela appeared calm as he was being led to the American plane that was to carry him to Miami in Florida.

Orejuela seemed quite calm as he was being led to the American plane that would take him to Miami in Florida.

翻譯如下:

Appeared calm when he was taken to the American plane, which will to Miami, Florida.

這個翻譯并不完美,它删除了人名,且句子後半段“will”後面沒有動詞,但它并非一點意義沒有,畢竟比下面的翻譯好,雖然兩句話獲得的BLEU分數相同:

which will he was, when taken appeared calm to the American plane to Miami, Florida.

BELU不能很好地處理形态豐富的語言

BELU基于單詞級别進行比對,對于形态豐富的語言,顯得并不适用。

語素是語言中最小的音義結合體,它們組合在一起構成單詞。以英語單詞“cats”中的“s”為例,它告訴我們不止一隻貓。有些語言,如土耳其語,在一個單詞中有很多的語素,而英語,通常每個單詞中的語素很少。

以秘魯語句為例:

Jawen jemara ani iki.

Jawen jemaronki ani iki.

兩句話都是可接受的英語“her village is large”的翻譯。其中,以“jemar-”開頭的單詞在兩個句子中有不同的結尾。不同的結尾代表不同的詞素,這句話表明說話人很确定這個村子很大。上面那句話是他們去過那裡見到了很大的村子,而下面那句話則表示他們是從别人那聽說村子很大。

這種特殊類型的語素被稱為“證據标記(evidentiality marker)”,這在英語中不存在,而在秘魯語中,一個句子的文法需要二者中的一個,是以我們的參考譯文也應該有其中的一個。但是,如果我們沒有在參考句中準确地找到該單詞,就會對它進行懲罰,即使這兩個句子都很好的表達了英語原句的意思。

BELU不能很好的映射到人類判斷

建構機器翻譯,聊天機器人以及問答系統最終的目的是希望人們能夠使用它們。如果一個系統不能提供有效的輸出,就沒有意義。是以優化目的是使更多的人喜歡并盡可能多的使用所開發的系統。

BELU首次提出時,作者進行了相關的行為測試,以確定與人類的判斷相關。但當研究人員進行更多的

實驗

時,發現BELU分數并不能很好的映射到人類判斷。在一些任務中,甚至其它的評價方法更接近人類判斷。

Turian在2003年發現,BLEU在機器翻譯中與人類判斷的相關性最差,F1與人類判斷最為相關,NIST次之。Sun在2010年比較了BLEU,GTM以及TER,發現BELU與人類判斷的相關性最小。

作者資訊

Rachael Tatman

本文由阿裡雲雲栖社群組織翻譯。

文章原标題《Evaluating Text Output in NLP: BLEU at your own risk》,譯者:Elaine,審校:袁虎。

文章簡譯,更為詳細的内容,請檢視

原文

繼續閱讀