文本生成任务的评价方法
文本生成任务的评价方法
参考资料: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的逻辑意义?