BLEU 是机器翻译中常见的自动评价指标,名称来自 Bilingual Evaluation Understudy。它比较候选译文与一个或多个参考译文中的连续词片段,而不是直接判断译文是否忠实、通顺。

n-gram 与计数截断

对句子 the cat is on the mat,单个词是 unigram,相邻两个词组成 bigram,例如 the cat、cat is。

如果候选句反复输出 the the the the,不能因为每个词都在参考句里出现过,就给它满分。参考句中只有两个 the,因此该候选的匹配计数被截为 2,unigram 精确率是 2/4。这就是 modified precision 中计数截断的直观含义。

多个参考句可以允许不同表达,但同一个 n-gram 的可用匹配次数仍有上限。

为什么还要惩罚过短的句子

候选只输出 the cat,它的 unigram 和 bigram 都能在参考句里找到,却漏掉了后半句。只看精确率会奖励这种少说少错的输出,因此 BLEU 引入长度惩罚 BP。

简化公式如下,c 是候选长度,r 是有效参考长度,w 是各阶权重:

BLEU = BP × exp(Σ w_n × log(p_n))
BP = 1                  当 c >= r
BP = exp(1 - r/c)       当 0 < c < r

这里的 p_n 是第 n 阶经过截断的精确率。论文的基准设置使用 1 到 4 阶、等权重;语料级计算会汇总匹配计数和长度,而不是把每句话的 BLEU 简单平均。BLEU 原论文

一个便于手算的 BLEU-2 例子

仍以 the cat is on the mat 为参考,以 the cat 为候选,故意只算到二阶:

  • p1 = 2/2 = 1。
  • p2 = 1/1 = 1。
  • c = 2,r = 6,BP = exp(-2),约为 0.1353。
  • 两阶等权时,BLEU-2 约为 0.1353;若采用乘以 100 的展示方式,就是 13.53。

这是解释公式的二阶算例,不是默认四阶语料 BLEU。短句、高阶匹配为零、是否使用平滑,都会影响句子级工具的输出。

分数不能说明什么

BLEU 看局部词序与重合,不直接建模语义。正确的同义改写可能得分低;局部重合也不保证主客体、否定或事实正确。不存在跨任务通用的“超过某个分数就达到人工水平”的门槛。

比较实验时,要保持测试语料、参考译文数量、分词、大小写处理、平滑和工具版本一致。中文尤其要说明分词方式,也要注明结果使用 0~1 还是 0~100 的尺度。

BLEU 适合在固定条件下跟踪系统变化,再配合人工检查典型错误。不要把它当作翻译正确率,也不要单凭它替摘要、问答等其他任务下质量结论。