Deep Learning Note: 5-11 Bleu 分数

  机器翻译与之前介绍的图像识别等任务的一个不同之处是,正确答案不是唯一的。例如对于如下的法语句子:

Le chat est sur le tapis.

人类可以给出多种不同的参考英文翻译,这些翻译的质量都很好,如:

参考 1:The cat is on the mat.
参考 2:There is a cat on the mat.

答案不唯一为衡量算法的准确度带来了挑战。对于此种情况,通常使用 Bleu 分数来衡量算法的准确度。

  对于一句机器翻译,Bleu 分数会给出一个分数来评价翻译的质量,机器翻译与人类的参考翻译越接近,则分数越高。Bleu 的全称为 Bilingual Evaluation Understudy,这里 Understudy 指的是 Bleu 分数可以代替人来对机器翻译系统进行评估,由 BLEU: a method for automatic evaluation of machine translation 一文提出。

  Bleu 分数基本思路是检查机器翻译中的每个字是否出现在人类给出的参考翻译中。

  我们不能仅使用准确度(Precision),即统计这句话中每个词出现在参考翻译中的次数,来评估机器翻译的质量。考虑这样一种极端的情况,假设机器翻译为:

the the the the the the the

这句机器翻译中有 7 个单词,这些单词(the)都出现在了上面两句参考翻译中,因此这句机器翻译的准确度为 $\frac{7}{7}$。虽然这句机器翻译很糟糕,但它的准确度却非常高,可见准确度并不能很好地体现机器翻译的质量。

  Bleu 分数使用一种修改的准确率来评估机器翻译的质量,对于机器翻译中的每个词,最多只统计其出现在参考翻译中的最多次数。例如对于机器翻译中的 “the” 这个词,它在第一句参考翻译中出现了 2 次,在第二句参考翻译中出现了 1 次,因此对这个词最多只统计 2 次。“the” 这个词在机器翻译中出现了 7 次,此时机器翻译的准确度为 $\frac{2}{7}$。

  以上是计算单个单词,即一元模型(Unigram)的准确度的方法。对于 Bleu 分数,通常还会评估如二元模型(Bigram)的词组,这里二元模型指的是相邻的两个词。假设机器翻译的输出为:

The cat the cat on the mat.

  对于这句机器翻译,其中的二元词组有 “the cat”、“cat the”、“cat on”、“on the” 和 “the mat”。使用 $Count$ 表示这些词组出现在机器翻译中的次数,使用 $Count_{clip}$ 表示这些词组出现在参考翻译中的最多次数,可以得到表 1 所示的结果。

表 1

$Count$ $Count_{clip}$
the cat 2 1
cat the 1 0
cat on 1 1
on the 1 1
the mat 1 1
Total 6 4

  由表 1 可以得到二元模型的准确度为 $Count_{clip}$ 除以 $Count$,即 $\frac{4}{6}$。

  更一般的,对于 n 元模型(n-Gram),其准确度 $p_n$ 为:

\begin{equation}
p_n = \frac{\sum\limits_{n \textrm{-} grams \in \hat{y}} Count_{clip}(n \textrm{-} grams)}{\sum\limits_{n \textrm{-} grams \in \hat{y}} Count(n \textrm{-} grams)} \tag{1}
\end{equation}

  通过使用不同的 n 元模型,即选择不同的 $n$,可以在不同程度上衡量机器翻译与参考翻译之间的相似度(或重合度)。如果机器翻译输出与任何一句参考翻译完全一致,则对于任意的 $n$,该机器翻译始终有 $p_n = 1.0$。但机器翻译输出与任何一句参考翻译完全一致是 $p_n = 1.0$ 的充分不必要条件,有时即使机器翻译与任意参考翻译都不完全一致,只要机器翻译能够合理地整合各参考翻译的内容,也可以达到 $p_n = 1.0$。

  使用 $p_n$ 表示前述 n-Gram 模型的准确度,则 Bleu 分数的计算方法为计算一系列 n-Gram 模型的准确度,如 $p_1$、$p_2$、$p_3$、$p_4$,然后计算:

\begin{equation}
BP \cdot exp(\frac{1}{4}\sum_{n=1}^{4}p_n) \tag{2}
\end{equation}

  式 (2) 中 $BP$ 为 Brevity Penalty。由于较短的机器翻译很容易获得更高的准确度,但是我们并不希望得到的翻译很短,所以这里使用 $BP$ 作为一个调节系数,对较短的翻译进行惩罚。$BP$ 的取值为:

\begin{equation}
BP =\begin{cases}1 & if \; MT\_length > ref\_legnth\\
exp(1-\frac{MT\_length}{ref\_legnth}) & otherwise\end{cases} \tag{3}
\end{equation}

  式 (3) 中,$MT\_length$ 为机器翻译的长度,$ref\_legnth$ 为参考翻译的长度。

  前文提到,使用单一评价标准有利于评估不同优化方法的效果,Bleu 算法的重大意义在于它提供了一个非常好的单一评价标准,通过评估机器生成的文本与多个参考文本之间的相似度,对机器生成文本进行评价,广泛应用于很多文本生成的系统,如机器翻译、图像标注等。