精华内容
下载资源
问答
  • 任务型对话系统

    千次阅读 2018-11-12 19:59:44
    1、 整个对话系统的流程:  a、 开放域多轮对话,瞎聊,识别用户意图  b、 准入条件,根据设定好的准入条件,进入封闭域对话  c、 封闭域对话,填槽,必填槽不完整就要澄清让用户填完整,最终执行 解释: ...

    1、 整个对话系统的流程:

         a、 开放域多轮对话,瞎聊,识别用户意图

         b、 准入条件,根据设定好的准入条件,进入封闭域对话

         c、 封闭域对话,填槽,必填槽不完整就要澄清让用户填完整,最终执行

    解释:

    从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。

     

    2、封闭式对话 --- 具体任务的;

        a、输入和输出都是可枚举的,输入的是每个任务的每个槽位,输出的是给定槽位值之后,然后输出的各种可能性。

        b、对话有明确的目标和流程 --- 当有些槽值不明确的时候,系统会反问用户,来获得这些槽值

     

    2、slot-filling dialogue   填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。

    填槽式对话    slot需要在开始定义好的,然后从对话数据中,找到相关信息,直接填充

    例如打车中的,出发地点槽,目的地槽,出发时间槽中的属性分别是“出发地点”、“目的地”和“出发时间”

    3、任务型对话系统的流程图

     

    language understanding: 将用户说的话转化为槽值的形式

    dialog manager: 追踪状态   、 做出相应的 act

    nature language generation: 将 act 转为 文字,表述出去

    4、NLU模块: domain detection, intent determination and slot tagging  

    domain detection, intent determination  --- 识别交谈的是哪个领域或者具体意图

    对于 semantic representation:

          a、分布式语义表示 (vector 形式)      b、框架式语义表示(slot)      c、模型论语义表示 (logic)

    领域是指同一类型的数据或者资源,以及围绕这些数据或资源提供的服务,比如“餐厅”,“酒店”,“飞机票”、“火车票”、“电话黄页”等;

    意图是指对于领域数据的操作,一般以动宾短语来命名,比如飞机票领域中,有“购票”、“退票”等意图;

    属性槽用来存放领域的属性,比如飞机票领域有“时间”“出发地”“目的地”等;

    6、可扩展的算法框架:各个领域在知识库、数据、模型、算法等方面,都是各自独立的。

     

    本文参考资料:

    [1]  https://yq.aliyun.com/articles/8301

    [2] https://yq.aliyun.com/articles/158691?spm=a2c4e.11153940.blogcont8301.16.840d5d7aivi5p0

    [3]  Gao J, Galley M, Li L, et al. Neural Approaches to Conversational AI.[C]. meeting of the association for computational linguistics, 2018: 2-7.

     

    展开全文
  • 对话系统 | (8) 任务型对话系统概述

    千次阅读 2020-08-27 17:25:07
    本篇博客主要参考/节选中科院自动化所王唯康博士的博士论文《任务型对话系统中对话管理方法研究》。 文章目录1. 概述2. 基于管道的任务型对话系统2.1 语言理解模块2.2 对话管理模块2.3 语言生成模块3. 端到端的任务...

    本篇博客主要参考/节选中科院自动化所王唯康博士的博士论文《任务型对话系统中对话管理方法研究》。

    1. 概述

    在这里插入图片描述
    早期任务型对话系统基于规则实现,实现比较简单并在简单的对话任务中取得了不错的效果,但难以适用于复杂的对话任务,规则的撰写和维护需要消耗大量的人力和物力。

    后来得益于SVM、概率图模型和强化学习的发展,研究人员开始利用统计模型设计任务型对话系统,并提出部分可观测的马尔科夫决策过程设计框架,可以从对话数据中自动学习对话知识,一定程度上摆脱了对规则的依赖。

    随着深度学习的发展,end2end模型被应用在了任务型对话系统设计中[1-5]。基于深度学习的任务型对话系统有两种路线:一种是基于Pipline,整个系统仍采用模块拼接的方式,但各个子模块采用神经网络实现,利用神经网络提升各个子模块的性能,从而最终提高整个对话系统的性能。另一种end2end模型,和聊天机器人建模方式类似, 即利用检索式或生成式模型直接实现对话上下文到回复的映射,可以避免级联模型带来的误差传递问题。

    目前,任务型对话系统的设计方法可以分为两大类:基于管 道的方法和基于端到端的方法。在基于管道的方法中,研究者可以采取不同的技 术手段实现各个模块,因此便于开发和调试。而基于端到端的方法通过对系统进行全局建模,因此可以避免模块级联所带来的误差传递问题。

    2. 基于管道的任务型对话系统

    在这里插入图片描述
    基于管道的设计方法要求开发者分别实现系统的各个子模块,然后拼接这些模块,最终形成一个完整的系统。这种方法的特点是不同模块可以采取不同的技术手段实现,各个模块之间彼此无关联。

    2.1 语言理解模块

    把用户的自然语言输入转化为结构化语义(semantic frame)形式的输出。一般涉及:领域分类(domain classification,有些工作不考虑领域分类)、意图分类(intent classification)和语义槽填充(slot filling)。如上图所示:用户输入“找一家中关村附近的川菜店。”后,语言理解模块的解析结果。其中, 语言理解模块首先判断出当前对话涉及的领域为“餐厅”,用户意图为“查找餐 厅”,所包含的语义槽为“地点”以及“菜式”,属性值/槽值分别为“中关村”和“川菜”。

    领域分类和意图分类 领域分类要求模型识别当前对话属于哪个任务/领域,意图分类则要求模型识别用户当前轮的对话意图。这两个任务均属于句子分类任务(sentence classification)/文本分类。其差别是,较意图分类而言,领域分类的分类粒度更大。 通常有两种方法完成这两个任务。第一种是层次化的分类方法,即先进行领域分类,然后再在相应的领域下进行意图分类。这种做法需要根据前一次领域分类的结果进行意图分类。当前一次分类存在错误时,后一次分类也会给出错误的结果(误差传播)。第二种是扁平化的分类方法,即先对领域标签和意图标签进行组合,然后一次性地确定用户输入所涉及的领域和意图。这种做法避免了误差传递问题。 但是,由于分类标签的急剧增多,模型的性能通常会有所下降。所有可用于文本分类的模型都适用于这两个任务,如SVM、CNN、RNN、Bert等。

    语义槽填充 语义槽是完成对话任务所需的关键信息。例如在餐厅领域中, 交互过程可能会涉及餐厅的“地点”、“人均消费”和“菜式”等属性(语义槽)。语义槽填充的目的即把用户输入中的这些属性信息给抽取出来。例如,在上图所示的例子当中,槽填充需要抽取的信息包括“地点”和“菜式”。早期使用基于规则的方法,后来研究人员把语义槽填充问题建模为一个序列标注任务,并采用 BIO 格式的标签对句子中的每个词进行预测。因此,所有可用于序列标注任务的模型都可以用来做语义槽填充,如:BiLSTM+CRF、基于Bert的槽填充模型。

    联合模型 语言理解模块中的三个子任务在某种程度上存一定的联系。同时利用这三个任务的学习信号训练模型将会促进模型在各个任务上的表现。基于此,研究人员利用了多任务学习的思想(multi-task learning)对这几个任务进行联合建模,使得表示层的语义信息得到强化,最终在这三个任务中均取得了更好的效果。在联合学习模型中,基于 BERT 的模型能够有效地利 用无标注数据,同时具备更精确的语义表示能力和更好的长距离依赖建模能力。 因此,该模型取得了目前最好的效果,并在实际系统中得到了成功的应用。

    近期还出现了一些小样本学习的方式,即few-shot的文本分类(意图分类)和few-shot的序列标注(语义槽填充)

    2.2 对话管理模块

    对话管理模块是任务型对话系统的中枢部分,由对话状态追踪模块和对话策略模块组成。

    其中,对话状态追踪模块负责记录和更新对话过程中所涉及的变量及其相应的属性值。例如在餐厅领域,用户可以利用餐厅的“地点”、“人均消费”和“菜式”来检索心仪的餐厅。那么,对话状态追踪模块需要记录这三个属性所对应的值。当完成用户状态的更新后,系统会依据当前的对话状态同后台数据库交互,并按照某一对话策略选择系统行为。
    在这里插入图片描述
    基于状态机的对话管理方法 早期的对话管理采用基于状态机的方法实现。开发者需要枚举出所有可能的对话状态、状态跳转规则和对话策略。用户输入结束后,系统将根据预定义的规则进行状态的转移,同时根据转移后的对话状态执行相应的系统行为。上图是餐厅领域的一个简单的对话状态转移图。图中节点表示对话状态,不同对话状态的差异在于节点记录了不同的语义槽信息。整个对话过程可以看作从开始状态到结束状态的转移。

    优点是具有很好的可解释性。但是,当对话任务变得复杂时,对话状态会急剧增多。另外,对话策略的设计依赖于开发者的经验。在实际开发过程中,开发人员需要根据用户的反馈反复地调整对话策略,设计成本高,难以在复杂对话任务中实用。

    基于部分可观测马尔科夫决策过程的对话管理方法 和基于状态机的对话管理不同,该框架下的对话状态是一个随机变量而非一个确定值。这种方法考虑到了语音识别和语言理解的噪声,并通过信念状态(belief state)建模对话状态的不确定性。因此,该对话管理方法具备更好的鲁棒性。

    下图给出了基于马尔科夫过程的对话管理中的状态转移示意图。白色的节点代表不可观测的信念状态,灰色的节点代表可观测的变量(语言理解的结果,从环境中获取的反馈以及系统行为)。在基于马尔科夫过程的对话管理中,下一时刻的信念状态st+1s_{t+1}取决于当前时刻的信念状态sts_t、当前时刻的系统行为ata_t和下一时刻观测到的语言理解结果ot+1o_{t+1}. 信念状态的求解较为复杂,研究者通常采用近似估计的方法对其进行求解。常用的两种方法为修剪重组策略(pruning and recombination strategies)和基于因式贝叶斯网络的方法(factored bayesian network approach)。
    在这里插入图片描述
    基于马尔科夫(决策)过程的对话管理采用强化学习 [6] 优化对话策略。其核心思想是让系统通过不断地尝试,从试错中学习完成任务的策略。在使用强化学习优化对话策略之前,人们需要设计一个奖励函数评估系统策略的好坏。奖励函数设计得是否合理会直接影响策略优化的质量。常用的奖励函数是鼓励系统在最少的交互轮次内完成任务。但是,在涉及多个对话领域的复杂任务中,这样的奖励函数不一定适用且存在奖励稀疏的问题。因此,Takanobu 等 [7]提出从专家示范 (expert trajectories)中学习奖励函数,并利用学到的奖励函数指导强化学习训练。 这种方法被称为逆强化学习(Inverse Reinforcement Learning,IRL)。Peng 等 [8]则借鉴了生成式对抗网络(Generative Adversarial Networks,GAN)的思想,利用人机对话和专家示范的差异程度评估对话策略的好坏。人机对话和专家示范之间差异越小说明当前系统的对话策略越接近人类的对话策略,因此系统会收到较大的奖励。反之,则收到较小的奖励。Shi 等 [9]提出利用无监督 学习(unsupervised learning)的方法从对话语料中挖掘对话的结构逻辑,并把挖掘出来的结构信息作为辅助奖励函数指导策略优化。此外,在语音交互场景下, Shi 和 Yu [10]首先对用户的输入进行多模态情感分析,然后把用户的情感状态作为奖励函数。这些工作都极大地丰富了奖励函数的设计手段。

    在设计好奖励函数之后,开发者需要采取某种强化学习算法优化对话策略。 较为常用的优化方法是基于值迭代的方法 。基于值迭代的方法通过状态动作值函数(q-function)度量智能体在某个状态下执行某一操作后收到的期望累计奖励值。该函数满足 Bellman 等式,可以通过时序差分估计或蒙特卡洛估计的方法计算优化目标。状态动作值函数优化结束后,对话策略模块会选择期望累计奖励最大的动作作为输出。

    值得注意的是,使用强化学习优化对话策略时,用户需要和系统进行多次的交互。此外,强化学习算法普遍存在数据利用率低、探索与利用难以平衡和收敛缓慢等问题。这使得基于强化学习的对话管理模块需要和用户进行较多轮的交互后才能得到充分的训练。因此,使用强化学习训练对话管理模块的成本非常高。针对这个问题,Gašić 和 Young [11]提出利用核函数(kernel function)建模两个状态动作值函数之间的关系,显著地降低了训练对话策略所需的交互次数。Su 等 [12]提出利用主动学习(active learning)[13-15] 的方法减少在线强化学习过程中人工评价的工作量。Asadi 和 Williams [16]以及 Su 等 [5]提出使用重要性采样机制(importance sampling)[82] 对系统之前探索到的对话数据加以利用。Lipton 等 [17]提出使用贝叶斯神经网络(bayesian neural networks)[18] 对状态动作值函数的不确定性进行建模,并让对话智能体优先探索不确定性大的对话状态,从而提高了对话管理模块的探索效率。Peng 等 [19]提出利用基于模型的强化学习算法(model based reinforcement learning)[20] 显式地对用户进行建模,并从用户模型中采样伪对话数据训练对话策略,从而缓解了对真实用户的依赖(用户模拟器)。这些方法均有效地减少了利用强化学习训练对话管理模块的训练开销。

    端到端的对话管理方法 随着深度学习技术的发展,研究人员开始利用深度神经网络模型设计对话管理模块。由于深度神经网络是端到端可微分的,且具备更强大的表征能力,因此这种方法成为了目前的研究热点。

    首先,针对对话状态追踪任务,相关工作可以分为基于打分的模型和基于生成的模型。基于打分的模型的典型例子是 Mrkšić 等 [21]提出的对话状态追踪器。首先使用卷积神经网络对对话上下文和对话状态的候选结果进行表征,然后在这个表征的基础上对对话状态的候选结果进行评估,最后把每个语义槽下打分最高的候选结果当作用户当前的对话状态。但在实际的应用中,人们 无法枚举出语义槽所有可能的取值,因此基于打分的方法无法处理候选结果之外的情形。为了解决这个问题,研究者提出了基于生成的模型。其基本思想是利用指针网络(pointer network)[22] 直接从上下文中拷贝出某一语义槽对应的属性值。这种方法能够处理任意的对话状态值,因此成为了设计对话状态追踪器的主流方法。较为典型的例子是 Xu 和 Hu [23]以及 Wu 等 [24]的工作。

    其次,针对对话策略优化问题,相关研究可以划分为基于策略梯度的方法 (policy gradient)和基于深度 Q 网络的方法(deep q-network)。基于策略梯度算 法的典型例子是 Williams 等 [4]提出的基于混合编码网络的对话管理模块。该模型把语言理解模块的结果、系统上一时刻的行为和数据库中的结果输入到循环神经网络单元中,从而得到当前时刻的对话状态,最后根据这个对话状态从系统行为集合中选择合适的系统行为。和这项工作类似的还有 Su 等 [25]和 Liu 等 [26]提出的对话管理模型。与基于策略梯度更新方法不同的是,基于深度 Q 网络的对话管理模块通过神经网络估计对话智能体的状态动作值函数,其输入是对话状态的表征,输出则是状态动作值(函数)。较为典型的工作是 Zhao 和 Eskenazi [2]以及 Li 等 [3]提出的端到端对话管理模型。和基于策略梯度的方法相比,基于深度 Q 网络的方法对数据的利用率更低,因此模型更难以收敛。

    2.3 语言生成模块

    基于规则的语言生成方法 当对话管理模块选择系统行为后,语言生成模块会把相应的系统行为翻译为自然语言。语言生成模块一般基于规则实现 [3, 4]。 开发者会预先构造回复模板,然后依据系统行为选择相应的回复模板,最后把回复模板中的通配符替换为相应的实体信息。例如,对话管理模块的输出“Recommend(name= 望湘园)”表示向用户推荐一个名为“望湘园”的餐厅。那么,语言生成模块会选择回复模板“namename 这家餐厅挺不错的”。其中,通符“namename” 可以被替换为餐厅名称“望湘园”。进行实体替换操作后的回复模板将作为语言生成模块的输出。基于规则的语言生成方法因为实现简单,所以在商用系统中得到了广泛的应用。

    数据驱动的语言生成方法 除此之外,有工作研究了数据驱动的语言生成方法。Walker 等 [28]首先提出了一种句子规划器,并利用该句子规划器生成由多个短句组成的复杂句子。Stent 和 Molina [29]则直接从有标注的语料中学习句子组合规则。Rieser 和 Lemon [30]使用强化学习生成句子。然而,这些方法对语料标注的要求较高,且在某种程度上依然依赖启发式的规则。最近几年,人们开始尝试使用神经网络实现语言生成模块。这一方向最早的工作是 Oh 和 Rudnicky [31]提出的基于短语的语言生成模型。后来,随着循环神经网络语言模型 [32, 33] 的兴起,研究人员提出了基于循环神经网络的语言生成模型。较为典型的工作是 Wen 等 [34]提出的基于 LSTM 的语言生成模块。该模型使句子生成过程条件于需要表达的语义上,同时引入了门控机制使得解码器在解码时能够利用对话行为和语义槽等信息。数据驱动的语言生成方法虽然能够基于有标注的数据进行模型训练,但是也严重地依赖大规模高质量的平行句对。

    3. 端到端的任务型对话系统

    端到端的任务型对话系统不再独立地设计各个子模块,而是直接学习对话上下文到系统回复的映射关系,设计方法更简单。相关研究可以划分为两大类:基于检索的方法和基于生成的方法。

    基于检索的对话系统如下图所示。其基本框架是首先通过某种方法对上下文以及所有的候选回复进行编码,然后通过打分函数度量上下文和每个候选回复的匹配程度,最后把匹配程度最高的回复返回给用户。不同检索模型的区别主要在于句子表征模型和打分模型的不同。基于检索的模型 最早被应用在聊天机器人的设计中 [35–39]。Bordes 等 [2]通过规则构建了一批任务型对话数据,并在该数据中比较了各种基于检索的对话模型的性能。

    3.1 基于检索的任务型对话系统

    基于词袋法的检索模型 最简单的基于检索的对话系统通过词袋法(Bag of Words,BOW)表示文本,并采用余弦距离计算文本之间的匹配度 [2]。具体来说,模型首先用向量表示每个文本。向量中的每一位代表着一个单词,其值是该单词的频率和逆文档频率的乘积(TF-IDF)。然后,模型将计算上下文表征和候选回复表征的余弦距离,进而得到两者之间的匹配度打分。最后,余弦距离最大的那个候选回复将会返回给用户。除此之外,模型还可以计算两个上下文之间(对话历史)的相似性程度,并把距离当前上下文最近的那个上下文所对应的回复返回给用户。在实际的操作中,为了减少计算量,还可以用对话中的最后一句话代表整个对话上下文。 基于词袋法的对话模型无需学习任何参数,属于经典的信息检索模型,是基于检索的任务型对话系统中最简单的模型。

    基于稠密向量的检索模型 随着词表示模型和句子表示模型的发展,研究人员开始利用稠密向量编码上下文和候选回复。具体做法是首先采用 Mikolov 等提出的 word2vec 模型编码单词,然后采用某种方法组合句中单词的信息, 进而得到整个句子的编码表示。常用的句子编码方法有简单的词向量相加和基于循环神经网络的方法。当完成对句子的编码后,对话模型会采取最大间距损失函数优化参数。相较于基于词袋法的检索模型,基于稠密向量的检索模型能够更好地学习到上下文的编码表示,因此在许多基于检索的对话系统中都取得了不错的效果 [2, 40]。

    基于记忆网络的检索模型 此外,Bordes等[2]还使用了记忆网络模型(memory network)[41, 42] 学习上下文和候选回复的匹配度打分。具体而言,记忆网络首先把上下文中每个句子的表征存储在一个外部记忆单元中,然后把候选回复的表征当作查询向量,并利用这个查询向量从记忆单元中读取信息。在每次读操作后,模型都会根据读取出来的内容更新查询向量。当最后一次读操作结束后,模型读取出来的向量会被用于预测候选回复是正确回复的概率。这种多跳读操作模拟了人类的推理过程,因此能够很好地建模回复和上下文之间的长距离依赖关系。基于记忆网络的检索模型也在 Bordes 等 [2]提出的对话数据集中取得了最好的效果。

    基于 BERT 的检索模型 除了 Bordes 等 [2]提到的检索模型之外,其它句子表征模型也可以用于检索型任务型对话系统的设计。例如,Henderson 等 [43]提出的基于 BERT 的对话模型 [44]。具体而言,Henderson 等 [43]首先通过 BERT 对上下文以及候选回复进行编码,然后利用开放域的对话数据对模型进行预训练,接着在任务型对话数据集上微调模型。由于基于BERT 的检索模型能够充分利用开放域的对话数据,所以该模型取得了目前最好的结果。

    除了关注模型的设计之外,还有工作借鉴了自监督学习(self-supervised learning)的思想,为基于检索的任务型对话系统构造辅助任务,并利用这些辅助任务提升检索模型的性能 [45]。例如,Mehri 等 [45]构造了“下一个句子预测”、“下一个句子生成”、“掩码后的句子生成”以及“不一致句子识别”等四个辅助任务,并通过这些任务学习预训练句子编码模型。这种学习框架并不关注模 型结构的设计,而是着重构造标签易于获取的辅助任务,并通过辅助任务的训练丰富模型的学习信号,从而提升了目标任务的性能。

    3.2 基于生成的任务型对话系统

    基于生成的对话系统如下图所示。其基本思想是通过编码器对对话上下文进行编码,然后利用解码器解码出合适的回复。和基于检索的模型类似,基于生成的方法最早应用在了聊天机器人的设计当中 [46]。
    在这里插入图片描述
    Wen 等 [1]借鉴了生成式聊天机器人的设计方法,设计了第一个基于生成式模型的任务型对话系统。该系统由四个网络组成。第一个网络是意图识别网络。意图识别网络首先对用户输入进行编码,然后预测用户当前的意图是哪一 个。从结构上来说,意图识别网络对应着语言理解模块。第二个网络是信念状态追踪网络。信念状态追踪网络的作用是记录用户的对话状态,并根据对话状态在数据库中进行各种查表操作。因此,该网络实现了对话状态追踪的功能。第三个网络是策略网络。该网络的输入是前两个网络的输出以及数据库操作的结果,输出是对话策略的表征。值得注意的是,和基于管道的方法不同,此处策略网络的输出是一个稠密的向量而非一个离散的系统行为。第四个网络是基于 LSTM 的句子解码器。该网络首先利用策略网络的输出进行状态初始化,然后通过注意力机制(attention mechanism)关注上下文中重要的单词信息,同时在每个解码时间步预测出一个单词,直到预测出结束符为止。因此,解码器可以被视作语言生成模块。

    生成式模型和数据库交互的问题 自从 Wen 等 [1]提出了生成式的任务型对话模型后,学术界便针对其不足进行了改进。在 Wen 等 [1]提出的模型当中,数据库相关的查询操作是离散操作。这会破坏模型端到端可微分的特性。为了使数据库相关的操作具备可微分的特性,Dhingra 等 [47]提出了知识库的软查找方法。此外,在语言生成过程中,Wen 等 [1]提出的解码器难以有效地解码出数据库中的信息。因此,Eric 和 Manning [48]提出使用指针网络直接从数据库中拷贝出相应的条目作为解码器的输出。类似地,Madotto 等 [49]还利用记忆网络 [41, 42] 对对话历史以及数据库中的信息进行编码。在解码阶段,模型会通过门控单元决定每个时刻的解码信息来源于词表还是记忆部件。该方法有效地缓解了词表规模不足所带来的问题。但是,在解码数据库中的内容时,模型可能会利用不相关的两个条目。这将导致解码出的实体信息不一致。为了约束解码器对数据库相关内容的解码,Qin 等 [50]提出了实体一致网络。该方法有效地提升了解码过程的实体一致性。上述方法均使得生成式的任务型对话系统能够有效地和数据库进行交互,并正确地解码出数据库中的实体信息。

    生成式模型的简化 Wen 等 [1]提出的模型会对针对每个语义槽分别使用一 个 LSTM 进行对话状态的追踪。这会让对话模型的结构变得相当复杂。针对该 问题,Lei 等 [51]提出了一种简化的序列到序列的对话模型。其核心思想是对上 下文编码后分两步进行解码。第一个解码过程对应着对话状态追踪,即根据上下 文解码出每个语义槽的对话状态。第二个解码过程对应着语言生成过程,即根据 上下文以及前一步解码出的对话状态解码出系统回复。此外,模型还采用注意 力机制拷贝输入端的信息,使解码器在解码时能够直接解码出编码器中的内容。 Lei 等 [51]提出的两阶段解码模型使生成式任务型对话系统无需专门的对话状 态追踪模块,因此有效地简化了模型的结构。

    生成式模型回复多样性的问题 Li等[52]指出,基于生成式模型的聊天机器 人偏向于生成缺乏实际意义的回复,即“好的”等万能回复。类似地,Wen 等 [53]发现基于生成式模型的任务型对话系统解码出的句子句式过于单一。因此, Wen 等 [53]使用离散的隐变量(latent variable)建模用户意图的多样性,并采用 变分推断(variational inference)[54–56] 方法学习隐变量,最终使得模型的回复形式更加丰富。

    基于强化学习的生成式模型 基于生成式的任务型对话系统一般采用有监督的方法训练。但仅仅通过有监督的方法训练模型会使得对话智能体无法学到语料中不存在的对话策略。因此,Lewis 等 [57]首先利用收集到的对话语料对智能体进行有监督的训练,然后再基于强化学习进一步优化智能体的对话策略。在强化学习的优化过程中,Lewis 等 [57]首先采用蒙特卡洛估计法估计智能体解码出某一句话后得到的期望累计奖励,然后利用策略梯度算法更新解码器的模型参数。强化学习使智能体能够在试错中学习语料中不存在的对话策略,因此提高了策略的丰富程度。但是,使用强化学习优化对话策略时,智能体所需探索的行为空间是整个解码空间。这会导致生成的句子不通顺和模型难以收敛等问题。针对该问题,Zhao 等 [58]提出使用隐变量表示当前智能体的对话策略。在进行强化学习优化时,模型只优化该隐变量,而不优化句子生成过程。这种方法减小 了智能体的行为空间,提升了优化效率,也使得生成出的回复更加流畅。

    4. 任务型对话语料收集

    通过人机交互收集对话语料 在早期的研究中,研究人员通过记录用户和系统的对话过程收集对话语料。比较著名的例子是 Sun 等 [59]提出的对话状态追踪评测数据集DSTC2。该语料是用户利用剑桥大学口语对话系统 [60] 完成餐厅预订任务的对话数据。和这项工作类似的还有 Williams 等 [4]提出的客服数据集。该数据是微软的自动客服系统协助用户排除电脑错误的交互日志。

    通过人机交互收集对话语料的方式较为简单,且能够在系统上线后以较低 的成本收集大规模的对话数据。但是,所收集到的数据中系统方的对话策略较为 单一。此外,在语音识别和语言理解存在较高错误率时,系统不一定能够成功地完成任务。因此,使用这种方法收集到的数据质量偏低。

    通过人人交互收集对话语料 为了提升数据的质量,Wen 等 [1]和 Peskov 等 [61]使用了 Wizard-of-Oz 方法 [62] 收集对话数据。具体而言,在构造对话数据之前,数据收集者会提供某一明确的对话任务,例如“寻找中关村附近的川菜店 并询问餐厅的人均消费”。然后,数据收集者会雇佣两位人员。其中一位扮演用户同系统进行交互;另一位扮演系统编写合理的回复辅助用户完成雇主提供的任务。在对话过程中,数据收集者还会要求系统方的雇佣者标注用户每一轮的对话意图和对话状态。

    和人机交互数据相比,利用这种方法收集到的数据质量更高。但是,Wizard-of-Oz 方法的缺点是对人工的依赖程度高。在构造大规模对话数据集时,这种方法的成本相当高。为了减少成本,Byrne 等 [63]要求一个雇佣者同时扮演用户和系统,然后通过自我交互收集对话数据。

    基于规则生成对话语料 除了上述数据收集方法之外,还有工作尝试基于规则构造对话数据。较为典型的例子是 Bordes 等 [2]提出的仿真数据集bAbI。这种方法要求研究人员编写对话脚本,并依据对话规则组合多个对话脚本,最终生成一个完整的对话。

    基于规则的对话语料收集方法依赖开发者手工编写对话脚本和对话规则。当规则构造得不合理时,所生成的语料质量也不高。但是这种方法具有较好的可解释性。在对话数据难以获取时,利用这种方法构造数据不失为一种好的选择。

    5. 用户仿真技术

    使用强化学习训练任务型对话系统时需要雇佣用户同系统进行交互并要求用户对系统的表现进行评估。然而在实际的应用中,雇佣真实用户的成本较高,且数据获取周期长,因此不足以支持模型的快速迭代。针对该问题,研究人员提出了用户仿真器(user simulator),并用它代替真实用户同系统交互。

    用户仿真器的设计目标有两个。首先是用户仿真器需要具备一个对话目标,并依据该对话目标产生合理且连贯的用户行为。其次是在交互结束后,用户仿真器需要对系统的表现给出定量的评分,以评估系统能否完成对话任务。一般而言,用户仿真器的设计方法可以分为基于规则的方法和基于模型学习的方法。

    基于规则的用户仿真 基于规则的用户仿真器采用手工编写的规则模拟用户的行为。较为典型的工作是 Schatzmann 和 Young [64]以及 Schatzmann 等 [65]提出的基于议程的用户仿真器(agenda based user simulator)。该方法把用户的对话目标细化为一个个议程,并使用堆栈管理这些议程。仿真器对用户行为的模拟类似于一个出栈的过程。当用户表达了某一议程所代表的对话需求且系统能够合理地处理该需求时,仿真器对议程执行出栈操作。当栈中的议程全部被清空时, 系统便完成了对话任务。

    基于规则的用户仿真方法的缺点是仿真用户的行为过于僵化,且规则的构建相当复杂。但是,基于规则的用户仿真技术具有很好的可解释性,且建模逻辑十分清晰,因此被广泛地应用在了实际系统的设计当中 [3, 66]。

    基于模型学习的用户仿真基于模型学习方法的核心思想是从对话语料中学 习对话上下文到用户回复的映射。可以看出,基于模型的用户仿真器的构建和对话系统的构建本质上是相同的。因此,所有任务型对话系统的设计方法均可应用于基于模型的用户仿真的构建当中。比较典型的工作是基于生成的用户仿真模型 [67-69]。其基本思想是采用编码器编码对话上下文,然后使用解码器解码出用户的回复。此外,考虑到对话系统的设计与用户仿真器的设计属于镜像任务,Liu 和 Lane [70]分别采用两个 LSTM 建模对话系统的回复过程和用户仿真的回复过程,然后迭代地优化这两个网络。

    基于模型学习的用户仿真的优点是可以从对话数据中自动地学习用户的对话行为。但是,通过这种方法训练得到的用户仿真器缺乏泛化性。在遇到语料中未出现的对话上下文时,用户仿真器的性能得不到保障。此外,这种方法对语料的规模和覆盖度要求较高。当语料获取较为困难时,这种方法并不适用。

    6. 问题分析

    任务型对话系统的设计手段逐渐从基于规则的方法发展到了数据驱动的方法。尤其是在最近的四年间,端到端任务型对话系统相关的研究取得了令人瞩目的成就。然而,目前工业界仍然严重地依赖基于规则的方法设计任务型对话系统,尤其是对话管理模块。其原因是多方面的。通过分析发现,现有的对话管理方法存在如下三方面的问题:

    缺乏可维护性 在任务型对话系统的设计周期中,开发者会通过分析用户和系统的交互日志挖掘系统不能处理的问句,然后扩展系统使其能够处理新的用户行为。在扩展对话系统时,语言理解、对话管理和语言生成模块都需要进行相应的扩展。其中,在扩展基于强化学习的对话管理模块时,开发者需要根据新的本体结构重新设计对话管理模块的模型结构,然后构建新的用户仿真器或雇佣用户训练模型。然而,设计用户仿真的难度大,雇佣用户的花销高。这使得基于强化学习的对话管理模块难以维护。较差的可维护性正是基于强化学习的对话管理方法难以落地的原因之一。

    缺乏在线学习能力 在设计数据驱动的任务型对话系统时,开发者需要收集人机交互数据。从相关工作中可以看出,收集对话数据的成本高,难度大。更重要的是,所收集到的对话数据难以覆盖某一对话任务所有的情形。因此,基于有偏数据训练得到的对话系统在遇到新的用户行为后会很容易地给出不合理的回复。此外,已有工作中的对话系统在部署后无法在线地学习如何处理新的用户需求。这也使得对话系统无法应对因业务变化而出现的用户需求。

    缺乏知识建模能力 已有的对话管理方法主要针对解决槽填充任务。一般而言,解决槽填充任务的对话系统具备较为固定的对话逻辑,且无需利用世界知识同用户交互。如果对业务的流程有较为清晰的理解,基于规则的对话管理方法也 能取得不错的效果。但是在现实生活中,存在许多对话任务不具备和槽填充任务 类似的对话逻辑。在解决此类任务时,对话管理模块需要在交互过程中建模客观 知识,并依据知识制定交互策略。然而,已有的工作并没有探讨过对话管理中的知识建模方法。因此,缺乏知识建模能力无疑极大地限制了任务型对话系统的应用范围。

    展开全文
  • 对话系统 | (4) 任务型对话系统基础

    千次阅读 2020-08-14 21:48:33
    本篇博客内容主要来自第十四届中国中文信息学会暑期学校暨中国中文信息学会《前沿技术讲习班》— 张伟男、车万翔《任务型对话系统》 PPT下载链接 1. 任务型对话系统概述 人机对话系统四大功能/分类 2. 任务型对话...

    本篇博客内容主要来自第十四届中国中文信息学会暑期学校暨中国中文信息学会《前沿技术讲习班》— 张伟男、车万翔《任务型对话系统》

    PPT下载链接

    1. 任务型对话系统概述

    • 人机对话系统四大功能/分类
      在这里插入图片描述

    2. 任务型对话系统关键技术

    • 任务型对话系统结构
      在这里插入图片描述
      在这里插入图片描述

    自然语言理解

    在这里插入图片描述

    • 领域与意图识别
      是一个分类问题。
      在这里插入图片描述
    • 语义槽填充
      是一个序列标注任务。
      在这里插入图片描述
    • 研究热点
    1. 意图识别与槽填充联合学习
    2. 语境相关的自然语言理解
    3. 基于小样本学习的自然语言理解

    (一) 意图识别与槽填充联合学习
    1)意图识别与槽填充不是相互独立而是紧密联系的;
    2)传统独立的建模意图识别和槽填充,既会引出错误级联, 也无法利用共有的知识。
    例如:如果这句话意图是 WatchMovie,那么这句话包含的 Slot槽值应该是电影相关而不是音乐相关。
    在这里插入图片描述

    共享编码的双任务学习
    Xiaodong Zhang and Houfeng Wang. 《A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding》 IJCAI2016.
    1)首次使用RNN-based (GRU)的方法联合建模意图识别和槽填充任务
    2)GRU的每一个时刻出来的向量进行槽填充任务(序列标注)
    3)GRU编码句子后通过max- pooling层得到该句的表示进行意图识别
    4) 通过共享的GRU层来进行两个任务的联合学习,从而隐式的学习两者的关系
    在这里插入图片描述
    序列标注as解码问题
    Bing Liu and Ian Lane. 《Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling》 [Interspeech 2016]
    1)首次将Sequence-to-Sequence+Attention的方法用到了联合建模意图 识别和槽填充任务上,并达到了2016年的SOTA结果
    2)还是采取共享的序列编码Encoder来联合隐式学习两个任务的关系
    在这里插入图片描述
    用意图控制槽填充
    Chih-Wen Goo, Guang Gao. et al. 《Slot-Gated Modeling for Joint Slot Filling and Intent Prediction.》 NAACL2018.
    1)首次利用Slot-gate 机制来显式的建模了槽填充任务和意图识别任务之间的关系
    2)g越大,表示Intent和Slots的关系越大
    在这里插入图片描述
    用意图辅助槽填充
    Changliang Li, Liang Li and Ji Qi. 《A Self-Attentive Model with Gate Mechanism for Spoken Language Understanding.》 EMNLP2018.
    1)使用Gate机制利用信息来指导槽填充任务的进行,显式的利用了 Intent的信息。
    2) 首次探索了自注意力机制在该任务上的作用,并取得了好的性能
    在这里插入图片描述
    总结
    在这里插入图片描述
    基于Stack-propagation的联合学习
    《A Stack-Propagation Framework with Token-Level Intent Detection for Spoken Language Understanding》 EMNLP2019
    1)一种多任务学习框架
    2)任务之间有层次依赖关系
    在这里插入图片描述
    在这里插入图片描述

    (二)语境相关的自然语言理解
    在这里插入图片描述

    • 任务核心关注点
      1)哪些历史对话轮次可以帮助当前轮次对话的理解?
      2)这些历史对话对当前对话传递了哪些有用的信息?
      在这里插入图片描述

    • 联合训练领域识别、意图分类和槽填充

    • 历史对话状态和当前轮次表示经过非线性变换以预测当前轮次领域,意图,槽。
      Yangyang Shi et al., 《Contextual Spoken Language Understanding Using Recurrent Neural Networks》, IEEE International Conference on Acoustics, Speech and Signal Processing, 2015
      在这里插入图片描述

    • 利用端到端记忆网络对历史对话进行表示,学习到的表 示作为槽填充模型输入的一部分
      Yun-Nung Chen et al., 《End-to-End Memory Networks with Knowledge Carryover for Multi-Turn Spoken Language Understanding》, INTERSPEECH 2016
      在这里插入图片描述

    • 利用递归神经网络对历史对话进行编码,融合时序信息

    • 输入的历史对话表示与当前对话表示经过前向网络进行融合
      Ankur Bapna et al., 《Sequential Dialogue Context Modeling for Spoken Language Understanding》, SIGDIAL 2017
      在这里插入图片描述

    • 在记忆网络中加入了时间、用户角色注意力机制
      Yun-Nung Chen et al., 《Dynamic Time-Aware Attention to Speaker Roles and Contexts for Spoken Language Understanding》, ASRU 2017
      在这里插入图片描述

    • 在记忆网络中加入了衰退注意力机制
      离得越近,影响越大。
      Shang-Yu Su et al., 《Learning Time-Decay Attention for Contextual Spoken Language Understanding in Dialogues》, NAACL 2018
      在这里插入图片描述

    • 将对话逻辑推理和自然语言理解进行多任务学习,对话逻辑推理作为辅助任务帮助学习对话历史更好的表示。
      He Bai et al., 《Memory Consolidation for Contextual Spoken Language Understanding with Dialogue Logistic Inference》, ACL 2019
      在这里插入图片描述

    (三)基于小样本学习的自然语言理解

    • 背景
      1)深度学习方法很成功,但是需要大量的标注数据
      2)人类非常擅长通过极少量的样本识别一个新物体,
      比如小孩子只需要少量的图片就可以认识什么是斑马,什么是犀牛。
      我们希望模型也可以利用领域外经验和小量样本进行学习
      3) 真实应用往往需要频繁适应新的领域和新需求
      新的领域数据不足;
      新的标签类别;
      频繁重新训练的开销往往难以接受的

    小样本学习(few-shot learning)
    小样本学习是专门解决前面提到问题的机器学习分支
    在这里插入图片描述

    • K-way N-shot 分类任务
      1)支持集(Support Set):K类别,N实例
      2)查询集(Query Set):未见类别
      在这里插入图片描述

    • 方法分类
      1)Model相关的方法:设计适用于小样本的模型架构
      2)Metric/distance/similarity Based方法:利用样本间距离度量来预测新数据类别
      3)Optimization Based方法:学习多任务通用初始化参数或者参数更新方法

    小样本学习 - Metric Based方法

    • 背景
      1)基于参数学习的方法往往无法避免地会过拟合到小样本上
      2)相反,很多非参数化的方法(最近邻、K-近邻、Kmeans)是不需要优化参数的,因此可以避免过拟合

    • Metric Based 方法
      1)对样本间距离分布进行建模,使得同类样本靠近,异类样本远离
      2) Metric与类别无关,可以轻松泛化到新的类别和任务上

    • 孪生网络(Siamese Network)
      Koch, Gregory, Richard Zemel, and Ruslan Salakhutdinov. 《“Siamese neural networks for one-shot image recognition.”》 ICML 2015.
      通过有监督的方法学习两个样本的相似性,在新任务上重用特征提取器以实现小样本分类。
      在这里插入图片描述

    • 匹配网络(Match Network)
      Oriol Vinyals, Charles Blundell, Tim Lillicrap, Daan Wierstra, et al. 《Matching networks for one shot learning.》 Nips 2016.
      为支撑集和Query集构建不同的编码器,最终分类器的输出是支撑集样本和 query 之间预测值的加权求和。
      在这里插入图片描述

    • 原型网络(Prototype Network)
      Snell, Jake, Kevin Swersky, and Richard Zemel. 《“Prototypical networks for few-shot learning.” 》Nips 2017.
      1) 每个类别都存在一个原型表达,该类的原型是 support set 在embedding 空间中的均值。
      2)分类问题变成在 embedding 空间中的最近邻。
      在这里插入图片描述

    • 关联网络 (Relation Network)
      Sung, Flood, et al. 《“Learning to compare: Relation network for few-shot learning.”》 CVPR 2018.
      用回归的方式直接建模样本距离。
      在这里插入图片描述

    小样本学习 - 对话 & 自然语言处理中的应用

    • 文本分类(意图实别)
      Geng R, Li B, Li Y, et al. 《Few-Shot Text Classification with Induction Network》[J]. 2019.
      Induction Network;融合了关联网络和原型网络;原型embedding的得到由简单取平均部分换成了胶囊网络的计算。
      在这里插入图片描述

    • 序列标注(命名实体实别)
      Fritzler A, Logacheva V, Kretov M. 《Few-shot classification in named entity recognition task 》ACM/SIGAPP 2019
      Prototypical NER Network;
      把每个词看成独立的样本;使用原型网络独立地对每个词分类;在目标域学习CRF参数。
      在这里插入图片描述
      基于小样本的语义槽填充
      《Few-shot Slot Tagging with Collapsed Dependency Transfer and Label-enhanced Task-adaptive Projection Network》

    • 如何将小样本学习应用于语义槽标注?
      典型的序列标注任务:语义槽标签之间互相影响
      在这里插入图片描述

    • 我们利用CRF模型来建模小样本的序列标注问题
      发射概率: 利用metric based方法建模emission score
      转移概率: 提出一种回退机制,建模未见标签的转移概率

    • 发射概率:测试集与支持集中词语之间的相似度
      使用BERT计算。
      在这里插入图片描述

    • 转移概率:标签之间的转移概率
      1)目标任务或领域标签与原任务不一致
      2)回退到BIO标签,在原领域中统计
      在这里插入图片描述

    标注数据的自动扩充
    Yutai Hou, Yijia Liu, Wanxiang Che and Ting Liu. 《Data Augmentation for Dialogue Language Understanding.》 COLING 2018.

    • 动机
      1)对话技术平台需要用户上传大量的标注数据
      2)能否帮助用户自动扩充标注数据,减小标注工作量?
      在这里插入图片描述
    • 模型
      Seq2Seq模型;相似的训练数据构成“复述”对
      在这里插入图片描述
    • 样例
      在这里插入图片描述

    对话管理

    对话状态追踪

    什么是对话状态?
    对话状态是人机对话过程中,用户目标(Goal)的达成状态。
    在这里插入图片描述
    什么是对话状态追踪?
    对话状态追踪即对话状态估计
    例子中对话状态挺明确的,为什么对话状态需要估计?
    在这里插入图片描述
    传统的对话状态追踪方法
    Young S , Ga?I? M , Keizer S , et al. 《The Hidden Information State model: A practical framework for POMDP- based spoken dialogue management[J].》 Computer Speech and Language, 2010, 24(2):150-174.
    Markov Decision Process (MDP)的方法
    在这里插入图片描述
    Partially Observed MDP (POMDP)的方法
    在这里插入图片描述
    在这里插入图片描述
    基于深度神经网络的对话状态追踪
    多层感知机用于估计和表示对话状态
    M. Henderson, B. Thomson and S. Young (2013). 《“Deep Neural Network Approach for the Dialog State Tracking Challenge.”》 SigDial 13, Metz, France.
    在这里插入图片描述
    基于循环神经网络的对话状态追踪
    M. Henderson, B. Thomson and S. Young (2014). “Word-Based Dialog State Tracking with Recurrent Neural Networks.” SigDial 2014, Philadelphia, PA.
    利用RNN建模对话状态分布;同时建模Slot之间的关联和对话历史
    在这里插入图片描述
    优点:1)n-gram特征;2)slots之间关联;3)对slot保留value 的分布;4)能够通过泛化 来处理未见实例。
    缺点:1)单一领域;2)仍然需要特征工程。

    多领域对话状态追踪
    N. Mrksic, D. O’Seaghdha, B. Thomson, M. Gasic, P-H. Su, D. Vandyke, T-H. Wen and S. Young (2015). 《“Multi-domain Dialog State Tracking using Recurrent Neural Networks.”》 ACL 2015, Beijing.
    利用非词表示的特征进行不同领域的迁移学习;
    尽管非词表示(Delexicalized)的特征相同,但特定slot模型对相同特征的权重不同。
    在这里插入图片描述
    优点:1)Lexical+Delexical特征;2)层次化训练实现多领域对话状态追踪
    缺点:1)仅在RNN基础上的多阶段训练,严重依赖特征;2)人工定义词汇特征,应 对用户不同的表达方式。

    数据驱动的神经置信追踪
    N. Mrksic, D. O Seaghdha, T.-H. Wen, B. Thomson and S. Young (2017). 《“Neural Belief Tracker: Data-Driven Dialogue State Tracking.”》 ACL 2017, Vancouver, Canada

    • 动机
      人工构造的表达slot-value的词典用来匹配用户输入的语义,从而得到slot级别的对话状态表示。
      在这里插入图片描述
    • 借助分布式语义表示学习的优势
      无需借助人工构造的词典;语义表示更精确、匹配效果更好。
      在这里插入图片描述
    • NBT有什么问题?
      句子级的Slot-value对形式的对话状态表示,没有考虑对话历史的置信状态信息;
      整体的置信状态更新,采用启发式的方式。
      在这里插入图片描述
      完全可统计学习的NBT
      Mrkšić, Nikola, and Ivan Vulić. 《“Fully Statistical Neural Belief Tracking.”》 Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2018.
    • 基于学习的置信更新机制
      考虑到对话历史轮次(比如上一轮)的全部slot-value对的置信状态分布;可学习 v.s. 启发式
      在这里插入图片描述
    • 不同领域的槽值可以共享信息
      Ramadan, Osman, et al. 《“Large-Scale Multi-Domain Belief Tracking with Knowledge Sharing.”》 In Proc. of ACL 2018.
      比如机票、火车票、船票等领域可能共享地点、时间等槽;
      能否计算领域无关的槽-值联合概率?
      由二元组的二分类变为三元组二分类。
      在这里插入图片描述
      可迁移的对话状态跟踪
      Chien-Sheng Wu, et al. 《Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems》 (ACL 2019)
    • 动机
      工业上,往往只可以得到包含槽类型的API,具体的槽值往往是不得而知的。
      已有方法假设Ontology存在,但是面临实践中槽值太多,模型太大的问题。
      模型无法部署到不同的ontology的domain中。
    • 方法
      采用带copy机制生成的方式来预测语义槽值(value)。
      使用了Slot gate来判断槽当前是:有效 or 未提及 or 不关心。
      在这里插入图片描述
      跨语言对话状态追踪
      Chen, Wenhu, et al. 《“XL-NBT: A Cross-lingual Neural Belief Tracking Framework.”》 In Proc. of EMNLP 2018.
      目标语言无训练数据。
      对训练目标进行分解。
      利用双语语料和双语词典从源语言迁移。
      在这里插入图片描述
      对话状态追踪:小结
      在这里插入图片描述
    对话策略优化

    什么是对话策略?
    在这里插入图片描述
    在这里插入图片描述
    基于规则的对话策略

    • MIT-ATIS对话系统状态控制流程
      对话动作与对话状态绑定成特定序列;
      对话策略以对话状态的入栈/出栈的形式配以相应的对话动作实现。
      在这里插入图片描述
      优势:特定领域中效果较好,系统稳定;
      劣势:动作序列相对固定;算法与对话过程绑定, 修改算法即修改对话过程;无法应对规定动作外的 用户输入。

    基于有限状态自动机的对话策略
    在这里插入图片描述
    基于表格(Form)的对话策略
    E-Form是Semantic Frame的一种表示形式。
    在这里插入图片描述
    基于脚本的对话策略

    • MIT Galaxy II系统
      基于脚本语言实现对话流的控制;对话流即对话动作序列。
      优势:任务扩展方便;多层对话管理机制逻辑清晰
      劣势:手工定义规则;对话流控制需要预设,对话控制不够灵活

    上述对话策略的特点总结

    • 对话动作之间独立或局部依赖
    • 不对整体的对话动作序列进行建模
    • 对话策略的输出仅是下一个动作

    基于规划的对话策略

    • 规划(Planning):通过创建一个动作序列来实现某个目标的求解方法,并尝试预测执行该规划的效果 (Wasson, 1990)。
      在这里插入图片描述
    • 层次化规划方法
      在这里插入图片描述
      以上方法存在的问题
    • 对系统错误敏感,鲁棒性差
    • 对话策略相对固定,灵活度不够
    • 策略和任务绑定,很难在任务间迁移

    概率对话管理模型
    在这里插入图片描述
    强化学习与对话管理的对应关系
    在这里插入图片描述
    在这里插入图片描述

    • Human-in-the-loop
      用户参与到对话过程中,产生反馈信号(用户对于对话的评价),帮助训练模型。

    • 对话奖励函数
      任务型对话的目标是使用尽可能少的轮次完成用户任务。
      对话成功将被赋予较高的奖励(依赖于预设对话轮次目标)。
      在这里插入图片描述

    • 利用概率模型建模对话管理
      在这里插入图片描述

    • 假设:下一轮的对话动作和状态仅依赖当前的对话状态

    • MDP基本要素
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      为什么对话策略需要优化?

    • 对话的状态-动作(State-action)空间非常大!

    • 精确估计状态间的转移函数非常难!
      在这里插入图片描述
      基于动态规划的对话策略优化

    • 基本思想
      对于一个给定的初始对话策略,扫描整个对话状态-动作空间,从而递归地估计值函数;
      当值函数被计算出来之后,更新初始对话策略为当前对话策略;
      重复此过程直至收敛。

    • 典型算法
      在这里插入图片描述
      基于采样的对话策略优化

    • 动机
      尽管基于DP的对话策略优化方法可以通过缩小状态空间表示来 缓解对话状态-动作的空间,然而其基本假设仍然是搜索整个状态空间;
      基于采样的方法可以只关注最优和近似最优对话所对应的状态序 列,无需对整个状态空间的探索即可建模对话状态的转移。

    • 采样方法的过程
      在这里插入图片描述

    • Q函数更新
      在这里插入图片描述
      以上方法总结

    • DP算法能够探索整个对话状态-动作空间,理论上能够得到全局最优解,但速度慢

    • 采样方法通过搜索最优对话状态序列实现对话状态的转移建模,求解速度快,但不保证全局最优

    • 采样方法在实际应用中需要多次采样对话状态转移序列, 而理论上有真实用户参与的在线学习方式,在实际中并 不“实际”

    基于用户模拟器的对话策略学习

    • 动机
      通过用户在线学习对话策略,成本极高;
      模拟用户行为进行对话状态-动作空间的探索;
      探索范围大,试错成本低。
      在这里插入图片描述

    对话策略优化前沿进展

    • 对话策略优化的方向
      更简单的对话策略;
      更优的Q函数学习;
      更客观的奖励函数;
      更真实的对话模拟。

    神经网络框架下的对话管理
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200813105400505.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NkdV9oYW8=,size_16,color_FFFFFF,t_70#pic_center #pic_center =400x)
    深度Q值网络:DQN

    • 利用深度神经网络近似计算Q函数
      常用的简单有效的深度神经网络为多层感知机(MLP);
      对话策略的学习形式为前馈全连接网络,从而变得更加简单。
      在这里插入图片描述

    奖励函数学习

    • 已有对话奖励的特点
      对话成功奖励,忽略对话过程的重要性;
      真实的、高质量的用户反馈很难获取。
      在这里插入图片描述
      Human-in-the-loop的用户模拟器
      在这里插入图片描述

    自然语言生成

    在这里插入图片描述

    • 从对话动作到自然语言语句的映射
      在这里插入图片描述
    • 自然语言生成的主要步骤
      1)文本规划:生成句子的语义帧序列
      2)句子规划:生成关键词、句法等结构信息
      3)表层规划:生成辅助词及完整的句子

    基于模版的自然语言生成

    • 人人都能想到的方法
      在这里插入图片描述
    • 特点:简单、机械、成本高,有多少人工就有多少智能

    基于规划的自然语言生成

    • 流水线式规划生成自然语言语句
      Rambow, Owen, Srinivas Bangalore, and Marilyn Walker. 《“Natural language generation in dialog systems.” Proceedings of the first international conference on Human language technology research.》 Association for Computational Linguistics, 2001.
      在这里插入图片描述
      基于统计学习的自然语言生成
      Oh, Alice H., and Alexander I. Rudnicky. 《“Stochastic natural language generation for spoken dialog systems.”》 Computer Speech & Language 16.3-4 (2002): 387-407.
      在这里插入图片描述
      基于神经网络的自然语言生成
    • 基于RNN语言模型的自然语言生成
      T-H. Wen, M. Gasic, D. Kim, N. Mrksic, P-H. Su, D. Vandyke and S. Young (2015). 《“Stochastic Language Generation in Dialogue using Recurrent Neural Networks with Convolutional Sentence Reranking.”》 Sigdial 2015, Prague, Cz.
      在这里插入图片描述
    • 基于LSTM语言模型的自然语言生成
      T-H. Wen, M. Gasic, N. Mrksic, P-H. Su, D. Vandyke and S. Young (2015). <“Semantically Conditioned LSTM-based Natural Language Generation for Spoken Dialogue Systems.”> EMNLP 2015, Lisbon, Portugal.
      在这里插入图片描述

    端到端任务型对话系统

    在这里插入图片描述
    端到端生成式对话模型

    • 基于层次化循环神经网络的编码解码模型
      Serban, Iulian V., et al. 《“Building end-to-end dialogue systems using generative hierarchical neural network models.”》 Thirtieth AAAI Conference on Artificial Intelligence. 2016.
      1) EncoderRNN编码对话历史句子(Intra utterance)
      2)句子内使用双向RNN建模句子语义表示(Inner utterance)
      在这里插入图片描述
      基于神经网络的端到端任务型对话模型
      Wen, Tsung-Hsien, et al. 《“A network-based end-to-end trainable task-oriented dialogue system.”》 arXiv preprint arXiv:1604.04562 (2016).
    • 模型特点
      在这里插入图片描述
      基于强化学习的端到端任务型对话
      Li, Xiujun, et al. 《“End-to-end task-completion neural dialogue systems.”》 arXiv preprint arXiv:1703.01008 (2017).
    • 端到端的强化学习训练
      各个部分是独立的NN模型
      在这里插入图片描述
      端到端任务型对话系统总结
    • 任务型对话系统的基本框架没有变
    • 利用神经网络代替人工经验和干预的部分
    • 每个模块(Modular)统计化、学习化
    • 模块之间的联系仍然存在且重要
    • 完全端到端的任务型对话系统目前不存在(?)

    3. 评价方法与评测任务

    任务型对话系统的评价
    在这里插入图片描述
    任务型对话系统的整体评价指标
    在这里插入图片描述
    NLU的评价
    在这里插入图片描述
    DM的评价

    • 对话状态追踪
      单轮对话句子的动作识别;
      多轮对话片段的状态信息识别,例如:主题、对话行为、对话类型等
    • 对话策略优化
      对话成功率;对话奖励函数评价

    NLG的评价
    在这里插入图片描述

    4. 总结和趋势展望

    • 总结
      在这里插入图片描述
    • 展望
      在这里插入图片描述
      在这里插入图片描述
    展开全文
  • 任务型对话系统研究进展

    千次阅读 2018-12-06 19:55:34
    任务型对话系统 介绍 我们将对话系统分成四个主要的功能:第一个是任务型对话系统,也可以认为其他都是非任务型对话系统,又可以进一步划分为聊天类、知识问答类,以及推荐类,这几个类型的机器人我们研究中心都在做...

    任务型对话系统

    介绍

    我们将对话系统分成四个主要的功能:第一个是任务型对话系统,也可以认为其他都是非任务型对话系统,又可以进一步划分为聊天类、知识问答类,以及推荐类,这几个类型的机器人我们研究中心都在做。我今天主要介绍任务型的对话系统。
    在这里插入图片描述

    任务型的对话机器人有很多用处,如智能汽车控制、个人助理等。

    组成

    任务型对话系统主要构成包括三模块:第一个模块为自然语言理解(这个名字不是特别好,因为我们做自然语言处理整个大方向也叫自然语音理解,这个名字是在人机对话领域约定俗成的,也可以叫口语语言理解),它主要实现两个功能,一个是意图识别,一个是语义槽填充。比如“请帮我订一张去北京的机票”,意图是订机票,语义槽为“到达地=北京”。

    第二模块为对话管理,又包括对话状态跟踪和对话策略优化。对话状态一般表示为语义槽和值的列表,如有出发地、到达地等。通过自然语言理解,我们知道到达地是北京,出发地和出发时间仍然是空,这就是当前的对话状态。获得当前对话状态后,我们要进行策略优化,选择下一步采用什么样的策略,也叫动作。动作有很多种,我可以问出发时间,也可以问出发地。如此时可以寻问出发地。

    第三部分为自然语言生成。在对话系统里面语言生成工作相对比较简单,通过写模板即可实现。比如要询问出发地,就直接问“请问你从哪里出发”,然后经过 TTS 系统给用户反馈。整个过程可以一直循环下去,随着每次提问的不同,对话状态也随之变化,然后采用不一样的回复策略。
    在这里插入图片描述

    技术方法

    下面介绍这几个模块的技术发展趋势。其中,意图分类可以看成是文本分类,而且是短文本分类问题。早期采用SVM等线性分类器,最近主要采用深度学习方法,比如CNN或者CNN-LSTM。有人说深度学习需要大数据,对话领域数据不多,为什么还采用深度学习技术呢?这主要归功于预训练模型,使得深度学习在只有较少数据的情况下,仍然可以取得比较好的效果。
    在这里插入图片描述
    语义槽填充是要识别句子中规定好的语义槽的值。可以看成序列标注问题,即标注出序列中每个词的标签,如出发地的开始或者出发地的继续等。传统的序列标准模型是CRF,现在双向LSTM之后还可以再加CRF模型。
    在这里插入图片描述
    对话管理负责识别出下一步采用什么动作。这个问题比较麻烦就是我们很难标注出数据,告诉对话系统每一步采用什么动作,因为很多时候没有标准答案。比如刚才那个例子,询问出发时间还是出发地都是合理的动作,只有对话全流程结束后才知道该步骤采取的动作是否合适。这是强化学习擅长解决的问题。早期对话管理的研究往往采用基于规则的方法,后来出现基于有指导,即标注每一步所谓的标准动作,目前研究主要集中在基于强化学习的方法,其中的奖励可以是对话轮数、任务完成情况等。
    在这里插入图片描述
    最后是对话生成,通常采用基于模板的简单方法,也可以采用语言模型,目前也出现了基于深度学习的模型。与之前基于序列到序列的深度学习模型不同,这里采用的是状态到序列的模型。基于深度学习的模型还多处于研究阶段,实际应用中还是多采用基于模板的方法。
    在这里插入图片描述

    我们可以看到,用户即开发者如果想构建自己的对话系统,都需要这实现这三个模块,大大增加了开发的难度。有没有可能帮助用户,快速的构建自己的对话系统呢?用户只需要提供各自领域相关的数据,无需关注太多的技术细节。为此我们开发了对话技术平台。实际上,整个的产业界,包括微软、谷歌、脸书和百度等都在这做方面工作。如微软开发的LUIS系统,脸书收购的wit.ai谷歌收购的api.ai,百度自研的UNIT以及收购的kitt.ai等等这些都在做对话平台。

    开发者若想做一个对话系统,不需要亲自实现刚才介绍的三个模块,只要上传数据并进行标注,最后就可以提供对话API,来回答用户的问题或者进行对话。背后是我们积累多年的自然语言处理技术。

    新技术的优势

    传统的对话系统还有一些不足。首先,各个模块之间都是相互独立的,这样我需要为每个模块去标注大量的数据,特别是跟领域相关的数据;底层模块的错误会影响上层模块,如果语言理解错了,就会影响到对话的管理,这也叫错误的级联;上层模块信息无法反馈到下层模块。其次,针对每个领域都需要人工设计语义槽,动作空间也都不一样,导致系统的设计跟领域非常相关,很难切换到新的领域。
    在这里插入图片描述
    因此,我们希望把原来的三个模块用统一的端到端模型替代。系统只需要知道输入以及相应的输出,也就是对应的回复即可。这种数据也比较容易获得,如各大银行、电信、携程等有大量的客服对话数据。
    在这里插入图片描述
    之前有一些相关的工作,如所谓的联合学习,就是将多个模块放在一起学习,这样可以减小错误级联的问题。Yang et al. 2017把对话管理模块和语言理解模块进行联合学习。Wen et al. 2016把更多的模块放在一起端到端的训练,包括语言理解、对话管理和对话生成。但是对于数据库的查询,仍然需要显式地转成SQL语句。
    在这里插入图片描述
    在这里插入图片描述
    Eric and Manning (2017)直接使用序列到序列的模型,从用户的提问生成相应的回复。针对任务型对话,传统的序列到序列模型有一个明显的问题,就是我们不能简单地从历史对话数据中学习,比如问“明天天气怎么样?”如果训练数据有回复说“晴天”,但是不能每次都一样的回答,需要根据当前天气预报数据进行回复。所以在他们的工作中,生成的词有两个来源,一个数据库,如“晴天”或者“阴天”,第二就是从原始文本中拷贝过来。
    在这里插入图片描述

    后来他们把这个工作进一步进行延伸,能够更好的对数据库进行查询 (Eric et al. 2017)。先把数据库的表示方式进行修改,原来数据库是多种属性的关系表。现在拆分成构成的三元组,然后在三元组列表上进行打分,分数最高的即为最能回答当前问题的知识。

    以上工作是纯粹端到端的模型,而进行对话时,要对对话的状态进行表示和跟踪。我们不想显示的定义对话状态,所以我们用向量表示对话状态,向量每一维代表哪一个槽需要自己学习,这相当于隐式的对话状态表示。一方面可以用它直接查数据库,使得查询更准确,另一方面它更有利于对话回复的生成。

    出处:http://wemedia.ifeng.com/91322463/wemedia.shtml

    展开全文
  • 任务型对话系统概要

    千次阅读 2018-09-18 10:51:05
    任务型对话系统概要 将对话系统分解成管道(a pipeline) 1)语言理解language understanding, 2)对话状态跟踪dialog state tracking 3)行动选择策略action selection policy 4)语言生成language generation ...
  • 任务型对话系统(一)

    千次阅读 2019-08-13 18:19:34
    任务型对话系统公式建模&&实例说明 #任务型对话的框架图: SLU:把自然语言转换成机器可以处理的领域(domain)/意图(intention) 和槽植对(slot-value pairs),他的输入是代表用户输入Utterance的Xn,输出是...
  • 本文总结了目前任务型对话系统最新的进展和挑战,讨论了三个相关的关键问题:(1)如何提高数据使用效率,在资源不足的情况下对任务型对话系统进行建模;(2)如何为多轮对话的对话策略进行建模,使其在任务完成上...
  • 基于管道的任务型对话系统的研究与设计,牛珺,徐鹏,随着科学技术的发展,智能聊天机器人已经不再只是科幻电影中的存在,对话系统也因为其巨大的潜力和市场价值受到越来越多的关注。
  • 哈工大教授车万翔:基于迁移学习的任务型对话系统 公众号关注 “ML_NLP” 设为 “星标”,重磅干货,第一时间送达! 转载自 | AI TIME 论道 如果说自然语言处理可被誉为“人工智能皇冠上的明珠”,那么对话系统就是...
  • 分享一个基于动态聚合网络的多领域端到端任务型对话系统 覃立波,哈尔滨工业大学社会计算与信息检索研究中心(SCIR)在读博士生,导师车万翔教授,研究兴趣为任务型对话系统,相应研究成果发表在ACL、EMNLP、AAAI上 更...
  • ⬆⬆⬆ 点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!AI TIME PhD《多领域端到端任务型对话系统研究分享》2020年10月23日 19:30-20:30划重点!直播...
  • 构建流程:一、二 对话系统视频及源码:一、二、三 个人实验完成后再补充。
  • 这篇笔记动用了一个很长的标题,如果我们把这个标题拆解开看,就涵盖了这篇笔记所面向的基本场景和解决方案:使用场景:任务型对话系统(task-oriented dialog system),对这个东西不了解的人可以先看下面这篇笔记。...
  • 本论文为2019年第九届“华为杯”中国大学生智能设计竞赛实际参赛作品,获得国家三等奖。 参赛队员: 西北大学吴旭东、重庆邮电大学王鹏、西北大学李洋 在这里,将论文...
  • 系统2006年上线,吸引了全球220个国家/地区1000多万独立IP访问,数据下载量230万次,年度访问量超过1100万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。 必读论文:https://www.aminer.cn/topic 论文集...
  • ©PaperWeekly 原创 ·作者|王馨月学校|四川大学本科生研究方向|NLP近期的研究已经在端到端面向任务对话系统中取得了很多的进步,然而,大部分模型还是依赖于大规模的训练数据,...
  • 本期人工智能前沿讲习班上,来自哈尔滨工业大学社会计算与信息检索研究中心的张伟男副教授做了题为“任务型对话系统”的精彩分享。 演讲嘉宾介绍 张伟男,哈尔滨工业大学计算机科学与技术学院副教授,研究方向包括人...
  • 本期AI TIME PhD直播间,我们有幸邀请到了来自哈尔滨工业大学社会计算与信息检索研究中心的在读博士覃立波,他的研究方向为任务型对话系统。 本次演讲主题是——多领域端到端任务型对话系统研究分享 Dynamic Fusion...
  • 已有的端到端任务型对话系统工作可以分为两类:第一类是直接在结合了多领域的数据集进行训练,这种方法虽然够隐含地提取共享的特征却很难有效捕捉领域特有的知识,如图2 (a)所示: 图2:以往方法 第二类是在单独地...
  • 端到端任务型对话系统 任务型对话系统可以用来帮助用户完成订购机票、餐厅预订等业务,越来越受到研究者的关注。近几年,由于序列到序列(sequence-to-sequence)模型和记忆网络(memory-network)的强大建模能力,一些...
  • 任务导向型对话系统

    2020-04-18 14:35:11
    https://mp.weixin.qq.com/s/6wSz8wAi0vrHebZ0EJ2sZA 任务导向型对话系统——对话管理模型研究最新进展
  • 原文链接 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健 单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学...第一代对话系统主要是基于规则的对话系统,例如 1966 年 MIT 开发的 ELIZA 系统 [2] 是
  • 目前,对于任务型对话系统工业界主流的做法都是采用一套较为固定的pipline方式实现。具体的流程图如下: 整个pipline由三大模块组成:自然语言理解(NLU);对话管理(DM);自然语言生成(NLG)。现在越来越多的...
  • 任务型多轮对话系统概述

    万次阅读 2018-08-06 01:25:15
    任务型机器人核心模块主要包括三个模块: 自然语言理解模块(NLU) 对话管理模块 自然语言生成模块(NLG) 自然语言理解模块 该模块一般包含以下三个模块: 领域识别:即识别该语句是不是属于这个任务...
  • DialoGLUE 标题:《DialoGLUE: A Natural ...内容:为了发展更通用的面向任务型对话系统,作者提出了一个大型公开benchmark,以鼓励学术界对representation-based transfer, domain adaptation, 以及sample-efficient t
  • 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学对话管理模型背景从人工智能研究的初期开始,人们就致力于开发...
  • 由于任务型对话系统在人机交互和自然语言处理中的重要意义和价值,越来越受到学术界和工业界的重视。在这篇论文中,我们以一个具体问题的方式综述了最近的进展和挑战。

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 197
精华内容 78
关键字:

任务型对话系统