翻译&学习|ACL2017|Modeling Situations in Neural Chat Bots

来源:互联网 发布:免费图片恢复软件 编辑:程序博客网 时间:2024/06/07 01:26

第一遍读这篇论文,首先是进行直译,后再更新自己的理解

摘要:社交媒体积累了大量在线对话,可以实现聊天对话的数据传输的建模。 然而,尽管其在机器翻译中已经获得成功,但仍然难以将基于神经网络的seq2seq模型(该博客介绍得很详细)用于对话建模。 主要的挑战来自产出的高度自由度(响应)。 本文提出了具有处理影响我们的反应的各种情况的一般机制的神经对话模型。 从Twitter收集的大规模对话数据的响应选择测试证实了所提出的模型的有效性,其结果来自于话语,用户或时间。

正文:

1 Introduction

社交媒体对话数据越来越多,开启了面向非任务型或聊天对话的数据驱动建模的大门(Ritter等,2011)。 数据驱动模型假设响应生成是序列映射任务的序列,最近的是基于神经的SEQ2SEQ模型(Vinyals和Le,2015; Shang等,2015; Li et al。,2016a,b; Xing et al。,2017)。 然而,与机器翻译中的神经SEQ2SEQ模型的公认成功相比,这些神经模型产生的响应的充分性有一些不足之处(Johnson等,2016)。

机器翻译和聊天对话建模中的对比结果可以通过给定输入的输出自由度的差异来解释。 在聊天对话中对给定说话的适当回应并不是整体的。 然而,由于在实际的对话数据中只提供了一个基本的真相回应,所以监督的系统在从广泛的可能响应中进行选择时会犹豫不定。

那么,人类如何决定如何应对呢? 我们与其他人交谈(隐含地)不仅考虑了话语,还考虑了其他各种会话情况(第2节),如时间,地点,以及当前的对话环境,甚至
我们与收件人的关系。 例如,当一个朋友说“我觉得很困”时,早上可能会有一个可能的答案是“你们整夜吗?”(图1)。 如果朋友在午夜说同样的话,你可能会说“现在是睡觉的时候了”,或者如果朋友和你一起开车,你可以回答“如果你睡着了,我们就会死”。

对话中的建模情况在聊天对话建模中一直是一个开放的问题,这一困难部分地迫使我们将重点放在面向任务的对话系统上(Williams and Young,2007),其回应的领域是低度自由 和目标特异性。 虽然一些研究试图利用演讲者的情绪(长谷川等,2013)或个人特征(Li et al。,2016b)和话题(Xing等,2017)等会话情境,但是这些方法是专门设计的 使用特定类型的情况进行评估和评估。

在这项研究中,我们探索具有通用机制的神经对话模型,以融合聊天对话背后的各种类型的情况(§3.2)。 这些模型分别考虑了扬声器侧和收件人侧(或响应者)在编码语音和解码其响应时的情况。 为了捕捉会话情况,我们设计了两种机制,这两种机制在给定情况对生成响应的影响有多强。

在实验中,我们通过结合三种类型的具体会话情境(第2段)分别讨论了提议的对话模型:话语,发言者/收件人(简介)和时间(季节)。 虽然模型能够产生响应,但我们通过响应选择测试来评估模型,以避免生成响应的自动评估指标中的已知问题(Liu et al。,2016a)。 使用Twitter的大量对话数据获得的实验结果表明,建模对话情境提高了响应的相关性(第4节)。

2 Conversational situations

各种会话情况可能会影响我们对收件人的回应(或初始发言)。 由于神经会话模型需要大量数据来训练可靠的模型,因此我们的研究调查了自然给出的对话情境,或者以无监督的方式进行识别,以使实验设置成为可行。

在这项研究中,我们将对话情境视为离散变量。 这允许模型通过如下所述的分布式表示等将它们分类到适当的情况类型中来处理测试中的未知情况,并且有助于分析输出。 我们在对话数据集(§4)中考虑以下会话情境对每个话语和响应,并将情境聚类,将特定情境类型分配给对话模型的训练数据中的话语和响应。

