一种基于神经网络的对话模型

摘要

   对话模型在自然语言理解和机器智能方面是一个非常重要的任务。尽管之前已经有一些方法,但是他们受限于特定的领域(比如:预定机票)而且需要手动指定规则。在这篇文章中,我们针对这个任务展现了一种简单的方法,这种方法使用最近被提出的sequece to sequece 框架。我们的模型通过给定之前的对话中的句子来预测下一个句子的方式进行交谈。我们模型的有点就是它可以进行端到端的训练,因此需要风少的手动指定规则。我们发现这个直接的模型可以通过一个大量的基于对话的训练数据集生成简单的对话。我们的初步结果指出,尽管优化了错误的目标函数,但是模型仍然运行的很好。它能从某个特定领域数据集和一个大量的包含噪音的电字母一般性数据集中抽取知识。在一个特定领域的IT帮助台数据集中,模型可以冲过对话找出解决耨一个技术问题的方案。通过一个包含噪音的开放性的电影剧本数据集中,该模型可以执行简单的形式的常识推理。正如期望的一样,我们也发现了我们的模型一种常见的失败模式-缺乏连贯性。
   
一、引言

   神经网络的端到端训练的进展在许多领域都得到了显著的进展,如方言识别,计算机视觉和语言来处理。最近的工作表明,神经网络可以做的不仅仅是单纯的分类,他们可以用来映射复杂的其他复杂结构的结构。举个例子,有一个将一个序列映射成另一个序列的任务,这种任务在自然语言理解方面有直接的应用。这个框架的主要优点是,他需要很少的特征工程和领域特征,同时匹配或超越了国家的先进成果。这种进步,在我们看来,允许研究人员所工作的领域的任务涉及的知识可能不是现成的,或针对任务很难设计手动规则。对话模型可以直接受益于这一提法因为它需要查询和查询之间的映射关系响应。由于这种影响的复杂性,设计会话模型都是在非常狭窄的领域,在特征工程方面也需要有所保证。我们采用对话模型试验的目的就是采用递归神经网络,通过给定序列预测下一序列。我们发现这种方法在产生流利和准确的对话的答复方面可以做得很好。
   我们在一个IT帮助台的对话数据集的聊天会话上测试模型,发现该模型有时可以跟踪问题并提供一个有用的答案给用户。我们也从一个嘈杂的电影字幕的数据集的对话中实验,发现该模型可以有一个自然的对话,有事会执行常识推理的简单形式。在这两个案例中,递归神经网络相比n元文法模型,得到更好的困惑度以及捕捉到重要的长范围相关性。从定性的角度来看,我们的模型有时能够产生自然的对话。

二、相关研究

   我们的方法是基于最近的研究,该研究提出使用神经网络将一个序列映射到另一个序列。这个框架已经在神经机器翻译得到应用以及在沃尔玛14年数据集上进行应发和英德翻译任务方面得到提高。它也被用于其他任务,如图像解析和图像字幕。众所周知,普通Rnn网络容易造成梯度消失,大多数研究人员使用长的变体短期记忆(LSTM)递归神经网络(霍克赖特和所说的,1997)。
   我们的工作也受到基于神经网络的语言模型的成功的启发,它表明神经网络是自言语言的一种相当有效的模型。最近,索尔多尼和Shang等人应用递归神经网络到剪短的对话模型上。
   建造机器人和对话代理一直是许多研究人员在过去几十年里的追求,本文不再提供详细的参考列表。然而,大多数这些系统需要一个相当复杂的有许多阶段构成的处理管道。我们的工作不同于传统的系统。它提出一个终端到终端的方法来解决这个问题,不需要领域知识。原则上,它可以结合其他系统,重新评定候选回答的短列表,但我们的工作是基于生成的答案给定一个概率模型进行训练,以最大限度地给出了基于一些上下文的答案的概率。

三、模型

   我们的方法使用序列到序列(seq2)框架所描述的。该模型是基于一个递归神经网络,一次读取一个输入序列,并预测输出序列。在训练过程中,真正的输出序列由模型给出,所以可以通过反向传播学习模型。模型训练是为了最大限度的提高由上下文提供的正确的序列的交叉熵。在推理过程中,给定的真正的输出序列并没有看到,而是简单的将预测的输出作为输入来预测下一个输出。这是一种贪婪的推导方法。一种不那么贪婪的方法时使用波束搜索,并在以前的过程中得到几个候选方案传给下一步。这种预测的序列可以是基于概率选择的。
   
   集体来讲,假设我们观察到一个两轮对话,第一个人说:”ABC”,第二个人说:“WXYZ”。我们可以使用一个递归神经网络,如上图1所示,训练将”ABC”映射到“WXYZ”,当它接收到的模型的隐藏状态序列结束符号“< EOS >”可以看作是结束。
   该模型的有点在于它的简单性和通用性。我们可以应用这个模型在机器翻译,QA问答系统,和没有重大改变的对话中。将这种技术应用到会话建模也非常简单:简单的序列可以是由到目前为止的上下文转换得到的一系列序列,输出序列则是答复。
   不同于翻译这样简单的任务,一个像sequece to sequece这样的模型将无法成功解决建模对话的问题,因为一个明显的简化:目标函数优化不捕获通过人类沟通得到的实际目标实现,这是典型的长期的基于信息交换的而不是基于下一步预测。一个模型缺乏一致性和一般的世界知识是另一个明显的纯粹的无监督模型的局限性。

四、数据集

   在我们的试验中采用两类数据集:一个封闭的IT帮助台故障修复数据集和一个开放的电影抄本数据集。这两部分数据集的细节如下:
   
4.1 IT帮助台故障修复数据集

   在我们的第一组试验中,我们使用了一个从IT故障排除聊天服务中获取的数据集,在这个服务中,消费者面对电脑相关的问题,一个专家通过交谈和提出解决方案帮助他们解决问题。典型的相互作用(或线程)是400个单词长度,并且轮流作用是明确的信号。我们的训练数据集是30M令牌,3M被用作验证。进行了一定量的数据清洗,如删除共同的名称、数字和完整的网址。
   
4.2 开放电影字幕数据集

   我们还在开发的电影字幕数据集上测试了我们的模型。该数据集包含XML格式的电影对话。它包含电影中人物所说的话。我们使用简单的处理步骤删除XML标签和明显的非会话文本(例如:超链接)数据集。由于轮流说话没有明确表示,我们将连续的句子看做是不同的角色的人说的。我们基于上一句来训练模型来预测下一句,我们针对每一句都这么做(注意到这是我们数据集的一杯并且每一个机组都用于上下文和目标)。我们的训练集和验证集是分开的,训练集样本是62M的序列(923令牌),验证集26M(395M 令牌)。这样分割是为了似的一组序列要么出现在训练集中,要么出现在测试集中但不是同时出现。不想之前的数据集,该opensubtitles是相当大的和嘈杂的,因为连续的句子有可能是同一个任务所说。给定广泛的电影,和技术故障排除数据集相比,这是一个开放域的会话数据集。

五、实验
   
   在这一节中,我们描述了基于两个数据集的试验结果,并显示了一些我们训练的系统给出的相互作用的样本。我们使用一组200个问题的评价数据集,将我们的系统的性能和一个流行的以规则为基础的的Bot做了比较。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值