更近人类的对话系统自动评测方法

本期论文


TOWARDS AN AUTOMATIC TURING TEST: LEARNING TO EVALUATE DIALOGUE RESPONSES

本文使用 context 和真实 response 来对模型生成的 response 进行打分,并和人类打分的分值进行比较,从而达到一种自动进行 Turing test 效果。训练出来的模型可以生成符合人类判断、能回答输入语句的对话。 在给定 ground truth 的情况下,以往的工作都是计算生成话语和 ground truth 的相似性(包括字面上、语义上),这篇文章从人的理解角度出发,对生成的 response 进行度量。

论文链接: 

http://pdfs.semanticscholar.org/a4f0/4123597f076da2fcf4c3c48c3091abaf1b51.pdf

阅读笔记精选


caogang449

Motivation 

现今关于对话回复的评估问题没有一个很好的方法,原来用于机器翻译的 BLEU 已经被证明和人类的判决标准不具备太大的相关性(这篇文章中有说明)还有(How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation)也详细讨论了各种评价指标。 

Main Work 

用一个 HRED 模型来逼近和模仿人类的打分,所以需要准备大量的(人类打分<->对话 pair)数据集,训练的时候采用采用 content vector,reference response,human response 来产生评分 score,参数是 θ,然后用 score 和 human score 的均方误差来逼近人类的打分。

个人看法 

这种方法采用的是学习性评估方法,那么就存在一些问题,比如数据集中打分的波动太大,并且对话 pair 的多样性都会直接大幅度影响该模型的效果,所以这种方法不同的人做出来可能不具有什么可比性。

YinongLong


作者给自己文章达到的效果立了两个 flag,一是尽可能的区别于 BLEU 等判断标准,可以学习到语义的相似性,二是在考虑对话的 context 和 reference response 情况下,对模型生成的 response 进行打分。其中第二个 flag 比较容易,作者文章中就是通过预训练自己之前的工作 VHRED 来得到一个 encoder,然后对 context,reference response,以及模型的 response 都进行 embedding,最后计算相似度。相比来说,第一个 flag 就比较困难了,因为语义相似性很难定义,但是文章最后的解决方案就是利用 ADEM 的打分和人的打分的高相关性来说明自己达到了捕捉语义相似,但是这个还是值得商榷的。最后其实我个人感觉这篇文章比较重要的是数据。

RyanHuang

INTRODUCTION 

尽管基于神经网络的模型取得了进步,但是在非任务导向的情况下,自动评估对话响应质量仍然是一个具有挑战性和未被研究的问题。现在使用的最多的方法是 BELU,这种方法最初是用于检测机器翻译中的字重叠。然而,BELU 和其他字重叠评估方法已经被认为存在偏差和与人的响应质量的判断的相关性较差。因此,需要有一种准备的模型可以自动评估对话的响应质量。

 

为了实现这个目标,我们首先在各种对话响应中收集认为评分的数据集,并利用这些数据集来训练自动对话评估模型,这个模型我们称为 ADEM(Automatic Dialogue Evaluation Model),该模型使用半监督的方式训练,使用分层的循环神经网络(RNN)来预测人为的评分。

A DATASET FOR DIALOGUE RESPONSE EAVLUATION 

这部分介绍的是如何生成训练数据集(笔记略)。


TECHNICAL BACKGROUND RECURRENT NEURAL NETWORK 

这部分简略地介绍了 RNN,论文中使用的是 LSTM。

字重叠的评估方法 

现在最常用的字重叠评估方法是使用在机器翻译中的 BLEU 和 METEOR 评分,和使用在自动摘要中的 ROUGE 评分。

BLEU:分析了在参考响应中,n-gram 在实例中的共同出现。它计算整个数据集的 n-gram 准确度,然后乘以简单的惩罚项来惩罚短的翻译句子。

缺点:字重叠评估方法的一个主要的缺点是当没有共同的词语的时候,它不能捕获模型和参考响应之间的语义相似度。再者,字重叠方法直接计算模型和参考响应,这样就没有考虑到了对话的上下文。

AN AUTOMATIC DIALOGUE EAVLUATION MODEL (ADEM)

为了克服字重叠评估方法中存在的缺点,我们的目标是构建一个对话评估模型可以实现以下两点:1. 越过字重叠统计,捕获语义的相似度。2. 利用会话的上下文和参考响应来计算模型响应的分数。 

