NLP機器翻譯任務中,如何用Bleu score評價翻譯品質(學習心得)

機器翻譯的一大難題是,一句法語句子,可以有多種英文翻譯,這些翻譯都是非常好的
那怎麼去評估一個機器翻譯系統的品質是不是好呢?
這不像影像識別,只有一個正確答案

通常我們有 BLEU score(Bilingual Evaluation Understudy 雙語評估替補) 來解決

  • 在戲曲界,understudy 指的是候補演員

1.jpg
假設我們拿到一句法語
同時得到幾個人類翻譯的結果(都是對的,也都很準確)

Bleu score 所做的,給定一個機器生成的翻譯,自動計算一個分數,衡量機器翻譯的好壞
下意識我們認為,只要機器翻譯和其中任何一個人類翻譯很接近,那就應該得到一個高的 Bleu score
Bleu score 來源於 Kishore Papineni, Salim Roukos, Todd Ward, Wei-Jing Zhu 發表的一篇非常有影響力的論文(讀起來不費勁,老師建議可以讀一下)

我們要做的是,看機器翻譯 MT 的結果中,有多少詞在人類的翻譯參考中出現

  1. 一種方法叫做 Precision(精確度):看機器翻譯的每一個詞,有沒有在翻譯參考中出現。在上面的案例中,雖然全是 the 是一個非常糟糕的翻譯結果,但是 Precision = 7/7 = 1(感覺這種衡量方法不靠譜)
  2. 改良後叫做 Modified precision:我們會設定最高權重上限,比如第一句翻譯參考中,the 出現了 2 次;第二句中, the 出現了 1 次,那權重上限就是 2。這樣 Modified precision = 2/7

2.jpg
在 Bleu score 中,我們不僅關注 單詞,還關注片語(其實就是相鄰的詞對 bigrams)

  1. 這個例子中,一共有 5 種 bigrams 的組合
  2. 分別數一下出現的次數
  3. 分別數一下在翻譯參考中出現的次數
  4. 最終 modified bigram precision = 4/6

3.jpg
可以將其公式化
這裡的 P1 下標 1 表示的是 一元片語
推廣到 n 元片語

如果機器翻譯的結果和參考翻譯中的某一句完全相同,那麼 P1 = P2 = … = Pn = 1
也有可能通過某種組合各個參考翻譯得到結果為 1

4.jpg
最終,我們把以上結合起來,獲得最後的 Bleu score
即求所有 P 值的平均,然後取個 e 指數
然後在前面加上一個 BP 參數(brevity penalty 簡短懲罰)

  • BP 的作用在於,如果輸出一個非常短的句子,那很容易得到 Bleu score 的高分,所以我們要防止這個情況的出現
  • BP 在機器翻譯長度大於人類翻譯長度的時候取值為 1,否則產生懲罰