
任务驱动的多轮对话的设计参考完整版.docx
9页任务驱动的多轮对话的设计参考集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]1.1 背景知识介绍多轮对话之所以称之为多轮对话,而不是多轮问答,是因为除了问答内容外,还有闲聊模式下的 情感交流,以及多数情况以陈述句形式表达的情景模式,因此多轮问答实际是多轮对话的子集 由于事件的复杂性直接导致了多轮对话的复杂性,即上文所述的正常的知识问答和命令问答外, 还有情感和场景表述,造成每一句与上下文语义高度相关或不相关交错出现,就导致了规则的高 度复杂性如果用有限状态机来处理多轮对话,就必须对话语权方(即谁说出的话,必须被对方回答,则这 方为对话话语权方)的每一个token语句进行意图识别,引入意图队列,对队列进行基于规则的 推理机处理或基于深度学习的预测,例如:(寒暄〉查订单>确认退款>)正常情况==再见结束本轮 对话当然也可以用seq2seq的方法,将整个对话过程,抽象成一个session输入若干个相关句子, 解码成一个句子,即答案多轮交互的一个重点问题是:如何根据上下文理解当前的意图,而不仅仅是针对单轮进行一个分 析,从而能够使得对话在一个连续的语境下,是具备session粒度理解能力的。
以下方案,均假设有一个已经做得比较好的单轮理解以后的情况: 云试方案1: 最简单粗暴地,把多轮query,融合成一个单轮的query,进行一次性的解析.直接将多轮交互的意图理解问题,转换成一个单轮的意图理解问题,从而复用原有的单轮理解效 果例如:我想看电影一周星驰演的一喜剧片,三个query合并以后,解析到实际用户的需求,是周 星驰主演的喜剧电影优点:简单,粗暴,易于实现,几乎服用了单轮解析能力 缺点:简单,粗暴,易于出错,几乎没有任何实质性的多轮解析能力,纯粹靠运气 优化方向:可以加入一些query拼接的限制,提高拼接的准确率,从而在运用到单轮解析能力的 同时,不至于在准召上偏离得太离谱(如:只拼接两轮的、三轮及以上拼接,考虑拼接后的意图 变化情况等) 尝试方案2:单轮已经解析出了一个意图和某些槽位,将此意图及槽位存储起来遇到query的时候,判定该意图下,这个query能否纳入同样的意图中,抽取出对应的槽位 如果可以,则更新意图的槽位内容如果不可以,则抛弃当前意图,以query作为单轮解析,得到新的意图例如:我想看电影一要免费的,第一轮意图为电影,第二轮在电影这个意图下,发现“免费”这 个槽位,是符合电影意图描述的,所以,为该意图的槽位新增一个“免费”例如:我想看爱情电影一能给我讲个笑话吗,第一轮意图为电影,而第二轮在电影这个意图下, 发现query并没有任何跟电影相关的槽位信息,所以,抛弃第一轮的电影意图,直接将第二轮 query当成单轮的,直接解析得到新的意图--笑话。
优点:基于意图来进行判定,比拼接更准确,也更广泛地识别当前query是否仍在同一个意图 中,递归地实现多轮意图解析,避免了拼接过长,拼接过于粗暴带来的误召回和欠召回缺点:存储下来的是意图和槽位,然后再基于此进行新的query解析,判定是否槽位能够纳入原 有意图范围内,这种递归一旦有某一步除了问题,后面的每一步,基本上都挂掉了,解析错误的 传播深度和广度,都会很大优化方向:前面几步,可以辅助以方案一的拼接,来提高意图的正确性,保证后续的方向,都是 正确的尝试方案3:以对话管理过程中增加一些冗余性来对方案2进行扩充,提高召回率多轮交互一旦进入了某个意图,即开始该意图的满足,而当其第一次多轮解析未能命中该意图, 也无法命中任何其他意图(纯属闲聊)的时候,可以跳过该轮的意图解析,而继续进入下一轮, 检测该意图是否涵盖了当前query中的槽位,是则可以继续该意图的满足,不至于轻易断开多轮 对话流(此处的冗余轮数可以根据实际情况自行调整,一轮、两轮均可)例如:给我推荐个餐厅一有川菜口味的吗一咦,还蛮多嘛(冗余跳过)一找个最便宜的吧优点:可以一定程度上缓解方案二递归性带来的意外跳出意图的问题,提高每个意图的服务整体 性,保证多轮的延续性。
缺点:因为原理上跟方案二是一致的,所以还是会存在方案二的缺点,并且冗余跳过有可能是未 能识别到具体的意图,从而令本该跳出对话的多轮,多停留了一两轮在了当前意图,才能跳出 去,会降低交互的智能性上述三个方案,都是可以直接通过比较简单的框架设计来实现的,而读者可以发现,可能最关键 的还是这些方案的前提:【假设有一个已经做得比较好的单轮理解】可以看到,单轮理解是所有意图识别的基础,只有做好单轮的理解,才可能做好多轮,当然,做 好了单轮,不一定就能做好多轮对话系统的分类及方法:按照对话答案的生成方式大致可以分为以下几种:1. 规则依存系统(Rule-basedsystem):对话经过预定义的规则(关键词、if-else、机器学习方法等)处理,然后执行相应的操作,产生回复°(ELIZA系统,如果 输入语句中没有发现预定义规则,则生成generic的响应)缺点是规则的定义,系 统越复杂规则也越多,而且其无法理解人类语言,也无法生成有意义的自然语言对 话处在比较浅层的阶段;2. 检索依存系统(IR-basedSystems):信息检索或者最近邻方法,要求生成的响应 与对话存在语义相关性(VSM、TF-IDF、page-Rank、推荐等排序方法)。
有点是比生 成模型简单,直接从训练集中选择答案,且可以添加自定义规则干预排序函数较为灵 活;缺点是无法应对自然语言的多变性、语境解构、连贯性等,对语义的细微差别也 无法识别;3. 自生成依存系统(Generation-basedSystems):将对话视为 input-outputmapping 问题,提出 了 MT-based 方法(SMT 统计机器翻译、IBM-model、phrase-basedMT等),这种方法复杂且无法很好的解决输入输出的对应关系(尤其是当句子较复杂的 时候,只适合单词级别)但是NN、seq-to-seq等方法很好地解决了这些问题,可以 生成更加丰富、有意义、特别的对话响应但是还存在许多问题,比如沉闷的回应、 agent没有一个固定的风格、多轮对话槽填充等等4. 框架依存系统(Frame-basedDialogueSystems):定义一个对话的框架,及其中所涉及的重要元素优点是目标明确框架对对话指导意义明显,适用于飞机票、餐馆等 预定领域缺点是框架设计需要人工成本,且无法迁移到别的领域,并未涉及到人类 语言的理解层面按照对话的应答方式大致可以分为以下几种:1. 有限状态机系统(Fini te-S tat eMachineSys tems):(用户使用预定义的模板提 问,系统之响应能力范围之内的问题),这种方法的缺点是完全依赖于对框架slot 的填充,而无法决定对话的进程和状态(用户接受建议、拒绝等)2. 纯粹的多轮对话依存系统(State-basedSystems):主要包含系统状态(上下文信 息、用户意图、对话进程等)和系统行动两(基于state采取act ion )个部分。
MDP、POMDP 等模型3. 纯粹的单轮对话(Ques tion-Answering-QA)系统(BasedDialogueSys tems):fac toidQA-based,个人助手,需要回答各种各样的问题并且进行交互式对话目 前的研究点主要包括,bot如何通过对话进行自学习、对于out-of-vocab的词汇应 该学会问,即学会与人交流、如何通过反馈学习(犯错时调整、正确时加强)----待处理部分一一1.2本文解决问题本文主要关注于 chit-chat 和 QA-baseddialogsystem1.2.1开放域对话生成chi t-chat首先探讨如何构建一个能够与人类进行有趣,有意义,连贯,一致和长期对话的引人 入胜的闲聊式对话系统要求其拥有以下特性:避免dull沉闷的回应,产生语义更加丰富的响应解决一致性问题,避免前后相应不一致可以进行长期多轮对话使用对抗学习生成人类无法区分的对话响应为了实现上述的功能和特点,主要会引入下面几种技术和算法来解决相应的问题互信息-避免无聊的相应目前神经网络倾向于产生类似于“Idon' tknow”这种无聊的响应(dullresponse/genericresponse),不利于对话进行。
因为对于模型来讲,“Idon' tknow”这种答案往往都是正确的,但是我们可以反过来思考这个问题,也就 是将"Idon' tknow"作为输入进行训练因此可以使用MaximumMutuallformation(MMI) 取代MLE作为训练的优化指标,事实证明这种方法可以大幅度提升模型响应的丰富 度,减少dullresponse产生的频率这部分方法将会在第三章进行详细的介绍解决Bot前后一致性问题目前对话机器人无法产生前后一致性的对话,简单说就是没有一个固定的风格所以 要给bot 一个连续的“角色”,这种角色可以当做是身份元素(事实背景、用户简 介)、语言行为、交互方式等的组合作者基于Seq-to-Seq模型提出了两种角色模 型,一个是单 bot 的 SpearkerModel,另一个是双 bot 的 Spearker-AddresseeModel 这部分内容可以参考第四章以及他在2016年发表在ACL的论文“Apersona- basedneuralconversationmodel”使用强化学习RL实现长期多轮对话当前的Seq-to-Seq模型大都使用MLE作为目标函数并根据一轮对话来产生响应,很难 产生更长久的多轮对话,一般在两轮之后就陷入重复。
所以作者提出使用强化学习来 最大化长期奖励的期望来增加对话轮次并建设性地提出了三种Reward公式,**forwardTooking、informati ve、cohere nt**,最后使用 policygradie nt 的方法进 行训练,取得了很好的效果这部分内容会在第五章进行详细介绍,或者参考其在 2016 年发表在 EMNLP 的文章“DeepReinforcementLearningforDialogueGeneration”使用对抗生成学习GAN产生对话目前模型生成的对话大都来自于训练数据集,这就一定程度上限制了产生相应的多样 性、丰富程度等所以引入GAN来生成更接近于人类语言的响应这里使用一个Seq- to-Seq作为生成器,在用一个鉴别器来标记生成的响应是人类语言还是机器生成语 言,这样Seq-to-Seq最终生成的响应会越来越接近人类语言这部分内容会在第六章 进行介绍,或者参考其在2017年发表在EMNLP 上的文章“Adversariallearningforneuraldialoguegeneration”1・2・2交互式QA对话机器人其次探讨bot如何通过online学习完善自己,使得交互性更强。
要求其可以:学会向人类提问,何时何处问什么从online学习,根据错误改进自己通过提问进行交互学习因为目前问答系统当遇到自己回答不了的问题时(没见过的表达形式,自己不知道的 东西等情况),往往会做出很差的回应或者重定向到其他资源(展示搜索网页的结 果)但我们更希望机器人在遇到这种问题时可以通过向对方提问的方式来进行交互 式问答进而解决该问题可以通过离线学习或者强化学习的方式进行训练这部 分内容将会在第七章进行介绍,也可以参考其在2017年发表在ICLR上的论文“Learningthroughdialogueinteractionsbyaskingquestions”Human-in-the-Loop 的对。
