【intro】BLEU
本文会先读一下论文:
BLEU: a Method for Automatic Evaluation of Machine Translation
在工作中需要对模型进行评估,其中有一个绕不开的方法就是BLEU,在之前的NLP课程中也提到了这个方法最早是用于机器翻译的,但是之前没有深究。因此这里需要了解该方法是什么,为什么要使用,以及怎么使用(包含使用的方法和使用的场景),可能需要涵盖比较多的论文,看一篇装不装的下了。
BLEU: a Method for Automatic Evaluation of Machine Translation
Abstract
使用一种自动、快速、廉价的机器翻译评估方案替代人工评估。
Introduction
人类对机器翻译(MT)的评价权衡了翻译的许多方面,包括翻译的充分性、保真性和流畅性(应该说的就是信达雅吧),但是过往的方法往往都较为昂贵、且需要较长的时间。
如何评价翻译的结果呢?机器翻译约接近专业人士的翻译约好。
为了判断机器翻译的质量需要根据一个树枝指标衡量其与一则或多则人类翻译的结果的接近程度。为了达到这一目的,需要两个组成成分:
1. 数值“翻译接近度”指标
2. 一个高质量的人类参考翻译的语料库
根据语音识别社区使用的非常成功的单词错误率度量来设计接近度度量,根据参考翻译适量修改公式,并允许在用词和语序上的合理差异。核心思想是对参考翻译使用可变长度短语匹配的加权平均值。
The Baseline BLEU Metric
通常,给定的句子有许多“完美”的翻译。即使使用相同的单词,这些翻译也可能在单词选择或单词顺序上有所不同。然而,人类可以清楚地区分一个好的翻译和一个坏的翻译。
虽然example1中的两个句子说的是同样的内容,但是根据我们提供的三个人类参考翻译,可以看出第一个候选人相比于第二个,与三个参考翻译拥有更多的词和短语的重复。很显然,程序可以轻松的通过比较两个候选句子和每个参考翻译的n-gram匹配来为两个候选句子排序(第一个更好)。
BLEU的主要编程任务是将候选翻译的n-gram与参考翻译的n-gram进行比较,并计算匹配的数量。这些匹配是位置无关的。匹配越多,候选翻译越好。
Modified n-gram precision
这一方法的基石是我们熟悉的precision方法。为了计算precision,我们可以简单的计数候选翻译单词(unigrams)在任意参考翻译中出现的次数,然后除以参考翻译中单词的总数。不幸的是,机器翻译系统可能会过度生成“合理”的单词,导致不合适的,但高精度的结果:
直观地看,问题很明显:在识别出匹配的候选词后,应该认为参考词已经耗尽。->提出一种改进的unigram precision,其计算方法是:
首先计算一个单词在任何一个参考翻译中出现的最大次数。接下来,将每个候选单词的总计数按其最大引用计数进行剪切,将这些剪切计数相加,然后除以候选单词的总数(未剪切)。
Modified n-gram precision on blocks of text
如何在多个句子的测试集上计算Modified n-gram precision呢?虽然人们通常在整个文档的语料库上评估机器翻译系统,但我们评估的基本单位是句子。一个句子可以翻译成多个目标句,我们首先逐句计算n-gram匹配。接下来,我们添加所有候选句子的裁剪n-gram计数,并除以测试语料库中候选n-gram的数量,以计算整个测试语料库的修改精度分数
BLEU only needs to match human judgment when averagedover a test corpus; scores on individual sentences will often varyfrom human judgments. For example, a system which producesthe fluent phrase East Asian economy is penalized heavily onthe longer n-gram precisions if all the references happen to read economy of East Asia. The key to BLEU s success is thatall systems are treated similarly and multiple human translatorswith different styles are used, so this effect cancels out in comparisons between systems.
Ranking systems using only modified n-gram precision
为了验证修改后的n-gram精度可以区分非常好的翻译和糟糕的翻译,计算一个(好的)人工翻译和一个标准(差的)机器翻译系统的输出的修改后的精度数字,对127个句子中的每个句子使用4个参考翻译。给出了平均精度结果:
似乎任何单一的n-gram精度分数都可以区分好翻译和坏翻译。然而,为了有用,该度量还必须可靠地区分质量差异不大的翻译。此外,它必须区分两种不同质量的人工翻译。后一项要求确保了MT在接近人类翻译质量时度量的持续有效性。
Combining the modified n-gram precisions
BLEU使用均匀权值的平均对数,相当于使用修正n-gram精度的几何平均值.
Sentence length
候选译文既不应该太长也不应该太短,评估指标应该强制执行这一点。在某种程度上,n-gram precision已经实现了这一目标。n-gram precision会惩罚候选词中没有出现在任何参考译文中的词。此外,如果一个单词在候选翻译中出现的频率超过其最大引用计数,则修改后的精度将受到惩罚。这将奖励你尽可能多地使用一个单词,而惩罚你使用一个单词的次数超过它在任何参考文献中的出现次数。然而,仅仅修改n-gram precision并不能保证正确的翻译长度:
因为这个候选者与正确长度相比太短了,所以期望找到夸张的精度:修改后的unigram precision是2/2,修改后的bigram precision是1/1。
The trouble with recall
传统上,精确度与召回率是相结合的,以克服这种与长度相关的问题。然而,BLEU考虑多个参考翻译,每个参考翻译可能使用不同的单词选择来翻译相同的源单词。此外,一个好的候选翻译只会使用(召回)这些可能的选择之一,而不是全部。事实上,recall所有的选择会导致糟糕的翻译。
第一个候选词从参考文献中记住了更多的单词,但显然比第二个候选词翻译得差。因此简单的在所有候选词中计算recall并不是一个好的方法。人们可以通过参考翻译来发现同义词,并计算概念而不是单词的召回。但是,考虑到参考翻译的长度、词序和语法不同,这样的计算是复杂的。
Sentence brevity penalty
超过参考文献长度的候选翻译已经被修改后的n-gram精度测量扣分,没有必要再次扣分。因此,我们引入了一个乘法的brevity penalty因子。有了这种简洁的惩罚,高分候选译文现在必须在长度、用词和语序上与参考译文相匹配。请注意,无论是简洁的惩罚还是修改后的n-gram精度长度效应都没有直接考虑源长度;相反,他们考虑目标语言中参考翻译长度的范围。
当候选译文的长度与任何参考译文的长度相同时,我们希望将简洁惩罚设置为1.0。例如,如果有三个长度分别为12、15和17个单词的引用,而候选翻译是12个简洁的单词,我们希望简洁惩罚为1。我们把最接近的参考句子长度称为“最佳匹配长度”。
还有一个需要考虑的问题是:如果我们逐句计算brevity penalty,并将惩罚取平均,那么短剧在长度上的偏差将会受到严厉的惩罚。相反,我们在整个语料库上计算brevity penalty,以允许在句子级别上有一些自由。我们首先通过对语料库中每个候选句子的最佳匹配长度求和来计算测试语料库的有效引用长度 r。我们选择brevity penalty作为r/c的衰减指数,其中c是候选翻译语料库的总长度。
BLEU details
我们取测试语料库修正精度分数的几何平均值,然后将结果乘以指数型的简洁惩罚因子。目前,case folding(大小写折叠、大小写统一处理)是在计算精度之前执行的唯一文本normalization。
BP表示brevity penalty,c表示候选翻译的长度,r表示有效参考语料库长度
表示modified n-gram precision 的几何平均,n-gram最大长度为N,正权(positive weight)和为1。排名在log域立即显而易见:
文中给出的baseline N=4,
The BLEU Evaluation
BLEU metric的取值范围是0 ~ 1。很少有翻译能得到1分,除非它们与参考翻译完全相同。因此,即使是人工翻译也不一定得1分。值得注意的是,每句话的参考译文越多,得分就越高。因此,即使是对不同数量的参考翻译进行“粗略”比较,也必须谨慎:在大约500个句子(40个一般新闻故事)的测试语料库中,人工翻译对4个参考文献的得分为0.3468,对2个参考文献的得分为0.2571。
这里提出了几个问题:
- BLEU度量的差异可靠吗?
- BLEU分数的方差是多少?
- 如果我们随机选择另一组500个句子,我们还会认为S3比S2好吗?
H1 (Human1)
S3 (Machine/System-3)
为了回答这些问题,将测试语料库分为20个块,每个块有25个句子,并分别计算这些块上的BLEU度量。因此,对于每个系统,我们有20个BLEU度量的样本。我们计算了表2中显示的均值、方差和配对t统计量。t统计量将每个系统与其表中的左侧邻居进行比较。例如,对s1和S2, t = 6。
请注意,表1中的数字是总共500个句子的BLEU度量值,但表2中的平均值是25个句子的BLEU度量值的平均值。正如预期的那样,这两组结果对于每个系统来说都很接近,只有有限块大小的影响不同。由于配对t统计量为1.7或更高,95%显著性,因此系统得分之间的差异在统计上非常显著。在25个句子块上报告的方差可以作为500个句子语料库等大型测试集方差的上界。
我们需要多少参考翻译?我们模拟了一个单参考测试语料库,随机选择4个参考翻译中的一个作为40个故事的单个参考。通过这种方式,我们确保了一定程度的风格变化。系统与多个引用保持相同的秩顺序。
这个结果表明,我们可以使用一个大的测试语料库和一个单一的参考翻译,只要这些翻译不是来自同一个译者。
A Structured Review of the Validity of BLEU
https://watermark.silverchair.com/coli_a_00322.pdf?token=AQECAHi208BE49Ooan9kkhW_Ercy7Dm3ZL_9Cf3qfKAc485ysgAAAzowggM2BgkqhkiG9w0BBwagggMnMIIDIwIBADCCAxwGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMYiZUUqRPKD9NzW5FAgEQgIIC7Vf4UwxAp8tfnB3fG63xM5UVRcX7QITz51ke6sZoA1Shp8JHdmogBQQUK_mTgUq0IlngKTAIz1ssvg_vHYYjh0DCWFX2m4QrpJQyCn58_t8eAlN3Z9eL60Ww3z9ZZ0Sufw5xhIeu-9qDu3mWh9MdpQOZB1eJSKqmkGich9mskjkd2k5szUOo33ljO9ii_PrH-4BWuAL_3VkCHawEBsqdxooqIRgauN3UYZXHl_MoYS8pYfEix8x2qqAeCvR4qKwYgS4tRrJWh6ZpyVGoIssGsEtSOk8r7e-djLJMcxO8yw9gbyqnAAyiHoqtww1BZ1GGSbqhMg-ofT5Bx4G5jpk486RV3xztN5kRTFmeHAbAcvPsfsGO5E8Nbrtl8TdK00L3R-g7Z4_fQo5R8ZeFp09_oqaEemsW6QQDRj8z41nvyO-ONxk6QicdqifFMt2hJzxMS3D8TOA0bkF5jR5m81vS3QDDWc0K556iKTBXuB4iaMjvvOOPvcylxTdHfif5G2nBuz12d31rQXWhXi0G1Va11l-pwcaUtDIQMWse5N16ZCn9ODlHOi8119lDPvUb84VXPbaZe3SsBQvn4OQ6hLvvSW4nkUKaj-18WrF7AtfisfDAANgwegBjXNBMXBIicXMfHTnTFvHUBKEo9A_DrfU62lIl3L9Z7GLibv7QFLwfJNTFideNs2TG-7T6Pw1o5Z8NSxUNxp5xSQYq6Z0Ey1PFqakP42l6w4cJY7qw-EjWkQKIMf4EjFwtulKNN9gP2s61aj8-y0VDNNbxsFMzzwe6PFsF2mrrAh9K0ai0-mZV709Hcx456eiDBeOknED4Cq9SVhMv6Xs_pkmCS2cOxmOLNb5yIHKbIuR_qadAgor5ixE9g6LVEN7JaHyHr3CKLfNQ4nCQVY85BL7ZOrw_WiqBCIK4YdoULTvKqPCJFAr7adzylAcvNUPK3fB6oQo0tYTgpU_eVt-yantMCNWfvg418CzdXQ_cKYPeW-AUrPpN
Abstract
BLEU方法被应用于评估nlp系统已经长达5年,尤其是机器翻译和自然语言生成。文章提供了一个关于BLEU是否是一个靠谱的评估方法的结构化的review。这篇review囊括了34篇论文中的284个相关研究。总的来说,证据支持使用BLEU对机器翻译系统进行诊断评估(这是最初提出的目的),但不支持在机器翻译之外使用BLEU,对个别文本进行评估,或进行科学假设。
Instruction
因为BLEU仅仅基于单词计算与参考文本的重叠,其作为评估指标的使用取决于它与这些系统的实际实用性相关的假设,这些系统的实用性可以从外部(例如,通过任务性能)或用户满意度进行测量。
因此,使用BLEU来评估NLP系统只有在验证研究的存在下才有意义,这些研究表明BLEU分数与NLP系统效用的直接评估相关。粗略地说,也就是使用如BLEU方法和人类评估,然后计算方法评估和人类评估的相关性。
(这里没讲人话,解释一下,就是证明BLEU认为好的,人也得认为好)
Results
许多论文提出BLEU与人类评价之间不止一种相关性。这里给出的结果是基于将每个相关性视为一个单独的数据点。我还以论文权重为基础计算了结果,如果一篇论文表现出不相关性,那么这些相关性的权重为1/n。纸张加权的结果与未加权的结果相似,所以我不在这里单独展示它们。
一个明显的发现是,对于NLG, BLEU-human的相关性很差(图4)。对于文本级相关性,它们很差,但对于系统级相关性是合理的(图5)。因此,在被调查的论文中,唯一一种BLEU-human的相关性主要是Medium或high,即系统级BLEU-human的MT相关性。
Conclusion:Is BLEU Valid?
BLEU最初是为机器翻译系统的诊断评估而提出的,然而,证据不支持使用BLEU来评估其他类型的NLP系统(MT之外),也不支持使用BLEU来评估单个文本而不是NLP系统。此外,BLEU不应该是NLP论文的主要评估技术。研究人员可以在发展他们的想法时使用它进行诊断评估。
Interpreting BLEU/NIST Scores: How Much Improvement Do We Need to Have a Better System?
http://www.lrec-conf.org/proceedings/lrec2004/pdf/755.pdf
Abstract
机器翻译(MT)的自动评估方法,比如BLEU和相关的NIST方法,在MT领域正变得越来越重要。本文分析了两种方法的缺陷,提出一种利用自举法计算BLEU/NIST分数置信区间的新方法。
Introduction
机器翻译(MT)系统的自动评估的基本思想来自于语音识别社区使用的高度成功的单词错误率度量,适当修改公式参考翻译,并允许单词选择和单词顺序的合理差异。自动评价的核心思想是对参考译文使用可变长度短语匹配的加权平均值。这种观点产生了一系列使用不同加权方案的度量标准。
BLEU的变体已被NIST采用。NIST度量源自bleu评估标准,但在一个基本方面有所不同:考虑的不是n-gram精度,而是每个n-gram的信息增益。这背后的想法是,如果一个系统得到一个困难的n-gram匹配,则给予更高的分数,但对于一个容易的n-gram匹配,则给予较低的分数。
Limitations of BLEU/NIST
BLEU和NIST的指标都是基于改进n-gram precision的思想。在尝试分析BLEU/ nists分数时,人们遇到的典型问题可能是“对于总体分数,unigram贡献有多大?”bigram贡献了多少?换句话说,机器翻译系统生成正确的单词可以获得多少分数,以及将它们按正确顺序排列可以获得多少额外分数。
(说人话,n-gram这里的n的影响是什么,使用相同的单词加多少分,单词排序相同加多少分)
表1展示的是1-gram ~ 5-gram使用NIST方法对MT系统进行评估。“# In Trans”表示的是在译文中n-gram的数量,“# of Match”表示在译文中出现同时在人类参考翻译中也能找到的n-gram的数量。“Info Gain”表示n-gram的信息增益之和,“Avg Info Gain” 表示对每一个匹配上的n-gram计算的平均信息增益(Info Gain / # of Match),“Prec. Score”表示n-gram的加权precision(Info Gain / # In Trans)。
对于这个MT系统,其precision分数为7.188,其长度penalty为1.0(没有penalty)。其1-gram precision为5.704,2-gram precision为1.222 ……
可以看到,大约80%的总和precision分数来源于1-gram。当然,长n-gram匹配的数量比短n-gram匹配的数量要少。但这只是影响的一部分。仔细观察就会发现,544个匹配的5-gram中的大多数对最终得分没有贡献,因为它们的信息增益为零。此外,即使存在正的信息增益,平均而言,较长的n-gram比较短的n-gram要小得多。
BLEU分数是n-gram精度的几何平均值。因此,很难分析分数并要求不同长度的n个grams的贡献。下面构造的示例演示了n-gram匹配对BLEU的影响。假设系统A的n-gram precision分别是1.00、0.21、0.11、0.06,系统B的分数分别为0.35、0.32、0.28、0.26.系统A的词语是正确的,但是顺序并不总是正确,系统B大约1/3的句子是正确的,其他的都有问题。此时系统A的总分是0.19,系统B的总分是0.29,这表示系统B的到的翻译更好。(这显然不合理)
在真实实验中也观察到BLEU评分的类似行为。分析表明,BLEU和NIST指标在以下问题上表现出相反的行为:正确的词汇选择给多少分,正确的词序给多少额外的分?NIST几乎不承认正确的词序,而BLEU对正确的3-gram和4-gram给予了太多的信任,而忽略了1-gram的贡献。
N-gram度量基本上是文档相似性度量,而不是真正的翻译质量度量。在正式评估机器翻译质量时,使用n-gram度量必须非常小心,尽管它们作为交互式开发周期的一部分仍然很有价值。
我们还面临这样的问题:分数有多可靠?置信区间是什么?如果一个系统的BLEU /NIST分数高于另一个系统,差异有多大?
Confidence Intervals for BLEU/NIST Scores
BLEU/NIST指标都需要一个测试套件来评估MT系统。测试套件由两部分组成:测试源语言的句子和目标语言的多个人工参考翻译。为了在源语言中有足够的覆盖率,测试套件通常有数百个句子。例如,在2002年6月1日的MT评估套件中,汉英系统有878个句子,阿拉伯-英语有728个句子。为了覆盖翻译变化,测试套件需要多个人工引用,通常是4个或更多。有了这两个因素,构建一个测试套件并不便宜。事实上,自从引入BLEU以来,MT社区只有几个带有多个人工参考的测试套件。BLEU/NIST的分数通常基于一个测试套件。因此,当我们为一个MT系统使用BLEU/NIST方法(评估)时,我们必须问自己一个问题:“这个分数精确吗?”
(说人话就是,这个评价指标很贵,我们如何确保这个分数可以有效评价模型)
How precise is the BLEU/NIST score
在统计检验中,我们经常使用置信区间来衡量估计值的精度。区间表示与数据一致的值的范围,该范围被认为以高概率(通常为95%)包含“真实”值。置信区间用与估计值相同的单位表示。间隔越宽,精度越低;更短的间隔,更高的精度。估计范围是从给定的一组样本数据中计算出来的。
由于构建测试套件是昂贵的,因此创建一组测试套件来生成一组样本bleu /NIST分数是不实际的。相反,我们使用众所周知的bootstrapping技术来测量BLEU/NIST的置信区间。
Bootstrapping是一种获得置信区间的统计方法。bootstrapping这个词指的是一个古老的故事,讲的是人们通过拉动自己的靴子把自己从地面上拉起来。当我们重新采样数据以获得置信区间时,也会发生类似的看似不可能的事情。这里的基本思想是使用通过重新采样创建的各种测试套件来测试系统。
假设我们有一个测试集来测试几个机器翻译系统从中文到英语的翻译。套件中有N个中文测试段,每个测试段都有R个人工翻译。片断通常是一个句子,但也可以是一个段落或一个文档。将的第i个段表示为,其中是第i个中文段,到表示段落的R个人类翻译(参考译文)。通过有放回抽样构建一个新的N段的测试集。因为采用有放回抽样,中的段落在中出现的次数可能是0次、1次或者更多次。重复这个过程M次,这样我们就的到一个M+1的测试集,这些都是从中重采样构建的人工测试集。
使用BLEU或NIST度量来评估这些M+1测试套件上的MT系统。对于每个MT系统,将获得M+1 BLEU/NIST分数。正如人们所预料的那样,这些分数呈正态分布。图1显示了一个MT系统在2000个重新采样的测试套件上的BLEU分数重新分配的示例。从这些M+1分数中,找出分数中间的95%(即第2.5百分位和第97.5百分位)。这是该MT系统bleu分数的95%置信区间。
对于图1所示的MT系统,我们发现BLEU平均分为0.184,95%置信区间为[0.176,0.192]。
通过M+1分数,我们可以计算均值,和标准差。定义relative standard deviation(RSD,相对标准偏差:用于衡量数据集合中各项数据的离散程度,是标准偏差与平均值之比。)。RSD与按缩放的置信区间的宽度相关。它表示估计分数的精度。
表2和表3是使用2000个测试集对878个测试句子进行评估的7个汉英MT系统。有趣的是,BLEU/NIST分数越高的系统精度也越高(RSD值越低)。
Is one MT system really better than another
自2002年以来,BLEU/NIST指标已被用作TIDES MT项目评估的官方评估指标。MT社区一直在使用BLEU/NIST来比较不同MT系统的性能,并报告MT系统的改进。有待回答的问题是,这两个系统之间的差异有多大?例如,MT系统A在某个测试套件上的得分(BLEU)为0.184,而另一个MT系统G在同一测试套件上的得分为0.182。0.184肯定比0.182大,但这种差异在统计上显著吗?在另一个示例中,MT系统D在某个测试套件上的得分为6.524 (NIST)。文中提出了一些新的对齐算法,并将其添加到系统D中,新系统D在同一测试套件上的得分为6.935。6.935的分数比6.524高6%,但是我们能说这种新的对齐算法显著提高了翻译质量吗?
与测量MT系统BLEU/NIST分数的置信区间类似,我们可以使用bootstrapping来测量两个MT系统之间差异的置信区间。
构建测试集,这些都是从中重采样构建的人工测试集。系统A在的分数为,系统B的分数为。两个系统之间的差异性为:。在M+1测试集上重复计算可以得到M+1个差异分数:。通过这些M+1个差异分数,可以得到分数中间的95%(即第2.5百分位和第97.5百分位)。这是MT系统A和B之间差异的95%置信区间。如果置信区间不与零重叠,我们可以声称系统A和B之间的差异具有统计显著性。
表4和表5是表2和表3中讨论的七个MT系统之间显著差异的例子。在这两个表中,“>”表示系统X明显“好”于系统Y,“<”表示系统X明显“差”于系统Y。如果X和Y之间的差异不显著,即置信区间与零重叠,我们用“~”表示两个系统没有显著差异。
从这些结果中我们可以看到,NIST度量比BLEU度量具有更强的判别能力。例如,BLEU无法区分系统A(BLEU=0.184, NIST=7.188)和系统C(BLEU=0.180, NIST=6.935),但当使用NIST度量进行评估时,它们却有显著差异。
Implementation Issues
为了使用自bootstrapping计算置信区间,我们需要在每个M+1测试集上转换和评估MT系统。M需要很大,比如1000甚至10000,以保证可靠的结果。对于某些MT系统,翻译1000个测试套件可能需要很长时间。但是对于大多数机器翻译系统来说,段的翻译是独立于测试套件中前面的段的。换句话说,段的翻译应该始终是相同的,无论它是哪个测试集的一部分。
在这个意义上,我们不需要转换M+1测试集。相反,我们只需要重新采样的翻译和相应的人类参考文献。我们开发了一种有效的自举方法。翻译后,收集中所有段的n-gram匹配信息并存储在一个数组中。
Conclusion
这两个指标都存在一些缺陷;人们需要理解这些问题才能正确解释BLEU/NIST报告的分数。文中还描述了一种使用bootstrapping计算BLEU/NIST统计显著性的方法。这些测试将给我们bleu /NIST分数的置信区间。他们还可以测量两个mt系统是否彼此显著不同。
An Evaluation of ChatGPT's Translation Accuracy Using BLEU Score
An Evaluation of ChatGPT's Translation Accuracy Using BLEU Score| Theory and Practice in Language Studies
这个测的是GPT-4翻译成波斯语的,结论是GPT-4牛,就不翻译了,感兴趣可以自己去看一下。