对话系统评价指标

此文为自己的一个所读到的一个汇总,大量参考了附录中的内容,先向前辈们致敬。

目录

对话系统评价指标... 1

词重叠评价指标... 1

BLUE. 2

ROUGE. 2

METEOR. 3

词向量评价指标:... 4

Greedy Matching. 4

Embedding Average. 4

Vector Extrema. 4

perplexity困惑度... 5

人工评价指标:... 6

开放域对话系统评价指标... 6

感谢与参考... 6

对话系统的评价指标可以分为客观评价指标和主观评价指标。其中

客观评价指标又可以分为:

     词重叠评价指标:(包括BLEU、ROUGE、METEOR)

     词向量评价指标:(包括Greedy matching、Embedding Average、Vector Extrema、perplexity困惑度)

后面进行更详细的解释。

词重叠评价指标

认为有效地回答应该和真实回答之间存在大量的词重叠(但是对话系统的答案空间往往是发散的,也就是一个问题的答案可能是完全不同的两句话,这种情况下该评价指标效果不好),也就是说这是一个非常强的假设。

词重叠评价指标:(包括BLEU、ROUGE、METEOR)中,在对话系统中使用的频率貌似是BLEU比较高一点,剩下两个都很少见到。

BLUE

BLUE概述:实质是对两个句子的共现词频率计算,即通过统计生成响应和真实响应中n-gram词组在整个训练语料中出现的次数。越多,即认为越好。

BLEU的全名为:bilingual evaluation understudy,即:双语互译质量评估辅助工具。最开始是用于评价机器翻译。读作:[blε](波勒)

 

计算公式:

对话系统评价指标

 

其中,       对话系统评价指标

此BLEU值是针对一条翻译(一个样本)来说的。

 

详细解释与计算例子:可以参考:

机器翻译评价指标之BLEU详细计算过程:https://blog.csdn.net/guolindonggld/article/details/56966200

机器翻译自动评估-BLEU算法详解https://blog.csdn.net/qq_31584157/article/details/77709454

 

 

ROUGE

ROUGE:Recall-Oriented Understudy for Gisting Evaluation。一种基于召回率的相似性度量方法。

 

该指标常用于文本摘要领域,包含 ROUGE-N, ROUGE-L(最长公共子句, Fmeasure), ROUGE-W(带权重的最长公共子句, Fmeasure), ROUGE-S(不连续二元组, Fmeasure) 四种。以ROUGE-L为例,ROUGE-L,是计算最长公共子序列的长度,寻找真实响应和生成响应之间的最长公共子序列长度,然后计算其F-measure分数。

其与BLEU相似,因为都可以反应词语顺序,但是ROUGE的词可以不是连续的,而BLEU的n-gram要求词语必须连续出现。比如两句话“我喜欢吃西瓜”和“我刚才吃了一个西瓜”的最长公共子串为“我 吃 西 瓜”。

对话系统评价指标

 

 

METEOR

METEOR是基于BLEU进行了一些改进,加入了生成响应和真实响应之间的对其关系。使用WordNet计算特定的序列匹配,同义词,词根和词缀,释义之间的匹配关系,改善了BLEU的效果,使其跟人工判别共更强的相关性。

 

对话系统评价指标

 

 

具体可以参考论文“ METEOR: An automatic metric for mt evaluation with improved correlation with human judgments”:

  上面的词重叠评价指标基本上都是n-gram方式,去计算生成响应和真是响应之间的重合程度,共现程度等指标。

 

   词向量评价指标:

词向量则是通过Word2Vec、Sent2Vec等方法将句子转换为向量表示,这样一个句子就被映射到一个低维空间,句向量在一定程度上表征了其含义,在通过余弦相似度等方法就可以计算两个句子之间的相似程度。使用词向量的好处是,可以一定程度上增加答案的多样性,因为这里大多采用词语相似度进行表征,相比词重叠中要求出现完全相同的词语,限制降低了很多。

