面向任务的对话系统的最近进展和挑战
论文链接:Recent Advances and Challenges in Task-oriented Dialog Systems
作者团队:Zheng Zhang, Ryuichi Takanobu, Qi Zhu, MinLie Huang & XiaoYan Zhu
文章目录
摘要:由于在人机交互和自然语言处理中的重要性和价值,面向任务的对话系统在学术界和工业界都越来越受到关注。在本文中,我们调查了面向任务的对话系统的最新进展和挑战。我们还讨论了面向任务的对话系统的三个关键主题: (1)提高数据效率以促进在资源匮乏的环境中进行对话建模;(2)为对话策略学习建立多回合动态模型以实现更好的任务完成性能;(3)将领域本体知识整合到对话模型中。此外,我们回顾了对话评估和一些广泛使用的语料库的最新进展。我们认为,尽管这项调查不完整,但可以为面向任务的对话系统的未来研究提供启发。
关键词:面向任务的对话系统,自然语言理解,对话策略,对话状态跟踪,自然语言生成
1 介绍
建立面向任务的(也称为面向目标的)对话系统已成为研究界和业界的热门话题。面向任务的对话系统旨在协助用户完成特定领域中的某些任务,例如餐厅预订,天气查询和航班预订,这是对现实世界中的业务非常有价值。与主要目标是最大程度地提高用户参与度的开放域对话系统相比[1],面向任务的对话系统更着重于在一个或多个域中完成某些特定任务[2]。通常,面向任务的对话系统是建立在结构化本体之上的,本体定义了任务的领域知识。
有关面向任务的对话系统的现有研究可以大致分为两类:流水线和端到端方法。在流水线方法中,整个系统分为几个模块,包括自然语言理解(NLU),对话状态跟踪(DST),对话策略(Policy)和自然语言生成(NLG)。还有其他一些组合模式,例如单词级DST [3,4] (连接NLU和DST )和单词级Policy[5, 6] (连接Policy和NLG)。当端到端方法使用单个模型构建系统时,该模型直接将自然语言上下文作为输入并输出自然语言响应。
建立流水线系统通常需要大规模的标记对话数据来训练每个组件。模块化结构使系统比端到端的系统更具解释性和稳定性。因此,大多数现实世界的商业系统都是以这种方式构建的,端到端系统需要更少的注释,使其更易于构建。但是,端到端的结构使它成为黑匣子,这更加难以控制[7]。
为了清楚地回顾现有研究,我们为面向任务的对话系统建立了分类法。如图1所示,对于流水线方法和端到端方法中的每个单独组件,我们列出了-些关键问题,在这些问题中提出了典型的工作。在流水线方法中,最近的研究更多地集中在对话状态跟踪和对话策略组件上,它们也称为“对话管理”。这是因为NLU和NLG组件都是标准的语言处理任务,它们很少与对话系统中的其他任务交织在一起。基于域本体,通过预测每个时隙的值, DST任务可以视为分类任务。但是,当训练数据不足时,此类基于分类的方法可能会遇到词汇量不足(00V) 问题,无法直接推广到新领域。对话策略学习任务通常被认为是强化学习任务。然而,与其他众所周知的强化学习任务(例如玩视频游戏[8]和Go[9] )不同,对话策略的训练需要真实的人作为环境,这是非常昂贵的。此外,大多数现有方法使用手动定义的奖励,例如任务完成率和会话转数,这些方法无法可靠地评估系统的性能。
对于端到端方法,最初的序列到序列模型的数据饥渴的性质使得难以在有限的领域特定数据量的面向任务的对话系统中学习复杂的时隙填充机制。知识库查询问题要求该模型生成除编码器和解码器之外的中间查询,这井不简单。另一个缺点是编码器-解码器框架利用了词级策略,由于策略和语言功能纠缠在一起,可能会导致性能欠佳。
基于以上分析,我们详细介绍了面向任务的对话系统中的三个关键问题,这些问题将在短期内详细讨论:
● 数据效率:大多数神经方法都需要大量数据,因此需要大量数据才能完全训练模型。但是,在面向任务的对话系统中,特定于域的数据通常很难收集并且注释起来很昂贵。因此,低资源学习的问题是主要挑战之-。
● 多回合动态:与开放域对话相比,面向任务的对话的核心特点是在多回合策略中强调目标驱动。在每个回合中,系统动作应与对话历史保持一致,并应引导后续对话获得更大的任务奖励。然而,由于昂贵的训练环境和不完善的奖助定义,在许多任务上表现出色的无模型RL方法不能直接用于面向任务的对话。因此。提出了许多解决方案来解决这些问题,这些方案包括:基于模型的计划,奖励估计和端到端的策略学习,这些旨在通过多次训练来更好地学习策略。
● 本体集成:面向任务的对话系统必须查询知识库(KB)以检索-些实体以生成响应。在流水线方法中,KB查询主要是根据DST结果构造的,与流水线模型相比,端到端方法绕过模块化模型,而模块化模型则需要细粒度的注释和领域专业知识。但是,由于没有显式的状态表示形式,因此这种简化使构造查询变得因难。
此篇文章的结构如下:在第2节中,我们介绍了流水线方法和端到端方法中每个组件的最新进展;在第3节中,我们讨论了有关面向任务的对话评估的最新工作,包括自动,模拟和人工评估方法;在第4节中,我们调查了一些面向任务对话的广泛使用的语料库;在第5节中,我们回顾了为解决上述三个挑战而提出的方法;最后,在第6节中,我们总结了论文并讨论了未来的研究趋势。
2 模块和方法
面向任务的对话系统的体系结构可以大致分为两类:流水线和端到端方法。在流水线方法中,该模型通常由多个组件组成,包括自然语言理解(NLU)、对话状态跟踪(DST),对话策略和白然语言生成(NLG)。它们以流水线方式组合在-起,如图2所示。在将NLU,DST和NLG组件组合在一起之前,通常先对其进行单独训练,而对话策略组件是在组合系统中对其进行训练。值得一提的是,尽管NLU-DST-Policy-NLG框架是流水线系统的典型配置,但是还有其他一些配置。最近。有-些研究合并了-些典型的组件。例如单词级DST和单词级Policy,从而产生了各种流水线配置[3- 6]。
在端到端方法中,对话系统以端到端的方式进行训练,无需指定每个单独的组件。通常,再给定对话上下文和后端知识库的情况下,将训练过程表述为产生响应的话语。
2.1 自然语言理解
给定用户话语,自然语言理解(NLU)组件会将话语映射到结构化的语义表示。一种流行的语义表示模式是对话行为,由intent和slot-values组成,如表1所示。intent类型是话语的高级分类,例如Query和Inform,它指示了话语的功能。slot-values是话语中提到的特定任务的语义元素,注意intent和slot-values都是对于特定任务,它们与本体有关,能被用于查询知识库。
基于对话行为机构,NLU的任务可以进一步分解为两个任务:意图检测(intent detection),槽值(slot-values)提取。前者通常通过将话语作为输入来表示一个任务分类任务,而槽值识别任务通常被视为序列标签问题:
其中d表示意图分类,y1到yn是话语[x1,x2,…,xn]中的每个标记的标签,其中xi是一个令牌,n表示令牌的数量。
由于序列建模的强大能力,RNN及其变体已经广泛用于意图检测和槽值提取[10-12],这些模型使用每个令牌的隐藏状态来预测响应的标签,并使用最终的隐藏状态来识别句子意图d。还探索了其他神经网络结构,例如递归神经网络[13]和CNN[14]。传统序列标记模型常使用的条件随机字段与RNN[15]和CNN[15]来提升其性能。最近预训练模型BERT[16]已成为另一个受欢迎的选择。
还有一些模型可以加强意图分类和槽位标记之间的联系[19],使用意图门来指导槽位标记过程,而[20]则采用注意机制以允许单词和句子表示之间的交互。
2.2 对话状态追踪
对话状态跟踪器通过将整个对话上下文作为输入来估计每个时间步的用户目标。在时间t的对话状态可以看作是直到t时间之前轮数的抽象表示。早期的工作采用了一些固定的对话状态集,并将交互过程中的状态转换建模为马尔可夫决策过程(MDP)。POMDP进一步假设观察结果部分可观测的,这使其在复杂情况下更加健壮。大多数最近的工作采用了置信状态进行对话状态表示,其中状态由表示用户目标的槽值对组成。因此,这个问题可以表述为多任务分类任务:
对于每个特定的插槽i,都有一个跟踪器pi,ut表示第t轮的语义。在第t个时段中,插槽i的类别为di,t。但是,当在运行时面对先前看不见的值时,此方法将失效。此外,还有一些将DST任务表述为阅读理解任务的工作[28,29]。
在最近的方法中,插槽可以分为两种类型:自由形式和固定词汇[30]。前一种类型不假定插槽使用固定的词汇表,这意味着该模型无法通过分类预测值。对于自由形式的槽位,可以直接生成值[4, 31]或预测语义值的范围[28,32]。 在生成方法中,他们经常使用解码器从大量词汇中逐字生成插槽的值。但是,由于缺少词汇,这种方法也可能失败,因为词汇受到限制。对于基于跨度的方法,该模型假定该值显示在上下文中,并预测该跨度的开始和结束位置。
2.3 对话策略
以对话状态为条件,对话策略回生成下一个系统操作。由于对话中的对话行为是顺序产生的,因此通常被表述为马尔可夫决策过程(MDP),可以通过强化学习(RL)来解决。如图3所示,在特定的时间步t,用户采取动作at,收到奖励Rt,状态更新为St。
一种典型的方法是首先通过基于对话语料库的监督学习或模仿学习来离线学习训练对话策略,然后通过RL与实际用户对模型进行微调。由于真实的用户对话数据是昂贵的,因此引入了用户模拟技术以提供可负担的训练对话数据。
可以将人类对话形成为马尔可夫决策过程(MDP),在每个时间步上,系统都会通过采取某些措施a从某些状态s过渡到新状态s、,因此,强化学习通常用于解决对话系统中的这种MDP问题。
无模型的RL方法通过与真实的用户进行交互学习。从而主导了神经对话策略的早期研究,例DNQ和Policy Gradient方法[34-36]。对于复杂的多域对话,引入了层次RL模型,首先确定哪个域是当前域,然后选择该域的操作[37]。训练RL策略模型需要大量的互动:一个常见的解决方案是使用用户模拟器[24,38,39],这是另一个类似于人类用户的对话系统,用于提供培训和评估环境。但是,用户模拟器无法完全模仿真实的人类对话行为,井且其归纳偏差可能导致次佳模型在真实人类对话中表现不佳。为了缓解这些问题,提出了基于模型的RL方法来对环境建模,从而实现对日志策略学习的计划[40-42]。在基于模型的RL方法中,对环境进行建模以模拟对话的动态。然后,在RL训练阶段,通过向真实用户学习和用环境模型进行规划。其他一些工作同时联合训练系统策略和用户策略[43,44]。
2.4 自然语言生成
给定由对话策略生成的对话行为,自然语言生成组件会将行为映射到自然语言话语,这通常被建模为条件语言生成任务[45]。该任务以对话为输入并生成自然语言响应。为了改善用户体验,生成的话语应该(1)完全传达对话行为的语义以完成任务,并且(2) 与人类语言相似,自然,专一,内容丰富。另一个问题是如何使用有限的训练数据构建强大的NLG。Peng等人[46]提出 了SC-GPT,首先用从现有的公开对话数据集中收集的大规模NLG训练对GPT进行预训练,然后在训练实例很少的情况下对目标NLG任务进行模型微调。
2.5 端到端方法
一般来说,流水线系统中的组件是单独优化的,这种模块化的结构导致了复杂的模型设计,每个独立组件的性能并不一定转化为整个系统的进步[7]。面向任务的对话系统的端到端方法受到开放域对话系统研究的启发,该研究使用神经模型以端到端的方式构建系统,而无需使用常规设计,如图4所示。这些方法中的大多数都利用序列到序列模型作为基础架构,这种架构端到端可区分,并且可以通过基于梯度的方法进行优化[47]。
在大多数现有的端到端方法中,对模型进行训练以使所收集数据中响应的预测概率最大化。Wen等人提出了一种模块化的端到端模型,其中使用神经网络对每个组件进行建模,这使得模型端到端可区分。Bordes等人[49]通过将对话历史视为上下文, 将用户话语作为问题,并将系统响应作为答案,将面向任务的对话形式化为阅读理解任务。在这项工作中,他们利用端到端存储网络进行多轮推理。Madotto等人[50] 采用了类似的方法,并将知识库信息进一步馈送到存储网络中。在[51]中,引入了一种称为键值存储网络的新存储网络结构,以通过键值检索从知识库中提取相关信息。Lei等人[52]提出了一个两阶段的seq2seq生成模型,该模型绕开了结构化的对话行为表示,仅保留了对话状态表示。在他们的方法中,模型首先对对话历史进行编码,然后使用LSTM和CopyNet生成对话状态。给定状态,该模型将生成最终的自然语言响应。
上述方法的一个主要缺点是它们需要大量的训练数据,而获取数据是昂贵的。此外,由于模型仅观察数据中的示例,因此他们无法充分探索状态动作空间。因此,引入了强化学习方法来减轻这些问题[52-57]。在[53]中,有一个端到端模型,该模型将自然语言话语作为输入并生成系统对话作为响应。在这种方法中,没有显式的状态表示。相反,他们使用LSTM将对话历史记录编码为状态向量,然后使用DQN选择操作。威廉姆斯等人[54]提出了基于LSTM的混合代码网络(HCN),该网络支持自定义软件。
3 评价
对话代理的评估对于面向任务的对话系统的进展至关重要。大多数评估研究都遵循PARADISE[58]框架。 它从两个方面评估用户满意度。一种是对话成本,它可以确定对话中发生的成本,例如轮数。另一个是任务成功,它评估系统是否成功解决了用户问题。评估面向任务的对话系统的方法大致可分为以下三行。
3.1 自动评估
自动评估是快速,廉价和客观的,因此被广泛提倡。已经为系统中的不同组件设计了一堆定义良好的自动度量。为了理解语言,使用了键槽F1和意图准确性。对于对话状态跟踪,评估方法通常包括键槽精度和关节状态精度。对于策略优化,使用了通知率,匹配率和任务成功率。对于语言生成,可以使用诸如BLEU和困惑度之类的指标。这些指标的详细定义可以在[59]中找到。通过监督学习,可以针对这些指标优化所有模型。但是,以这种方式分划培训或评估每个组件。此外,它假设将在训练过程中从上游模块或最后一次对话中获取模型的真实情况, 但此假设在实际对话中无效。
3.2 模拟评估
除了训练基于RL的代理外,在面向任务的对话中模拟用户行为的用户模拟器,还使我们能够评估经过训练的对话系统。这是因为,与开放域对话系统不同,面向任务的对话系统中的用户目标在某种程度上是“可枚举的”,因此可以充分利用领域专业知识来构建用户模拟器,从而为用户提供类似于人的对话交互模拟评估。模拟评估中使用的指标包括任务成功率,对话时间,平均奖励等。
模拟评估已广泛应用于最近提出的对话系统平台,例如PyDial[60]和ConvLab [61,62]。模拟评估的主要优点是:(1)可以以端到端的方式评估系统;(2)在推理期间可以进行多回合互动;(3)可以有效地免费生成合成对话数据进行评估。与对话策略优化类似,采用模拟评估的主要挑战是建立一个可以尽可能模拟实际用户行为的良好用户模拟器。同时,如何评估用户模拟器也仍然是一个持续的研究方向[63]。
3.3 人工评估
通过自动模拟交互,模拟评估可有效评估系统性能。即使拥有完善的用户模拟器,我们仍然需要人工判断才能对例如在模拟环境和实际转换之间的协变量转换[64]和响应生成的质量[48],去评估真实用户的满意度。人工评估指标包括任务成功率,无关轮流率,冗余轮流率,用户满意度等等。
研究人员通常在众包平台上雇用人类用户,并且可以通过以下两种方式进行人类评估。一种是间接评估,要求注释者阅读对话系统和用户模拟器之间的模拟对话,然后对分数[39]进行评分或根据每个度量标准在不同系统之间给予他们优先的选择[65]。另一个是直接评估,要求参与者与系统进行交互以完成特定任务,并给出他们对交互体验的评分。例如,在DSTC8竞赛中评估了评估对话代理是否理解用户输入的语言理解,以及评估对话期间对话响应是否适当的响应适当性[66]。
4 语料库
已经收集了许多具有不同域和注释粒度的语料库,以促进对面向任务的对话系统的研究。一些数据集包含单域对话[48、51、67、68]。 随着处理现实应用中各种任务的需求不断增加,最近已经收集了一些大型的多域语料库[69-71]。这些数据集具有更高的语言变化性和任务复杂性。尽管大多数数据集都在英语中,但Zhu等人[72]提出了第一个具有丰富注释的大规模中文任务导向数据集,以方便中文和跨语言对话建模的研究。表2显示了对这些对话框数据集的完整调查。
关于数据注释,DSTC语料库[73]提供了第一个通用的测试平台和评估套件,用于对日志状态进行跟踪。DSTC2[67]包含有关本体的其他详细信息,包括称为自然语言理解任务的信息插槽和请求插槽的属性列表。用户目标和会话中匹配实体的数据库也以某种语料库[48,69,74]提供,可用于多回合互动建模。值得注意的是,对话状态注释的架构在这些数据集中通常是不同的。例如,表示用户意图的搜索方法包含在DSTC2中,而在SGD中提供了列出受支持的槽位和意图及其自然语言描述的架构[75]。
数据收集主要有三种模式。第一个是人对机器(H2M),其中数据是通过人类用户与已部署的基于机器的系统进行对话来收集的;第二种模式是机器对机器(M2M),其中两个系统分别扮演用户和系统角色,并彼此交互以生成对话。Shah等人[76]通过首先使用M2M模式在对话行为级别生成对话模板,然后使用众包将这些模板转换为自然语言来引导数据收集过程。该方法的优点在于,可以自动获得语义注释,因此,由于将模板翻译成句子相对于众包工作者而言相对简单,因此具有成本效益且抗错误。但是,由于使用启发式规则执行对话模拟,因此通常会限制任务的复杂性和语言多样性;第三种模式是人对人(H2H),最遵循Wizard-of-Oz(WoZ) 范式[77],该模式收集了分别充当代理人(系统)和客户(用户)的两个众包工作者之间的真实对话。在启动对话之前,会为每个工作人员提供有关其目标以及应如何采取行动的任务说明。尽管这样的框架会产生自然多样的对话,但它却增加了数据注释的难度,尤其是当注释方案很好时。
5 挑战
5.1 数据效率
与开放域对话系统的研究不同,面向对话的对话系统的数据驱动方法通常需要细粒度的注释来学习特定域中的对话模型,例如,对话动作和状态标签。但是,由于(1)与开放域环境相比,收集特定域的语料库比在开放域环境中更加困难,并且(2)注释细粒度的标签是需要大量的人力资源,这是非常昂贵且耗时的,所以在一个特定域获取一个大范围注释语料通常是困难的。因此我们必须面对提高构建面向任务的对话系统的数据效率的问题,尤其是在资源匮乏的环境中。
在本节中,我们回顾了为缓解此问题而提出的一些最新方法。 我们首先回顾一下转移学习方法,这些方法可以从大规模数据中获取先验知识,或者根据其他任务改进训练完成的模型。然后,我们介绍一些无监督的方法,这些方法可以通过启发式规则在资源很少的情况下直接学习而几乎没有注释。此外,我们还回顾了最近建立的数据驱动的用户模拟器付出的努力。
5.1.1 转移学习
机器学习的一个主要假设是训练数据和测试数据具有相同的分布。但是,在许多实际场景中,当我们仅在目标任务中只有有限的数据,而在其他任务中具有足够的数据且数据分布不同时,这将不成立。因此提出转移学习以通过将知识从源任务转移到目标任务来减轻该问题。
在面向任务的对话系统中经常会出现相同的问题。例如,当旅馆域中只有有限的数据时,如何将餐馆预订对话系统改编为旅馆预订?在这种情况下,这两个域的本体是相似的,共享许多对话行为和插槽。在这种情况对话系统改编为旅馆预订?在这种情况下,这两个域的本体是相似的,共享许多对话行为和插槽。在这种情况下,转移学习可以大大减少这种适应所需的目标数据量。除了域级别的转移,知识还可以在许多其他方面进行转移,包括人际和跨语言转移。对于域名转让,Mrksic等人[26]提出通过在多个域数据集上进行多任务学习来学习对话状态跟踪模型,以跨域传递知识,从而可以提高所有任务的性能。在[81]中, Ilievski等人提出直接从源域模型传递共享插槽的参数以初始化目标模型。Chen等人[82]提出了使用几个依赖于插槽的代理和一个不依赖于插槽的代理来建模对话代理的模型,以跟踪跨不同域的私有和公共插槽。在[83, 84]中, DST模型的参数在各个域之间共享,并且与预定义的值集无关。因此,该模型能够转移到以前看不见的域。Wu等人[4]进一步将域和插槽与模型参数解耦通过采用DST模型中作为输入的域名和插槽来进行。
对于跨接任务的转移,Mo等人[85] 提出通过学习行为和状态转移函数在域之间转移对话策略模型,而没有共享插槽,直接从源特征空间映射到目标空间。
对于个性化的知识转移,在[86]中, 提出了一种混合DQN策略,以在不同的顾客之间转移知识,其中对所有顾客都有通用的Q函数,对每个特定顾客都有个性化的Q函数。当转移到新的人时,只需要少量的数据就可以学习个性化的Q功能。Mo等人[87]进一步通过在RNN解码器框架内设计一种新颖的个人控制门,在保持不同用户之间的个人偏好的同时,在不同的人之间传递了更细粒度的短语级知识边缘。
最近提出了关于跨语言迁移的研究。在[88]中, 研究了三种跨语言方法: (1) 将训练数据翻译为目标语言;(2)预训练跨语言嵌入;以及(3)使用多语言机器翻译编码器共享知识用于上下文词表示。
还提出了与模型无关的方法用于对话系统中的转移学习,这主要是受模型无关的元学习(MAML)框架的启发[89]。MAML框架可以通过在学习过程中模拟训练测试过程来学习良好的初始化模型。通过在NLG上应用此类方法,该模型可以在资源较少的情况下获得更好的结果,并显示出更好的域泛化[90,91]。 Madotto等人[92]通过仅利用从目标用户收集的少量对话样本而不使用特定角色的描述,进一步将该方法扩展到了个性化对话系统。
除了上述从源模型传递知识的方法之外,还有一-些工作通过直接向模型或算法赋予先验知识来减少数据使用,从而提高数据效率。例如,提出了改进的RL方法,包括ACER [93]和BBQ Networks [36],以提高样品效率。在[94],将动作选择过程分解为主动作和原始动作选择,并根据领域本体设计这两个动作。
5.1.2 无监督方法
对话策略学习中的一个关键问题是估计奖励信号,这在实际应用中很难获得。因此,对于对话策略学习,特别是在RL训练期间,建立奖励估计模型是必要的。通过将对话策略视为生成器,并作为奖励函数的判别器,可以使用生成对抗网络(GAN)以无监督的方式学习奖励函数。(GAN)以无监督的方式学习奖励函数。Liu等人[64]首先使用GAN通过区分真实用户对话中的模拟来学习二进制奖励函数。Xu等人[95]通过使用预测的奖励作为失败的指标,扩展了检测对话失败的想法。Su等人[96]使用高斯过程进行奖励估算的另一种方法。通过对预测奖励的不确定性进行建模,该模型可以主动要求人工干预潜在的失败案例。在他们的实验中,随着奖励估算不确定性的降低,对人为干预的要求大大降低,这大大减轻了人工注释的负担。
在大多数研究中,对话系统的本体是由人类专家通过精心设计的领域工程构建的。另一项工作是通过从未标记的语料库中自动学习对话结构来协助人类专家进行此过程。Shi等人[97]提出通过基于变分自动编码器(VAE)的方法来学习对话过程的有限状态机。他们首先预训练了基于使用未经中间注释的原始对话数据的VAE对话模型。然后根据潜在变量可以发现几种对话状态。此后,可以通过估计状态之间的转移概率来构建状态转移图。还有一些工作分析了任务导向的结构,以促进语言理解。Takanobu等人[98]提出了一种面向任务的对话系统中用于主题分割和标签的RL方法,该方法旨在检测对话回合之间的主题边界并为其分配主题标签。
最近,预训练方法在许多NLP任务中显示出优异的性能。在这样的方法中,可以使用无监督的预训练任务(例如蒙版语言建模(MLM) 和下一句预测(NSP) )从大规模的未标记语料转移到广泛的语言特征。Wolf等人[99]采用这种方式,首先在大规模对话数据上对转换模型进行预训练,然后在具有多任务学习的个性化对话任务上对模型进行微调。Budzianowski等人[100]进一步探讨了这种想法,以面向任务的对话,而没有明确的独立对话策略和生成模块。在这项工作中,首先将置信状态和数据库状态转换为自然语言文本,然后将其作为上下文之外的transformer解码器的输入。
5.1.3 用户模拟
用户模拟技术通过提高理论上无限数量的训练交互,减轻了基于RL的对话策略模型的数据紧张问题。早期这些方法的重点是基于年龄的用户模拟器(ABUS)[24],该模拟器通常用于构建面向任务的对话系统。它保持着类似栈的结构,并以一些启发式的方式表示用户的目标。构建基于议程的模拟器需要人类专家明确定义议程和启发式规则。但是,对于更复杂的任务,定义一个明确的议程结构是不可行的。来自于ABUS的语义还缺乏人类对话的语言变化,这可能导致在实际应用中性能欠佳。
最近,提出了以数据驱动的方式构建用户模拟器以减轻上述问题。Asri等人[101]提出了一个考虑到对话上下文的对话行为级别seq2seq用户模拟模型。Crook等人[102]提出了另一个seq2seq模型,该模型将自然语言语境作为输入并输出自然语言响应。Kreyssig等人[103]介绍了一种神经用户模拟器(NUS),它可以模仿语料库的用户行为并生成单词级别的用户响应。Gur等人[104] 提出了一个分层的seq2seq用户模拟器(HUS),该模拟器首先对用户目标和系统转向进行编码,然后生成用户对话行为。为了生成更多不同的用户行为,他们将HUS扩展为一个变体版本(VHUS),在该版本中,用户回合是从不可观察的潜在变量生成的。
另一行数据驱动的用户模拟器将模拟程序与目标对话系统一起训练,可以将其视为多代理方式。Liu等人[57]提出首先通过监督学习训练基于对话语料的对话系统和模拟器,然后通过强化学习对两种模型进行微调。在这项工作中,对系统和模拟器进行了协作训练,其中两个代理共享相同的奖励函数。基于Deep Dyna-Q (DDQ) 的对话计划框架[40-42]中的世界模型(在训练期间进行了更新)也可以作为模拟器使用。但是,与基于RL的联合训练不同,DDQ中的世界模型是使用实际经验通过监督学习进行更新的。
上述方法中的用户模拟器是基于人工代理对话数据进行训练的。除此之外,人类还可以通过提供人类演示来协助对话策略学习。由于人类的指导是昂贵的, Chang等人[105]比较了各种教学方案,回答了如何以及何时进行教学,以更经济地使用教学预算。Chen等人[106]进一步提出了伴侣学习(CL)框架,该框架整合了基于规则的策略和基于RL的策略。由于规则教师的能力不如人类教师,因此引入了不确定性估计以控制咨询和学习的时间。
5.2 多轮动态
与开放域对话系统相比,面向任务的对话系统的一个主要特点是对多轮状态动作状态动态的重视,这主要与对话管理(DST和策略)有关。在开放域对话系统中,研究更多地集中在生成合理、一致和人际反应上,以实现最大化的用户参与度[1]。虽然对于面向任务的对话系统,尽管上述问题仍然很重要,但是特定任务的完成却被视为更为关键。因此,负责跟踪对话框状态和转换流程的对话框管理研究是对话系统的基础。
可以将人类对话大致地表述为马尔可夫决策过程(MDP) :在每个时间步上,系统都会通过采取措施a从某个状态s过渡到一个新状态s’。因此,强化学习(RL)通常用于解决对话系统中的MDP问题。面向任务的对话系统的对话管理的最新研究主要集中在以下主题上:(1)带有自由形式插槽的值解码器的生成式对话状态追踪器,(2)在策略学习中提高样本效率的对话计划,以及(3)对于预测任务成功和用户满意度的用户目标估计。
5.2.1 生成对话状态追踪
对话状态跟踪器通过跟踪每个回合的结构化对话状态表示,在面向任务的对话系统中扮演着重要角色。最新的DST研究通过不使用NUU将自然语言作为输入来应用词级结构,这可以避免NLU组件传播的错误。在早期的神经DST方法中,置信状态被广泛用于对话状态表示[25],它在每个时隙的所有可能值上保持分布。因此,早期方法通常将DST公式化为分类任务[3, 26, 107-109]。 马修等。[107]首先提出通过将自然语言话语和ASR分数作为输入特征,将递归神经网络用于单词级对话状态跟踪。Nikola等。[3]提出 了神经信仰追踪器(NBT) ,-种单.词级对话状态追踪器,可以直接从自然语言的话语中读取信息。NBT通过广 ]控机制对系统请求和系统确认操作进行了显式建模。但是,这些方法只能处理域本体词汇表中的预定义时隙值,通常在推断过程中跟踪未知时隙值时会遇到不足。
Zhong等人[110]提出了在各个插槽中共享参数并通过全局局部自注意力机制来学习特定插槽的特点,该机制可以概括为具有很少训练数据的稀有值。但是,稀有值仍然是词汇中的单词。Lei等人[52]使用带有两级CopyNet的seq2seq模型来同时生成置信范围和响应,这在00V情况下获得令人满意的结果。在第一阶段,置信状态CopyNet[111]将用户的话语作为输入,并生成可靠状态跨度。然后在第二阶段中,根据话音和置信区间,另一个CopyNet生成响应话语。Hu等人[112]提出使用指针网络[113]来提取未知时隙值,该值显示出优于区分DST方法的性能。一种更实用的方法是同时使用抽取性和区分性方法来处理不同类型的插槽[30]。对于诸如酒店名称和出发日期之类的收费时段,应从话语中提取其值。对于酒店星级和房间类别等固定词汇的时段,最好使用分类器预测其价值。
最近,提出了一些多域数据集来促进这一方向的研究[69, 75],与单域任务相比,多域场景中的DST必须预测插槽值的域。Wu等人提出了TRADE[4],一种使用seq2seq模型和CopyNet[111]来预测值的可转移多域DST。参数在域之间共享,从而为看不见的域启用了零触发DST。COMER [31] 通过首先确定域和时隙,然后对其值进行解码,进一步降低了值解码的计算复杂度。在上述方法的解码中,他们首先输入域和插槽名称传递给解码器,然后解码该值。要是我们以域名和插槽名称作为“问题”的形式,则该模型可以通过以先前的回合作为上下文,以域名槽位名称作为问题和值作为答案来视为问题回答模型。DSTQA [32]除了名称之外,还在名称中添加了更多元素,例如域和插槽的描述文本,固定词汇槽的值。他们还使用GNN对中间对话状态图进行了编码,以减轻数值解码的难度。在[114]中, Chen等人提出使用图注意力神经网络来建模跨槽的关系。
5.2.2 对话计划
通过与真实用户互动学习,无模型的RL方法主导了神经对话策略的早期研究[34,54,55,115]。 它非常耗数据,需要大量的交互才能有效地训练策略模型。一种常见的解决方案是使用用户模拟器[24,38]。 然而,用户模拟器不能完全模仿真实的人类对话行为,其归因偏差可能导致在真实人类对话中表现欠佳的次优模型[39]。
为了缓解这些问题,基于模型的RL方法是提议对环境进行建模,从而实现对对话策略学习的计划在基于模型的RL方法中,对环境进行建模以模拟对话的动态。然后在RL训练阶段,通过从实际用户那里学习并使用环境模型进行规划来交替训练对话策略[116]。Peng等人[40]提出了Deep Dyna-Q (DDQ) 框架,该框架首先集成了基于模型的面向任务的对话系统的计划。在DDQ框架中,有一个世界模型,该模型在真实用户体验上进行了训练,以捕获环境动力学。对话策略是通过直接RL (使用真实用户)和模拟RL (使用世界模型)进行训练的。在训练过程中,还将根据不断增加的实际经验通过监督学习来更新世界模型。对策略学习至关重要的世界模型的性能在训练期间不断提高。但是,用于Q学习的.真实体验与模拟体验的比率在原始DDQ框架中是固定的。因此,提出了受控计划[41, 42]来通过根据世界模型的性能动态调整真实体验与模拟体验的比率来缓解此问题。
上面的规划方法称为背景规划,它通过对世界模型的模拟经验进行培训来改进策略。基于计划的研究的另一行是决策时间计划,它可以基于一些模拟经验直接决定在特定状态St下应采取的行动。模拟的未来步骤可以提供额外的提示,以方便决策。以这种方式使用的计划看起来比在决策时提前一步要深刻得多,这在人类活动中很常见。以国际象棋游戏为例,玩家经常通过向前看几个步骤来进行心理模拟,然后决定如何移动棋子。一些著作[117, 118]将对话推出计划引入了协商对话,其中,代理在特定状态St下模拟完整的对话,以获取多个候选响应以获得预期的奖励,并以最高的响应进行响应。将获得奖励。Jiang等人没有完成对话并获得明确的奖励,[119] 而是建议提前考虑几个有限的步骤,并将这些步骤用作策略模型的附加功能,以减轻决策的难度。
5.2.3 用户目标估算
在基于RL的对话模型中,用户的目标对于策略学习至关重要。奖励信号是用户目标的间接反映,因为它使用户对对话感到满意。奖励函数定义的一种典型方法是,在成功的会话结束时分配较大的正向奖励,并在每回合中分配较小的负惩罚以鼓励简短的会话[120]。但是,在实际应用中用户目标是不可获取的,则不能有效地估计此奖励。另一个问题是,当奖励信号由预定规则客观地计算或由真实用户主观判断时,奖励信号不一致。为了减轻上述问题,有一些学习独立奖励函数的研究者,以提供可靠的监督信号。
奖励估算的一种方法是使用带注释的数据进行离线学习[121]。通过将对话话语和中间注释作为输入功能,奖励学习可以作为监督性回归或分类任务来实现。可以从人类注释或用户模拟器中获得带注释的奖励。但是,由于输入特征空间复杂,因此需要大量的手动注释,这太昂贵了。
为了解决上述问题,还有另一项工作是使用在线学习进行奖励估算[96]。奖励估算通常被公式化为高斯过程回归任务,可以额外地为其估算提供不确定性度量。在这种情况下,采用主动学习来减少估计真实奖励信号的需求,在这种情况下,仅当不确定性得分超过阈值时才要求用户提供反馈。在其他情况下,当估计不确定性较小时,将使用估计奖励。
Inverse RL (IRL) 旨在通过观察专家的演示来恢复奖励功能,而不是通过带注释的标签来估计奖励信号。对抗学习通常通过区分模拟用户对话和真实用户对话来进行对话奖励估计[64,65,95]。
5.3 本体整合
面向任务的对话系统中的一个主要问题是将对话的本体集成到对话模式中,包括域模式和知识库。在大多数以前的方法中,域模式是预先定义的,并且高度依赖于它们使用的语料库,例如,餐厅域的插槽包含地址区域,美食类型,价格范围等。在查询数据库并检索结果时对于面向任务的对话系统做出决定并产生适当的响应是必不可少的,最近还进行了很多努力来集成外部数据库或API调用。
但是,由于任务域的规模很大,面向任务的对话模型的本体集成变得更具挑战性。尽管可以在模型设计中考虑预定义的本体,但是这些方法与领域模式结合在一起,不能轻易地转移到新任务上。虽然提出了越来越多的端到端模型来缓解模式集成问题,但涉及上下文信息和知识库并非易事,因为与流水线方法不同,没有明确的对话状态表示以生成显式知识库查询。
在本节中,我们将介绍(1)对话任务模式集成和(2)在面向任务对话模型的知识库集成方面的一些最新进展。
5.3.1 架构整合
将架构集成到对话模型对于面向任务的对话框至关重要,因为NLU和DST的值预测以及Policy中的操作选择高度依赖于域架构。NLU的早期方法使用分类进行意图检测,并使用序列标记进行槽值识别。因此,模式集成主要反映在模型输出层设计中,例如,每个意图一个类。早期的DST方法通过为每个插槽(也称为置信状态)在值语音上给出值概率分布来利用类似的方式。对于NLG方法,输入通常,是结构化的对话行为,而编码器的输入结构高度依赖于表示结构。
上述方案集成方法基本上将方案和模型设计耦合在-起,导致可扩展性差和域泛化。最近,有许多方法试图解开领域方案和模型设计。Convlab[61]在MultiWOZ[69]数据集中提供了附加的用户对话动作符号,以使开发人员能够在多域,多意图设置中应用NLU模型。虽然大多数DST都假设处于置信状态的插槽只能在一个回合内映射到单个值,但COMER [31] 使用优先级运算符扩展了对话状态的表示,该运算符考虑了用户对插槽值的偏好。其他工作[32,122] 通过将域插槽描述作为问题来使用DST的问题解答方法,这些值被视为答案,可以通过提取或基于生成的方法来预测。在某些方法中,模型设计与领域架构是分离的,领域的架构由自然语言文本表示,这使其易于转移到新领域。对于NLG任务, Peng等人[46]提出了SC-GPT,它将结构化对话作为令牌的序列来对待,并将序列提供给生成模型。通过对大规模da-response对进行预训练,该模型能够捕获基于序列的对话行为表示的语义结构。当扩展到一个新的领域时,只需要少量的训练实例(50) 即可达到令人满意的性能。ZSDG[123]学习了一个跨域嵌入空间,该空间可对对话框响应的语义进行建模,以便可以用最少的数据立即将其推广到新情况。SGD [75]中的每个服务(域)都提供了一个架构,列出了支持的插槽和意图及其自然语言描述。这些描述用于获取这些架构元素的语义表示,从而使模型适用于零触发设置。
5.3.2 知识库整合
对于面向任务的对话系统,查询外部知识库以获取用户查询的信息至关重要。早期的模型或流水线系统通过在对话交互过程中基于当前对话状态发出查询来从知识库中检索条目,这需要一些人工工作。由于面向任务的场景中任务的复杂性不断提高,因此在没有中间监督的情况下训练端到端对话系统将更具吸引力。但是,与管道方法不同,在端到端方法中没有显式的结构化对话框状态表示。因此,知识库交互是通过使用模型的中间潜在表示来进行的,并通过端到端的训练进行了无缝训练。
CopyNet和端到端内存网络被广泛用于通过注意力机制将知识集成到对话系统中。但是,复制机制也可以被视为存储网络,其中编码器隐藏状态由存储单元组成。Eric等人[124]提出了一种基于复制的方法,该方法依赖于潜在的神经嵌入来关注对话历史并复制相关的先前上下文以进行解码。但是,它们只能生成上下文中提到的实体。最近的工作使用存储网络来进行先前的对话上下文和知识整合[50,125]。在这种方法中,对话上下文和知识库被建模为两个内存网络。然后在解码阶段,使用解码器的隐藏状态有选择地查询和复制那些内存网络中的信息,这种方法的关键问题是对话上下文和知识库是来自不同来源的异构信息。Lin等人[126]提出了使用历史信息对异构信息进行建模的方法,该信息存储在上下文感知的内存中,而知识库元组则存储在上下文无关的内存中。在[127]中,提出了两步知识库检索,通过首先确定实体行然后选择最相关的知识库列来提高实体的一致性。
除了完全的端到端方法,很少有中间方法在监督方面,也存在一些通过对话行为和置信状态注释将领域先验知识整合到模型中的端到端模型。Williams等人[54]提出了一种混合代码网络(HCNs),它结合了RNN和编码为软件和模板的领域知识,可以大大减少所需的训练数据。Wen等人[48]提出了一个模块化的端到端的面向任务的对话模型,该模型通过将几个预先训练的组件组合在一起,然后使用RL以端到端的方式。但是与seq2seq模型相比,这些方法更像流水线模型的简化版本。
6 讨论与未来趋势
在本文中,我们回顾了面向任务的对话系统的最新进展,并讨论了三个关键主题:数据效率,多回合动态学和知识集成。此外,我们还回顾了在面向任务的对话评估和广泛使用的语料库方面的一些最新进展。尽管有这些主题,仍然存在一些有趣且具有挑战性的问题。最后,我们讨论面向任务的对话系统的一些未来趋势:
● 对话系统的预训练方法。数据稀缺是构建面向任务的对话系统的关键挑战。一方面,为特定域收集足够的数据既耗时又昂贵。另-方面,面向任务的对话系统是一个复合的NLP任务,它有望从离线数据以及与用户的在线交互中学习语法,推理,决策和语言生成。对细粒度数据注释和模型设计的更多要求。最近,经过预训练的模型已经显示出在许多NLP任务中的优异性能[16, 128, 129]。在这种情况下,首先通过一些无监督的预训练任务在大型语料库上对基础模型进行预训练,例如屏蔽语言模型和下一个句子预测。在预训练阶段,基本模型可以捕获隐式语言知识,并从大型语料库中学习。使用这种隐式知识边缘,基本模型可以通过简单地微调目标任务的数据来快速适应目标任务。这个想法也可以应用于面向任务的对话系统,以将一般的自然语言知识从大型语料库转移到特定的对话任务。一些早期研究表明,可以使用预训练模型为面向任务的对话框建模[46,99, 100, 130, 131]。
● 域适应。与开放域对话不同,面向任务的对话基于定义明确的域本体,该域本体约束了特定任务的代理操作,插槽值和知识库。因此,为了完成一项任务,对话系统的模型高度依赖于领域本体。但是,在大多数现有研究中,有关拓扑知识的知识都被硬编码到模型中。例如,对话的行为类型,槽值词汇量,甚至基于插槽的置信状态都被嵌入到模型中。这种硬编码的本体嵌入带来了两个问题: (1)要求人类专家分析任务并将领域本体集成到模型设计中,这是一个耗时的过程。(2)现有模型无法轻易地转移到其他任务。因此,将域本体和对话模型去耦以获得更好的适应性能是一个重大问题。最终目标是实现零击域自适应,它可以像人类一样,在没有任何训练数据的情况下,直接在给定本体的情况下构建对话系统。
● 鲁棒性。由于现有的神经模型易受简单输入扰动的影响,因此深度神经模型的鲁棒性一直是一个具有挑战性的问题。对于面向任务的对话系统,鲁棒性也是一个关键问题,主要来自两个方面: (1)一方面,面向任务的对话高度依赖于领域本体。因此,在许多研究中,训练数据只限于噪声少,合理的实例。但是,以这种特殊方式训练的模型通常会落在实际应用中,其中存在许多域外或分布外输入[132],例如以前看不见的槽值。强大的对话系统应能够在部署后处理噪声和以前看不见的输入。(2)另-方面,神经对话策略模型的决策是不可控制的,它是通过离线模仿学习和在线RL训练的。决策的鲁棒性对于其性能而言非常重要,尤其是对于某些错误操作容忍度较低的特殊应用,例如在医疗和军事领域。因此,提高神经对话模型的鲁棒性是重要的问题。一种可行的方法是将基于规则的鲁棒方法与神经模型相结合,例如神经符号机器[133,134],这不仅可以使模型更具鲁棒性,而且还具有更多的解释能力。
● 端到端建模。与流水线方法相比,近年来端到端对话系统建模越来越受到关注。无需对对话状态和策略进行精确建模,就可以更轻松地训练端到端模型。但是,现有的端到端方法仍然需要一些中间监督以提高模型性能。例如,在[48]中,通过将预训练的组件组合在一起,然后对所有以端到端的方式使用RL的组件进行微调,提出了基于模块的端到端框架,在训练前阶段仍需要中间监督,例如对话行为和置信状态。在[52]中,尽管提出了一个seq-to-seq框架来避免组件障碍,但仍保留中间输出(称为置信区间)用于显式置信状态建模。因此,在没有中间监督且可以与知识库无缝交互的情况下,以完全端对端的方式对面向任务的对话框进行建模的问题仍然是一个未解决的问题。
This work was supported by the National Science Foundation of China (Grant No.61936010/61876096) and the National Key R&D Program of China (Grant No. 2018YFC0830200)
参考文献
自行查阅原文第18页与19页中参考文献 [1] — [134]