(27)[ICML15] A Neural Conversational Model

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37993251/article/details/88777514

计划完成深度学习入门的126篇论文第二十七篇,Google的Oriol及Quoc V.Le领导研究的chatbox S2S。


ABSTRACT&INTRODUCTION

摘要

会话建模是自然语言理解和机器智能研究中的一个重要课题。尽管存在以前的方法,但它们通常限于特定的域(例如,预订机票),并且需要手工制定规则。在本文中,我们提出了一个简单的方法来完成这一任务,它使用了最近提出的序列对序列框架。我们的模型通过预测对话中的一个或多个句子来预测下一个句子。我们的模型的优势在于它可以端到端的训练,因此需要更少的手工规则。我们发现,这个简单的模型可以生成简单的对话给定一个大的会话训练数据集。我们的初步结果表明,尽管优化了错误的目标函数,但该模型能够很好地转换。它可以从特定领域的数据集和大型、有噪声的、通用的电影字幕领域数据集中提取知识。在特定领域的IT帮助台数据集中,模型可以通过对话找到技术问题的解决方案。在一个有噪声的开放域电影文本数据集上,该模型可以执行简单形式的常识推理。正如所料,我们还发现缺乏一致性是我们模型的常见故障模式。

介绍

神经网络端到端训练的发展使语音识别、计算机视觉和语言处理等领域取得了显著进展。最近的研究表明,神经网络不仅仅是简单的分类,它们还可以用于将复杂结构映射到其他复杂结构。一个例子是将一个序列映射到另一个序列,该序列在自然语言理解中有直接的应用(Sutskever et al., 2014)。该框架的主要优点是,它在匹配或超过最先进的结果的同时,不需要太多的特性工程和领域特异性。我们认为,这一进展使研究人员能够从事领域知识不容易获得的任务,或者从事手工设计规则过于困难的任务。

会话建模可以直接从这个公式中受益,因为它需要查询和响应之间的映射。由于这种映射的复杂性,会话建模以前被设计为在领域内非常狭窄,主要任务是特性工程。在这项工作中,我们使用会话建模任务进行实验,将其转换为使用递归网络预测给定前一个或多个序列的下一个序列(Sutskever et al., 2014)。我们发现,这种方法在流畅而准确地回答对话方面表现得出奇地好。

我们从一个IT helpdesk dataset中在聊天会话上测试模型,发现模型有时可以跟踪问题并为用户提供有用的答案。我们还对从电影字幕噪声数据集中获得的对话进行了实验,发现该模型可以进行自然的对话,有时还可以执行简单的常识推理。在这两种情况下,与n-gram模型相比,循环网络获得了更好的perplexity,并捕获了重要的长期相关性。从定性的角度来看,我们的模型有时能够产生自然的对话。

2. Related Work

我们的方法是基于最近提出的利用神经网络将序列映射到序列(Kalchbrenner & Blunsom, 2013; Sutskever et al., 2014; Bahdanau et al., 2014)。这个框架是用于神经机翻译,对WMT 14数据集的英法英德翻译任务进行改进(Luong et al., 2014; Jean et al., 2014).。它还被用于其他任务,如解析(Vinyals et al., 2014a)和图像字幕(Vinyals et al., 2014b)。由于众所周知,普通的RNNs存在逐渐消失的梯度,大多数研究人员使用了长短时记忆(LSTM)递归神经网络的变体(Hochreiter & Schmidhuber, 1997)。

我们的工作也受到最近神经语言建模成功的启发(Bengio et al., 2003; Mikolov et al., 2010; Mikolov, 2012),2010;这表明,递归神经网络是一种非常有效的自然语言模型。最近,Sordoni et al. (Sordoni et al., 2015)和Shang et al. (Shang et al., 2015)使用递归神经网络对简短的对话(训练有素的twitter风格的聊天)中的对话进行建模。

在过去的几十年中,构建机器人和会话代理一直是许多研究人员所追求的目标,本文不打算提供一个详尽的参考文献列表。然而,大多数这些系统需要一个相当复杂的处理管道的许多阶段(Lester et al., 2004; Will, 2007; Jurafsky & Martin, 2009)。我们的工作不同于传统的系统,提出了一个端到端方法来解决缺乏领域知识的问题。原则上,它可以与其他系统相结合,重新对候选答案列表进行评分,但是我们的工作是基于生成经过训练的概率模型给出的答案,该模型的目的是在给定的上下文中最大化答案的概率。

3. Model

我们的方法利用了(Sutskever et al., 2014)中描述的序列到序列(seq2seq)框架。该模型基于递归神经网络,每次读取一个令牌,预测一个令牌的输出序列。在训练过程中,模型得到真实的输出序列,通过反向传播进行学习。该模型经过训练,在给定上下文的情况下,使正确序列的交叉熵最大化。在推理过程中,假设没有观察到真实的输出序列,我们只需将预测的输出令牌作为输入来预测下一个输出。这是一种贪婪推理方法。一个不那么贪婪的方法是使用beam搜索,并在前一步向下一步提供几个候选对象。根据预测序列的概率选择预测序列。

具体地说,假设我们观察到一个对话有两个回合:第一人称发ABC,第二人称回复WXYZ。我们可以使用一个递归神经网络,并训练将ABC映射到WXYZ,如图1所示。

当接收到序列符号<eos>的末尾时,模型的隐藏状态可以看作是思想向量,因为它存储了句子或思想ABC的信息。

该模型的优点在于其简单性和通用性。我们可以使用此模型进行机器翻译、问题/回答和对话,而不需要对体系结构进行重大更改。将此技术应用于会话建模也很简单:输入序列可以是到目前为止所交谈内容(上下文)的串联,输出序列是应答。与简单翻译等任务,

然而,一个模型就像sequence-to-sequence将无法成功地解决问题的建模对话由于几个明显的简化:被优化的目标函数不捕获实际的目标通过人类交流,通常是长期和基于交换信息而不是下一步预测。缺乏一个模型来确保一致性和一般的世界知识是纯无监督模型的另一个明显限制。

4. Datasets

在我们的实验中,我们使用了两个数据集:一个封闭域的IT helpdesk故障诊断数据集和一个开放域的电影文本数据集。这两个数据集的详细信息如下。

4.1. IT Helpdesk Troubleshooting dataset
4.2. OpenSubtitles dataset

5. Experiments

在本文中,我们证明了一个基于seq2seq框架的简单语言模型可以用来训练会话引擎。我们的结果表明,它可以生成简单而基本的对话,并从一个嘈杂但开放的数据集中提取知识。尽管该模型有明显的局限性,但我们感到惊讶的是,没有任何规则的纯数据驱动方法可以对许多类型的问题产生相当正确的答案。然而,模型可能需要大量的修改,以便能够交付实际的对话。在许多限制中,缺乏连贯的个性使得我们的系统很难通过图灵测试(图灵,1950)。

猜你喜欢

转载自blog.csdn.net/weixin_37993251/article/details/88777514