论文名称:A Compare Aggregate Transformer for Understanding Document-grounded Dialogue

论文作者:马龙轩,张伟男,孙润鑫,刘挺

原创作者:马龙轩

论文链接:https://arxiv.org/pdf/2010.00190.pdf

转载出处:哈工大SCIR

1. 简介

以非结构化文档作为对话上下文之外的知识可以提供信息量更丰富的回复。之前的研究主要关注如何利用对话对文档中的知识进行筛选。然而,与当前对话不相关的对话历史会在筛选知识时引入噪音。本文提出了一种对比集成式的结构(Compare Aggregate Transformer,CAT)对历史对话进行降噪处理,使用降噪后的信息筛选文档信息和生成回复。我们设计了两类不同的对比机制,分别在解码前和解码过程中进行降噪处理。此外,我们提出了两个基于词覆盖率的评价文档利用效率(Knowledge Utilization,KU)的指标。在CMU_DoG数据集上的实验结果表明,我们提出的CAT模型能够生成更相关的回复,在自动评价和人工评价上都优于最新方法,尤其是在历史对话与当前对话无关时。

2. 动机

我们将多轮对话(轮数设为N)的前N-1轮定义为对话历史,将第N轮定义为当前对话,目标是生成第N+1轮回复。已有研究表明对生成回复影响最大的是当前轮[1],而对话历史有可能引入噪音而导致生成上下文不连贯的回复,如表1所示:

表1. 基于文档的对话示例

红色的斜体字与历史相关,在针对该轮对话生成回复时,需要考虑对话历史的影响。黑体字开启了一个新的与对话历史无关的话题,在针对它生成回复时不应该考虑对话历史。针对这个问题,本文提出一种对比集成式模型(Compare Aggregate Transformer,CAT)。模型对比当前对话和历史对话的内容,用当前对话指导对话历史进行信息筛选,再与当前对话筛选出的信息进行聚合,使用聚合后的信息生成回复。特别的,本文设计了两种不同的聚合信息的方法,一种在解码前使用自动学习的权重,另一种在解码过程中使用注意力机制。为了验证提出方法的有效性,除在原始CMU_DoG数据集上进行实验,我们还构造了一个当前对话与对话历史弱相关的新测试集,同时提出两个基于词覆盖率的指标用来评价对话中文本信息的利用效率。在两个测试集上的实验结果表明,与现有的基线模型相比,CAT能够生成语义更加连贯、知识利用率更高的回复。在当前对话与对话历史弱相关的测试集上,CAT的优势更加明显。需要指出的是,本文不关注在回复中开启新话题的任务[2],只关注对话上下文的主题相关性。

3. 模型

3.1 任务定义

令为由d个词组成的文档,对话历史含h个单词,当前对话包含l个词,为包含r个词的回复。基于文档的对话任务可被定义为在给定相关文档D、对话历史H和当前对话L的条件下,生成回复R的概率:

其中θ是模型的参数。

3.2 模型结构

图1. CAT模型结构图

如图1所示,模型基于Transformer结构[3],编码器和训练时解码器的输入是每个词的预训练词向量+位置向量+轮次标注向量。图中的self/utter/doc-attention遵循原论文的(Q,K,V)操作,当三个输入有两个相同时,不同的一个记为Q,相同的两个分别记为K,V。(a)是完整模型示意图以及编码部分的结构,编码器分为左右两个分支,左分支首先对对话历史和当前对话执行self-attention操作(注意图中省略了对话历史的self-attention),分别得到对话历史的表示和当前对话的表示。之后利用过滤(两部分对话的第一次对比),使用过滤结果对文本信息(注意图中也省略了文本的self-attention操作)进行筛选得到;右侧分支直接使用当前对话筛选文档信息,记为。(b)是第一种解码器结构,它是一个双层的推敲解码器结构,在解码前首先通过一个门机制自动学习的系数α判断保留多少对话历史进入解码器,α平衡编码器左右分支的信息和得到作为解码器的输入(两部分对话的第二次对比)。第一层的解码器依次融合D^final信息和当前对话信息,得到基于对话上下文和筛选信息的初始回复;在此基础上,第二层解码器进一步融合文档信息,对进行补充得到最终的回复。的计算过程为:

其中、、为参数,max()为取极大值,[;]为向量的拼接,*为Hadamard积。(c)是第二种解码器结构,它替换掉了(b)结构中的第一层解码器,直接用和作为输入,在解码过程中用注意力机制Merge-attention判断对话历史的影响得到,之后将得到的作为第二层解码器的输入。此处Merge-attention的做法是:

其中是参数,R在训练时为真实回复的self-attention结果,在测试时是模型生成回复的self-attention结果, 、、 为P的softmax结果。

3.3 优化目标

分别对两层解码器计算MLE损失,并采用加和的方式进行联合训练,其公式为:

