Bonky Zhu
If someone is able to show me that what I think or do is not right, I will happily change, for I seek the truth, by which no one was ever truly harmed. It is the person who continues in his self-deception and ignorance who is harmed.

自动图灵测试:评估对话的回答

原文标题:Towards an Automatic Turing Test: Learning to Evaluate Dialogue Responses

文章地址:https://arxiv.org/abs/1708.07149

代码地址:https://github.com/mike-n-7/ADEM

对于非结构化域,自动评估对话回答的质量是一个具有挑战性的问题。不幸的是,现有的自动评估指标存在偏差,并且与人类对回答质量的判断非常不相关。然而,拥有准确的自动评估程序对于对话研究至关重要,因为它可以使用较少的昂贵的人工评估就可以快速进行原型设计和测试新模型。为了应对这一挑战,我们将自动对话评估公式化为学习问题。我们提出了一种评估模型(ADEM - Automatic Dialogue Evaluation Moodel),该模型使用新的人类反应得分数据集来学习预测类似人类的得分以输入反应。我们表明,ADEM模型的预测与表达和系统级别的人工判断之间存在显着相关性,并且其相关程度远高于BLEU等词重叠指标。我们还表明,ADEM可以推广到评估训练期间看不见的对话模型,这是自动对话评估的重要步骤。

1. Introduction

自从图灵测试的提出以来,构建可以自然而有意义地与人类对话的系统一直是人工智能的中心目标。对这类系统的一种类型的研究(有时也称为非面向任务的对话系统),可以追溯到60年代中期的Weizenbaum著名程序:

上图,单词重叠分数未能通过对话评估的示例;尽管模型回答是合理的,但它与参考回答没有共同的词,因此可以通过BLEU等指标获得较低的评分。

ELIZA:一种基于规则的系统,通过不断地改写陈述或提问来模仿罗杰式心理治疗师。

屏幕快照 2019-10-11 下午9.48.05

近来,对于使用神经网络建立大规模的非面向任务的对话系统的兴趣激增。这些模型以端到端的方式进行训练,以优化单个目标,通常是从固定语料库生成回答的可能性。这种模型已经在业界产生了重大影响,包括GoogleSmart Reply系统和微软的Xiaoice chatbot,其中后者拥有2000万用户。

开发此类系统的挑战之一是要有一种很好的方法来衡量进度,在这种情况下,就是聊天机器人的性能。图灵测试为评估对话系统提供了一种解决方案,但是其原始表述存在局限性。该测试需要实时的人机交互,这既昂贵又难以扩展。此外,该测试需要精心设计给对话者的指令,以平衡他们的行为和期望(对系统的),以便可以根据性能对不同的系统进行准确排名。尽管不可避免,但这些说明在评估方法中存在着偏差。让人们评估对话系统回答质量,而不是将其与人类回答区分开,在时间,费用和缺乏灵活性方面引起类似的缺点。在针对特定对话域设计的聊天机器人的情况下,可能也很难找到足够的人在主题中具有相关背景的评测员。

尽管基于神经网络的模型取得了进步,但在非面向任务的环境中,自动评估对话回答的质量仍然是一个充满挑战且尚未得到充分研究的问题。用于评估此类对话系统的最广泛使用的度量标准是BLEU,一种度量单词重叠的度量标准最初是为机器翻译开发的。然而,已经证明,BLEU和其他单词重叠度量均存在有偏差,并且与人类对回答质量的判断之间的关联性很差。在许多明显的情况下,这些度量会失败,因为它们通常无法考虑回答之间的语义相似性。尽管如此,许多研究人员仍然使用BLEU评估他们的对话模型,因为很少有与人类判断相关的选择。虽然应该始终使用人工评估来评估对话模型,对于每个模型规范(例如,对于模型超参数的每种组合)执行此操作通常过于昂贵且耗时。因此,拥有一个可以自动评估对话回答质量的准确模型(可以视为自动图灵测试),对于建立类似人的对话智能体至关重要。

为了朝着这个目标取得进展,我们简化了一个假设,即一个“好的”聊天机器人是人类评估人员在适当性上给予很高评价的机器人。我们认为,这足以取得进展,因为当前的对话系统经常产生不适当的反应。我们还从经验上发现,要求评估人员提供其他指标会导致注释者之间的共识不足,或者分数与适当性高度相关(请参见补充材料)。因此,我们收集了针对各种对话的回答的适当性得分数据集,并使用此数据集来训练自动对话评估模型(ADEM)。使用分层递归神经网络(RNN)以半监督的方式训练模型,以预测人类得分。我们表明,在表达级和系统级,ADEM得分与人类判断显着相关。我们还表明,ADEM通常可以推广到评估新模型,而这些新模型在训练过程中是看不见的, 使ADEM成为迈向有效的自动对话回答评估的第一步。

2. 数据收集

要训练模型以预测对话回答的人类得分,我们首先使用众包平台Amazon Mechanical Turk(AMT)收集Twitter回答的人类判断(得分)数据集。目的是针对各种对话回答(取决于对话上下文)涵盖了回答质量的全部范围。例如,回答应包括相关和不相关的回答,相干回答和非相干回答,等等。

为了实现这种多样性,我们使用来自几种不同模型的候选回答。接下来,我们使用以下4种候选回答来源:

  • 由基于TF-IDF检索的模型选择的回答,
  • 由双编码器(DE)选择的回答,
  • 使用分层递归编码器/解码器(HRED)模型生成的回答,
  • 人为生成的回答。

应该注意的是,人为候选回答不是来自固定语料库的参考回答,而是不同于参考的新颖的人类回答。除了增加回答的多样性之外,这也是必需的,因为我们希望我们的评估模型能够学习将参考回答与候选回答进行比较。我们在补充材料中提供了我们的AMT实验的详细信息,包括其他实验表明,目前尚不存在其他几种指标对建立评估模型有用。请注意,为了最大化使用固定预算获得的回答数量,我们在数据集中每个对话回答仅获得一个评估得分。 (理解:就是没钱)

要在人类判断力上训练评估模型,至关重要的是我们获得接近高级模型产生的分布的回答分数。这就是为什么我们使用Twitter语料库的原因,因为此类模型是经过预先训练的,并且随时可用。此外,与非常具体的Ubuntu Dialogue Corpus 相反,讨论的主题集非常广泛,因此该模型也可能适用于其他聊天领域。最后,由于它不需要特定领域的知识(例如技术知识),因此AMT工作人员应易于注释。

3. 背景

3.1 RNN

递归神经网络(RNN)是内部单元之间具有延时连接的一种神经网络。这导致形成隐藏状态$h_t$,该状态针对每个输入进行更新:$h_{t}=f\left(W_{h h} h_{t-1}+W_{i h} x_{t}\right)$,其中$W_{hh}$和$W_{ih}$是参数矩阵,$f$是非线性激活函数,$x_t$是时间t的输入。隐藏状态允许RNN更好地建模顺序数据,例如语言。在本文中,我们考虑了使用长期短期记忆(LSTM)单元增强的RNN。 LSTM在RNN上添加了一组门,使它能够了解多少信息来更新隐藏状态。 LSTM是处理递归网络中消失的梯度问题的最完善的方法之一。

3.2 Word-Overlap Metrics 关于计算词重叠的方法

自动评估对话回答质量的最流行方法之一是通过计算其单词与参考回答的重叠程度。特别是,最受欢迎的指标是用于机器翻译的BLEUMETEOR得分,以及用于自动摘要的ROUGE得分。尽管这些指标往往与目标领域中的人类判断相关联,但最近显示它们在对话回答评估中高度偏重于人类判断,与它们之间的关联性很差。我们在这里简要描述BLEU,并在补充材料中提供单词重叠度量的更详细的摘要。

BLEU: 分析了回答中n-gram的共同出现次数,用它来计算整个数据集的n-gram精度,然后将其乘以长度惩罚因子以惩罚简短翻译。对于BLEU-N,N表示所考虑的最大ngram值(通常N = 4)。

缺点:单词重叠量度的主要缺点之一是,在很少或没有常见单词的情况下,它们无法捕获模型和参考回答之间的语义相似性(和其他结构)。对于机器翻译来说,这个问题不太重要。由于给定句子或文档的合理翻译集很小,因此仅通过测量与一个(或几个)参考翻译之间的词重叠,就可以合理地推断翻译句子的质量。但是,在对话中,给定上下文的适当回答集要大得多。换句话说,存在很高的回答多样性,不太可能通过单词重叠与单个回答的比较来捕获。

此外,直接在模型和参考回答之间计算单词重叠分数。因此,他们不考虑对话的上下文。尽管这在机器翻译中可能是一个合理的假设,但对话并非如此。模型回答是否足以替代参考回答显然取决于上下文。例如,给定上下文,图1中的两个回答同样适用。但是,如果我们仅将上下文更改为:“Have you heard of any good movies recently?”,则模型回答(Model Response)不再有效,而参考回答仍然有效。

4. 自动对话评估模型 (ADEM)

为了克服单词重叠度量的评估问题,我们旨在构建一种对话评估模型,该模型:

  1. 捕获单词重叠统计信息以外的语义相似性;
  2. 利用上下文和参考回答来计算其得分模型回答。我们将此评估模型称为ADEM

ADEM使用分层RNN编码器学习上下文,模型回答和参考回答的分布式表示。给定对话上下文$c$,参考回答$r$和模型回答$\hat r$,ADEM首先使用RNN编码器将它们中的每一个编码为矢量(分别为$c$,$r$和 $\hat r$ )。然后,ADEM使用线性变换空间中$c$,$r$ 和 $\hat r$ 的矢量表示之间的点积计算分数:
$$
\operatorname{score}(c, r, \hat{r})=\left(\mathbf{c}^{T} M \hat{\mathbf{r}}+\mathbf{r}^{T} N \hat{\mathbf{r}}-\alpha\right) / \beta
$$
其中,$M, N \in \mathbb{R}^{r}$是初始化为恒等式的学习矩阵,而α,β是用于初始化范围[1,5]中的模型预测的标量常数。该模型如下图所示。

屏幕快照 2019-10-12 上午11.52.23

矩阵MN可以解释为线性投影,将模型回复 $\hat r$ 分别映射到上下文和参考回答的空间中。在此投影之后,模型对与上下文和参考回答具有相似矢量表示的回答给予高分(为什么要这么做?)。该模型是端到端可区分的;所有参数都可以通过反向传播学习。在我们的实现中,使用L2正规化训练模型的参数θ= {M,N},以最小化模型预测与人类得分之间的平方误差:

$$
\mathcal{L}=\sum_{i=1: K}\left[score\left(c_{i}, r_{i}, \hat{r}{i}\right)-h uman{i}\right]^{2}+\gamma|\theta|_{2}
$$
其中 $γ$ 是标量常数。 我们模型的简单性可以带来准确的预测和快速的评估(请参阅补充材料),这对于允许快速建立对话系统的原型非常重要:

我们模型中的分层RNN编码器由两层RNN组成。 较低级别的RNN(表达级编码器)从对话中获取输入词,并在每个表达末尾生成矢量输出。 上下文级别编码器将每种表达的表示作为输入,并输出上下文的矢量表示

image-20191012220727323

这种分层结构对于在上下文中合并来自早期表达的信息很有用。 在完成之前的工作之后,我们将上下文级别编码器的最后一个隐藏状态作为输入表达或上下文的矢量表示RNN 编码器的参数是经过预训练的,不会从人类的评分中获知。

重要的一点是,上面的ADEM过程不是对话检索模型:根本的区别是ADEM 访问了参考回答。因此,ADEM可以将模型的回答与已知的良好回答进行比较,这比仅从上下文推断回答质量要容易得多。

使用VHRED进行预训练:我们想要一个评估模型,该模型可以从很少的带标签的示例中进行准确的预测,因为获得这些示例非常昂贵。因此,我们采用半监督学习,并使用预训练程序来学习编码器的参数。特别是,我们将编码器训练为神经对话模型的一部分;我们附加了第三个解码器RNN,它将编码器的输出作为输入,并对其进行训练,以预测以上下文为条件的对话的下一个表达。

屏幕快照 2019-10-13 下午8.04.25

图三:VHRED模型用于预训练。 RNN编码器的分层结构显示在该图的下半部分周围的红色框中。使用VHRED过程进行训练后,上下文级别编码器的最后一个隐藏状态用作输入文本的矢量表示。

我们用于预训练的对话模型是潜变量分层递归编码器(VHRED)模型,如图三所示。VHRED模型是原始分层递归编码解码器(HRED)模型的扩展,具有轮级别(或者说基于轮)随机隐变量。使用我们的分层编码器,将对话上下文编码为向量,然后VHRED对用于调节解码器的高斯变量进行采样(有关更多详细信息,请参见补充材料)。训练VHRED之后,当$c$,$r$和 $ \hat r$ 作为输入馈送时,我们使用上下文级别编码器的最后一个隐藏状态分别作为$c$,$r$和 $ \hat r$ 的矢量表示。我们使用VHRED模型的表示形式,因为与HRED相比,它会产生更多不同且连贯的回答。

5 实验

5.1 实验步骤

为了减少有效词汇量,我们使用字节对编码(BPE),它将每个单词分为子单词或字符。我们还对分层编码器使用了层归一化,我们发现在对话生成任务上比相关的循环批归一化效果更好。为了训练VHRED模型,我们使用了和中发现的几种相同的技术:我们以25%的固定速率在解码器中丢弃单词,并且在前60,000批中将KL散度项从0线性退火到1。我们使用Adam作为我们的优化器。

在训练ADEM时,我们还根据模型回答长度采用了二次抽样程序。特别是,我们根据回答中单词的数量和该回答的分数将训练示例划分为垃圾箱。然后,我们从相同分数的垃圾箱中对样本进行过采样,以确保ADEM不使用回答长度来预测分数。这是因为与较短的回答相比,相对于较长的回答,人类倾向于给较短的回答更高的评级,因为较短的回答通常更通用,因此更可能适合于上下文。确实,测试集的回答长度与人类得分之间的Pearson相关性为0.27。

为了训练VHRED,我们使用2000的上下文嵌入大小。但是,我们发现当减小嵌入大小时,ADEM模型的学习更加有效。因此,在训练了VHRED之后,我们使用主成分分析将上下文的维数,模型回答和参考回答嵌入量减小为n。我们通过实验发现 n = 50可提供最佳性能。

训练模型时,我们会在一个单独的验证集中使用早停法。对于评估数据集,我们将训练/验证/测试集拆分为没有上下文重叠(即在训练期间看不见测试集中的上下文)。

5.2 结果

image-20191020210231943

表2:指标与人工判断之间的相关性,p值显示在括号中。(Pearson和Spearman都是相关系数,用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。)

其中,在上表中, ADEM(T2V) 表示带有tweet2vec嵌入的ADEMVHRED 表示 VHRED 嵌入的点积(即初始化时为ADEM)。 C-R-ADEM分别代表经过训练仅将模型回答与上下文或参考回答进行比较的ADEM模型。我们在整个数据集上计算基线度量值得分,以提供其得分的更准确估计(因为它们没有在训练集中进行训练)。

Share

You may also like...

发表评论