logo资料库

A Survey on Dialogue Systems Recent Advances and New Frontiers 翻....pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
A Survey on Dialogue Systems: Recent Advances and New Frontiers 翻译 来源:https://blog.csdn.net/qq_20849045/article/details/79618326 摘要 业界对对话系统的关注越来越多,近年来,对话系统的改进主要来自于深度学习,深度学习被用于大数据 的多个领域,如计算视觉、自然语言处理和推荐系统等。在对话系统领域,深度学习可以使用海量数据来 学习特征表示和回复生成策略,而只需要很少的人力。在这篇文章中,我们将从不同的角度概述对话系统 的最新进展,并讨论可能的研究方向。一般将对话系统分为任务导向型和非任务导向型,本文分别介绍深 度学习在这两种系统中的代表性算法,最后讨论几个可以使对话系统更上一层楼的研究方向。 引言 拥有一个虚拟助理或一个拥有足够智能的聊天伙伴系统似乎是虚幻的,可能只在科幻电影中存在。然而, 近年来,人机对话因其潜力和诱人的商业价值而受到越来越多研究者的关注。随着大数据和深度学习技术 的发展,创建一个自动的人机对话系统作为我们的私人助理或聊天伙伴,将不再是一个幻想。当前,对话 系统在各个领域越来越引起人们的重视,深度学习技术的不断进步极大地推动了对话系统的发展。对于对 话系统,深度学习技术可以利用大量的数据来学习特征表示和回复生成策略,这其中仅需要少量的手工操 作。现如今,我们可以很容易地访问网络上对话的“大数据”,我们也许能够学习如何回复,以及如何回 复几乎任何的输入,这将极大地允许我们在人类和计算机之间建立数据驱动的、开放的对话系统。另一方 面,深度学习技术已经被证明是有效的,可以在大数据中捕获复杂的模式,并拥有大量的研究领域,如计 算机视觉、自然语言处理和推荐系统等。在本文中,作者从不同的角度对这些最近的关于对话系统的进展 进行概述,并讨论了一些可能的研究方向。 具体来说,对话系统大致可分为两种: (1)任务导向型(task-oriented)对话系统 (2)非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)。 任务导向的系统旨在帮助用户完成实际具体的任务,例如帮助用户找寻商品,预订酒店餐厅等。任务导向 系统最常见的实现方法是将对话响应视为一条管道(pipeline),如图1所示: 图1 任务导向对话系统的传统管道方法 首先系统需要理解人类所传达的信息,将其转化为一种内部状态,然后根据对话状态的策略采取一系列相 应的行为,最后将动作转化为自然语言的表现形式。虽然语言理解是通过统计模型来处理的,但是大多数 已经部署的对话系统仍然使用人工设定的特征或人工制定的规则,来进行状态和动作空间表示、意图检测 和插槽填充。利用这种方法部署的对话系统不仅耗费大量的人力和时间资源,而且只能应用在特定领域,
无法移植。目前有许多深度学习的算法来缓解这一问题,如学习高维分布模式下的特征表示,使用这一方 法可得到显著改善。此外,也有人使用端到端的方法建立任务导向的对话系统,可以扩展状态表示空间, 生成任务领域之外的对话内容。 非任务导向的对话系统与人类交互,提供合理的回复和娱乐消遣功能。通常情况下主要集中在开放的领域 与人交谈。虽然非任务导向的系统似乎在进行聊天,但是它在许多实际应用程序中都发挥了作用。研究 [98]显示,在网上购物场景中,近80%的话语是聊天信息,处理这些问题的方式与用户体验密切相关。一 般来说,对于非任务导向型对话系统,目前用的主要有两种方法: (1)生成方法,例如序列到序列模型(seq2seq),在对话过程中产生合适的回复,生成型聊天机器人目前 是研究界的一个热点,和检索型聊天机器人不同的是,它可以生成一种全新的回复,因此相对更为灵活, 但它也有自身的缺点,比如有时候会出现语法错误,或者生成一些没有意义的回复; (2)基于检索的方法,从事先定义好的对话语料库中搜索,选择回复。检索型方法的缺点在于它过于依赖 数据质量,如果选用的数据质量欠佳,那就很有可能前功尽弃。 近年来,大数据和深度学习技术的迅猛发展,极大地促进了面向任务和面向非导向的对话系统的发展。在 本篇论文中,作者的目标是(1)对对话系统进行概述,特别是最近的深度学习的进展;(2)讨论可能的研究方 向。本文安排如下:第二部分中介绍任务导向对话系统的管道方法和端到端方法;第三部分介绍基于神经 网络的对话生成方法,包括目前主流的方法和比较热门的研究方向,然后介绍基于搜索的方法;第四部分 讨论几个研究方向。 任务导向型系统 面向任务的对话系统是对话系统的一个重要分支。在这部分中,作者总结了面向任务的对话系统的管道方 法和端到端方法。 2.1管道(Pipeline)方法 任务导向型对话系统的典型结构在图1中已经展示,它包括四个关键组成部分: 2.1.1自然语言理解(Natural Language Understanding,NLU) NLU将用户输入解析为预定义的语义槽。如果有一个话语,自然语言理解将其映射为语义槽。插槽是根据 不同的场景预先定义的。表1列举了一个自然语言表示的例子, 表1 自然语言表示示例 其中“New York”是指定为slot值的位置,并且分别指定了域和意图。典型的,有两种类型的表示。一 个是话语层次类别,如用户的意图和话语类别(或领域,如示例中的Domain为order)。另一个是字级 信息提取,如命名实体识别和槽填充。对话意图检测是为了检测用户的意图。它将话语划分为一个预先定 义的意图。论文[10, 73, 99]中使用深度学习技术来检测用户意图。[19]使用卷积神经网络来提取查询向量 表示特征,进行查询分类。[22]和[64]也使用卷积神经网络进行分类。类似的方法也用在类别或领域分 类。 槽填充是口语理解的另一大挑战,与意图检测不同,可以将槽填充看作为序列打标签任务:为句子中的每 个单词打上语义标签。输入是由一系列单词组成的句子,输出是一系列槽或者类别编号。[11]和[10]用深 度信念网络,与CRF(条件随机场)基线相比取得了很好的效果。[41,102,56,100]使用RNN进行槽填
充。自然语言理解生成的语义表示,由对话管理成分进一步处理,典型的对话管理成分包括两步:对话状 态跟踪和策略学习。 2.1.2对话状态跟踪(Dialogue State Tracker,DST) 对话状态跟踪是确保对话系统健壮性的核心组件。它在对话的每一轮次对用户的目标进行预估,管理每个 回合的输入和对话历史,输出当前对话状态。对话状态H_t表示对话在t时刻的状态。这种典型的状态结构 通常称为槽填充或语义框架。传统的方法已经在大多数商业实现中得到了广泛的应用,通常用人工指定的 规则来选择最有可能的输出结果[17]。然而,这些基于规则的系统容易出现频繁的错误,因为最可能的结 果并不总是最理想的结果[88]。 在处理有噪声的条件和歧义时,可以用多种统计方法来解决[104]。在对话状态跟踪挑战大赛(Dialog State Tracking Challenge DSTC)[87,86]中,要求的输出结果是每一轮对话中每个槽的概率分布。在 DSTC中研究者们用了许多统计方法,包括人工制定规则的[80]、条件随机场[28,27,53]、最大熵模型[85] 和web-style排序[88]。 最近,论文[20]引入了深度学习方法来解决信念跟踪(belief tracking),方法是采用一个滑动窗口输出 任意数量的可能值的概率分布序列。虽然它只在一个领域受过训练,但它可以很容易地转移到新的领域。 论文[48]使用多领域循环神经网络对话状态跟踪模型。先用所有的数据来训练一个通用的信念跟踪模型, 然后为每个领域具体化一个通用模型。[49]提出一个深度信念跟踪器(NBT)来检测槽值对。对话系统需 处理用户输入、用户话语本身和单一候选槽值对(需要做决策),然后迭代所有候选槽值对来决定哪一对 是用户所表达的。 2.1.3对话策略学习(Dialogue policy learning) 根据状态跟踪器的状态表示,策略学习生成下一个可用的系统操作。无论是监督学习还是强化学习都可以 用来优化策略学习[9]。通常,基于规则的agent使用热启动系统[98]。监督学习是针对规则产生的行为进 行的,在在线购物场景中,如果对话状态是“推荐”,那么触发“推荐”操作,系统将从产品数据库中检 索产品。如果状态是“比较”那么系统比较目标产品或品牌[98]。强化学习方法的引入可以对对话策略进 行进一步的训练,以引导系统制定最终的策略。[9]在对话策略中使用深度强化学习,可以同时学习特征 表示和对话策略,结果表示强化学习方法的效果超过了基于规则和监督的方法。 2.1.4自然语言生成(Natural Language Generation,NLG) 自然语言生成将抽象的对话行为转变成自然语言。一个好的生成器通常依赖于几个因素:适当性 adequacy、流畅性、可读性和可变性[68]。传统的NLG方法通常是执行句子规划。它将输入语义符号映 射到代表话语的中介形式,如树状或模板结构,然后通过表层实现将中间结构转换为最终响应[77,69]。 [81]和[82]在自然语言生成中引入了基于LSTM结构的RNNLM[42]。对话行为类型和槽值对转变成1-hot 控制向量,作为附加输入,确保生成的话语表示要表达的意思。[81]使用前向RNN生成器、CNN排序器 和后向RNN排序器。所有的子模块都被联合优化,以生成需要的对话内容。为了解决表层生成过程中, 槽信息缺失和重复问题,[82]使用一个附加控制单元来控制对话行为。[72]用对话行为控制LSTM的输入 向量,来扩展这一方法。[83]通过多适应步骤扩展到多领域设置。[110]使用基于LSTM的encoder- decoder结构来包含问题信息,语义槽值,和对话行为类型,以生成正确的回复。使用注意力机制来处理 解码器当前解码状态的关键信息。在编码过程中将对话行为类型嵌入,基于神经网络模型可以生成各种回 复,以响应不同行为类型。[14]提出基于序列的自然语言生成方法,可以训练生成自然语言串,以及深度 语法依存树从对话系统的输入行为。[13]通过预处理用户话语和响应来扩充。这使得模型可以适应用户说 话方式,因为提供了上下文响应。 深度学习比较成熟的方法是基于LSTM的encoder-decoder形式,将问题信息、语义槽值和对话行为类型 结合起来生成正确的答案。同时利用了注意力机制来处理对解码器当前解码状态的关键信息,根据不同的 行为类型生成不同的回复。 2.2 端到端(end-to-end)方法
尽管传统的面向任务的对话系统中有许多特定领域的手工制作,但它们很难适应新的领域[4][107]。传统 的任务定向对话系统的管道方法有两个缺点,一个是信用分配问题,终端用户的反馈很难传到每个上行模 块中。第二个是模块间相互依赖,一个组建的输入依赖于另一组建的输出。如果想要调整某一个组件到新 的环境或者用新数据重新训练的话,其他所有的组建也都要调整,甚至槽位和特征也需要调整。这一过程 需要大量的人力。近年来,随着端到端神经生成模型的发展,为面向任务的对话系统构建了端到端的可训 练框架。值得注意的是,当我们引入非任务导向的对话系统时,将讨论关于神经生成模型的更多细节。与 传统的管道模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。[84][4]引入一种基于网 络的端到端可训练任务导向对话系统,将对话系统的学习当作是:从对话历史到系统回复的映射学习,并 使用encoder-decoder模型来训练。然而,该系统是在有监督的方式下训练的,这不仅需要大量训练数 据,而且可能无法找到好的策略,因为训练数据中缺少对话控制的进一步探索。[107]首次提出一个端到 端强化学习方法,在对话管理中联合训练对话状态跟踪和对话策略学习,从而更有力地对系统的动作进行 优化。在对话中,agent询问用户一些是/否的问题,来找到正确的答复。[36]训练了一个端到端系统,最 终目标是完成一个任务,如预定电影票。 图2 一种基于网络的端到端可训练任务导向型对话系统(来自论文[84]) 图3 一种端到端强化学习的方法模型(来自论文[107]) 任务导向系统通常需要查询外部知识库。之前的系统向外部知识库发出一个符号查询,基于其属性搜索条 目,对输入进行语义分割,以构建表示用户目标的符号查询[84,90,36]。这种方法有两个缺点:(1)搜 索结果并不包含语义分割中的不确定信息,(2)搜索操作不可微,因此分割和对话策略要分开训练。这 样一来,如果系统已建好,那么用户反馈的在线端到端学习就很困难。[15]用一个可微的基于attention的 键值检索机制,来增强现有的递归网络结构。[12]用一个诱导知识库的“软”后验分布来代替符号查询, 用强化学习器整合软索引过程。[89]将特定领域的知识编码合并到RNN中,作为软件和系统行为模板。 非任务导向型系统 任务导向型系统的目标是为用户完成特定的任务,而非任务导向的对话系统(也称为聊天机器人)则专注于 在开放的领域与人交谈[54]。一般来说,聊天机器人是通过生成方法或基于检索的方法实现的。生成模型 能够生成更合适的回复,而这些回复可能从来没有出现在语料库中;而基于检索的模型则具有信息充裕和
响应流畅的优势[23],因为基于检索的模型可以从存储库中选择适合当前对话的响应。在下面的章节中, 首先讨论神经生成模型,这是近年来最热门的研究课题之一,并讨论它们的缺点和改进点。然后,介绍基 于检索模型的深度学习的最新进展。 3.1 神经生成模型(Neural Generative Models) 现如今,可以从社交媒体网站(如Twitter和Reddit)上获取大量对话数据,这就为建立数据驱动模型提 供了数据基础。[54]提出一个生成概率模型,基于短语的统计机器翻译[105],基于微博建立对话模型。 将对话生成模型看作是翻译问题,也就是将提问翻译成回答。后来发现生成响应比在两种语言之间进行翻 译更难。这可能是由于○1响应之间的弹性范围过大;○2提问和回复之间缺乏短语对齐。深度学习在机器 翻译中的成功应用,即神经机器翻译,激发了人们对神经生成对话研究的热情。 下面,首先介绍神经生成模型的基础:Seq2Seq序列到序列,然后讨论热门话题:对话背景融合、提高响 应多样性、建立话题和人格模型、检索外部知识库、交互学习和评估。 Sequence-to-Sequence Models 给定输入序列(message)X=(x_1,x_2,…,x_T )包含T个词语,以及长度为T’的目标序列(response) Y=(y_1,y_2,…,y_(T^' ) )模型最大化Y在X下的条件概率: 具体来说,Seq2Seq模型是在encoder-decoder结构中,图4是这种结构的示意: 图4 Encoder-Decoder模型结构示意图 编码器将X逐字读入,并通过递归神经网络(RNN)将其表示为上下文向量c, 然后解码器将c 作为输入估计Y 的生成概率。 (1) Encoder Encoder过程很简单,直接使用RNN(一般用LSTM)进行语义向量生成: 其中,h_t是t时刻隐藏状态,f 是非线性函数,例如LSTM[18],GRU[7],c是最后一个词h_T对应的隐藏状 态,或者是多个隐节点的加权和。 (2) Decoder 模型的decoder过程是使用另一个带有附加条件背景向量C的RNN,通过当前隐状态来预测当前的输出符 号。T时刻候选词的概率分布p_t为
其中s_t是RNN解码器在时间点t的隐藏状态,y_t是响应序列中时间点t的词。Seq2Seq的目标函数定义 为: 为了改进,引入注意力机制,Y中的每个单词都基于不同背景向量c,即Y中的每个单词和x的不同部分相 关。特别是,y_i与背景向量c_i相对应,c_i是编码器隐藏状态h_1,…,h_T的加权平均和: 其中α_(i,j)的计算为: 其中,g是多层感知机。 [61]使用循环神经网络的encoder-decoder框架[7],来生成Twitter-style微博网站的响应,[74]使用了论 文[40]中描述的类似的模型。一般来说,这些模型使用神经网络来表示对话历史,并生成适当响应。这种 模型可以充分利用大量的数据,来学习有意义的自然语言表示和生成策略,但却只需要很少的专业领域知 识,减少人力资源。 3.1.2 对话上下文(Dialogue Context) 考虑到对话的上下文信息的是构建对话系统的关键所在,它可以使对话保持连贯和增进用户体验。论文 [67]用连续的表示或嵌入词/短语来表示全部对话历史(包括当前信息),以解决上下文敏感回复生成。 [42]中RNN语言模型生成的响应,和[7]中的解码器一样。[58]用了分层模型,首先捕获单个句子的含义, 然后将其整合成一个完整的对话。[96]用注意力机制[2]扩展层次化结构,分别在词级水平和句子水平引入 注意力机制,让模型能够自动的学到词级与句子级别的重要度信息,从而更好的生成新一轮的对话。作者 在句子级别的信息中,是反向学习的,即认为下一句的信息中更能够包含上一句的信息,所以从总体上来 看,其对于对话的学习是逆向使用每一轮对话的内容的。[71]对现有的方法(包括非分层模型和分层模 型)做了系统的比较,并提出了一个变体——可以在上下文查询的相关性中为上下文加权。研究发现 (1)层次化RNN网络通常优于非层次化的模型,(2)考虑到上下文相关信息后,神经网络趋向于生成 更长,更有意义,且更具多样性的回复。 图5 论文[67]用连续的表示或嵌入单词和短语来表示整个对话历史(包括当前信息)
图6 分别在词级水平和句子水平引入Attention机制 3.1.3 回复多样性(Response Diversity) 在当前Seq2Seq对话系统中,存在一个不足:系统倾向于生成无关紧要的或不明确的、普通的、几乎没有 意义的回复,而这些回复常常涉及到一些诸如“I don't know”,“I am OK”这样的无意义回复 [67,74,58]。 这种情况是因为在语料库中,像“I don’t know”这种无意义的话在语料库中出现的频率高,而有意义 的答复在语料库中出现的频率较低。解决这类问题的一个很有效的方法是找到并设置一个更好的目标函 数。[30]指出在神经网络模型中,目标函数是极大似然估计时,安全的回答会得到更高的概率,他们使用 最大互信息作为优化目标(最先应用于语音识别领域),互信息衡量输入和输出之间相互依赖程度,考虑 到消息响应中的反向依赖。论文[101]在训练过程中使用逆向文件频率(inverse document frequencyIDF)[55],来度量回复多样性。 有研究提出解码过程是冗余候选响应的另一个来源。[62]和[34]提出beam search在生成beam中的候选 时缺乏多样性,[62]引入随机beam-search过程,[34]在beam search分数中加入了惩罚操作,在搜索过 程中惩罚相同父节点的多个生成。[30,67,62]用全局特征再排序,来避免生成无意义的答复。[47]认为问 题不仅在于解码目标和响应频率,还在于信息本身缺乏足够的信息。提出使用点互信息(pointwise mutual information PMI)来预测一个名词作为关键字,即回复的主旨,然后生成包含关键字的回复。 另一种方法是引入随机隐变量,自然对话具有不确定性,面对同样的信息可能每个人的回复都不一样。然 而,当前的研究中,编码器生成的回复是具有确定性的。引入一个隐变量,模型在生成过程中,首先根据 隐变量的值,从一个分布中采样,然后再进行确定性的解码。[6]在单词对话响应模型中引入隐变量,模 型在解码器中包含一个随机成分z,P(Y|z,X),其中z是计算变分自动编码框架之后计算的 [26,25,65],[59]在层次化对话建模框架[58]中引入了隐变量。隐变量用来生成高级决策如话题或情感。 [57]通过学习一系列隐变量,来扩展这些模型,其中下一条语句的隐变量仅依赖于之前的隐变量序列。 [63]用明确的属性值来约束隐变量,使隐变量更加可解释。这些属性可以使手动分配的,也可以自动检测 的(如话题和人格)
图7 论文[58]引入随机隐变量 3.1.4 主题和个性化(Topic and Personality) 明确对话的内在属性是提高对话多样性和保证一致性的另一种方法。在不同的属性中,主题和人格被广泛 地进行研究探讨。 论文[95](如下图),作者注意到人们经常把他们的对话与主题相关的概念联系起来,并根据这些概念做 出他们的回复。他们使用Twitter LDA模型来获取输入的主题,将主题信息和输入表示输入到一个联合注 意模块中,并生成与主题相关的响应。论文[94]在解码器中稍作改进就得到了更好的结果。[8]对这个问题 做了更全面的概括,将对话中的每个语句都划分到一个领域中,然后生成下一个语句的领域和内容。 [109]在生成模型中嵌入了情感,表现良好。[51]为对话系统设置了一个身份,这样系统在回答个人问题 时就可以保证一致性。[31]在生成回复时考虑到收件人信息,以增加其实用性。 由于训练数据来自不同的说话者,因此,[106]提出一种两阶段的训练方法,使用大规模数据对模型进行 初始化,然后对模型进行微调,生成个性化响应。[45]使用迁移强化学习来消除不一致性。 图8 论文[95] 引入相关话题模型
分享到:
收藏