这里M为参与训练的样本总数。

4. 实验结果

针对研究的内容,除CMU_DoG[4]的原始数据(我们借助[5]处理的数据(记为Reduced),但区别是我们直接对整个文档进行操作)外,我们还构造了一个对话历史与当前对话弱相关的测试集(记为Sampled),过滤条件是当前对话与历史对话分别针对文档的不同p,用来更好地测试当前对话发生主题转移时CAT模型的性能。数据统计如图2所示。

图2. 数据统计

同时,针对文档的利用效率,我们提出了两个基于词覆盖率的评价指标KU-n和QKU-n(n为用于计算词覆盖的元组长度),计算回复中使用的文档信息的数量和质量,KU值越大说明回复利用的文档信息越多,QKU值越小说明回复利用的文档信息质量越高。具体计算方式请参考论文原文。实验结果如图3所示,CAT-EDD为图1中(c)结构,CAT-DD为图1中(b)结构。

图3. 实验结果. 括号外部和内部分别为原始测试集(新构造的测试集)

从图中可以得到的结论是:1)在PPL/BLEU/ROUGE/QKU指标上,CAT模型在所有的指标上都优于基线模型。模型分别取得了10%~20%的性能提升。说明模型更好的收敛到了训练目标并且利用的文档信息质量也更高。2)KU值超过了所有以Transformer为基础的基线模型,但低于以GRU为基础的VHRED模型,这说明潜变量模型增加了回复的多样性,能够利用更多的文本信息,但QKU值表明其利用信息的质量并不高。3)CAT-DD模型比CAT-EDD模型有更好的性能,这说明利用更早的编码信息进行信息过滤的效果比在解码过程中过滤更好,原因是早期的编码结果保留了更多的文本信息,后期的信息是更抽象的特征,这些特征可能有利于分类任务,但不利于对话生成类任务。同时,显示的门机制控制可能比隐式的权重计算更能发挥作用。4)CAT模型在Sampled测试集比在Reduced测试集上,相对于基线模型体现了更大的优势。这说明我们提出的对比集成方法的确更好地捕捉到了对话历史与当前对话的相关性。我们同时也随机抽取了不同模型生成的回复进行了人工评价,其结果同样显示了CAT模型对比基线模型的优势。

5. 讨论

5.1 消融实验

在消融实验部分,我们对比了三种CAT-DD模型的变种,(w/o-G)是去除左侧分支中和的交互,也即减少最初的对比过滤过程;(w/o-left)通过去除图1(a)模型的左侧分支,模型退化为单轮对话的模式,显然也就无需判断历史对话的影响;(w/o-5,6)通过去除权重部分的公式,模型直接拼接和作为。实验结果如图4所示。

图4. 消融实验

可以看到不同的组成部分都对模型性能有着正向的影响,综合各组件的完整模型能达到最优的效果。

5.2 对话历史的权重分析

论文中有一个自动学习的权重,我们将其量化如图5所示。在Reduced数据上值明显高于Sampled值,这说明过滤后的测试集的确降低了对话历史与当前对话的相关性。而随着对话轮次的增加,这种相关性逐渐趋于平稳,两部分对话的相关性可以依靠少数轮次确定。同时我们也对比了历史轮次增加对实验结果的影响,实验结果有着类似的趋势,在对话轮次从1增加到2时变化明显,随着对话轮次的增长,各种评价指标都趋于平稳。

图5. 对话历史权重,横轴为对话轮数,纵轴为值

5.3 对话样例分析

如表2所示,我们从Sampled测试集中随机选取了一个例子,以较为直观地观察模型的生成效果。首先可以看到当前对话“Is it a big name cast?”与对话历史的相关度较低,只存在it之间的指代关系。我们对比了多个不同模型的生成,VHRED(a)和(w/o-(G))模型给出了无关回复;TDD给出了通用回复;ITDD给出了相对合理的回复但缺少足够的文档信息;(w/o-(5,6))的回复被对话历史影响了语义连贯性;只有CAT-DD的生成同时满足信息度和连贯性。但同时也存在明显的缺陷,CAT-DD只是正确的从文档中筛选出了信息,并没有将信息进行进一步的加工,生成符合人类对话的语句。这说明模型仍然有很大的改进空间,例如使用更能区分双层解码器输出的损失函数,或者设计单独的组件对筛选信息后的文本进行再次加工。

表2. Sampled测试集中基于文档的对话示例

6. 结论

针对以文档为外部知识的对话任务,本文提出了基于Transformer的对比集成模型,分析对话历史和当前对话的关系,充分发挥当前对话在信息筛选中的指导作用。我们设计了两种不同的计算对话历史权重的方法,在已有数据集的基础上构造了新的测试样例,并提出了两个新的静态统计指标来测试我们提出方法的有效性。实验结果表明与现有的基线模型相比,CAT可以更好地理解对话中的主题转移,从而生成相关性和信息度更好的回复。同时在实验分析中给出了关于模型有效性和进一步提升性能的思考。

