C: a cat is on the table S1: there is a cat on the table
则可以计算出 1-gram,2-gram,... 的精确率(参考文献里写的是准确率(accuracy),我理解是写错了,此处应该是精确率(precision))p1 计算 a cat is on the table 分别都在参考翻译S1中 所以 p1 = 1p2 (a, cat)在, (cat is) 没在, (is on) 没在, (on the) 在, (the table)在 所以p2 = 3/5p3 (a cat is)不在, (cat is on)不在, (is on the)不在, (on the table)在 所以 p3 = 1/4依次类推(上面的在或者不在, 说的都是当前词组有没有在参考翻译中)。直接这样算, 会存在很大的问题. 例如:
C: there there there there there S1: there is a cat on the table
ROUGE-W 是 ROUGE-L 的改进版,考虑下面的例子,X表示参考译文,而Y1,Y2表示两种机器译文。在这个例子中,明显 Y1的翻译质量更高,因为 Y1 有更多连续匹配的翻译。但是采用 ROUGE-L 计算得到的分数确实一样的,即 ROUGE-L(X, Y1)=ROUGE-L(X, Y2)。 因此作者提出了一种加权最长公共子序列方法 (WLCS),给连续翻译正确的更高的分数,具体做法可以阅读原论文《ROUGE: A Package for Automatic Evaluation of Summaries》
ROUGE-S
ROUGE-S 也是对 N-gram 进行统计,但是其采用的 N-gram 允许"跳词 (Skip)",即跳跃二元组(skip bigram)。例如句子 "I have a cat" 的 Skip 2-gram 包括 (I, have),(I, a),(I, cat),(have, a),(have, cat),(a, cat)。跳跃二元组是句子中有序的单词对,和LCS类似,在单词对之间,单词可能被跳过。比如一句有4个单词的句子,按照排列组合就可能有6种跳跃二元组。再次使用精度和召回率来计算F,将句子Sij中跳跃二元组的个数记为,则计算公式如下:
3)NIST
NIST(National Institute of standards and Technology)方法是在BLEU方法上的一种改进。最主要的是引入了每个n-gram的信息量(information) 的概念。BLEU算法只是单纯的将n-gram的数目加起来,而nist是在得到信息量累加起来再除以整个译文的n-gram片段数目。这样相当于对于一些出现少的重点的词权重就给的大了。信息量的计算公式是:解释一下:分母是n元词在参考译文中出现的次数,分子是对应的n-1元词在参考译文中的出现次数。对于一元词汇,分子的取值就是整个参考译文的长度。这里之所以这样算,应该是考虑到出现次数少的就是重点词这样的一个思路。计算信息量之后,就可以对每一个共现n元词乘以它的信息量权重,再进行加权求平均得出最后的评分结果:这里注意几个地方:
TER 是 Translation Edit Rate 的缩写,是一种基于距离的评价方法,用来评定机器翻译结果的译后编辑的工作量。这里,距离被定义为将一个序列转换成另一个序列所需要的最少编辑操作次数。操作次数越多,距离越大,序列之间的相似性越低;相反距离越小,表示一个句子越容易改写成另一个句子,序列之间的相似性越高。TER 使用的编辑操作包括:增加、删除、替换和移位。其中增加、删除、替换操作计算得到的距离被称为编辑距离,并根据错误率的形式给出评分其中 edit(c,r) 是指机器翻译生成的候选译文 c 和参考译文 r 之间的距离,l 是归一化因子,通常为参考译文的长度。在距离计算中所有的操作的代价都为 1。在计算距离时,优先考虑移位操作,再计算编辑距离,也就是增加、删除和替换操作的次数。直到移位操作(参考文献中还有个增加操作,感觉是笔误了)无法减少编辑距离时,将编辑距离和移位操作的次数累加得到TER 计算的距离。
Example 1.2 Candidate:cat is standing in the ground Reference:The cat is standing on the ground
将 Candidate 转换为 Reference,需要进行一次增加操作,在句首增加 “The”;一次替换操作,将 “in” 替换为 “on”。所以 edit(c, r) = 2,归一化因子 l 为 Reference 的长度 7,所以该参考译文的 TER 错误率为 2/7。与 BLEU 不同,基于距离的评价方法是一种典型的 “错误率” 的度量,类似的思想也广泛应用于语音识别等领域。在机器翻译中,除了 TER 外,还有 WER,PER 等十分相似的方法,只是在 “错误” 的定义上略有不同。需要注意的是,很多时候,研究者并不会单独使用 BLEU 或者 TER,而是将两种方法融合,比如,使用 BLEU 与TER 相减后的值作为评价指标。2、data to text 常用指标data to text 和翻译、摘要等生成式任务最大的不同是,input是类似于table或者三元组等其他形式的数据。在评估生成结果时,我们还需要考虑文本是否准确的涵盖了data的信息。《Challenges in Data-to-Document Generation》提供了许多data to text 的评价指标,并且被后续的一些论文采用:
如果你的data to text不涉及复杂的关系抽取,也可以简单的通过匹配方法来验证文本是否能够覆盖要描述的data。
This metric measures the average proportion of input items that are covered by a generated text. We recognized attribute values (ingredients) with string match heuristics.
5)Distinct
在某些生成场景中(对话,广告文案)等,还需要追求文本的多样性。李纪为的《A diversity-promoting objective function for neural conversation models》提出了Distinct指标,后续也被许多人采用。Distinct的定义如下:Count(unique ngram)表示回复中不重复的ngram数量,Count(word)表示回复中ngram词语的总数量。Distinct-n越大表示生成的多样性越高。3、image caption 常用指标
1)CIDEr
CIDEr 是专门设计出来用于图像标注问题的。这个指标将每个句子都看作“文档”,将其表示成 Term Frequency Inverse Document Frequency(tf-idf)向量的形式,通过对每个n元组进行(TF-IDF) 权重计算,计算参考 caption 与模型生成的 caption 的余弦相似度,来衡量图像标注的一致性的。
BERTSCORE: EVALUATING TEXT GENERATION WITH BERT , ICLR 2020思路是非常简单的:即对两个生成句和参考句(word piece进行tokenize)分别用bert提取特征,然后对2个句子的每一个词分别计算内积,可以得到一个相似性矩阵。基于这个矩阵,我们可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到bertscore的precision,recall和F1:流程如下图所示:
为了保证一个可读性(即不好的生成值为0,好的生成值为1)需要做一个Rescaling。作者的做法是随机的组合候选句和参考句(we create 1M candidate-reference pairs by grouping two random sentences.)从而计算一个b的平均值。b会被用于以下的式子:若如此做,R_BERT会被映射到0和1(typically),precision和F1也可以做相似的操作。
c、实验设计
有大量丰富的实验验证鲁棒性和有效性。(43页的paper,模型只讲了半页)
拓展阅读 :BLEURT
BLEURT: Learning Robust Metrics for Text Generation. ACL 2020作者认为,可以通过预训练结合人工评估数据的微调来同时满足度量方法的鲁棒性和表达度。基于该思路,提出了BLEURT,一种基于BERT的文本生成任务度量方法,通过对维基百科句子的随机扰动,辅以一组词汇级和语义级的监督信号来进行预训练。个人感觉主要和bertscore主要的区别在于: