对话系统介绍和基础神经网络模型(三)

 链接对话系统介绍和基础神经网络模型

链接对话系统介绍和基础神经网络模型(二)

3、面向任务式对话系统

本章介绍面向任务式对话系统,包括管道方式和端到端系统。面向任务的系统解决特定领域中的特定问题,如电影票预定、餐厅餐桌预定等。由于深度学习突出的性能,我们重点描述基于深度系统的任务式对话系统。我们将介绍模块化系统和端到端系统的原理以及面向任务式对话系统的相关挑战和热点研究话题。

面向任务式对话系统旨在准确地处理用户消息,因此对响应约束提出了更高的要求。因此,提出了管道方式的方法,以更加可控的方式生成响应。图3-1描述了基于管道方式的体系结构:

对话系统介绍和基础神经网络模型(三)_第1张图片

3.1、管道方式

(1) 自然语言理解

该模块将原始用户消息转换为语义槽,以及领域和用户意图的分类。如图3-2所示:

对话系统介绍和基础神经网络模型(三)_第2张图片

(2) 对话状态追踪

该模块基于当前输入和对话历史,迭代的校准对话状态;其中对话状态包括相关用户动作和槽值对。

(3) 对话策略学习

该模块根据对话状态追踪校准后的对话状态,决定对话代理下一步动作。

(4) 自然语言生成

该模块将选定的对话动作转换为自然语言反馈给用户。

其中,对话状态和对话策略学习构成了对话管理,它是面向任务式对话系统的中央控制器。通常,面向任务的系统还需要与外部知识库进行交互,以检索与目标任务相关的基本知识。例如,在预定电影票任务中,代理在理解了用户消息需求时后,与电影知识库交互,检索带有特定约束的电影信息,如电影名称、时间、电影院等。

3.1.1、自然语言理解

自然语言理解模块在响应质量方面对整个系统有显著影响;自然语言理解模块将用户产生的自然语言消息转换为语意槽并进行分类(图3-1所示)。其中涉及三个任务:领域分类、意图检测和槽填充。领域分类和意图检测是一类分类问题,它们利用分类器预测输入语言序列到预定义标签集的映射关系。在给定例子中,预测的领域是“movie”,意图是“find_movie”。槽填充是一个序列标注问题,它将原始用户消息映射成一串槽值序列。比如将“Golden”和“Village”分别预测为“B-desti”和“I-desti”;“B”表示槽值名的开始,“I”表示槽值名内部片段。对于那些与预定义标签集不相关的字符,用“o”来进行标记。这种标记方式被成为BIO标记法[1].

3.1.1.1、领域分类和意图检查技术

领域分类和意图检查同属分类任务,通过深度学习的方法来解决对话领域意图和分类问题,其中包括构建深度凸网络,将先验网络的预测和当前对话结合起来,作为当前网络的总体输入。为了解决深度神经网络用于领域和意图预测的困难,有学者使用受限玻尔兹曼机和深度信念网络来出初始化深度神经网络的参数。为了利用循环神经网络在序列处理方面的优势,一些工作使用循环神经网络作为对话编码器,并对意图和领域类别进行预测。通过使用CNN提取层次文本特征,说明了CNN的序列分类能力;有学者提出了一个短文本意图分类模型,由于单个对话回合缺乏信息,短语句难以进行意图识别;利用循环神经网络(RNN)和CNN结构融合对话历史,获得上下文信息作为当前回合信息的额外输入。该模型在意图分类任务上取得了良好性能,最近,通过预训练面向任务的对话BERT,该方式在意图检测任务中取得了较高的准确率[6]。所提出的方法表现出比较强的小样本学习能力,可以有效缓解特定领域的数据不足问题。

3.1.1.2、槽值填充技术

槽值填充又称语义标注问题,是一种序列分类问题。该模型需要同时预测多个目标。深度信念网在深度结构的学习中表现出良好的能力;有学者构建一个基于深度信念网络的序列标记器,除了传统标记器中使用的命名实体识别输入特征外,还将词性和句法特征结合起来作为输入的一部分。循环结构有利于序列标记任务,因为它们可以沿着过去的时间步追踪信息,以最大限度地利用序列信息。Yao 首先提出, RNN语言模型(RNN-LMs)可以应用于序列标注,而不是简单地预测单词;在RNN-LMs的输出端为输入词对应的序列标签而非正常的词汇。Mesnil进一步研究了不同循环结构在槽填充任务中的影响,发现所有的RNN模型都优于单纯的条件随机场方法[8]。由于传统语义标注的浅层输出表示缺乏表达结构化对话信息的能力,通过迭代地生成和填充模板,将槽填充任务视为基于模板的树解码过程。

 

3.1.2.、对话状态追踪

对话状态追踪是对话管理器的第一个模块,根据整个对话历史记录,每轮跟踪用户的目标和相关细节,为策略学习模块提供决策行为需要的信息。自然语言理解和对话状态追踪之间有着密切的联系,二者都要对对话信息进行槽填充;然而实际上它们扮演着两种不同的角色。自然语言理解模块试图对当前用户消息进行分类,比如意图识别和领域识别,以及每个消息字符所属的槽。例如,给定一条用户消息“推荐一部今晚在王府井的电影”,自然语言理解模块会将原始消息转变为“inform(domain=movie;destination=wangfujing;date=today;time=evening)”,然而,对话状态追踪模块并不对用户消息进行分类或标记。相反,它试图根据整个对话历史,为预先存在的槽值列表中的每个槽名称找到对应的槽值。例如,“intent:_; domain:_;name:_;pricerange:_;genre:_;destination:_;date:_”,冒号后面的下划线为占位符,表示这个位置可以进行槽值填充。在每一对话回合中,对话状态追踪模块都会查找到当前回合为止的整个对话历史,并决定哪些内容可以填充到槽列表中的特定槽中。如果用户消息仅为“推荐一部今晚在王府井的电影”,那么该槽值列表可以填写为“intent:订电影票; domain:电影;name:未知;pricerange:未知;genre:未知;destination:王府井;date:今天”,用户未指定的槽位到当前回合可以填充为”未知“。总之,自然语言理解模块试图标记用户消息,而对话状态追踪试图从用户消息中找到槽值,以填充已存在的槽值列表。

对话状态包含回应中要传达的所有重要信息,具体来说,对话状态由三部分组成:

(1)与信息槽相对应的目标约束:约束可以是用户在对话中提到的特定值,也可以是一个特殊的值,特殊值包括Dontcare,表示用户对该槽漠不关心;”未知“表示用户在对话中还没有指定该值。

(2)请求槽值:用户向代理寻求回复时所查询的槽值列表。

(3)当前回合的搜索方法:由指示交互类别的值组成。通过约束constraints表示用户试图在需求中指定约束信息;由替代项alternative表示用户需要一个替代的实体;Finish表示用户打算结束对话。

3.1.3、自然语言生成

自然语言生成是面向任务对话系统管道方式中的最后一个模块。它设法将对话管理器生成的对话动作转换为最终的自然语言表示。例如:”inform(name='泰坦尼克号';type="爱情";destination="王府井")“作为策略学习模块的对话动作,然后自然语言生成模块将其转变为语言表征,如”王府井有一部名为《泰坦尼克号》的动作电影“。

3.1.3.1、自然语言生成技术

端到端的自然语言生成技术取得了很好的性能提升,是自然语言生成应用中较为广泛的方法。Wen认为自然语言生成应该是完全数据驱动的,而不是依赖于任何预先定义的规则,因此提出了一个基于循环神经网络的统计语言模型,通过语义约束和语法树学习响应生成。此外,涉及CNN排序器来进一步选择更好的回答。Tran使用了GRU进一步提高了多个对话领域任务的生成质量。情感感知在对话回应生成中非常重要,因为仅依赖当前回合的对话动作可能会导致不合逻辑的回应。Zhou构建了一种基于注意力情感感知的LSTM,将用户目标的问题、所有语义值和对话动作作为输入,生成问答中情境感知的响应。同样,有学者将前面用户的话语于对话动作向量拼接,并将其输入到LSTM模型中,在此基础上,在神经网络生成器中设置语法约束;提出一种两阶段的序列生成方法。首先生成语法依赖树,对对话语句进行结构化表示;第二阶段的生成器将句子结构表示和词向量表征相结合;从而生成自然语言表示。

