读懂智能对话系统(1)任务导向型对话系统

京东数据团队曾经出了一片关于对话系统的论文《A Survey on Dialogue Systems:Recent Advances and New Frontiers(智能对话系统调查:前沿与进展)》,全文引用了124篇论文,是一篇综合全面的介绍对话系统的文章。

 

论文原文地址:

 

https://www.kdd.org/exploration_files/19-2-Article3.pdf

 

公众号“机器学习算法全栈工程师”对这篇论文的内容进行了解读,主要概述了对话系统,尤其是对话系统在深度学习方面的进展,还讨论了可能的研究方向。以下是主要架构:

 

 

奇点机智对这篇文章进行了进一步的拆解,分成四篇文章来介绍智能对话系统。

 

读懂智能对话系统(1)任务导向型对话系统

 

读懂智能对话系统(2)聊天机器人

 

读懂智能对话系统(3)对话系统的未来发展

 

来源:机器学习算法全栈工程师

 

作者:蒙康

 

任务导向型对话系统

 

拥有一个虚拟助理或一个拥有足够智能的聊天伙伴系统似乎是虚幻的,而且可能只在科幻电影中存在很长一段时间。近年来,人机对话因其潜在的潜力和诱人的商业价值而受到越来越多研究者的关注。

 

随着大数据和深度学习技术的发展,创建一个自动的人机对话系统作为我们的私人助理或聊天伙伴,将不再是一个幻想。

 

当前,对话系统在各个领域越来越引起人们的重视,深度学习技术的不断进步极大地推动了对话系统的发展。对于对话系统,深度学习技术可以利用大量的数据来学习特征表示和回复生成策略,这其中仅需要少量的手工操作。

 

现如今,我们可以很容易地访问网络上对话的“大数据”,我们也许能够学习如何回复,以及如何回复几乎任何的输入,这将极大地允许我们在人类和计算机之间建立数据驱动的、开放的对话系统。

 

另一方面,深度学习技术已经被证明是有效的,可以在大数据中捕获复杂的模式,并拥有大量的研究领域,如计算机视觉、自然语言处理和推荐系统等。在本文中,作者从不同的角度对这些最近的关于对话系统的进展进行概述,并讨论了一些可能的研究方向。

 

具体来说,对话系统大致可分为两种:

 

任务导向型(task-oriented)对话系统

 

非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)

 

面向任务的对话系统是对话系统的一个重要分支。在这部分中,作者总结了面向任务的对话系统的 管道方法 和 端到端方法 。

 

管道(pipeline)方法

 

任务导向型对话系统的典型结构在之前的图中已经展示,它包括四个关键组成部分:

自然语言理解(Natural Language Understanding,NLU)

它将用户输入解析为预定义的语义槽。

 

如果有一个话语,自然语言理解将其映射为语义槽。插槽是根据不同的场景预先定义的。

 

 

上图展示了一个自然语言表示的示例,其中“New York”是指定为slot值的位置,并且分别指定了域和意图。典型的,有两种类型的表示。一个是话语层次类别,如用户的意图和话语类别。另一个是字级信息提取,如命名实体识别和槽填充。对话意图检测是为了检测用户的意图。它将话语划分为一个预先定义的意图。

 

对话状态跟踪(Dialogue State Tracker,DST)

 

对话状态跟踪是确保对话系统健壮性的核心组件。它在对话的每一轮次对用户的目标进行预估,管理每个回合的输入和对话历史,输出当前对话状态。这种典型的状态结构通常称为槽填充或语义框架。传统的方法已经在大多数商业实现中得到了广泛的应用,通常采用手工规则来选择最有可能的输出结果。然而,这些基于规则的系统容易出现频繁的错误,因为最可能的结果并不总是理想的。

 

最近深度学习采用的方法是使用一个滑动窗口输出任意数量的可能值的概率分布序列。虽然它在一个领域受过训练,但它可以很容易地转移到新的领域。此处运用较多的模型是,multi-domain RNN dialog state tracking models和Neural Belief Tracker (NBT) 。

 

对话策略学习(Dialogue policy learning)

 

策略学习根据状态跟踪器的状态表示生成下一个可用的系统操作。无论是监督学习还是强化学习都可以用来优化政策学习。监督学习是针对规则产生的行为进行的,在在线购物场景中,如果对话状态是“推荐”,那幺触发“推荐”操作,系统将从产品数据库中检索产品。强化学习方法的引入可以对对话策略进行进一步的训练,以引导系统制定最终的策略。在实际实验中,强化学习方法的效果超过了基于规则和监督的方法。

 

自然语言生成(Natural Language Generation,NLG)

 

选择操作进行映射并生成回复。

 

一个好的生成器通常依赖于几个因素:适当性、流畅性、可读性和变化性。传统的NLG方法通常是执行句子计划。它将输入语义符号映射到代表话语的中介形式,如树状或模板结构,然后通过表面实现将中间结构转换为最终响应。深度学习比较成熟的方法是基于LSTM的encoder-decoder形式,将问题信息、语义槽值和对话行为类型结合起来生成正确的答案。同时利用了注意力机制来处理对解码器当前解码状态的关键信息,根据不同的行为类型生成不同的回复。

 

端到端(end-to-end)方法

 

尽管传统的面向任务的对话系统中有许多特定领域的手工制作,但它们很难适应新的领域,近年来,随着端到端神经生成模型的发展,为面向任务的对话系统构建了端到端的可训练框架。值得注意的是,当我们引入非面向任务的对话系统时,将讨论关于神经生成模型的更多细节。与传统的管道模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。

 

 

上图的模型是一种基于网络的端到端可训练任务导向型对话系统,将对话系统的学习作为学习从对话历史到系统回复的映射问题,并应用encoder-decoder模型来训练。然而,该系统是在监督的方式下进行训练——不仅需要大量的训练数据,而且由于缺乏对训练数据对话控制的进一步探索,它也可能无法找到一个好的策略。

 

 

随着强化学习研究的不断深入,上图的模型首先提出了一种端到端强化学习的方法,在对话管理中联合训练对话状态跟踪和对话策略学习,从而更有力地对系统的动作进行优化。

发表评论

电子邮件地址不会被公开。 必填项已用*标注