现在基于深度学习的对话系统常用的评价指标有哪些,分别有啥优缺点和适用范围

谢邀~
这个问题有点大,之前在经典的端到端聊天模型提到过,这里简单答一下,之后单独整理一篇博客出来再更新吧。

首先要明确的是,评价指标的设计的核心目标都是使得 metric 的判断和人为判断尽量相似。
而对话系统的评价指标的一大难点在于,回复的选择空间太大,看起来完全无关的两句话都可以是合适的回复,两个正确的回复如果不看上下文的话,无论是从词频还是语义来看都是不相关不想似的句子。
有了这样一个大概的 idea 再来看现在的对话系统的指标,就有点失望了。粗粗划分下,大概有下面四大类评价指标

1. 检索类评价指标
信息检索里的评估方法,最常用的如 Recall@k,给定一个 query,选择 k 个最有可能的 response,看正确的 response 在不在这 k 个里。

2. 生成类评价指标
2.1 词重叠评价指标
主要有 BLEU,ROUGE 和 METEOR,最初用于衡量机器翻译的效果。BLEU 主要看人为/测试的句子里的单词的 overlap (机器产生的待评测句子中的 ngram 正确匹配人工产生的参考句子中 ngram 与机器产生的句子中所有 ngram 出现次数的比值),加入 BP(Brevity Penalty) 惩罚因子可以评价句子的完整性。然而 BLEU 不关心语法,只关心内容分布,适用于衡量数据集量级的表现,在句子级别的表现不佳。
“BLEU is designed to approximate human judgement at a corpus level, and performs badly if used to evaluate the quality of individual sentences.”——wikipediaROUGE 是一种基于召回率的相似性度量方法,与 BLEU 类似,但计算的是 ngram 在参考句子和待评测句子的共现概率,包含 ROUGE-N, ROUGE-L(最长公共子句, Fmeasure), ROUGE-W(带权重的最长公共子句, Fmeasure), ROUGE-S(不连续二元组, Fmeasure) 四种,具体不多说。
METEOR 改进了 BLEU,考虑了参考句子和待评测句子的对齐关系,和人工判断的结果有更高的相关性。

2.2 词向量评价指标
侧重比较生成的句子和真实样本的语义相似度,但是仅仅是在词向量的基础上,很难捕捉长距离的语义
Embedding average score 将句中每个单词的词向量作平均来作为句子的特征,计算生成的句子和真实句子的特征的 cosine similarityGreedy matching score 寻找生成的句子和真实句子中最相似的一对单词,把这对单词的相似度近似为句子的距离Vector extrema score 对句中单词词向量的每一个维度提取最大(小)值作为句子向量对应维度的数值,然后计算cosine similarity
3. 基于学习的评价指标
使用机器学习/神经网络的方法来学习一个好的评价指标,使得模型打分和人工打分更接近。像各种 GANs、ADEM、Dual Encoder(DE) 等等。

4. 人工评测
“We ?nd that all metrics show either weak or no correlation with human judgements, despite the fact that word overlap metrics have been used extensively in the literature for evaluating dialogue response models”在 How NOT To Evaluate Your Dialogue System 这篇论文中,宣称和人工判断相比,所有 metric 都是垃圾
在闲聊性质的数据集上,上述 metric 和人工判断有一定微弱的关联 (only a small positive correlation on chitchat oriented Twitter dataset)在技术类的数据集上,上述 metric 和人工判断完全没有关联(no correlation at all on the technical UDC)当局限于一个特别具体的领域时,BLEU 会有不错的表现
综上,对话系统的评价指标其实应该还算是一个研究热点吧,尤其是基于学习的评价指标。另外如果要评价多轮对话,那就更加复杂了,还要引入评测时机,比如是否每轮对话都做评估,是不是在提到一个概念(slot-value pair)时才评估……

仅作抛砖引玉,期待补充~


推荐阅读