文本生成任務的評價方法
參考資料: https://baijiahao.baidu.com/s?id=1655137746278637231&wfr=spider&for=pc
1.BLEU
BLEU (Bilingual Evaluation Understudy)——越大越好
-
核心:比較候選譯文和參考譯文里的 n-gram 的重合程度,重合程度越高就認為譯文質量越高。
-
unigram用於衡量單詞翻譯的准確性,高階n-gram用於衡量句子翻譯的流暢性。
-
通常取N=1~4,再加權平均。
-
\(P_n\) 指 n-gram 的精確率。
-
\(W_n\) 指 n-gram 的權重。
-
\(BP\) 是懲罰因子。
-
\(lr\)指參考譯文長度。
-
\(lc\)指候選譯文長度。
-
希望譯文更長些。
假設機器翻譯的譯文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 一般會使用修正的方法。給定參考譯文\(S_1,S_2, ...,S_m\),可以計算\(C\)里面 n 元組的 Precision,計算公式如下:
-
2. ROUGE
ROUGE (Recall-Oriented Understudy for Gisting Evaluation)專注於召回率(關注有多少個參考譯句中的 n- gram出現在了輸出之中)而非精度(候選譯文中的n-gram有沒有在參考譯文中出現過)。
2.1 ROUGE-N (將BLEU的精確率優化為召回率)
評估標准:計算ROUGE-1和ROUGE-2的F1-score,越大越好。
公式的分母是統計在參考譯文中 N-gram 的個數,而分子是統計參考譯文與機器譯文共有的 N-gram 個數。
C: a cat is on the table
S1: there is a cat on the table
上面例子的 ROUGE-1 和 ROUGE-2 分數如下:
如果給定多個參考譯文\(S_i\),Chin-Yew Lin 論文也給出了一種計算方法,假設有 M 個譯文 \(S_1,S_2, ...,S_m\)。ROUGE-N 會分別計算機器譯文和這些參考譯文的 ROUGE-N 分數,並取其最大值,公式如下。這個方法也可以用於 ROUGE-L,ROUGE-W 和 ROUGE-S。
2.2 ROUGE-L (將BLEU的n-gram優化為公共子序列)
評估標准:計算ROUGE-L的F1-score,越大越好。
ROUGE-L 中的 L 指最長公共子序列 (longest common subsequence, LCS),ROUGE-L 計算的時候使用了機器譯文C和參考譯文S的最長公共子序列,計算公式如下:
- \(R_{LCS}\) 表示召回率,而 \(P_{LCS}\) 表示精確率,\(F_{LCS}\) 就是 ROUGE-L。
- \(\beta\)用於調節對精確率和召回率的關注度。
- 如果\(\beta\) 很大,則\(F_{LCS}\) 會更關注\(R_{LCS}\) ,\(P_{LCS}\) 可以忽略不計。
2.3 ROUGE-W (ROUGE-W 是 ROUGE-L 的改進版)
ROUGE-L在計算最長公共子序列時,對於子序列的連續性沒有限制,即兩個詞匯之間可以有任意長度的代溝,但是這不一定是不合理的。考慮下面的例子,\(X\)表示參考譯文,而\(Y_1\),\(Y_2\)¥表示兩種機器譯文。
在這個例子中,明顯 \(Y_1\)的翻譯質量更高,因為\(Y_1\) 有更多連續匹配的翻譯。但是采用 ROUGE-L 計算得到的分數確實一樣的,即 \(ROUGE-L(X,Y_1)=ROUGE-L(X, Y_2)\)。
因此作者提出了一種加權最長公共子序列方法 (WLCS),給連續翻譯正確的更高的分數。所以ROUGE-W在ROUGE-L的基礎上對連續性添加一個權重。
2.4 ROUGE-S (Skip-Bigram Co-Occurrence Statistics)
ROUGE-S 也是對 N-gram 進行統計,但是其采用的 N-gram 允許"跳詞 (Skip)",即單詞不需要連續出現。skip-bigram是一句話中任意兩個有序的詞,它們之間可以間隔任意長,基於skip-bigram的ROUGE-S計算如下:
- ROUGE-S先對生成文本和參考文本中的2-gram進行組合,此時的2-gram不一定是連續的,可以是有間隔的,稱為Skip-Bigram;
- 然后計算生成文本中出現在參考文本的Skip-Bigram在參考文本所有Skip-Bigram的比重(即\(R_{skip2}\));
- 計算參考文本中出現在生成文本的Skip-Bigram在生成文本所有Skip-Bigram的比重(即\(P_{skip2}\));
- 選擇\(\beta\)計算ROUGE-S。
例如句子 "I have a cat" 的 Skip-bigram 包括 (I, have),(I, a),(I, cat),(have, a),(have, cat),(a, cat)。
其中\(C\)是組合函數,相比與ROUGE-L來說,ROUGE-S能捕捉所有有序的兩個詞,為了避免匹配一些相隔過長而無意義的詞比如"the the",可以設置最長間隔,此時相應的分母也要按照這個最長距離來計算。
3. METEOR
- METEOR同時考慮了基於整個語料庫上的准確率和召回率。
- 也包括其他指標沒有發現一些其他功能,如同義詞匹配,同形詞等。
- 在評價句子流暢性的時候,用了 chunk 的概念(候選譯文和參考譯文能夠對齊的、空間排列上連續的單詞形成一個 chunk)。
- 應用不是很廣泛:只有java版本;超參數多;需要外部資源(比較雞肋)
參考
- BLEU, METEOR, ROUGE:
《ROUGE: A Package for Automatic Evaluation of Summaries》
《Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments》
在NLP當中,不同的評價指標,BLEU, METEOR, ROUGE和CIDEr的邏輯意義?