關於機器翻譯評價指標BLEU(bilingual evaluation understudy)的直覺以及我的理解

最近我在作Natural Language Generating的項目,接觸到了BLEU這個指標,雖然知道它衡量的是機器翻譯的效果,也在一些文獻的experiment的部分看到過該指標,但我實際上常常會略去閱讀實驗效果的部分(純粹感受不如理論部分激動人心哈哈哈),如今輪到本身作項目了,下定決心要搞懂這個指標到底在幹嗎。不足之處仍是但願你們可以指正。同時也歡迎你們轉載個人這篇blog 原創不易還請註明出處~html

首先是原始論文地址: https://www.aclweb.org/anthology/P02-1040.pdf
其次我在閱讀原始論文的時候也參考了這篇博客:http://www.javashuo.com/article/p-mmkmrava-nu.html 對個人幫助也很大web

接下來純粹是按照個人我的理解對原論文進行的一個提煉 故未必表明論文的本意。app

1 BLEU指標的提出和假設

BLEU用於衡量機器翻譯結果(candidate)和參考譯文(reference)之間的類似程度。 BLEU能夠衡量任意語種之間的翻譯效果。它的前提假設是:翻譯效果的好壞能夠由n-gram在candidate和reference中出現的頻率來體現。直覺上來講,若是candidate中的每個單詞(或者bi-gram, tri-gram)出現的頻率和reference中的每個單詞(或者bi-gram, tri-gram)的出現頻率差很少,那麼咱們就能夠認爲機器翻譯的效果很好。可是這種直覺理解存在必定的問題,須要正式化(formalization)。spa

2 BLEU指標的formalization

假定翻譯效果的好壞能夠n-gram的頻率來體現,那麼依然存在如下的問題:翻譯

  1. 如何正式化所謂的頻率相近?code

  2. 給定一句機器翻譯結果,能夠存在多句參考譯文orm

  3. 如何衡量一篇文章(包含多個句子)的翻譯效果好壞?htm

  4. 基於1,2,3給出的metric是否存在讓某些低質量的candidate反而得到好評的可能性?blog

下面針對上述問題給出解答。ip

2.1 「頻率相近」的正式化

直覺上,一句句子中包含多個單詞(uni-gram), 若是大部分單詞都出如今了reference中,則認爲這是一句好的翻譯句子。很天然的,會想到用

precision=number of unigram in candidate which appears in reference /number of unigram in candidate

但在正式化以前,這個直覺存在一個錯誤,考慮以下例子:

Candidate: the the the the the the the 

Reference : The cat is on the mat

Candidate一共有7個單詞,每個單詞都出如今了Reference當中,因此precision=7/7,很野路子。

這個直覺的本質問題是reference中只有2個the(忽略大小寫),而Candidate中有7個the,因此合理的度量應該是2/7,也就是類似度受到Reference中the的出現頻率的制約。

下面結合問題2一塊兒給出BLEU的初步正式化。

2.2 單個candidate+多個reference的BLEU初步正式化

聲明:以後若是是reference則指代一句參考譯文,references指代多句參考譯文

Candidate: the the the the the the the cat cat
Reference1: There is a cat on the mat
Reference2: The cat is on the mat

計算BLEU的步驟以及直覺以下,先以unigram爲例

1. 計算Candidate中全部單詞的出現頻率, 此處爲 {the: 7, cat: 1}
2. 計算全部unigram在每一句referece中出現的頻率, 此處應爲:
{the in Ref1: 1, the in Ref2: 2, cat in Ref1: 1, cat in Ref2: 1}
3. 保留每個unigram在references中最大的頻數,獲得:
{the in Ref2: 2, cat in Ref1: 1}
之因此保留最大頻數,我認爲體現了「寬容」的思想, 不一樣的reference由不一樣的翻譯人員給出,體現了翻譯人員不一樣的風格,在這種多風格中選取和candidate最類似的
便可,沒必要吹毛求疵
4. 'Clipped' Step
這一步就是抑制第一個例子中的「野路子」
the = min(the in Ref2, the) = (2,7) = 2
cat = min(the in Ref1, cat) = (1,1) = 1
5 計算precision
p = (2+1)/(7+1)=3/8

計算bigram, trigram的思路也和unigram同樣,在原來的論文中,做者提到:

