1、BLEU

        Bleu 全称为 bilingual evaluation understudy ,意为双语评估替换,是衡量一个有多个正确输出结果的模型的精确度的评估指标。得分分为一元组、二元组、三元组等等,直到n元组(n-gram)。

        其中一元组关注的是正确性(单词的对应率),二元组关注的词组,也就是语言的流畅程度。

        一元组得分举例为:

        candidate: A dog is on the floor.   (6词)

        reference: There is a dog on the floor. (7词)

        此时一元组的得分是:6/7=0.8571....

        代表的是在reference的句子中有多少词命中了candidate原句

        三元组得分举例为:

        其中三元组只有 :on the floor = on the floor

        所以得分是:1/4 = 0.25

        将所有得分加权取平均后,还要进行简短惩罚计算(如果reference句子太短,则命中率很高),具体为

评估大型语言模型的中文问答能力 语言评估分析_机器翻译

        r为参考翻译的句子长度,c为MT的输出句子长度,若c<=r ,则 0<exp(1-r/c)<=1,得分bleu(avg)就会乘以小于1的系数 ,从而被“惩罚”:

        Bleu(total)=BP*bleu(avg)

2、ROUGE

        BLEU 是统计机器翻译时代的产物,因为机翻出来的结果往往是不通顺的,所以BLEU更关注翻译结果的准确性和流畅度(通过n-gram);到了神经网络翻译时代,神经网络很擅长脑补,自己就把语句梳理得很流畅了,这个时候人们更关心的是召回率,也就是参考译文中有多少词组在候选译文中出现了。

        ROUGE受到了机器翻译自动评价方法BLEU的启发,不同之处在于,采用召回率来作为指标。基本思想是将模型生成的摘要与参考摘要的n元组贡献统计量作为评判依据。

        Recall(召回率)意味着“有多少参考摘要被系统摘要所捕获/覆盖”,计算公式为

        

评估大型语言模型的中文问答能力 语言评估分析_nlp_02

        Precision(精准度)意味着“系统摘要中到底有多是必要的”,计算公式为

        

评估大型语言模型的中文问答能力 语言评估分析_深度学习_03

         所以ROUGE和BLEU区别不大,只是后者使用精准度作为分数,前者是用召回率作为分数。

3、CIDEr

        CIDEr 是 BLEU 和向量空间模型的结合。它把每个句子看成文档,然后计算 TF-IDF 向量的余弦夹角,据此得到候选句子和参考句子的相似度,同样是不同长度的 n-gram 相似度取平均得到最终结果。优点是不同的 n-gram 随着 TF-IDF 的不同而有不同的权重,因为整个语料里更常见的 n-gram 包含了更小的信息量。

        图像字幕生成评价的要点是看模型有没有抓取到关键信息,比如说一幅图的内容是『白天一个人在游泳池游泳』,其中最关键的信息应该是『游泳』,生成字幕时如果包含或者漏掉了一些别的信息(比如说『白天』)其实是无关紧要的,所以需要这么一种对非关键词降权的操作。

其中:1.TF:特定的word在文档中出现的次数,除以文档长度
           2.IDF:log(语料库中总共的文档数,除以包含有特定的word的文档数)

评估大型语言模型的中文问答能力 语言评估分析_nlp_04

4、METEOR

        METEOR 显得更加人性化,它关注到那些含义准确、但是和候选译文并不是精确对齐的参考译文,比如参考译文用了候选译文的同义词。METEOR 需要 WordNet 扩充同义词集,同时需要考虑单词词性(比如like、likes应该都算对);在计算方式上它融合了准确率、召回率,利用二者的调和平均值来作为评判标准。

        在计算分数上,其即考虑了准确率,也考虑了召回率

评估大型语言模型的中文问答能力 语言评估分析_元组_05

评估大型语言模型的中文问答能力 语言评估分析_深度学习_06

 最终的score是

评估大型语言模型的中文问答能力 语言评估分析_深度学习_07

        网络上有已经搭建好的java库,但由于是java库,和当前主流的深度学习环境相违背,因此可以受众较少。