机器翻译的一大难题是,一句法语句子,可以有多种英文翻译,这些翻译都是非常好的
那怎么去评估一个机器翻译系统的质量是不是好呢?
这不像图像识别,只有一个正确答案
通常我们有 BLEU score(Bilingual Evaluation Understudy 双语评估替补) 来解决
- 在戏曲界,understudy 指的是候补演员
假设我们拿到一句法语
同时得到几个人类翻译的结果(都是对的,也都很准确)
Bleu score 所做的,给定一个机器生成的翻译,自动计算一个分数,衡量机器翻译的好坏
下意识我们认为,只要机器翻译和其中任何一个人类翻译很接近,那就应该得到一个高的 Bleu score
Bleu score 来源于 Kishore Papineni, Salim Roukos, Todd Ward, Wei-Jing Zhu 发表的一篇非常有影响力的论文(读起来不费劲,老师建议可以读一下)
我们要做的是,看机器翻译 MT 的结果中,有多少词在人类的翻译参考中出现
- 一种方法叫做 Precision(精确度):看机器翻译的每一个词,有没有在翻译参考中出现。在上面的案例中,虽然全是 the 是一个非常糟糕的翻译结果,但是 Precision = 7/7 = 1(感觉这种衡量方法不靠谱)
- 改良后叫做 Modified precision:我们会设定最高权重上限,比如第一句翻译参考中,the 出现了 2 次;第二句中, the 出现了 1 次,那权重上限就是 2。这样 Modified precision = 2/7
在 Bleu score 中,我们不仅关注 单词,还关注词组(其实就是相邻的词对 bigrams)
- 这个例子中,一共有 5 种 bigrams 的组合
- 分别数一下出现的次数
- 分别数一下在翻译参考中出现的次数
- 最终 modified bigram precision = 4/6
可以将其公式化
这里的 P1 下标 1 表示的是 一元词组
推广到 n 元词组
如果机器翻译的结果和参考翻译中的某一句完全相同,那么 P1 = P2 = … = Pn = 1
也有可能通过某种组合各个参考翻译得到结果为 1
最终,我们把以上结合起来,获得最后的 Bleu score
即求所有 P 值的平均,然后取个 e 指数
然后在前面加上一个 BP 参数(brevity penalty 简短惩罚)
- BP 的作用在于,如果输出一个非常短的句子,那很容易得到 Bleu score 的高分,所以我们要防止这个情况的出现
- BP 在机器翻译长度大于人类翻译长度的时候取值为 1,否则产生惩罚