【深度学习基础】系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.BLEU得分
机器翻译的一大难题是一个法语句子可以有多种英文翻译,并且翻译质量都同样好。那么我们该怎样评估一个机器翻译系统呢?常用的一个方法就是使用BLEU得分。
BLEU原文:Papineni K, Roukos S, Ward T, et al. Bleu: a method for automatic evaluation of machine translation[C]//Proceedings of the 40th annual meeting of the Association for Computational Linguistics. 2002: 311-318.
假设有法语句子及其对应的两个不错的人工翻译结果见下:
- French : Le chat est sur le tapis.
- Reference 1 : The cat is on the mat.
- Reference 2 : There is a cat on the mat.
机器翻译的结果越接近上述两个翻译中的任一个,其BLEU得分就应该越高。
BLEU : Bilingual Evaluation Understudy。
现在我们来看一个极端的例子,假设机器翻译的结果为:”the the the the the the the.”。衡量机器翻译结果质量的其中一个办法是观察输出结果的每一个词,看其是否出现在给定的较好的翻译结果(例如上述的Reference1和Reference2)中,这被称为是机器翻译的精确度(precision)。在上述例子中,机器翻译的结果共有7个单词,并且每个单词都出现在了Reference1或Reference2中,因此其精确度为:$\frac{7}{7}$。虽然精确度很高,但这并不是一个很好的翻译,因此我们需要对精确度这个评估指标进行优化:
unigram | count | count_clip |
---|---|---|
the | 7 | 2 |
“unigram”表示我们每次只分析一个单词,”count”为该单词在机器翻译结果中出现的次数,”count_clip”为该单词在Reference中出现的最高频次。优化后的精确度为:$\frac{2}{7}$。
接下来我们进一步考虑每次分析两个相邻单词的情况(本例中忽略大小写)。假设机器翻译的结果为:”The cat the cat on the mat.”。
bigram | count | count_clip |
---|---|---|
the cat | 2 | 1 |
cat the | 1 | 0 |
cat on | 1 | 1 |
on the | 1 | 1 |
the mat | 1 | 1 |
所以我们可以得到二元词组的精确度为:
\[\frac{1+0+1+1+1}{2+1+1+1+1}=\frac{4}{6}=\frac{2}{3}\]因此,总结出n元词组(n-gram)的精确度为($\hat y$为机器翻译的结果):
\[P_n=\frac{\sum _{n-gram \in \hat y} count\_clip \ (n-gram) }{ \sum _{n-gram \in \hat y} count \ (n-gram) }\]如果机器翻译的结果和Reference完全一致的话,会有$P_n=1$。将所有的$P_n$结合起来,便可得到最终的BLEU得分(假设机器翻译的句子共有$k$个单词):
\[BLEU \ score=BP \cdot exp(\frac{1}{k}\sum^k_{n=1} P_n)\]BP(Brevity Penalty,简短惩罚)是一个惩罚因子。添加BP惩罚因子的原因在于如果模型输出了一个非常短的翻译,那么它会更容易得到一个高精确度。因为输出的大部分词可能都出现在Reference中。因此我们需要BP惩罚因子对非常短的翻译结果进行惩罚。BP惩罚因子的定义如下:
BLEU得分对于机器翻译任务来说,是一个相当不错的单一实数评估指标。此外,BLEU得分也经常用于图像描述系统。