1. 引言

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

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

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

2. 基于词重叠率的方法

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

2.1 BLEU

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

  • 论文地址:《BLEU: a Method for Automatic Evaluation of Machine Translation》
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精确度:
Pn=∑n−gram∈CCount clip(n-gram)∑n−gram∈CCount (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=ngramCCount(n-gram)ngramCCountclip(n-gram)其中,Count clip(n-gram)=min⁡(Count,Max⁡−Ref−Count)\text { Count }_{c l i p}(\text{n-gram}) = \min \left(Count, \operatorname{Max}_{-}Ref_{-} Count\right)Countclip(n-gram)=min(Count,MaxRefCount),即对于分子的计算,这时会对那些出现在参考文本中的n-gram,只取生成文本中出现的次数和参考文本中出现的最大次数两者之间的最小值,即对于上面的案例,采用修正的1-gram精确度计算的值应该是2/7,这样一来,那些重复出现的n-gram也会得到一个相对比较低的精确度。通过上面的公式,可以推广到2-gram、3-gram、4-gram等,作者在实验中一般会计算到4-gram,然后对四者得到的精确度进行加权平均,但是我们知道,随着nnn的增大,计算得到的精确度肯定越来越小,如果直接对它们进行加权平均可能会导致后面的n-gram的贡献值会比较小,因此,作者对他们先取了对数,然后再进行平均,即:
exp⁡(∑n=1Nwnlog⁡pn)\exp \left(\sum_{n=1}^{N} w_{n} \log p_{n}\right) exp(n=1Nwnlogpn)其中NNN表示最大的nnn,一般取到4,wnw_{n}wn表示每项n-gram对应的权重,可以取wn=1/Nw_{n}=1 / Nwn=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,但是这显然是不合理的,因此,对于这种太短的文本,需要对他们施加一些惩罚,作者提出了如下的惩罚机制:
BP={1if c>re(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)ifc>rifcr其中,ccc表示模型生成的文本的长度,rrr表示参考文本中,与生成文本长度最接近的那个参考文本的长度,比如有三个参考文本,长度分别为12,15,17,而生成文本的长度为10,则此时rrr的取值就为12。这样一来,当生成文本长度大于参考文本时,则不对其进行惩罚,当生成文本长度小于或等于参考文本时,则对其施加惩罚e(1−r/c)e^{(1-r / c)}e(1r/c)

2.1.3 BLEU计算公式

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

2.3 ROUGE

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

  • 论文地址:《ROUGE: A Package for Automatic Evaluation of Summaries》
2.2.1 ROUGE-N

    ROUGE-N计算生成文本中,出现在参考文本中的n-gram次数总和在参考文本中各个n-gram次数总和的占比,其计算公式如下:
ROUGE-N=∑S∈{Referemce Summaries}∑gram⁡n∈SCount⁡match(gram⁡n)∑S∈{Referemce Summaries}∑gram⁡n∈SCount⁡(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) 其中SSS表示参考文本集中的某一条,gramngram_ngramn表示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来计算文本的相似性,假设XXX为参考文本,其长度为mmmYYY为生成文本,其长度为nnn。则ROUGE-L的计算公式如下:
Rlcs=LCS(X,Y)mPlcs=LCS(X,Y)nFlcs=(1+β2)RlcsPlcsRlcs+β2Plcs\begin{aligned} R_{l c s} &=\frac{L C S(X, Y)}{m} \\ P_{l c s} &=\frac{L C S(X, Y)}{n} \\ F_{l c s} &=\frac{\left(1+\beta^{2}\right) R_{l c s} P_{l c s}}{R_{l c s}+\beta^{2} P_{l c s}} \end{aligned} RlcsPlcsFlcs=mLCS(X,Y)=nLCS(X,Y)=Rlcs+β2Plcs(1+β2)RlcsPlcs
其中,LCS(X,Y)L C S(X, Y)LCS(X,Y)表示XXXYYY的最长公共子序列,β\betaβ为参数,β=Plcs/Rlcs\beta=P_{l c s} / R_{l c s}β=Plcs/Rlcs,当其取值为无穷大时,则此时相当于只考虑$R_{l c s} $。举个例子:

  • R1:police killed the gunman
  • C1:police kill the gunman
  • C2: the gunman kill police

此时有两条生成文本C1和C2,以及一条参考文本R1,令β=1\beta=1β=1,则此时C1的ROUGE-L为3/4,而C2的ROUGE-L为2/4,因此C1比C2好。

    当生成文本和参考文本都同时包含多个句子时,则此时的计算方式需要稍微调整一下,假设给定一个参考文本RRR,含有uuu个句子和mmm个单词,以及一个生成文本CCC,含有vvv个句子和nnn个单词,则此时ROUGE-L的计算公式改为如下:
Rlcs=∑i=1uLCS∪(ri,C)mPlcs=∑i=1uLCS∪(ri,C)nFlcs=(1+β2)RlcsPlcsRlcs+β2Plcs\begin{aligned} R_{l c s}&=\frac{\sum_{i=1}^{u} L C S_{\cup}\left(r_{i}, C\right)}{m}\\ P_{lcs}&=\frac{\sum_{i=1}^{u} L C S_{\cup}\left(r_{i}, C\right)}{n} \\ F_{l c s} &=\frac{\left(1+\beta^{2}\right) R_{l c s} P_{l c s}}{R_{l c s}+\beta^{2} P_{l c s}} \end{aligned} RlcsPlcsFlcs=mi=1uLCS(ri,C)=ni=1uLCS(ri,C)=Rlcs+β2Plcs(1+β2)RlcsPlcs其中,LCS∪(ri,C)L C S_{\cup}\left(r_{i}, C\right)LCS(ri,C)表示参考文本中第iii个句子与生成文本中每个句子的最长共同子序列LCS的并集占比,举个例子,假设ri=w1w2w3w4w5r_{i}=w_{1} w_{2} w_{3} w_{4} w_{5}ri=w1w2w3w4w5,并且生成文本C含有两个句子,分别为c1=w1w2w6w7w8c_{1}=w_{1} w_{2} w_{6} w_{7} w_{8}c1=w1w2w6w7w8c2=w1w3w8w9w5c_{2}=w_{1} w_{3} w_{8} w_{9} w_{5}c2=w1w3w8w9w5,则此时rir_iric1c_{1}c1的LCS为“w1w2w_{1} w_{2}w1w2”,rir_iric2c_{2}c2的LCS为“w1w3w5w_{1} w_{3} w_{5}w1w3w5”,LCS的并集为“w1w2w3w5w_{1} w_{2} w_{3} w_{5}w1w2w3w5”,因此,LCS∪(ri,C)=4/5L C S_{\cup}\left(r_{i}, C\right)=4 / 5LCS(ri,C)=4/5

2.2.3 ROUGE-W

    由于ROUGE-L在计算最长公共子序列时,对于子序列的连续性没有限制,即两个词汇之间可以有任意长度的代沟,但是这是不合理的,我们可以看下面一个案例:

  • R1: [A B C D E F G]
  • C1: [A B C D H I K]
  • C2: [A H B K C I D]

可以发现,上面的两个生成文本与参考文本都具有同样的最大公共子序列,此时ROUGE-L的值一样大,但是第一个生成文本的匹配是连续的,而第二个生成文本的匹配是不连续的,因此,应该是第一个生成文本的质量相对好一点才对,所以ROUGE-W在ROUGE-L的基础上对连续性添加一个权重,其计算公式如下:
Rwlcs=f−1(WLCS(X,Y)f(m))Pwlcs=f−1(WLCS(X,Y)f(n))Fwlcs=(1+β2)RwlcsPwlcsRwlcs+β2Pwlcs\begin{aligned} R_{w l c s} &=f^{-1}\left(\frac{W L C S(X, Y)}{f(m)}\right) \\ P_{w l c s} &=f^{-1}\left(\frac{W L C S(X, Y)}{f(n)}\right) \\ F_{w l c s} &=\frac{\left(1+\beta^{2}\right) R_{w l c s} P_{w l c s}}{R_{w l c s}+\beta^{2} P_{w l c s}} \end{aligned} RwlcsPwlcsFwlcs=f1(f(m)WLCS(X,Y))=f1(f(n)WLCS(X,Y))=Rwlcs+β2Pwlcs(1+β2)RwlcsPwlcs其中,加权函数fff应该具备如下性质:
f(x+y)>f(x)+f(y)f(x+y)>f(x)+f(y) f(x+y)>f(x)+f(y)这样才能使得连续性的序列其权重更大,因此,加权函数可以取为f(k)=kαf(k)=k^{\alpha}f(k)=kα,其中α>1\alpha>1α>1,一般会令α=2\alpha=2α=2,而f−1f^{-1}f1则为fff的逆函数,WLCS(X,Y)W L C S(X, Y)WLCS(X,Y)的计算过程如下:

因此,采用ROUGE-W计算时,C1和C2的分数分别为4/7和2/7,此时C1比C2好。

2.2.4 ROUGE-S

    ROUGE-S的计算更加简单,ROUGE-S先对生成文本和参考文本中的2-gram进行组合,此时的2-gram不一定是连续的,可以是有间隔的,称为Skip-Bigram,然后计算生成文本中出现在参考文本的Skip-Bigram在参考文本所有Skip-Bigram的比重,其计算公式如下:
Rskip2=SKIP2(X,Y)C(m,2)Pskip2=SKIP2(X,Y)C(n,2)Fskip2=(1+β2)Rskip2Pskip2Rskip2+β2Pskip2\begin{aligned} R_{s k i p 2} &=\frac{S K I P 2(X, Y)}{C(m, 2)} \\ P_{s k i p 2} &=\frac{S K I P 2(X, Y)}{C(n, 2)} \\ F_{s k i p 2} &=\frac{\left(1+\beta^{2}\right) R_{s k i p 2} P_{s k i p 2}}{R_{s k i p 2}+\beta^{2} P_{s k i p 2}} \end{aligned} Rskip2Pskip2Fskip2=C(m,2)SKIP2(X,Y)=C(n,2)SKIP2(X,Y)=Rskip2+β2Pskip2(1+β2)Rskip2Pskip2还是看一个例子:

  • R1:police killed the gunman
  • C1:police kill the gunman
  • C2:the gunman kill police
  • C3:the gunman police killed

此时参考文本R1的Skip-Bigram有(“police killed”, “police the”, “police gunman”, “killed the”, “killed gunman”, “the gunman”),C1与R1的共同Skip-Bigram有(“police the”, “police gunman”, “the gunman”),C2与R1的共同Skip-Bigram有(“the gunman”),C3与R1的共同Skip-Bigram有(“police killed”, “the gunman”),因此,当β=1\beta=1β=1时,三个生成文本的ROUGE-S分别为0.5、0.167和0.333。由于ROUGE-S考虑了更多的2-gram组合,因此,在实验中往往取得比较不错的效果。

2.3 METROR

    2005年,Alon Lavie等人也提出了一个新的指标METEOR用于机器翻译,我们知道,BLEU只考虑精确率,METEOR则同时考虑精确率和召回率,采用加权的F值来作为评估指标。

  • 论文地址:《Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments》
2.3.2 METEOR指标计算

    METEOR在计算前,先对模型生成的文本与参考文本进行文本对齐,对齐的步骤依次采用以下三个模块:

  1. exact模块:该模块将生成文本与参考文本中完全相同的词汇提取出来
  2. porter stem模块:该模块采用Porter stemmer对词汇的词形进行变换,将变换后具体相同词形的词汇提取出来
  3. WN synonymy模块:该模块基于同义词列表,将生成文本和参考文本中属于同义词的词汇提取出来

经过上面三个步骤后,将得到一个对齐后的文本,假设文本的词汇数量为mmm,生成文本的词汇数量为ttt,参考文本的词汇数量为rrr,则可以计算精确率P=m/tP=m / tP=m/t和召回率R=m/rR=m / rR=m/r,计算完精确率和召回率后,可以计算加权的F值:
Fmean=P⋅Rα⋅P+(1−α)⋅RF_{\text {mean}}=\frac{P \cdot R}{\alpha \cdot P+(1-\alpha) \cdot R} Fmean=αP+(1α)RPR其中α\alphaα为超参,由于上面F值的计算是基于unigram的,因此,没法反映生成的文本的流畅性,因此,为了引入流畅性的考核,作者将对齐后的文本分为了chchch小的分块,这样一来,每个分块就类似于n-gram的形式,然后计算一个惩罚参数:
Pen=γ⋅fragβP e n=\gamma \cdot f r a g^{\beta} Pen=γfragβ其中,frag=ch/mf r a g=c h / mfrag=ch/mβ\betaβγ(0≤γ≤1)\gamma(0 \leq \gamma \leq 1)γ(0γ1)都为超参。最后,METEOR指标的计算公式如下:
score=(1−Pen)⋅Fmean\text{score}=(1-P e n) \cdot F_{\text {mean}} score=(1Pen)Fmean
    虽然METEOR的计算不难,但是引入了三个参数α\alphaαβ\betaβγ\gammaγ,对这三个参数的取值得通过训练模型,使得最终得到的METEOR分数与人工标注的分数相关性最大,因此,增加了模型训练的成本,另一方面,需要人工标注一批数据作为训练集和测试集,而且WN synonymy模块的同义词词库也很难获取到,所以笔者对这种方法并不觉得有多方便。

3. 基于词向量的方法

3.1 Greedy Matching

    在2012年,Vasile Rus等人提出了基于词向量的方法——Greedy Matching,该方法的基本思想是先计算参考文本中每个词语与生成文本中每个词语的最高词向量相似度,然后进行加总平均,接着反过来计算生成文本中每个词语与参考文本中每个词语的最高词向量相似度,同样对每个词语进行加总平均,最后将两个值进行平均作为参考文本和生成文本的相似度。

  • 论文地址:A Comparison of Greedy and Optimal Assessment of Natural Language Student Input Using Word-to-Word Similarity Metrics
3.1.1 Greedy Matching计算公式

    记RRRR^\hat{R}R^分别为参考文本集和生成文本集,集合的长度都为NNN,每个生成文本只有一个参考文本与之对应,rir_irir^i\hat{r}_ir^i分别为RRRR^\hat{R}R^中的第iii个句子,对于参考文本rrr中的每个词汇www,Greedy Matching依次计算其词向量与生成文本中每个词汇的词向量的余弦相似度,然后从中选择最大的相似度作为该词的相似度,最终将rrr中每个词汇的相似度计算平均,即:
G(r,r^)=∑w∈r;max⁡w^∈r^cos⁡(ew,ew^)∣r∣G(r, \hat{r})=\frac{\sum_{w \in r ;} \max _{\hat{w} \in \hat{r}} \cos \left(e_{w}, e_{\hat{w}}\right)}{|r|} G(r,r^)=rwr;maxw^r^cos(ew,ew^)然后对生成文本中的每个词汇也采用上述计算方式计算G(r^,r)G(\hat{r}, r)G(r^,r),最终将两者进行平均得到两个文本的平均相似度:
GM(r,r^)=G(r,r^)+G(r^,r)2G M(r, \hat{r})=\frac{G(r, \hat{r})+G(\hat{r}, r)}{2} GM(r,r^)=2G(r,r^)+G(r^,r)

3.2 Embedding Average

    2015年,John Wieting等人则通过对比Embedding Average、iRNN、projection、DAN、RNN、LSTM六种句子向量化方法,来计算文本的相似度,并最终发现直接对句子中词汇的词向量进行平均效果最好。

  • 论文地址:《TOWARDS UNIVERSAL PARAPHRASTIC SENTENCE EMBEDDINGS》
3.2.1 Embedding Average计算公式

    Embedding Average方法则更简单,它直接计算生成文本和参考文本中词向量的平均值作为文本的向量表示,然后计算两个文本的余弦相似度作为生成文本和参考文本的相似度:
e‾r=∑w∈rew∣∑w′∈rew′∣EA:=cos⁡(e‾r,e‾r^)\begin{array}{l}{\overline{e}_{r}=\frac{\sum_{w \in r} e_{w}}{\left|\sum_{w^{\prime} \in r} e_{w^{\prime}}\right|}} \\ \\{\mathrm{EA} :=\cos \left(\overline{e}_{r}, \overline{e}_{\hat{r}}\right)}\end{array} er=wrewwrewEA:=cos(er,er^)

3.3 Vector Extrema

    2014年,Gabriel Forgues等人则提出了另一种文本向量的计算方法,即Vector Extrema,该方法对文本中的词向量在每一维取极值,作为最终句子的向量表示,因为作者在试验中发现,文本中很多关键词一般会分布在极值附近,因此,对词向量的每一维取极值就相当于提取了文本中的关键信息,作者发现这样的计算方式比直接平均或加权平均效果要好。

  • 论文地址:Bootstrapping Dialog Systems with Word Embeddings
3.3.1 Vector Extrema计算公式

    Vector Extrema方法与Embedding Average方法类似,只是计算句子的向量表示不是直接使用词向量的平均值,而是使用词向量每一维的极值:
erd={max⁡w∈rewdif ewd>∣min⁡w′∈rew′d∣min⁡w∈rewdotherwise e_{r d}=\left\{\begin{array}{ll}{\max _{w \in r} e_{w d}} & {\text { if } e_{w d}>\left|\min _{w^{\prime} \in r} e_{w^{\prime} d}\right|} \\ {\min _{w \in r} e_{w d}} & {\text { otherwise }}\end{array}\right. erd={maxwrewdminwrewdifewd>minwrewdotherwise虽然采用极值的话可以忽略一些停用词,在一些文本分类任务上取得不错的效果,但是像在对话任务中,有时一些停用词,像疑问词是可以表示文本的询问信息的,这时,如果采用极大值的方法可能效果就不一定见得好。

4. 基于其他深度学习的方法

4.1 基于GAN网络的方法

    在2017年,Anjuli Kannan等人在GAN网络思想的激发下,尝试了用GAN网络的思想来对对话系统的质量进行评估,他们的思想是把文本生成模型当做GAN网络中的生成器,然后采用一个RNN作为判别器,来判断一对问答对是机器生成的还是人工生成的。

  • 论文地址:《Adversarial Evaluation of Dialogue Models》
4.1.1 基于GAN网络的计算方法

    在具体的训练过程中,该方法其实并没有像GAN网络那样交替训练生成器和判别器,而是先训练好生成器,然后再训练判别器。假设对于一个给定的问答语料库(o,r)(\mathbf{o}, \mathbf{r})(o,r),其中,o\mathbf{o}o表示输入文本,其词汇序列为{o1,…,on}\left\{o_{1}, \dots, o_{n}\right\}{o1,,on}rrr表示输出文本,其词汇序列为{r1,…,rm}\left\{r_{1}, \dots, r_{m}\right\}{r1,,rm},模型先利用条件概率最大化训练生成器,即:
∑(o,r)log⁡P(r1,…,rm∣o1,…,on)\sum_{(\mathbf{o}, \mathbf{r})} \log P\left(r_{1}, \ldots, r_{m} | o_{1}, \ldots, o_{n}\right) (o,r)logP(r1,,rmo1,,on)然后,选取一个测试集(o,r)(\mathbf{o}, \mathbf{r})(o,r),将其中一半样本作为正例(o,r,1)(\mathbf{o}, \mathbf{r}, 1)(o,r,1),另一半样本中的输出文本改为用生成器生成的文本,并作为负例(o,r′,0)\left(\mathbf{o}, \mathbf{r}^{\prime},0\right)(o,r,0),然后采用一个RNN模型作为判别器,用这部分测试集进行训练,使得模型的交叉熵达到最小:
∑(o,r,y)log⁡P(y∣o1,…,on,r1,…,rm)\sum_{(\mathbf{o}, \mathbf{r}, y)} \log P\left(y | o_{1}, \ldots, o_{n}, r_{1}, \ldots, r_{m}\right) (o,r,y)logP(yo1,,on,r1,,rm)

    作者在实验中其实并没有应用该方法作为模型的评估方法,但是作者通过实验发现,通过该方法训练得到的判别器最后的准确率大概只有62.5%,并且该判别器对于那些比较长的生成文本和回复缺乏多样性的文本的预测准确率比较高,也就是说判别器其实学到了人工的评判标准,因为我们知道,现在的文本生成模型对于长文本的解码能力往往会出现逻辑不通顺或者重复,并且产生的回复比较倾向于平淡无奇的回复,而这两种场景下人工往往会将其判为不好的文本。因此,采用这样的方法也许真的可以模仿人进行评估。但是这里其实也有两个问题,首先,该模型因为准确率不高,一种原因可能是生成器的生成的文本质量太好了,也可能是判别器的预测能力比较差,如果是后者这种情况下,用这个模型进行评估可能会出现不准确的现象;其次,判别器的训练与生成器的训练是分离开的,因此,如何将判别器用于评估多个生成模型也是一个问题。

4.2 ADEM方法

    2017年,Ryan Lowe等人提出了一个新的方法——ADEM,该方法思想其实与上面基于GAN方法的思想比较接近,作者通过选取TFIDF、Dual Encoder、HRED、人工回复四个系统生成一批训练数据集,然后将输入文本、生成文本、参考文本三者构成配对数据,并采用人工标注的形式对这四个系统的数据进行打分,分数越高表示生成文本质量越好,然后基于标注的数据,训练一个ADEM模型用于模拟人的打分。作者发现采取这样的方式得到模型打分与人工打分的相关性要比基于词重叠的方法的相关性要好得多。

  • 论文地址:Towards an Automatic Turing Test: Learning to Evaluate Dialogue Responses
4.2.1 ADEM模型的结构

    ADEM的模型结构如下图所示,对于给定的输入文本ccc、参考文本rrr和模型生成文本r^\hat{r}r^,ADEM模型首先采用一个层叠的RNN encoder将三者转化为三个向量c,r,r^\mathbf{c}, \mathbf{r},\hat{\mathbf{r}}c,r,r^,作者直接采用预训练好的VHRED模型的encoder,并且保持其参数固定不变。然后采用点积的形式计算三者的评分:
score⁡(c,r,r^)=(cTMr^+rTNr^−α)/β\operatorname{score}(c, r, \hat{r})=\left(\mathbf{c}^{T} M \hat{\mathbf{r}}+\mathbf{r}^{T} N \hat{\mathbf{r}}-\alpha\right) / \beta score(c,r,r^)=(cTMr^+rTNr^α)/β其中,M,N∈RnM, N \in \mathbb{R}^{n}M,NRn为参数矩阵,是需要学习的参数,α,β\alpha, \betaα,β是两个常数,用于初始化模型的预测分数在[1,5][1,5][1,5]之间,然后,模型通过最小化预测的分数与人工的打分之间的平方误差来优化模型:
L=∑i=1:K[score⁡(ci,ri,r^i)−humani]2+γ∥θ∥2\mathcal{L}=\sum_{i=1 : K}\left[\operatorname{score}\left(c_{i}, r_{i}, \hat{r}_{i}\right)-\text {human}_{i}\right]^{2}+\gamma\|\theta\|_{2} L=i=1:K[score(ci,ri,r^i)humani]2+γθ2其中,γ\gammaγ为正则化参数,θ={M,N}\theta=\{M, N\}θ={M,N}为模型的参数。通过最小化模型的打分与人工的打分之间的差距,来学习人为的打分规则。

    ADEM模型的思想其实跟GAN方法很接近,只是他采用的是人工标注的方式,并且采用多模型生成的数据作为训练数据,因此,训练后的模型相对更加稳健。但是,由于模型采用的是平方误差作为损失函数,因此,ADEM的打分会偏向于比较保守。

参考文献

  • BLEU: a Method for Automatic Evaluation of Machine Translation.
  • ROUGE: A Package for Automatic Evaluation of Summaries.
  • Meteor: An Automatic Metric for MT Evaluation with High Levels of Correlation with Human Judgments.
  • A Comparison of Greedy and Optimal Assessment of Natural Language Student Input Using Word-to-Word Similarity Metrics.
  • TOWARDS UNIVERSAL PARAPHRASTIC SENTENCE EMBEDDINGS.
  • Bootstrapping Dialog Systems with Word Embeddings.
  • Adversarial Evaluation of Dialogue Models.
  • Towards an Automatic Turing Test: Learning to Evaluate Dialogue Responses.
  • How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation.

文本生成任务常见评估指标相关推荐

  1. Text to image论文精读PDF-GAN:文本生成图像新度量指标SSD Semantic Similarity Distance

    SSD,全称为Semantic Similarity Distance,是一种基于CLIP的新度量方式,是西交利物浦大学学者提出的一种新的文本生成图像度量指标,受益于所提出的度量,作者进一步设计了并行 ...

  2. 图像语义分割 常见评估指标

    深度学习可应用在计算机视觉领域的多个方面,包括图像分类.目标检测.图像语义分割.实例分割视觉任务. 图像分类 (1)单目标的图像分类 (2)多目标的图像分类 目标检测 分类和检测的区别如下: 分类:是 ...

  3. NLP文本生成的评价指标有什么?

    文章目录 NLP文本生成的评价指标有什么? 1. BLEU 2. ROUGE 2.1 ROUGE-N (将BLEU的精确率优化为召回率) 2.2 ROUGE-L (将BLEU的n-gram优化为公共子 ...

  4. 文本生成客观评价指标总结(附Pytorch代码实现)

    前言:最近在做文本生成的工作,调研发现针对不同的文本生成场景(机器翻译.对话生成.图像描述.data-to-text 等),客观评价指标也不尽相同.虽然网络上已经有很多关于文本生成评价指标的文章,本博 ...

  5. IS指标复现 文本生成图像IS分数定量实验全流程复现 Inception Score定量评价实验踩坑避坑流程

    目录 一.IS分数简介 二.IS分数 CUB定量实验步骤 第一步:B_VALIDATION改为True 第二步:配置训练好的生成器 第三步:采样生成图像 第四步:下载IS代码并配置 第五步:下载预训练 ...

  6. 妙笔生花:一个易用、高效的文本生成开源库

    文本生成作为近年来自然语言处理中的热门领域,受到了学界和工业界的广泛关注.随着研究的不断深入,文本生成领域下的子任务和相应的模型越来越丰富,一些优秀的开源框架也纷纷涌现. 现有的开源文本生成库大致可分 ...

  7. 深度学习(四十四)——GAN的评估指标, DCGAN, WGAN-GP, CGAN, BEGAN EBGAN

    GAN的评估指标 尽管可用的GAN模型非常多,但对它们的评估仍然主要是定性评估,通常需要借助人工检验生成图像的视觉保真度来进行.此类评估非常耗时,且主观性较强.具备一定误导性.鉴于定性评估的内在缺陷, ...

  8. 深度学习NLP领域文本生成总结

    最近也不知道干啥了,索性把这个坑填完,也算是对自己研一的一些总结吧. 文章目录 前言 一.神经网络与深度学习 二.神经网络的过拟合与正则化 三.深度学习的优化算法 四.卷积神经网络 五.循环神经网络 ...

  9. 人大团队研究:面向文本生成,预训练模型进展梳理

    作者 | 刘媛媛 来源 | 数据实战派 文本生成是 NLP 中最重要且颇具挑战性的任务之一.近年来,预训练语言模型 (Pretrained Language Models ,下文简称 "PL ...

最新文章

  1. 5.计算机发展个人理解-电路终究是电路 软件如何控制硬件 代码如何操作硬件 硬件是怎么执行代码 代码如何执行 软件与硬件如何交互 计算机思维 抽象 封装 规范 屏蔽 协议分层...
  2. Paper:《First Order Motion Model for Image Animation》翻译与解读
  3. python 将字符串作为变量名
  4. 如何设置mysql表中文乱码_php mysql表中文乱码问题如何解决
  5. VMWare学习总结(3)——Vmware Workstation 14虚拟机网卡桥接连不上网络解决方法
  6. 和慧眼显示服务器网关错误,R680G7联想万全慧眼IV高级版用户指南2.pdf
  7. chrome浏览器调试css
  8. 中国近代史纲要复盘 | 第一章——第四章思维导图梳理(复习专用)
  9. STM32配合火焰传感器的火灾报警
  10. HTML5期末大作业:基于HTML+CSS+JavaScript实现中国风文化传媒企业官网源码
  11. 如何自己搭建一个小程序(步骤详解)
  12. Springboot+vue开发的图书借阅管理系统项目源码下载-P0029
  13. 服务器硬盘掉线解决过程分析
  14. 懂得三境界-使用dubbo时请求超过问题
  15. 为什么写着写着就变成了多方面发展的技术研究者?
  16. [教学管理] 学生作业及日志查收的纯MySQL解决方案
  17. pdf转换成jpg格式的两种方法
  18. 阶的估计I 无穷小量与强函数1 基本概念 无穷小量与强函数的运算法则
  19. 第 4 章 容器 - 023 - 两种进入容器的方法
  20. SqlServer和MySql允许脏读的实现方式,提高查询效率

热门文章

  1. 【支付宝沙箱支付】麻瓜教程——申请----代码----修改测试----问题解决
  2. “神似充气娃娃”的人形机器人,made in China
  3. WWW 2022最佳论文:可扩展的图神经结构搜索系统
  4. 年轻计算机科学家,15岁最年轻科学家具体什么情况? 谈方琳个人资料介绍有何成就...
  5. 基于java(springboot)校园新闻管理系统源码(java毕业设计)
  6. 电脑软件:推荐八款图片处理工具,值得收藏
  7. windows 7 优化快速设置参考(实测好用)
  8. 十八数藏柏松:数字藏品拥有广阔的发展空间,能为社会输出更好的价值
  9. 阿哈c语言教程pdf,C++教程-完整版.pdf
  10. 2017福建省计算机一级应用技术,2017年一级计算机信息技术及应用考试试题级答案...