7. 参考文献

[1] Sankar C, Subramanian S, Pal C, et al. Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019: 32-37.

[2] Satoshi Akasaki, Nobuhiro Kaji: Conversation Initiation by Diverse News Contents Introduction. NAACL-HLT (1) 2019: 3988-3998

[3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.

[4] Zhou K, Prabhumoye S, Black A W. A Dataset for Document Grounded Conversations[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 708-713.

[5]Li Z, Niu C, Meng F, et al. Incremental Transformer with Deliberation Decoder for Document Grounded Conversations[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019: 12-21.

本期责任编辑:张伟男

本期编辑:钟蔚弘

下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套】
下载二:南大模式识别PPT后台回复【南大模式识别】

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!

【赛尔原创】用对比集成式方法理解基于文档的对话相关推荐

  1. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  2. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  3. Java集成第三方oss对象存储——文档篇

    Java集成第三方oss对象存储--文档篇 相关文章 简介 官方文档 应用场景 Web 配置操作 添加依赖 创建存储空间 相关文章 简介 阿里云对象存储OSS(Object Storage Servi ...

  4. SpringMvc集成Springfox使用Swagger写文档和测试

    SpringMvc集成Springfox使用Swagger写文档和测试 前言 swagger简介 swagger确实是个好东西,可以跟据业务代码自动生成相关的api接口文档,尤其用于restful风格 ...

  5. SpringBoot集成swagger生成在线接口文档

    SpringBoot集成swagger生成在线接口文档 集成maven依赖 <dependency><groupId>io.springfox</groupId>& ...

  6. 一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。

    一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误. 参考文章: (1)一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误. (2)https://www.cn ...

  7. php方法帮助文档,Trace方法_帮助文档_Thinkphp手册

    Trace方法_帮助文档_Think 页面Trace只能用于有页面输出的情况,但是trace方法可以用在任何情况,而且trace方法可以用于AJAX等操作. Trace方法的格式:trace('变量' ...

  8. Word在试图打开文件时遇到错误,请尝试下列方法:检查文档或驱动器的文件权限 确保有足够的内存和磁盘空间 用文本恢器打开文件

    Word在试图打开文件时遇到错误,请尝试下列方法:检查文档或驱动器的文件权限 确保有足够的内存和磁盘空间 用文本恢器打开文件  . 经常在浏览器上直接下载的文档打开就报这个错,也不知道是什么原因,最后 ...

  9. “Word在试图打开文件时遇到错误。请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空间。* 用文件恢复转换器打开文件。”问题!...

    Word在试图打开文件时遇到错误. 请尝试下列方法: * 检查文档或驱动器的文件权限. * 确保有足够的内存和磁盘空间. * 用文件恢复转换器打开文件. 如下图: 让同事在他们自己电脑上,都是可以打开 ...

  10. DAE模型——阅读和理解COLLADA文档(2)

    接上文DAE模型--阅读和理解COLLADA文档(1)之后,继续介绍DAE模型的后续内容. (1)library_images模块 在这个模块中只有唯一节点image,其中的ID是使用的纹理文件的文件 ...

最新文章

  1. iOS隐藏导航栏的方法
  2. Qt5的cmake文件位置
  3. 数据库中范式的理解1NF、2NF、3NF
  4. 兼容IE和FF的js脚本做法(比较常用)[问题点数:20分]
  5. wxWidgets:wxAcceleratorTable类用法
  6. 关于vector的迭代器失效的问题
  7. .NET Core HttpClient请求异常分析
  8. 数据结构四——散列表(下)
  9. python 量化交易_基于Python的量化交易工具清单(上)
  10. 我的心无法平静python好学吗
  11. Kubernetes-Pod(三)
  12. localStorage、cookie
  13. iOS programming Code Snippet Library
  14. MAMP Pro for Mac(PHP/MySQL开发环境)
  15. paip.互联网产品要成功的要素
  16. 如何让git小乌龟工具TortoiseGit记住你的账号密码
  17. CUDA版本与显卡驱动匹配
  18. B站上优质python教程推荐
  19. zookeeper启动报错: Invalid configuration, only one server specified (ignoring)
  20. 代码之外——名人哲语

热门文章

  1. java 读取excel文件
  2. 未知宽高div水平垂直居中的3种方法
  3. jquery.autocomplete 使用解析
  4. 关于scrollTop
  5. 没有Path的Binding
  6. 【leetcode】遍历二叉树从跟到叶子的核心代码
  7. slf4j 和 log4j2 架构设计
  8. Linux Tomcat Cluster
  9. 在浏览器上运行Qt应用 emscripten-qt
  10. Linux操作系统中firewall和iptables介绍