文本生成任务的评价方法


文本生成任务的评价方法

目录
  • 文本生成任务的评价方法
    • 1.BLEU
    • 2. ROUGE
      • 2.1 ROUGE-N (将BLEU的精确率优化为召回率)
      • 2.2 ROUGE-L (将BLEU的n-gram优化为公共子序列)
      • 2.3 ROUGE-W (ROUGE-W 是 ROUGE-L 的改进版)
      • 2.4 ROUGE-S (Skip-Bigram Co-Occurrence Statistics)
    • 3. METEOR
    • 参考

参考资料:https://baijiahao.baidu.com/s?id=1655137746278637231&wfr=spider&for=pc

1.BLEU

BLEU (Bilingual Evaluation Understudy)——越大越好

  • 核心:比较候选译文和参考译文里的 n-gram 的重合程度,重合程度越高就认为译文质量越高

  • unigram用于衡量单词翻译的准确性,高阶n-gram用于衡量句子翻译的流畅性。

  • 通常取N=1~4,再加权平均。

    • \(P_n\) 指 n-gram 的精确率。

    • \(W_n\) 指 n-gram 的权重。

    • \(BP\) 是惩罚因子。

    • \(lr\)指参考译文长度。

    • \(lc\)指候选译文长度。

    • 希望译文更长些。

    假设机器翻译的译文C和一个参考翻译S1如下:

    C: a cat is on the table

    S1: there is a cat on the table

    则可以计算出 1-gram,2-gram,... 的准确率:

    直接这样子计算 Precision 会存在一些问题,例如:

    C: there there there there there

    S1: there is a cat on the table

    这时候机器翻译的结果明显是不正确的,但是其 1-gram 的 Precision 为1,因此 BLEU 一般会使用修正的方法。给定参考译文\(S_1,S_2, ...,S_m\),可以计算\(C\)里面 n 元组的 Precision,计算公式如下:

2. ROUGE

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)专注于召回率(关注有多少个参考译句中的 n- gram出现在了输出之中)而非精度(候选译文中的n-gram有没有在参考译文中出现过)。

2.1 ROUGE-N (将BLEU的精确率优化为召回率)

评估标准:计算ROUGE-1和ROUGE-2的F1-score,越大越好。

公式的分母是统计在参考译文中 N-gram 的个数,而分子是统计参考译文与机器译文共有的 N-gram 个数。

C: a cat is on the table

S1: there is a cat on the table

上面例子的 ROUGE-1 和 ROUGE-2 分数如下:

如果给定多个参考译文\(S_i\),Chin-Yew Lin 论文也给出了一种计算方法,假设有 M 个译文 \(S_1,S_2, ...,S_m\)。ROUGE-N 会分别计算机器译文和这些参考译文的 ROUGE-N 分数,并取其最大值,公式如下。这个方法也可以用于 ROUGE-L,ROUGE-W 和 ROUGE-S。

2.2 ROUGE-L (将BLEU的n-gram优化为公共子序列)

评估标准:计算ROUGE-L的F1-score,越大越好。

ROUGE-L 中的 L 指最长公共子序列 (longest common subsequence, LCS),ROUGE-L 计算的时候使用了机器译文C和参考译文S的最长公共子序列,计算公式如下:

  • \(R_{LCS}\) 表示召回率,而 \(P_{LCS}\) 表示精确率,\(F_{LCS}\) 就是 ROUGE-L。
  • \(\beta\)用于调节对精确率和召回率的关注度。
  • 如果\(\beta\) 很大,则\(F_{LCS}\) 会更关注\(R_{LCS}\)\(P_{LCS}\) 可以忽略不计。

2.3 ROUGE-W (ROUGE-W 是 ROUGE-L 的改进版)

ROUGE-L在计算最长公共子序列时,对于子序列的连续性没有限制,即两个词汇之间可以有任意长度的代沟,但是这不一定是不合理的。考虑下面的例子,\(X\)表示参考译文,而\(Y_1\)\(Y_2\)¥表示两种机器译文。

在这个例子中,明显 \(Y_1\)的翻译质量更高,因为\(Y_1\) 有更多连续匹配的翻译。但是采用 ROUGE-L 计算得到的分数确实一样的,即 \(ROUGE-L(X,Y_1)=ROUGE-L(X, Y_2)\)

因此作者提出了一种加权最长公共子序列方法 (WLCS),给连续翻译正确的更高的分数。所以ROUGE-W在ROUGE-L的基础上对连续性添加一个权重。

2.4 ROUGE-S (Skip-Bigram Co-Occurrence Statistics)

ROUGE-S 也是对 N-gram 进行统计,但是其采用的 N-gram 允许"跳词 (Skip)",即单词不需要连续出现。skip-bigram是一句话中任意两个有序的词,它们之间可以间隔任意长,基于skip-bigram的ROUGE-S计算如下:

  1. ROUGE-S先对生成文本和参考文本中的2-gram进行组合,此时的2-gram不一定是连续的,可以是有间隔的,称为Skip-Bigram;
  2. 然后计算生成文本中出现在参考文本的Skip-Bigram在参考文本所有Skip-Bigram的比重(即\(R_{skip2}\));
  3. 计算参考文本中出现在生成文本的Skip-Bigram在生成文本所有Skip-Bigram的比重(即\(P_{skip2}\));
  4. 选择\(\beta\)计算ROUGE-S。

例如句子 "I have a cat" 的 Skip-bigram 包括 (I, have),(I, a),(I, cat),(have, a),(have, cat),(a, cat)。

其中\(C\)是组合函数,相比与ROUGE-L来说,ROUGE-S能捕捉所有有序的两个词,为了避免匹配一些相隔过长而无意义的词比如"the the",可以设置最长间隔,此时相应的分母也要按照这个最长距离来计算。

3. METEOR

  • METEOR同时考虑了基于整个语料库上的准确率和召回率。
  • 也包括其他指标没有发现一些其他功能,如同义词匹配,同形词等。
  • 在评价句子流畅性的时候,用了 chunk 的概念(候选译文和参考译文能够对齐的、空间排列上连续的单词形成一个 chunk)。
  • 应用不是很广泛:只有java版本;超参数多;需要外部资源(比较鸡肋)

参考

  • BLEU, METEOR, ROUGE:

《ROUGE: A Package for Automatic Evaluation of Summaries》

《Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments》

机器翻译与自动文摘评价指标 BLEU 和 ROUGE

在NLP当中,不同的评价指标,BLEU, METEOR, ROUGE和CIDEr的逻辑意义?

BLEU,ROUGE,METEOR,ROUGE-浅述自然语言处理机器翻译常用评价度量

文本生成13:万字长文梳理文本生成评价指标

文本生成任务常见评估指标