A translation using the same words (1-grams) as in the references tends to satisfy adequacy. The longer n-gram matches account for fluency.

unigram用來衡量adequacy, 有兩種狀況須要考慮:

  1. 若是candidate的翻譯結果多出了許多未曾出如今references中的單詞,則咱們的p會很小,BLEU作出了懲罰。

  2. 若是candidate的翻譯結果少了不少單詞,咱們的p可能會是1!考慮以下例子:

    Candidate: the 
    Reference1: The cat is on the mat

    p = min(1,2)/1 = 1

    所以到目前爲止的BLEU須要繼續調整。

而bigram,trigram等等則是衡量文章的通順性,而且unigram中存在的問題在multi gram的狀況下依然存在

2.3 多個candidate+多個reference的BLEU初步正式化

論文中把多個candidate所組成的document成爲corpus.儘管是多個candidate,可是每一個candidate自己對應了多個reference,所以2.3只是2.2的簡單擴充而已。

對於n-gram的BLEU的初步計算公式以下:

\[p_n = \frac{\sum_{C\in{Candidates}}\sum_{n-gram\in{C}}Count_{clip}(n-gram)}{\sum_{C'\in{Candidates}}\sum_{n-gram'\in{C'}}Count(n-gram')} \]

其中:

\[Count_{clip}(n-gram) = min(freq_{C}(n-gram),max_{R\in references}freq_{R}(n-gram)) \]

$ freq_{C}(n-gram)$ 是給定n-gram在C中出現的頻率

\(freq_{R}(n-gram)\)是給定n-gram在R中出現的頻率

\(Count(n-gram')\)是指給定n-gram'在C'中出現的頻率

結合多個n-gram:

如2.1中提到的,不一樣的n-gram具備不一樣的做用,所以須要綜合考慮

\[exp(\sum_{n=1}^N\omega_{n}log(p_{n})) \]

\(log(p_n)\)的緣由是:在論文實證的過程當中發現隨着n-gram中n的增長,\(p_n\)的降低呈現指數型,所以簡單的平均\(p_n\)會讓指標過分傾向於1-gram,因此須要對數化的調整。

\(w_n\)在論文中爲1/N。而且論文中的經驗結果代表N=3-5已經足夠反應句子的翻譯質量了。

2.4 對翻譯句子長度的調整

咱們在2.2中提到了一個極端的例子,candidate長度極短卻得到了\(p_1\)=1的效果,所以須要對翻譯句子的長度作出懲罰。懲罰分爲兩種:過長和太短。過長的句子實際上已經經過\(p_n\)被懲罰了,過長的句子會致使\(p_n\)中的分母很大,從而使得BLEU總體較小。故僅考慮句子太短的狀況,原文中對句子太短卻依然取得很高\(p_n\)的狀況成爲The trouble with recall,實際上就是references(實際爲正例)中僅有很小一部分出如今candidate(預測爲正例)中。

依然假設咱們的corpus中有多個candidate,每一個candidate有多個reference, 論文中把references 中最接近candidate長度的那個reference的長度稱爲「best match length 」

直覺上,能夠計算corpus中每個candidate的對應懲罰,求和後取平均。可是論文認爲這樣作對短句子的懲罰過大。這裏也體現了BLEU的寬容思想,咱們能夠容忍corpus中存在一些短句子,可是若是每一句句子都太短,則沒法容忍。

首先計算effective referecne length(r), 即把每個candidate對應的best match length相加求和

再次計算corpus中全部candidate的長度之和c

懲罰項:

\[BP=\left\{ \begin{array}{rcl} 1 & & {r<c}\\ \exp(1-\frac{r}{c}) & & {r\geq c}\\ \end{array} \right. \]

綜上,最終的BLEU爲:

\[BLEU = BP*exp(\sum_{n=1}^N\omega_{n}log(p_{n})) \]

3 BLEU指標總結

不難看出,BLEU指標其實是對「n-gram頻率類似」的一個科學化的表達。

其對兩種不匹配作出了懲罰:

  1. n-gram頻率不匹配
  2. 句子過長或者太短

BP對句子太短作出了懲罰,而exponential項對n-gram頻率不匹配作出了懲罰,順帶解決了對過長句子的懲罰問題。

相關文章
相關標籤/搜索