词向量评价指标(包括Greedy matching、Embedding Average、Vector Extrema、perplexity困惑度)

 

Greedy Matching

寻找生成的句子和真实句子中最相似的一对单词,把这对单词的相似度近似为句子的距离

对话系统评价指标

对于真实响应的每个词,寻找其在生成响应中相似度最高的词,再将其余弦相似度相加并求平均。同样再对生成响应再做一遍,并取二者的平均值。上面的相似度计算都是基于词向量进行的,可以看出本方法主要关注两句话之间最相似的那些词语,即关键词。

 

Embedding Average

将句中每个单词的词向量作平均来作为句子的特征,计算生成的句子和真实句子的特征的 cosine similarity。直接使用句向量计算真实响应和生成响应之间的相似度,而句向量则是每个词向量加权平均而来,如下图所示。然后使用余弦相似度来计算两个句向量之间的相似度。

对话系统评价指标

Vector Extrema

对句中单词词向量的每一个维度提取最大(小)值作为句子向量对应维度的数值,然后计算cosine similarity。其实跟上面的ebedding average方法类似,也是先通过词向量计算出句向量,在使用句向量之间的余弦相似度表示二者的相似度。不过句向量的计算方法略有不同,这里采用向量极值法进行计算。

 

 

perplexity困惑度

困惑度(perplexity)的基本思想是:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,公式如下:

对话系统评价指标

其中w1,w2,.wn为组成一句话的各个单词。

句子概率越大,语言模型越好,迷惑度越小。

注语言模型(Language Model,LM),即给定一句话的前k个词,我们希望语言模型可以预测第k+1个词是什么,即给出一个第k+1个词可能出现的概率的分布p(xk+1|x1x2...xk)。

注意比对的是n-gram.下面截图的例子,注意条件概率的条件。

对话系统评价指标

之前我们学习的 trigram 模型经训练后,困惑度由955跌减至74,这是十分可观的结果。

估测语言模型准确率的评估方法是perplexity困惑度,它被定义为每个单词的平均负对数概率的指数。该指标可以反映“此模型对自己生成的目标序列的准确度是多少?”。更为精确的是,perplexity值可以表达的一种概念是“如果我们在每个时间步从由该语言模型计算出来的概率分布中随机挑选单词,要获得正确的答案,需要平均挑选几个单词?”。我们经常会将perplexity作为一种评估标准的参考选项,是因为perplexity值越大,就表示模型之间的差距也更容易被人眼直观感知到。

 

 

人工评价指标

在闲聊性质的数据集上,上述 metric 和人工判断有一定微弱的关联 (only a small positive correlation on chitchat oriented Twitter dataset)

在技术类的数据集上,上述 metric 和人工判断完全没有关联(no correlation at all on the technical UDC)

当局限于一个特别具体的领域时,BLEU 会有不错的表现

其实随着16/17这两年的发展,还逐渐有了一些别的评价方法,比如使用GAN网络来评价生成的回复是否跟人类回复相似等等。 --摘自知乎徐阿衡的回答。

开放域对话系统评价指标

 

闲聊型-对话持续轮数,相关性

参考:如何科学评价对话系统https://toutiao.io/posts/zwdj7e/preview

 

感谢与参考

鸣谢与主要参考,除了上面指出的外,还有:

  1. 深度学习对话系统理论篇--数据集和评价指标介绍https://zhuanlan.zhihu.com/p/33088748
  2. 通俗解释困惑度 (Perplexity)-评价语言模型的好坏https://zhuanlan.zhihu.com/p/44107044
  3. BLEU,ROUGE,METEOR,ROUGE-浅述自然语言处理机器翻译常用评价度量

https://blog.csdn.net/joshuaxx316/article/details/58696552

   4 .机器翻译评价指标之BLEU详细计算过程

https://blog.csdn.net/guolindonggld/article/details/56966200