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

1. 引言

    在传统的文本生成任务中,对于模型生成的文本,往往很难评估他们的质量,对于以往的做饭,一般会通过人工评估的方式来评选最优的模型,但是其评估过程是非常昂贵和耗时的,而且每个人的评估标准会不一致,从而导致评分出现误差,当研究人员对模型进行更新或改进之后,该过程又得重复进行,因此,影响了很多研究人员的效率。为了改善这个问题,很多学者开始对这方面进行研究,希望得出一些有效的自动评估方法,来自动对文本生成模型进行评估,这过程衍生出了很多方法,笔者通过查看近些年来的一些相关文献,对这些方法大致分为了以下三大类:

  • 基于词重叠率的方法:该方法主要是计算生成文本与参考文本之间的词重叠率来作为模型质量的评估标准,比较经典的代表有BLEU、ROUGE、METEOR等
  • 基于词向量的方法:该方法则基于词向量的方法,通过不同的形式来计算生成文本和参考文本的相似度,从而比较模型的质量好坏,比如Greedy Matching等。
  • 基于其他深度学习的方法:该方法则主要通过监督学习的方法,通过模型来模拟人的评估过程,比如GAN、ADEM。

本文将对这三大类方法分别展开具体介绍,并介绍每种方法的适用场景和局限性。

2. 基于词重叠率的方法

    基于词重叠率的方法是指基于词汇的级别计算模型的生成文本和人工的参考文本之间的相似性,比较经典的代表有BLEU、METEOR和ROUGE,其中BLEU和METEOR常用于机器翻译任务,ROUGE常用于自动文本摘要。

2.1 BLEU

    在2002年,微软提出了一个比较综合的机器翻译评估指标——BLEU,该指标认为机器翻译效果如果比较好的话,那么翻译出来的文本应该与人工给定的参考翻译有比较多的重叠之处,因此,通过计算生成文本和参考文本中共同的n-gram,来计算两者的相似度。

2.1.1 修正的n-gram精确度

    在介绍BLEU指标的计算公式前,先介绍一个指标,即修正的n-gram精确度(Modified n-gram precision),我们知道,在考察模型生成的文本的质量时,我们习惯会将模型生成的文本与人工的参考文本进行对比,如果生成的文本与人工的参考文本有比较多的重复片段时,则认为两者越相似。因此,按照这种思想,我们会想到用n-gram精确度来计算两个文本之间的相似性,即生成的文本中出现在参考文本中的n-gram的次数总和在生成文本中所有n-gram次数总和的占比,这个占比越高,则说明相似性越高,但是,如果直接采用这样的计算方式,会出现一个问题,可以看下面一个机器翻译中极端的场景:

  • Candidate: the the the the the the the.
  • Reference 1: The cat is on the mat.
  • Reference 2: There is a cat on the mat.

给定一个模型生成的翻译文本和两个参考翻译文本,此时,模型生成的文本全是“the”,如果采用1-gram精确度计算的话,则此时计算出来的精确度为7/7,但是这时生成的文本质量其实是不好的,因此,BLEU提出了一种修正的方式,即修正的n-gram精确度:
P n = ∑ n − g r a m ∈ C  Count  c l i p ( n-gram ) ∑ n − g r a m ∈ C  Count  ( n-gram ) P_n = \frac{\sum_{n-gram\in C} {\text { Count }_{c l i p}(\text{n-gram})}}{\sum_{n-gram\in C} {\text { Count }(\text{n-gram})}} Pn=ngramC Count (n-gram)ngramC Count clip(n-gram)其中,  Count  c l i p ( n-gram ) = min ⁡ ( C o u n t , Max ⁡ − R e f − C o u n t ) \text { Count }_{c l i p}(\text{n-gram}) = \min \left(Count, \operatorname{Max}_{-}Ref_{-} Count\right)  Count clip(n-gram)=min(Count,MaxRefCount),即对于分子的计算,这时会对那些出现在参考文本中的n-gram,只取生成文本中出现的次数和参考文本中出现的最大次数两者之间的最小值,即对于上面的案例,采用修正的1-gram精确度计算的值应该是2/7,这样一来,那些重复出现的n-gram也会得到一个相对比较低的精确度。通过上面的公式,可以推广到2-gram、3-gram、4-gram等,作者在实验中一般会计算到4-gram,然后对四者得到的精确度进行加权平均,但是我们知道,随着 n n n的增大,计算得到的精确度肯定越来越小,如果直接对它们进行加权平均可能会导致后面的n-gram的贡献值会比较小,因此,作者对他们先取了对数,然后再进行平均,即:
exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) \exp \left(\sum_{n=1}^{N} w_{n} \log p_{n}\right) exp(n=1Nwnlogpn)其中 N N N表示最大的 n n n,一般取到4, w n w_{n} wn表示每项n-gram对应的权重,可以取 w n = 1 / N w_{n}=1 / N wn=1/N,即算术平均。

