首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RUBER:一种无监督对话系统回复质量的评价方法

对于对话系统的回复质量评价,一直没有很好的方法。之前的文章写过一些评价指标,例如BLEU、PPL、Distinct、ROUGE等。这些指标给出的评估结果与人工评价得出的结果相差很大,并且也不相关。本文介绍一种无监督(不需要标记语料)的回复质量评价方法。

回复的好坏有几个维度:

(1)与问题或对话的话题相关;

(2)与该问题的已有回复相似、不能有太大偏差;

(3)不能有太多的通用性回复,例如“好的”、“是的”。

RUBER,很好地解决了上述三个问题。RUBER,全称“Referenced metric and Unreferenced metric Blended Evaluation Routine”。是一种有参考和无参考的相结合的度量。

有参考的度量

有参考的度量,是参考了问题已有的人工回复答案,使用人工回复作为参考对机器回复的质量进行判断。主要用于度量上述(2)中的问题,就是判断与已有答案的相似性。相似性怎么衡量,数学中最简单的方法就是余弦距离。得到机器回复句子的向量表达和人工回复的句子的向量表达,算余弦距离即可,余弦值越大距离越近,两个句子越相似。

获取句子的向量表示

假设句子S中有N个词,分别表示为w1,w2,...,wN。每个词语通过对话模型的embedding层有一个向量表示,可以理解为word2vec的向量表示。设向量维度为d。因此句子S可以表示为d*N的矩阵,第i列表示句子中第i个词语对应的词向量。对每行分别取max-pooling和min-pooling,得到两组d维的向量Xmax, Xmin。二者拼接得到2d维度的向量即为该句子S的向量表示。

余弦距离计算

分别按照1中方法计算得到机器回复和人工回复的向量表示Vr/Vr'.余弦距离的计算公式可以表示为:

有参考的度量即表示为SR

无参考的度量

无参考的度量,是不需要人工回复的答案,判断回复内容与问题本身是否相关。这里是建立人工神经网络模型进行的。模型结构如下图所示。从对话模型训练语料做为该度量模型的训练语料。Query与对应的Reply作为一个Pair,分别使用双向GRU进行建模得到句子表达。然后随机采样得到负例,负例就是当前Query对应抽取的其它Query的Reply结果。正例的模型输出为1,负例的模型输出为0,类似于训练word2vec时使用的negative sampling方法。

需要说明的是图中句子建模后得到的特征中不仅仅是Query和Reply的向量拼接,而是增加了一个新的特征:xMy这样的双向性变化,用于度量Query和Reply共有的信息。再将组合特征输入到全连接层和Sigmoid函数的激活层输出Query与Reply的相关概率大小。模型输出SU即为无参考度量值。

结合的度量

特征组合,首先分别将SR和SU度量值进行归一化,然后再将归一化的特征进行结合。

归一化

归一化是经常使用的方法,用于将不同度量空间的数值进行归一化后可以统一整理。具体如下:

度量组合

将归一化后的度量值,可以取平均、取最大值、取最小值、算术平均、几何平均等。根据实际任务选择。

RUBER将回复相关性、与正确答案的相似性进行了整合考虑。但是依然没能解决好回复多样性的判断问题。如果大量回复中出现通用性质的回复,还是不能很好地度量当前问答系统的好坏。但至少给定的方法能够起到一定的作用,比较综合,相比较其它指标值算overlap的要好很多。

参考文献

[1] Tao C, Mou L, Zhao D, et al. RUBER: An Unsupervised Method for Automatic Evaluation of Open-Domain Dialog Systems[J]. 2017.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G1ARIH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券