在机器翻译任务中,BLEU 和 ROUGE 是两个常用的评价指标,BLEU 根据精确率(Precision)衡量翻译的质量,而 ROUGE 根据召回率(Recall)衡量翻译的质量。
1. 机器翻译评价指标
使用机器学习的方法生成文本的翻译之后,需要评价模型翻译的性能,这就要用到一些机器翻译评价指标,其中比较常见的评价指标有 BLEU 和 ROUGE。这两个指标具有比较旧的历史,BLEU 是 2002 年提出的,而 ROUGE 是 2003 年提出的。这两种指标虽然存在着一些问题,但是仍然是比较主流的机器翻译评价指标。
一般用表示机器翻译的译文,另外还需要提供m个参考的翻译。评价指标就可以衡量机器翻译的和参考翻译的匹配程度。
2. BLEU
BLEU 的全称是 Bilingual evaluation understudy(双语互译质量评估辅助工具),BLEU 的分数取值范围是 0~1,分数越接近1,说明翻译的质量越高。BLEU 主要是基于精确率(Precision)的。
2.1 最开始的BLEU算法
其实最原始的BLEU算法很简单,我们每个人都有意无意做过这种事:两个句子,S1和S2,S1里头的词出现在S2里头越多,就说明这两个句子越一致。就像这样子:similarity(‘i like apple’, ‘i like english’)=2/3。
分子是一个候选翻译的单词有多少出现在参考翻译中(出现过就记一次,不管是不是在同一句参考翻译里头),分母是这个候选翻译的词汇数。
请看下面这个错误案例:
计算过程:
- 候选翻译的每个词——the,都在参考译文中出现,分子为7;
- 候选翻译一共就7个词,分母为7;
- 这个翻译的得分: 7/7 = 1
很明显,这样算是错的,需要改进一下。
2.2 改进的多元精度(n-gram precision)
专业一点,上面出现的错误可以理解为常用词干扰(over-generate “reasonable”words),比如the, on这样的词,所以极易造成翻译结果低劣评分结果却贼高的情况。
另外,上面我们一个词一个词的去做统计,以一个单词为单位的集合,我们统称uni-grams(一元组集)。如果是这样{“the cat”, “cat is”, “is on”, “on the”, “the mat”},类似"the cat"两个相邻词一组就叫做bi-gram(二元组),以此类推:三元组、四元组、…、多元组(n-gram),集合变复数:n-grams。
OK,上述算法问题其实处在分子的计算上,我们换成这个:
名词解释:对于一跳候选翻译——
举例:
其实 改进的n-gram精度得分可以用了衡量翻译评估的充分性和流畅性两个指标:一元组属于字符级别,关注的是翻译的充分性,就是衡量你的逐字逐字翻译能力; 多元组上升到了词汇级别的,关注点是翻译的流畅性,词组准了,说话自然相对流畅了。所以我们可以用多组多元精度得分来衡量翻译结果的。
2.3 改进的多元精度(modified n-gram precision)在文本段落翻译质量评估中的使用
BLEU的处理办法其实还是一样,把多个句子当成一个句子罢了:
不要被这里的连加公式给欺骗了,它将候选段落的所有n-gram进行了截断统计作为分子,分母是候选段落的n-gram的个数。
2.4 将多个改进的多元精度(modified n-gram precision)进行组合
在3.2提到,uni-gram下的指标可以衡量翻译的充分性,n-gram下的可以衡量翻译的流畅性,建议将它们组合使用。那么,应该如何正确的组合它们呢?
没疑问,加总求和取平均。专业点的做法要根据所处的境况选择加权平均,甚至是对原式做一些变形。
首先请看一下不同n-gram下的对某次翻译结果的精度计算:
事实是这样,随着n-gram的增大,精度得分总体上成指数下降的,而且可以粗略的看成随着n而指数级的下降。我们这里采取几何加权平均,并且将各n-gram的作用视为等重要的,即取权重服从均匀分布。
为改进的多元精度,为赋予的权重。
对应到上图,公式简单表示为:
2.5 译句较短惩罚(Sentence brevity penalty)
再仔细看改进n-gram精度测量,当译句比参考翻译都要长时,分母增大了,这就相对惩罚了译句较长的情况。译句较短就更严重了!比如说下面这样:
显然,这时候选翻译的精度得分又是。短译句就是这样,很容易得高分…所以必须要设计一个有效的惩罚措施去控制。
首先,定一个名词叫“最佳匹配长度”(best match length),就是,如果译句长度和任意一个参考翻译的长度相同,就认为它满足最佳匹配长度。这种情况下,就不要惩罚了,惩罚因子要设为1。
见上式,是一个参考翻译的词数,是一个候选翻译的词数,BP代表译句较短惩罚值。由此,最终值得计算公式为:
通过一次次的改进、纠正,这样的 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: 也是对 N-gram 进行统计,但是其采用的 N-gram 允许"跳词 (Skip)"
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分数如下
如果给定多个参考译文,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 的最长公共子序列,计算公式如下:
公式中的表示召回率,而表示精确率,就是ROUGE-L。
一般beta会设置为很大的数,因此几乎只考虑了即召回率。注意这里 beta 大,则 F 会更加关注 R,而不是 P,可以看下面的公式。如果 beta 很大,则 那一项可以忽略不计。
3.3 ROUGE-W
ROUGE-W 是 ROUGE-L 的改进版,考虑下面的例子,X 表示参考译文,而 Y1,Y2 表示两种机器译文。
在这个例子中,明显 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)。