NLP 評價指標 BLEU 和 ROUGE

nlp與人工智能 發佈 2020-01-08T08:32:14+00:00

因此作者提出了一種加權最長公共子序列方法,給連續翻譯正確的更高的分數,具體做法可以閱讀原論文《ROUGE: A Package for Automatic Evaluation of Summaries》。例如句子 "I have a cat" 的 Skip 2-gram 包括

在機器翻譯任務中,BLEU 和 ROUGE 是兩個常用的評價指標,BLEU 根據精確率(Precision)衡量翻譯的質量,而 ROUGE 根據召回率(Recall)衡量翻譯的質量。

1.機器翻譯評價指標

使用機器學習的方法生成文本的翻譯之後,需要評價模型翻譯的性能,這就要用到一些機器翻譯評價指標,其中比較常見的評價指標有 BLEU 和 ROUGE。這兩個指標具有比較舊的歷史,BLEU 是 2002 年提出的,而 ROUGE 是 2003 年提出的。這兩種指標雖然存在著一些問題,但是仍然是比較主流的機器翻譯評價指標。

一般用 C 表示機器翻譯的譯文,另外還需要提供 m 個參考的翻譯 S1, S2, ..., Sm。評價指標就可以衡量機器翻譯的 C 和參考翻譯 S1, S2, ..., Sm 的匹配程度。

2.BLEU

BLEU 的全稱是 Bilingual evaluation understudy,BLEU 的分數取值範圍是 0~1,分數越接近1,說明翻譯的質量越高。BLEU 主要是基於精確率(Precision)的,下面是 BLEU 的整體公式。

  • BLEU 需要計算譯文 1-gram,2-gram,...,N-gram 的精確率,一般 N 設置為 4 即可,公式中的 Pn 指 n-gram 的精確率。
  • Wn 指 n-gram 的權重,一般設為均勻權重,即對於任意 n 都有 Wn = 1/N。
  • BP 是懲罰因子,如果譯文的長度小於最短的參考譯文,則 BP 小於 1。
  • BLEU 的 1-gram 精確率表示譯文忠於原文的程度,而其他 n-gram 表示翻譯的流暢程度。

2.1 n-gram 精確率計算

假設機器翻譯的譯文 C 和一個參考翻譯 S1 如下:

C: a cat is on the table
S1: there is a cat on the table 

則可以計算出 1-gram,2-gram,... 的準確率

直接這樣子計算 Precision 會存在一些問題,例如:

C: there there there there there
S1: there is a cat on the table 

這時候機器翻譯的結果明顯是不正確的,但是其 1-gram 的 Precision 為1,因此 BLEU 一般會使用修正的方法。給定參考譯文 S1, S2, ..., Sm,可以計算 C 裡面 n 元組的 Precision,計算公式如下:

2.2 懲罰因子

上面介紹了 BLEU 計算 n-gram 精確率的方法, 但是仍然存在一些問題,當機器翻譯的長度比較短時,BLEU 得分也會比較高,但是這個翻譯是會損失很多信息的,例如:

C: a cat
S1: there is a cat on the table 

因此需要在 BLEU 分數乘上懲罰因子

3.ROUGE

ROUGE 指標的全稱是 (Recall-Oriented Understudy for Gisting Evaluation),主要是基於召回率 (recall) 的。ROUGE 是一種常用的機器翻譯和文章摘要評價指標,由 Chin-Yew Lin 提出,其在論文中提出了 4 種 ROUGE 方法:

  • ROUGE-N: 在 N-gram 上計算召回率
  • ROUGE-L: 考慮了機器譯文和參考譯文之間的最長公共子序列
  • ROUGE-W: 改進了ROUGE-L,用加權的方法計算最長公共子序列
  • ROUGE-S: 採用了 Skip 的 N-gram,可以允許 N-gram 的單詞不連續

3.1 ROUGE-N

ROUGE-N 主要統計 N-gram 上的召回率,對於 N-gram,可以計算得到 ROUGE-N 分數,計算公式如下:

公式的分母是統計在參考譯文中 N-gram 的個數,而分子是統計參考譯文與機器譯文共有的 N-gram 個數。

C: a cat is on the table
S1: there is a cat on the table 

上面例子的 ROUGE-1 和 ROUGE-2 分數如下:

如果給定多個 參考譯文 Si,Chin-Yew Lin 也給出了一種計算方法,假設有 M 個譯文 S1, ..., SM。ROUGE-N 會分別計算機器譯文和這些參考譯文的 ROUGE-N 分數,並取其最大值,公式如下。這個方法也可以用於 ROUGE-L,ROUGE-W 和 ROUGE-S。

3.2 ROUGE-L

ROUGE-L 中的 L 指最長公共子序列 (longest common subsequence, LCS),ROUGE-L 計算的時候使用了機器譯文 C 和參考譯文 S 的最長公共子序列,計算公式如下:

公式中的 R_LCS 表示召回率,而 P_LCS 表示精確率,F_LCS 就是 ROUGE-L。一般 beta 會設置為很大的數,因此 F_LCS 幾乎只考慮了 R_LCS (即召回率)。注意這裡 beta 大,則 F 會更加關注 R,而不是 P,可以看下面的公式。如果 beta 很大,則 P_LCS 那一項可以忽略不計。

3.3 ROUGE-W

ROUGE-W 是 ROUGE-L 的改進版,考慮下面的例子,X 表示參考譯文,而 Y1Y2 表示兩種機器譯文。

在這個例子中,明顯 Y1 的翻譯質量更高,因為 Y1 有更多連續匹配的翻譯。但是採用 ROUGE-L 計算得到的分數確實一樣的,即 ROUGE-L(X, Y1)=ROUGE-L(X, Y2)。

因此作者提出了一種加權最長公共子序列方法 (WLCS),給連續翻譯正確的更高的分數,具體做法可以閱讀原論文《ROUGE: A Package for Automatic Evaluation of Summaries》。

3.4 ROUGE-S

ROUGE-S 也是對 N-gram 進行統計,但是其採用的 N-gram 允許"跳詞 (Skip)",即單詞不需要連續出現。例如句子 "I have a cat" 的 Skip 2-gram 包括 (I, have),(I, a),(I, cat),(have, a),(have, cat),(a, cat)。

4.參考文獻

Bleu: a method for automatic evaluation of machine translation

ROUGE: A Package for Automatic Evaluation of Summaries

關鍵字: