如何使上下文更有用?

来源:aclweb.org

作者:Zhiliang Tian,、Rui Yan,、Lili Mou、Yiping Song、Yansong Feng、Dongyan Zhao

编辑:智察(ID:Infi-inspection)

文章字数:3931 预计阅读用时:4分钟

摘要

生成会话系统在自然语言处理(NLP)中越来越受到重视。最近,研究人员已经注意到上下文信息在对话处理中的重要性,并建立了各种模型来利用上下文。然而,没有系统的比较来分析如何有效地使用上下文。在本文中,我们进行了一项实证研究,比较了各种模型,并研究了上下文信息在对话系统中的作用。我们还提出了一种变体,它通过上下文查询相关性显式地对上下文向量进行加权,从而优于其他基线。

1 介绍

最近,人机对话因其潜在的能力和诱人的商业价值而受到越来越多的关注。研究人员为自动对话系统提出了检索方法(Ji et al., 2014;Yan et al., 2016)和生成方法(Ritter et al., 2011;Shang et al等,2015)。随着深度学习的成功,神经网络已经证明了学习人类对话模式的强大能力;给定用户发出的语音作为输入查询q,网络可以生成一个回复r,这通常是按序列到序列(Seq2Seq)方式完成的(Shang et al., 2015)。

在文献中,有两个典型的对话系统的研究设置:单轮和多轮。单轮对话可能是最简单的设置,在生成r时模型只考虑q (Shang et al.,2015;Mou et al .,2016)。然而,实际上大多数对话框包含多个回合。之前的话语(在本文中称为上下文)也可以提供关于对话状态的有用信息,并且是连贯的多轮对话的关键。

现有的研究已经意识到语境的重要性,并提出了几种语境感知会话系统。例如,Yan et al.(2016)直接连接上下文话语并立刻查询;其他人使用层次模型,首先捕捉单个话语的意义,然后将其整合为对话(Serban et al., 2016)。可以有几种组合上下文和当前查询的方法,例如池化或连接(Sordoni et al., 2015)。遗憾的是,以前的文献缺乏对上述方法的系统比较。

本文对Seq2seq会话系统中的上下文建模进行了实证研究。我们强调以下研究问题:

•问题1:如何更好地利用上下文信息?研究表明,层次模型通常比非层次模型好。我们还提出了一种上下文集成的变体,它通过关联度量显式地对上下文向量进行加权,优于简单的向量池化或连接。

•问题2:上下文对神经对话系统的影响是什么?我们发现上下文信息对神经会话模型很有用。它带来了更长、具有更丰富的信息和多样化的回复。

综上所述,本文的贡献是两方面的:(1)我们对神经会话模型的上下文建模进行了系统的研究。(2)我们进一步提出了明确的上下文加权方法,优于其他基线。

2 模型

2.1 非层次模型

为了在查询之前对一些语句进行建模,一些研究直接将这些句子连接起来,并使用一个模型来捕获上下文和查询的含义(Yan et al., 2016;Sordoni et al .,2015)。在本文中,它们被称为非层次模型。这种方法也用于其他NLP任务,例如文档级情感分析(Xu et al., 2016)和机器理解(Wang and Jiang, 2017)。

在经典的encode-decoder框架下,我们使用Seq2Seq网络,在编码过程中,将查询和上下文转换为一个固定长度的向量(RNN);然后,在解码阶段,它会以一个逐词的方式利用另一个RNN生成应答r。(见图1)。

研究中,我们采用了RNNs与门控循环单元(Cho et al., 2014, GRUs),这缓解了传统RNNs的长期传播问题。当解码时,我们使用的是长度为5的定向搜索.

2.2 层次模型

一个更复杂的上下文建模方法是用两步策略构建层次模型:话语层次模型捕获每个单独的句子的含义,然后跨语言模型集成上下文和查询信息(图1b)。

研究人员尝试了不同的方法,将信息在跨话语建模过程中结合起来;本文对几种常用的方法进行了评价。

求和池化。求和池化 (表示为总和)通过将每个维度的值相加(图2a)来集成一个候选集的信息。给定的上下文向量,查询向量, 编码向量为

求和池化被用在 Sordoni et al. (2015),

(a)非层次模型.

(b)层次模型.

图 1: Seq2Seq-like 神经网络生成一个回复 r,其基于上下文和当前查询 q ,使用了 (a) 非层次 或 (b) 层次模型。

简单地添加了上下文和查询的词袋(BoW)特征。在此实验中,池化求和操作在由句子级RNNs的上下文和查询语句提取的特征上,因为现代的神经网络保存的信息比BoW特征多。

连接连接是被用在Sordoniet al.(2015)的另一种方法。该策略将每一个话语级的向量和连接成一个长向量,即。(参见图2b)。

与求和池化相比,向量连接可以区分上下文和查询的不同角色,因为这个操作可以分别保存输入。然而,一个潜在的缺点是,连接只工作在固定长度的上下文。

顺序集成Yao et al.(2015)和Serban et al.(2015)提出了层次化的对话系统,其中一个内部的RNN是建立在话语级RNNs的特征(最后一个隐藏层状态)之上的。训练是通过端到端的梯度传播来完成的,过程如图2c所示。

使用RNN以连续的方式集成上下文和查询向量可以实现复杂的信息交互。基于RNN的隐状态,可以将求和和连接应用于得到编码的向量。

(a)求和池化 (b)连接

(c)顺序集成

(d)加权顺序集成

图2:层次模型中的跨话语建模。 vci 和 vq 是话语级别向量, hci 和 hq 是话语级别隐藏状态, αci 和 αq 是显式权重 , venc 是编码器输出。

但是,我们发现它们的性能比仅使用最后一个隐藏层状态(表示为Seq)更糟糕。一个可能的原因可能是,跨句子的RNN不长,RNN可以很好地保存这些信息。因此,在我们的实验中采用了这个变体,如图2c所示。.

2.3 通过上下文查询关联显式地加权

在会话中,上下文的话语可能在内容和语义上有所不同:与该查询相关的上下文话语可能是有用的,而不相关的则可能带来更多的噪声。根据这种直觉,我们提出了一种变体,它通过上下文查询关联的注意力得分来显式地加权上下文向量。

首先,我们通过余弦度量来计算上下文和查询之间的相似性

也就是说,句子嵌入是单词嵌入的总和。

遵循注意机制(Bahdanau et al., 2014)的精神,我们希望通过一个softmax函数来归一化这些相似性,并获得注意力概率:

平方的计算方式与一样,总是1,也就是两个相同向量的夹角余弦。如果上下文相关性较小,我们应该主要关注查询本身,但是如果上下文相关,我们应该更平均地关注上下文和查询。

换句话说,我们的显式加权方法可以被视为启发式注意力。类似于第2.2小节,我们通过池化和连接来聚合加权上下文和查询向量,从而产生以下两个变体。

•WSeq (sum),将加权向量相加

•WSeq(concat),将加权向量连接

注意,显式加权方法也可以应用于句子嵌入(不包含句间RNN)。我们分别用WSum和WConcat来表示变种;细节不再赘述。第3.2节包含他们并将其进行比较。

3 实验

3.1 设置

表1:不同模型的性能

我们在爬取于在线免费聊天平台百度贴吧的中文数据集上进行了所有实验。为了便于研究语境的影响,我们在Sordoni et al. (2015)和Serban et al.(2015)的基础上建立了一个多轮会话语料库。一个数据样本包含三段话语,为一个三元组。总共有50万个样本用于训练,2000个用于验证,4000个用于测试。神经网络的超参数主要来源于Shang et al.(2015)和Song et al.(2016):嵌入620d和隐藏层状态1000d;我们使用AdaDelta进行优化。

3.2 结果及分析

我们用BLEU评分来评估模型的性能。由于本文比较了各种模型,所以我们无法承担雇佣人员进行手工标注他们的满意度的费用。BLEU评分虽然在开放领域的对话系统中并不完善,但其展现出与人类满意度或多或少的相关性(Liu et al., 2016Tao et al .,2017)。我们在表1中给出了第2部分介绍的模型的总体性能,并回答了如下的研究问题。

问题1:如何充分利用上下文?

我们首先观察到,上下文敏感的方法通常比上下文不敏感的方法要好。这意味着上下文在开放领域、闲聊系统中确实有用。结果与以往的研究结果一致(Sordoni et al.,2015;Serban et al .,2015)。

在上下文相关的神经会话模型中,我们有以下的发现。

•层级结构优于非层次结构。

通过比较非层次结构和层次结构,我们发现(大多数)层次模型明显优于非层次结构模型。结果表明,对话系统与其他NLP应用程序不同,例如:理解(Wang and Jiang, 2017),对其采用非递阶递归神经网络更好地将不同的句子中的信息进行整合。正如Meng et al.(2017)所指出的,一个看似合理的解释是,对话式的句子不一定是同一位说话者发出的,而文献展示了在对话系统中分级RNNs的有效性的一致证据。

•分别保持不同话语的角色是很重要的。

正如第2节中提到的,连接操作(Concat)区分了不同话语的角色,而求和汇总信息以均匀的方式聚合信息。我们发现前者在句子嵌入和句间RNN水平上都优于后者,表明求和池化不适合处理对话框上下文。我们的猜想是,在不那么重要的背景下求和池化掩埋了有启发性的查询信息。因此,分别保存它们通常会有所帮助。

•上下文查询相关性评分对会话系统有利。

我们的显式加权方法通过上下文查询相关性计算一个注意概率。在所有变体(Sum、Concat和Seq)中,显式加权可以大幅度提高性能(Seq的BLEU-1除外)。结果表明,上下文查询相关性是有用的,因为它强调了相关的上下文话语以及弱化无关上下文。

表2:上下文不敏感和上下文敏感的方法的响应的长度、熵和多样性

问题2:上下文在神经对话系统的影响?

我们现在很好奇环境信息是如何影响神经会话系统的。在表2中,我们给出了三个辅助指标,即,句子长度,熵,和多样性。前两者在Serban 等人(2016)和Mou等人(2016)中使用,而后者在Zhang和Hurley(2008)中使用。

如图所示,与上下文不敏感的模型相比,上下文敏感的会话模型更倾向于生成更长的、更有意义的和多样性的回复,因此它们也能改善BLEU评分。

这表明了神经序列生成的一个有趣现象:编码解码器框架需要足够的源信息来生成目标的有意义的生成;它不会从无意义的输入中掉入有意义的上下文。在我们之前的工作中也有类似的现象(Mou et al.,2016);我们表明,如果网络从一个给定的(有意义的)关键字开始,它将生成更有意义的句子。这些结果也部分地解释了为什么seq2seq神经网络在开放领域的会话中往往会产生简短而普遍相关的回复,尽管它在机器翻译、抽象概括等方面取得了成功。

4 总结

在此工作中,我们分析了生成会话模型中上下文的影响。我们在现有的方法和我们新提出的变种之间进行了系统的比较,这些变种通过上下文查询相关性显式地加权上下文向量。

我们表明,层次RNNs通常优于非层次RNNs,显式加权上下文信息可以强调相关的上下文话语,弱化相关性较小的内容。

我们的实验也揭示了一个有趣的现象:有了上下文信息,神经网络往往会产生更长的、更有意义、更多样的回复,这启发了神经序列生成。

(完)

转载声明

End.

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

扫码关注腾讯云开发者

领取腾讯云代金券