话语 输入话语(由系统应答)是一个主要的会话情况,已经由神经的SEQ2SEQ模型中的编码器建模。然而,我们可能能够诱导在话语中表示但不被SEQ2SEQ顺序编码器捕获的情况的不同方面(Sato等人,2016)。我们首先在我们的对话数据集中通过平均word2vec向量(从我们的对话数据集(§4.1)预先训练))获得的分布式表示来表达话语响应对中的每个话语对于话语中的单词。然后通过k均值聚类来分类话语以识别话语类型

用户(个人资料) 用户特征应影响他/她的回应,如Li et al。 (2016b)已经讨论过。我们将对话数据集(§4.1)中每个用户提供的个人资料分类,以获取特定于演讲者和收件人的对话情境。与输入语句相同,我们首先通过对用户简档中的动词,名词和形容词的预训练的word2vec向量进行平均来构造每个用户简档的分布式表示。然后通过k-means聚类来分类用户以识别用户类型。

时间(季节) 我们的话语可以在我们说话时受到影响,如第1节所示,所以我们把时间作为一个会话情况。根据我们数据集中的发音时间和响应,我们将对话数据分为四个季节类型:春季(3月 - 5月),夏季(6月 - 8月),秋季(9月 - 11月) )和冬季(12月至2月)。这种分裂反映了日本的气候,因为我们的数据是日本人,他们的发言人大多住在日本。

在训练我们的神经会话模型时,我们分别使用上述会话情境类型分别为扬声器侧和收听者(响应方)。请注意,话语方面的情况只能由演讲者考虑,因为它的响应是响应生成中看不到的。在测试中,通过找到通过训练数据中的话语(简档)的k均值聚类获得的最接近的质心来识别用于输入话语(或说话人和收件人的简档)的会话情境类型。

3 Method

我们的神经会话模型基于SEQ2SEQ模型(Sutskever等,2014),并整合了在演讲者和收件人方面融入各种会话情境(§2)的机制。 在下文中,我们简要介绍了SEQ2SEQ对话模型(Vinyals和Le,2015),然后描述了融合会话情境的两种机制。

3.1 SEQ2SEQ conversational model

SEQ2SEQ会话模型(Vinyals和Le,2015)由称为编码器和解码器的两个循环神经网络(RNN)组成。 编码器将每个话语的单词作为输入,并将输入序列编码为表示发音的实值向量。 解码器然后将编码矢量作为其初始状态,并继续产生最可能的下一个字,并将该字输入到其自身,直到它最终输出EOS。

3.2 Situation-aware conversational models

设计情境感知神经会话模型的挑战是如何将给定的对话情境注入RNN编码器或解码器。 在本文中,我们提出了两种情境神经对话模型,它们在给定情况下的效果有多么不同。

3.2.1 Local-global SEQ2SEQ

由于近来在深层神经网络的多任务学习中取得成功(Liu等人,2016c,b; Gupta等,2016; Luong等,2016),局部 - 整体SEQ2SEQ训练了两种类型的RNN编码器 解码器,用于模拟情境特定对话和通用对话(图2)。

局部RNN旨在在演讲者和收件人双方的个人会话情境中建模对话。 每个本地RNN仅在相应情况下的对话上被训练(即,其参数被更新)。 这种建模的一个突出的缺点是给予每个局部RNN的训练数据的大小随着情况类型数量的增加而减少。

为了解决这个问题,我们结合了所有对话数据训练的另一个整体RNN编码器和解码器,并对编码器和解码器的两个RNN的隐藏状态hs进行加权和,得到的输出为:



3.2.2 SEQ2SEQ with situation embeddings

局部 - 整体SEQ2SEQ(§3.2.1)假定具有不同情况的对话涉及彼此独立的不同域(或任务)。 然而,这种假设在某些情况下可能太强大,因此我们设计了另一种弱势的情景认知对话模式。

我们将演示者和收件人侧面sk'和sk''的给定情况作为情境嵌入,然后在处理序列之前将其馈送到编码器和解码器(图3):



该编码受到神经机器翻译系统(Johnson et al。,2016)的启发,可以使用单一模型进行多语言翻译。 而将目标语言嵌入到编码器来控制目标语言,而将编码器和收件人端的情况输入到解码器。