2.1.2 简短惩罚(Brevity Benalty,BP)

    不过,单独采用上面修正的n-gram精确度进行计算还是会有问题,我们可以看下面一个案例:

  • Candidate: of the
  • Reference 1: It is a guide to action that ensures that the military will forever heed Party commands.
  • Reference 2: It is the guiding principle which guarantees the military forces always being under the command of the Party.
  • Reference 3: It is the practical guide for the army always to heed the directions of the party.

此时,模型生成的文本非常短,只有两个词汇,并且在参考文本中都包括这两个词汇,因此,采用上面的计算公式得到的精确度还是1,但是这显然是不合理的,因此,对于这种太短的文本,需要对他们施加一些惩罚,作者提出了如下的惩罚机制:
B P = { 1  if  c > r e ( 1 − r / c )  if  c ≤ r \mathrm{BP}=\left\{\begin{array}{ll}{1} & {\text { if } c>r} \\ {e^{(1-r / c)}} & {\text { if } c \leq r}\end{array}\right. BP={ 1e(1r/c) if c>r if cr其中, c c c表示模型生成的文本的长度, r r r表示参考文本中,与生成文本长度最接近的那个参考文本的长度,比如有三个参考文本,长度分别为12,15,17,而生成文本的长度为10,则此时 r r r的取值就为12。这样一来,当生成文本长度大于参考文本时,则不对其进行惩罚,当生成文本长度小于或等于参考文本时,则对其施加惩罚 e ( 1 − r / c ) e^{(1-r / c)} e(1r/c)

2.1.3 BLEU计算公式

    通过前面两节的介绍,我们可以得出BLEU的计算公式如下:
B L E U = B P ⋅ exp ⁡ ( ∑ n = 1 N w n log ⁡ p n ) \mathrm{BLEU}=\mathrm{BP} \cdot \exp \left(\sum_{n=1}^{N} w_{n} \log p_{n}\right) BLEU=BPexp(n=1Nwnlogpn)其中
B P = { 1  if  c > r e ( 1 − r / c )  if  c ≤ r \mathrm{BP}=\left\{\begin{array}{ll}{1} & {\text { if } c>r} \\ {e^{(1-r / c)}} & {\text { if } c \leq r}\end{array}\right. BP={ 1e(1r/c) if c>r if cr可以发现,BLEU的取值范围为0~1,当其取值越高时,表示生成文本的质量越好。
    需要注意的是,BLEU由于只计算精确率,因此,要求生成的文本与真实文本之间有较多的重叠,比较适合于机器翻译任务中,但是对于其他任务,比如闲聊对话任务,由于回答有比较广的开放性,因此,很难要求生成文本与真实文本之间必须有重叠,此时采用BLEU就不见得是一种好的选择。

2.3 ROUGE

    由于BLEU只考虑了精确率而没有考虑召回率,因此,在2004年,Chin-Yew Lin提出了一种新的评估方法ROUGE,该方法主要是从召回率的角度计算生成文本与参考文本之间的相似性,比较适用于文本摘要任务,因为文本摘要我们更考察生成文本包括了多少参考文本中包含的信息。作者在论文中总共提出了4种不同的计算方式:ROUGE-N、ROUGE-L、ROUGE-W、ROUGE-S。

2.2.1 ROUGE-N

    ROUGE-N计算生成文本中,出现在参考文本中的n-gram次数总和在参考文本中各个n-gram次数总和的占比,其计算公式如下:
ROUGE-N = ∑ S ∈ { Referemce Summaries } ∑ gram ⁡ n ∈ S Count ⁡ match ( gram ⁡ n ) ∑ S ∈ { Referemce Summaries } ∑ gram ⁡ n ∈ S Count ⁡ ( gram ⁡ n ) \text{ROUGE-N} = \frac{\sum_{S \in\{\text {Referemce Summaries}\}} \sum_{\operatorname{gram}_{n} \in S} \operatorname{Count}_{\text {match}}\left(\operatorname{gram}_{n}\right)}{\sum_{S \in\{\text {Referemce Summaries}\}} \sum_{\operatorname{gram}_{n} \in S} \operatorname{Count}\left(\operatorname{gram}_{n}\right)} ROUGE-N=S{ Referemce Summaries}gramnSCount(gramn)S{ Referemce Summaries}gramnSCountmatch(gramn) 其中 S S S表示参考文本集中的某一条, g r a m n gram_n gramn表示n-gram, Count ⁡ match ( gram ⁡ n ) \operatorname{Count}_{\text {match}}\left(\operatorname{gram}_{n}\right) Countmatch(gramn)表示与参考文本匹配到的n-gram的次数。可以发现,ROUGE-N的分母此时是各个参考文本的n-gram的次数总和,因此,其代表的是召回率。

2.2.2 ROUGE-L

    ROUGE-L则通过计算生成文本与参考文本的最长公共子序列的长度LCS来计算文本的相似性,假设 X X X为参考文本,其长度为 m m m Y Y Y为生成文本,其长度为 n n n。则ROUGE-L的计算公式如下:
R l c s = L C S (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值