3.2、端到端方式

管道式方法虽然可以取得不错的效果,但是该方式存在两个显著的缺陷:

(1)许多管道式模块有时是不可微分的, 这意味着模块中的错误信息可能无法回传到各个模块。而在真实的对话系统中,通常唯一的信号是用户的响应,而其他有监督的信号,如对话状态和对话动作则很少。

(2)虽然各个模块共同促进了对话系统的成功,但单个模块的改进未必能提高整个系统的响应精度或质量。这就需要对其它模块进行额外训练,这是比骄费时费力的工作。此外,管道方式涉及到手工构建的特征,通常很难将模块化系统转移到另一个领域,因为预定义本体需要进行修改。

在构建端到端的面向任务式的对话系统过程中,使用复杂的神经网络模型隐式地表示关键功能,并将各项模块集成为一个模块。面向任务的端到端神经网络模型的研究主要集中在训练方法或模型架构上,这是响应正确性和质量的关键。Wang 提出了一种增量学习框架来训练他们的端到端任务导向系统。 其主要思想是建立一个不确定性估计模块,以评估所生成响应的置信度。如果置信度高于阈值,则响应将被接受,而如果置信度评分较低,则将引入人工响应。

端到端系统通常是完全由数据进行驱动,这有助于提高模型的健壮性并生成自然的响应。然而,由于标注训练样本的有限性,如何在数据有限的情况下提高面向任务的端到端对话系统的响应质量是一个热点研究问题。利用线性化的树状结构表示作为输入,以获得对篇章级和句子级语义概念的控制[]。Kale 使用模板来提高生成回答的语义正确性,将响应生成分解为两个阶段的过程:首先,在模板的约束下,基于槽值信息生成语义正确但可能不连贯的响应;然后在第二阶段,使用预训练语言模型将生成的语句重新组织为连贯的语句。

3.3、面向任务式对话系统研究挑战和热点

3.3.1、预训练的自然语言理解模型

自然语言理解任务将用户消息转变为预定义的语义槽格式。执行自然语言理解的一种较为流行的方式是对大规模预训练语言模型进行微调。通过在面向任务式对话系统的三个子任务领域识别、意图识别、槽值填充中应用预训练语言模型,包括BERT和GPT等系统,为相关应用方面提供了启示及指导。Wu预训练了TOD-BERT模型,并在意图检测任务中显著优于基线模型;提出的模型还具有较强的少量样本学习能力以缓解数据不足问题。

3.3.2、自然语言理解的领域迁移

自然语言理解研究的另一个挑战或热点是领域迁移问题 ,这也是面向任务式系统的关键问题。通过构建一个RNN-LSTM体系结构,用于领域识别、意图识别、槽值填充问题的多任务学习方式;来自多个领域的训练数据样本被组合在一个单一的模型中,各个领域的数据将相关增强[]。同样,应用槽位描述来发掘不同领域槽位之间的相似语义概念,解决了以往涉及多领域槽值填充任务中遇到的概念对齐局部最优和训练时间长问题。

3.3.3、对话状态追踪的领域迁移

领域适应性也是对话状态追踪阶段的一个重用话题。对话状态追踪中的领域迁移具有挑战性,主要有三个原因:(1)领域变化时所对应的槽值不同,导致了模型的不兼容性。(2)当领域发生变化时,槽位的数目不同,导致了模型参数个数不同。(3)手工构建的词典难以泛化领域。通过使用去词汇化的n-gram特征,利用通用符号替换所有指定的槽名和值来解决领域不兼容问题。

3.3.4、对话状态追踪的追踪效率

追踪效率时对话状态追踪阶段中另一个热点问题。通常,一个对话列表有多个状态,因此在试图减少系统的反应时间时,如何在没有任何冗余步骤的情况下计算槽值就变得非常重要。因此,在每一个回合都从头预测对话状态是没有效率的;他们提出首先预测每个槽上要采取的操作,即:不关心、更新、删除;然后按照预测执行相应操作。Wang提出了槽位注意力来计算槽位和对话上下文之间的关系,从而在每轮只关注相关槽位。

3.3.5、自然语言生成的响应一致性

自然语言生成是一个具有挑战性的问题,因为它不能简单通过增加训练样本来解决。相反,应该设定额外的规则。Wen提出了语义控制的LSTM(SC-LSTM),它使用语义规划门来控制对话动作的保留或放弃,从而确保响应的一致性。

4、开放域对话系统

开放域对话系统的目标不是完成任务,而是在没有任务和领域限制的情况下与用户进行聊天,通常是完全数据驱动的。开放域对话系统一般分为三类:生成系统、基于检索的系统和集成系统。生成系统应用序列到序列的模型将用户消息和对话历史映射到一个可能不会出现在训练语料中的响应序列。相比之下,基于检索的系统试图从一个特定的响应集中找到一个预先存在的响应。集成系统融合上述两种方式,将检索的响应和生成的响应进行比较,从这选择最佳的响应。生成式系统可以产生灵活和对话上下文相关的反应,但有时缺乏连贯性,往往会做出枯燥的反应。基于检索的系统从人类反应集合中选择反应,从而能够在表层语言中获得更好的连贯性。然而,检索系统受到响应集有限性的限制,有时检索到的响应与对话上下文的相关性较差。

接下来,我们将重点讨论开放域对话系统的一些研究热点,并对各个部分进行重点讨论。

4.1、上下文感知

对话上下文由用户和系统消息组成,是对话代理生成响应的重要信息来源,因为对话上下文决定了对话主题和用户目标。上下文感知的对话代理不仅根据当前消息进行回应,还会根据对话历史进行回应。早期的基于深度学习的的对话系统将对话历史中所有词的表示相加或使用固定大小窗口专注于最近的上下文。Serban提出了层次化循环编码器-解码器模型,在构建上下文感知对话系统方面具有开创性意义;他们构建了一个词级编码器来编码对话,一个回合级编码器来进一步总结和传递过去回合的主题信息。Xing利用注意力机制增强了层次神经网络,以帮助模型专注于对话历史中更有意义的部分。

生成系统和检索系统都非常依赖对话上下文的建模。Shen提出了会话语义关系RNN,在话语、对话、篇章三个层次对对话上下文进行建模,分别捕获内容信息、用户系统主题、全局主题。Zhang认为,在解码器与对话上下文交互时,分层编码器-解码器对某些部分重视程度不够。此外,他们声称,基于注意力的HRED模型也存在位置偏差和相关假设不足的问题。因此,他们提出ReCoSa,其架构灵感来自于Transformer。该模型首先使用单词级LSTM对对话上下文进行编码,然后利用自注意力机制更新语句表示。在最后阶段,计算编码器-解码器注意力,以促进响应生成的过程。

4.2、响应连贯性

响应连贯性意味着在对话过程中保持逻辑性和一致性,这在交互过程中是必不可少的,因为逻辑和语法一致性弱的回应是很难理解的。连贯性在生成对话系统中是一个热门话题,但在基于检索的对话系统中并不是,因为检索方法中的候选回应通常是自然连贯的人类反应。

细化句子粒度是提高语言连贯性常用策略,Wu通过不一致顺序检测任务提高了响应连贯性。对话系统联合学习响应生成和顺序检测,这是一种自我监督的多任务学习。Shen构建了一个三级层次对话模型,以捕捉更丰富的特征,提高响应质量。Ji构建了交叉复制网络,该网络利用复制机制,根据当前的对话语境对相似的对话进行复制。因此,该系统受益于预先存在的连贯响应,减轻了从零开始执行推理过程的需要。此外,许多工作采用策略来在更高的水平上实现响应连贯性,这提高了生成的响应的整体质量。Xu通过从语料库构建知识图谱实现了全局式连贯对话,他们进一步进行图游走来决定“说什么”和“怎么说”,从而提高了对话的连贯性。

你可能感兴趣的:(自然语言处理,神经网络,人工智能,深度学习,自然语言处理)