ADEM 使用分层的 RNN 编码器学习上下文,模型响应和参考响应的分布式表示。给定对话上下文 c,参考响应 r,和模型响应 r^。ADEM 首先用 RNN 解码器将相应的 c,r,r^解码为向量的形式。然后,ADEM 使用线性变换空间中的 c,r,r^的向量之间的点积来计算得分分数:是需要学习的矩阵参数,一般初始化为单位矩阵,α,β 是标量常数,范围在 [0, 5][0,5] 之间,是初始化模型的预测。

矩阵 M,N 可以解释为一个投射矩阵将模型响应 r^ 映射到相对应的上下文和参考响应的空间中。这个模型是端到端可微分的:所有参数都可以通过反向传播学习。参数 θ={M,N} 是通过最小化模型预测和人为评分之间的平方误差训练可得:是标量常数。 


我们模型中的分层的 RNN 由两层的 RNN 组成。低层的 RNN,话语层的解码器,将对话中的词语作为输入,在每一个话语的末端生成一个向量结果;上下文级别的解码器,将每个话语的表示作为输入,并输出上下文的向量表示。 

Pre-training with VHRED:因此,我们采用半监督学习,并使用预训练模型来学习编码器的参数。我们把解码器作为神经语言模型的一部分,我们使用另外一个 RNN 解码器将编码器的输出当作输入,来训练给定条件的上下文来预测下一回复话语。 我们用于预训练的对话模型是潜变量分层的RNN编码器-解码器模型。VHRED 模型是具有转向级(turn-level 不大懂是什么)随机潜变量,是的原始 HRED 模型的扩展。分层的解码器将对话的上下文解码为一个向量,VHRED 然后采样高斯变量,用于调节解码器。VHRED 模型训练完后,我们使用最后一个隐藏状态的上下文级别的编码器,将 c,r,r^ 作为模型的输入。


Chen

dialog领域现在两大问题:

1. 没有各方面合适的标准数据集,s2s 训练需要相对大规模语料,但大规模 dialog 数据集相对较难获得,所以许多时候一篇文章一个数据集,很多还不开源,难以比较。

2. 没有科学的 evaluation 方法,BLEU 和 ppl 都不太适合 dialog,但又必须要有一个除了 human 以外的 metric,所以很多时候实验的评测本身就没法说明问题。

针对第二点,目前还没有特别靠谱的 metric 提出来,许多文章会在 evaluation 里引一下 How Not 那篇文章,但最后还是要用那几个来评价。这篇文章想换一种思路来作 eval,感觉想法有很多值得借鉴的好的地方,但有一些根本问题还是没有解决,感觉最终合理的 metric 可能还不会是用这种思路。

MT 领域里 BLEU 之所以合理,很大程度上是因为它切中了 MT 的一个核心特征——翻译文本间存在 alignment,所以可以从 word-level 来入手设计 metric。感觉现在 dialog 里合适的 metric 没被提出来很大程度上其实是因为大家还没想清楚 dialog 这个领域相对 MT 或者别的领域它最核心的特点是什么,感觉还是要从这个特点入手,比想各种 trick 要靠谱些。

nancy


针对现有评估系统没有考虑到语义,并且其与人为对回复质量的判断不太相符,提出了新的自动对话评估模型,称为 ADEM。 首先收集一份人为对不同对话回复的评估分数的数据集,这份数据集由 AMT 平台提供,文中很详细介绍了相关数据收集的细节,以便他人在类似数据收集工作中能有效的工作; 对于 ADEM 模型,模型本身不复杂,使用一组 RNN 网络来预测分数。感觉这个模型对数据依赖非常大,如果使用这个模型的话,数据的处理工作量应该会很大。

zhangjun


开放域的 chatbot 自动评测现阶段问题非常多,用 bleu 也好,用 meteor 也好,或者用 rouge 也好都存在一个严重的问题就是无法判断语义的相似度。机器翻译任务和自动文摘任务通过匹配相同的 n-gram 都可以比较真实的反应出模型的效果,而对话则不同,太过灵活,可能很高 bleu 值的一句话和 target 的意思都是相反的。封闭域的 chatbot 评测相对容易一些,可以将评测任务转化成一些可测量的指标上,开放域的评测确实很难,现在的几个工作都是非常依赖人工的数据,这个代价太大效果也并不那么理想。

理论
暂无评论
暂无评论~
返回顶部