METEOR: An Automatic Metric for MT Evaluation with Improved Correlation with Human Judgments
时间:2005
Intro
对于机器翻译(Machine Translation,MT)的结果,相比人工度量,使用自动度量更块、简单、便捷,本文提出了自动度量METEOR,它解决了IBM的BLEU的缺点,BLEU仅仅度量了不同句子中相同的词,而METEOR可以度量同形词(比如有相同词根)、同义词
METEOR
BLEU的缺点
BLEU的核心是n-gram precision:匹配的n-gram在生成的文本中出现的比例。但BLEU没有衡量recall,因为评估一个candidate和一个集合的reference时,recall的定义是模糊的,相比一对一评估而言,为了弥补这个问题,BLEU使用了Brevity Penalty来惩罚过短的句子,BLEU有以下几个缺点:
- 没有衡量Recall
- 衡量高阶n-gram,BLEU通过衡量高阶n-gram来间接度量翻译的语法,我们认为有更好的直接度量
- 无法精确匹配tanslation和reference,BLEU中n-gram的匹配方式无法做到精确匹配,尤其是对一些常见的功能词
- N-gram的几何平均,导致只要有一个n-gram得分为0,结果就为0???
METEOR
METEOR就是为了解决BLEU的一些问题,它通过计算精确的word-to-word匹配来度量一个翻译,如果reference多于一个,那么它将计算每个的匹配结果并返回最高的一个。
给定一对待匹配的文本,METEOR首先对齐两个字符串,我们定义一个映射来对其unigrams,使得每个unigrams与另一个字符串中的0或1个unigram对齐,对齐通过一系列步骤完成,每个步骤包括两个阶段
第一个阶段,通过额外的module列出所有可能的unigram映射,比如,对于词’computer’,在candidate中出现了一次,而在reference中出现了两次,则列出两个可能的unigram映射,一个是candidate中的’computer’映射到reference中的第一个computer,另一个则是映射到第二个computer。不同的module的匹配准则不一样,exact module匹配完全相同的unigram,porter stem module匹配两个同词根的unigram,WN synonymy module匹配两个同义的unigram
第二阶段中,选择这些unigram mapping的最大的子集使得满足之前的条件(即每个unigram有1个或0的对应),如果多于一个子集满足了这个条件,METEOR选择有最少unigram mapping crosse的那个,mapping crosses定义为,将两句话写成两行,然后将mapping连起来,每个交叉的位置就是一个mapping cross
每个阶段仅仅map那些在前一阶段没有匹配的unigram,第一阶段先进行exact mapping,第二阶段进行porter stem mapping,最后进行WN synonymy mapping。
得到最后的映射后,就可以计算METEOR得分了,首先计算unigram precision,它是匹配的unigrams对数占candidate中unigram的比例,再计算unigram recall,它是匹配的unigrams对数占reference中的unigram的比例,然后计算Fmean,它将更多的权值放在Recall上
F
m
e
a
n
=
10
P
R
R
+
9
P
Fmean = \dfrac{10PR}{R+9P}
Fmean=R+9P10PR
这里的precision,recall,fmean都只考虑了unigram匹配,为了考虑更长的匹配,METEOR计算给定aligment的penalty。首先,所有candidate中映射到reference中的unigram被分组为尽可能少的chunks中,使得在candidate中的每个毗邻的chunk在reference中也毗邻,这样,n-gram越长,则chunk就越少,极端情况下就是只有1个chunk,另一个极端就是没有bigram匹配,则就会有很多chunk,惩罚的表达式为
P
e
n
a
l
t
y
=
0.5
∗
(
#
c
h
u
n
k
s
#
u
n
i
g
r
a
m
s
_
m
a
t
c
h
e
d
)
3
Penalty = 0.5*(\dfrac{\#chunks}{\#unigrams\_matched})^3
Penalty=0.5∗(#unigrams_matched#chunks)3
比如,对于
- candidate:the president spoke to the audience
- reference:the president then spoke to the audience
这就有两个chunk,”the president“和”spoke to the audience“,
随着chunk增加,penalty增加到最高0.5,随着chunks降低到1,penalty就会下降,它的下界由匹配的unigram决定。
最后METEOR score的计算公式为
S
c
o
r
e
=
F
m
e
a
n
∗
(
1
−
P
e
n
a
l
t
y
)
Score=Fmean*(1-Penalty)
Score=Fmean∗(1−Penalty)
如果没有bigram或者更长的匹配,Fmean会被削减最多50%,METEOR对于一组reference,计算candidate和其中每个的得分,最后选择其中最大的那个,对于整个系统的评估,METEOR计算累积precision,recall和penalty,然后再将他们结合为最终评分
Evaluation
Data
阿拉伯语-英文
中文-英文
结果
后文比较了METEOR得分与人类评分的相关性,这里从略
Future Work
- 训练Penalty和score的参数
- 增加semantic relatedness mapping模式
- 更充分地利用多个reference的度量结果,本文仅仅选择了最好的
- 区别对待按照不同mapping方式map的unigram,本文对所有mapping结果一视同仁
结论
本文提出了一种自动度量nlg结果的度量METEOR,它的提出是为了解决BLEU存在的一些问题,按照之前的描述,这些问题分别是:
- 没有考虑recall,METEOR通过candidate和reference的一对一匹配规避了多reference下recall计算的问题,从而可以计算recall
- 高阶n-gram仅仅是间接度量,容易被通用词(组)影响,METEOR使用chunk的数量来确定的n-gram匹配,无需指定n的具体值,METEOR的chunk某种程度上对一句话进行了不同n-gram匹配的融合,且可以对任意n实现匹配,从而有很高的灵活性,同时,unigram一对一的关系避免了常用词组在BLEU中多次参与匹配的问题
- 词的匹配是简单暴力的直接匹配,METEOR对unigram采用三个阶段的匹配步骤,从完全匹配到词根匹配再到词义匹配,避免了BLEU中在语义上不同源的常见词多次匹配成功造成的影响
- 貌似不存在的几何平均问题???
简单来说就是匹配+计算PRF+综合penalty