从不同的角度对最近的对话系统的进展进行概述以及未来研究方向Word文档格式.docx
《从不同的角度对最近的对话系统的进展进行概述以及未来研究方向Word文档格式.docx》由会员分享,可在线阅读,更多相关《从不同的角度对最近的对话系统的进展进行概述以及未来研究方向Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
在本文中,作者从不同的角度对这些最近的关于对话系统的进展进行概述,并讨论了一些可能的研究方向。
具体来说,对话系统大致可分为两种:
(1)任务导向型(task-oriented)对话系统和
(2)非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)。
面向任务的系统旨在帮助用户完成实际具体的任务,例如帮助用户找寻商品,预订酒店餐厅等。
面向任务的系统的广泛应用的方法是将对话响应视为一条管道(pipeline),如下图所示:
系统首先理解人类所传达的信息,将其作为一种内部状态,然后根据对话状态的策略采取一系列相应的行为,最后将动作转化为自然语言的表现形式。
虽然语言理解是通过统计模型来处理的,但是大多数已经部署的对话系统仍然使用手工的特性或手工制定的规则,用于状态和动作空间表示、意图检测和插槽填充。
非任务导向的对话系统与人类交互,提供合理的回复和娱乐消遣功能,通常情况下主要集中在开放的领域与人交谈。
虽然非任务导向的系统似乎在进行聊天,但是它在许多实际应用程序中都发挥了作用。
数据显示,在网上购物场景中,近80%的话语是聊天信息,处理这些问题的方式与用户体验密切相关。
一般来说,对于非任务导向型对话系统,目前用的主要是两种主要方法:
(1)生成方法,例如序列到序列模型(seq2seq),在对话过程中产生合适的回复,生成型聊天机器人目前是研究界的一个热点,和检索型聊天机器人不同的是,它可以生成一种全新的回复,因此相对更为灵活,但它也有自身的缺点,比如有时候会出现语法错误,或者生成一些没有意义的回复;
(2)基于检索的方法,从事先定义好的索引中进行搜索,学习从当前对话中选择回复。
检索型方法的缺点在于它过于依赖数据质量,如果选用的数据质量欠佳,那就很有可能前功尽弃。
近年来,大数据和深度学习技术的迅猛发展,极大地促进了面向任务和面向非导向的对话系统的发展。
在本篇论文中,作者的目标是
(1)对对话系统进行概述,特别是最近的深度学习的进展;
(2)讨论可能的研究方向。
任务导向型系统
面向任务的对话系统是对话系统的一个重要分支。
在这部分中,作者总结了面向任务的对话系统的管道方法和端到端方法。
管道(Pipeline)方法
任务导向型对话系统的典型结构在之前的图中已经展示,它包括四个关键组成部分:
1)自然语言理解(NaturalLanguageUnderstanding,NLU):
它将用户输入解析为预定义的语义槽。
如果有一个话语,自然语言理解将其映射为语义槽。
插槽是根据不同的场景预先定义的。
上图展示了一个自然语言表示的示例,其中“NewYork”是指定为slot值的位置,并且分别指定了域和意图。
典型的,有两种类型的表示。
一个是话语层次类别,如用户的意图和话语类别。
另一个是字级信息提取,如命名实体识别和槽填充。
对话意图检测是为了检测用户的意图。
它将话语划分为一个预先定义的意图。
2)对话状态跟踪(DialogueStateTracker,DST)。
对话状态跟踪是确保对话系统健壮性的核心组件。
它在对话的每一轮次对用户的目标进行预估,管理每个回合的输入和对话历史,输出当前对话状态。
这种典型的状态结构通常称为槽填充或语义框架。
传统的方法已经在大多数商业实现中得到了广泛的应用,通常采用手工规则来选择最有可能的输出结果。
然而,这些基于规则的系统容易出现频繁的错误,因为最可能的结果并不总是理想的。
最近深度学习采用的方法是使用一个滑动窗口输出任意数量的可能值的概率分布序列。
虽然它在一个领域受过训练,但它可以很容易地转移到新的领域。
此处运用较多的模型是,multi-domainRNNdialogstatetrackingmodels和NeuralBeliefTracker(NBT)。
3)对话策略学习(Dialoguepolicylearning)。
根据状态跟踪器的状态表示,策略学习是生成下一个可用的系统操作。
无论是监督学习还是强化学习都可以用来优化政策学习。
监督学习是针对规则产生的行为进行的,在在线购物场景中,如果对话状态是“推荐”,那么触发“推荐”操作,系统将从产品数据库中检索产品。
强化学习方法的引入可以对对话策略进行进一步的训练,以引导系统制定最终的策略。
在实际实验中,强化学习方法的效果超过了基于规则和监督的方法。
4)自然语言生成(NaturalLanguageGeneration,NLG)。
它将选择操作进行映射并生成回复。
一个好的生成器通常依赖于几个因素:
适当性、流畅性、可读性和变化性。
传统的NLG方法通常是执行句子计划。
它将输入语义符号映射到代表话语的中介形式,如树状或模板结构,然后通过表面实现将中间结构转换为最终响应。
深度学习比较成熟的方法是基于LSTM的encoder-decoder形式,将问题信息、语义槽值和对话行为类型结合起来生成正确的答案。
同时利用了注意力机制来处理对解码器当前解码状态的关键信息,根据不同的行为类型生成不同的回复。
2.端到端(end-to-end)方法
尽管传统的面向任务的对话系统中有许多特定领域的手工制作,但它们很难适应新的领域,近年来,随着端到端神经生成模型的发展,为面向任务的对话系统构建了端到端的可训练框架。
值得注意的是,当我们引入非面向任务的对话系统时,将讨论关于神经生成模型的更多细节。
与传统的管道模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。
上图的模型是一种基于网络的端到端可训练任务导向型对话系统,将对话系统的学习作为学习从对话历史到系统回复的映射问题,并应用encoder-decoder模型来训练。
然而,该系统是在监督的方式下进行训练——不仅需要大量的训练数据,而且由于缺乏对训练数据对话控制的进一步探索,它也可能无法找到一个好的策略。
随着强化学习研究的不断深入,上图的模型首先提出了一种端到端强化学习的方法,在对话管理中联合训练对话状态跟踪和对话策略学习,从而更有力地对系统的动作进行优化。
非任务导向型系统
不同于任务导向型对话系统,它的目标是为用户完成特定的任务,而非任务导向的对话系统(也称为聊天机器人)专注于在开放的领域与人交谈。
一般来说,聊天机器人是通过生成方法或基于检索的方法实现的。
生成模型能够生成更合适的回复,而这些回复可能从来没有出现在语料库中,而基于检索的模型则具有信息充裕和响应流畅的优势。
1.神经生成模型(NeuralGenerativeModels)
深度学习在机器翻译中的成功应用,即神经机器翻译,激发了人们对神经生成对话研究的热情。
目前神经生成模型的热门研究课题大概有如下几个方面。
1.1Sequence-to-SequenceModels
给定包含个词语的输入序列(message))
和长度为T的目标序列(response)
模型最大化Y在X下的条件概率:
具体来说,Seq2Seq模型是在encoder-decoder结构中,下图是这种结构的示意:
编码器将X逐字读入,并通过递归神经网络(RNN)将其表示为上下文向量c,
然后解码器将c作为输入估计Y的生成概率。
(1)
Encoder
Encoder过程很简单,直接使用RNN(一般用LSTM)进行语义向量生成:
其中f
是非线性函数,例如LSTM,GRU,
是上一隐节点输出,是当前时刻的输入。
向量c通常为RNN中的最后一个隐节点(h,Hiddenstate),或者是多个隐节点的加权和。
(2)Decoder
模型的decoder过程是使用另一个RNN通过当前隐状态来预测当前的输出符号
,这里的和都与其前一个隐状态和输出有关,Seq2Seq的目标函数定义为:
2.对话上下文(DialogueContext)
考虑对话的上下文信息的是构建对话系统的关键所在,它可以使对话保持连贯和增进用户体验。
使用层次化的RNN模型,捕捉个体语句的意义,然后将其整合为完整的对话。
同时,分别用字级别和句子级别的注意力方法扩展层次化的结构。
试验证明:
(1)层次化RNNs的表现通常优于非层次化的RNNs;
(2)在考虑上下文相关的信息后,神经网络趋向于产生更长的、更有意义和多样性的回复。
在上图中,作者通过代表整个对话历史(包括当前的信息),用连续的表示或嵌入单词和短语来解决上下文敏感回复生成的这一难题。
在上图的结构中作者引入两个层次的Attention机制,让模型能够自动的学到词语与句子级别的重要度信息,从而更好的生成新一轮的对话。
作者在句子级别的信息中,是反向学习的,即认为下一句的信息中更能够包含上一句的信息,所以从总体上来看,其对于对话的学习是逆向使用每一轮对话的内容的。
1.3回复多样性(ResponseDiversity)
在当前Seq2Seq对话系统中,一个具有挑战性的问题是,它们倾向于产生无关紧要的或不明确的、普通的、几乎没有意义的回复,而这些回复常常涉及到一些诸如“Idontknow”,“IamOK”这样的无意义回复。
解决这类问题的一个很有效的方法是找到并设置一个更好的目标函数。
除此之外,解决此类问题的一个方法是增加模型的复杂度。
下图这篇论文《BuildingEnd-To-EndDialogueSystems
UsingGenerativeHierarchicalNeuralNetworkModels》使用了latentvariable来解决无意义回复这个问题。
1.4主题和个性化(TopicandPersonality)
明确对话的内在属性是提高对话多样性和保证一致性的另一种方法。
在不同的属性中,主题和个性被广泛地进行研究探讨。
在下图的模型中,作者注意到人们经常把他们的对话与主题相关的概念联系起来,并根据这些概念做出他们的回复。
他们使用TwitterLDA模型来获取输入的主题,将主题信息和输入表示输入到一个联合注意模块中,并生成与主题相关的响应。
下图的模型提出了一种两阶段的训练方法,使用大规模数据对模型进行初始化,然后对模型进行微调,生成个性化响应。
1.5外部知识库(OutsideKnowledgeBase)
人类对话与对话系统之间的一个重要区别是它是否与现实相结合。
结合外部知识库(KB)是一种很有前途的方法,可以弥补背景知识