《Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-EndTask-Oriented Dialog Systems》
- Multihop Attention Networks (MANs)
以往基于注意力的方法的一个共同特点是,问题由一个特征向量表示,并应用一轮注意力来学习答案的表示。然而,在许多情况下,答案的不同部分可能与问题的不同部分有关。作者根据这一点展开本文的工作,构建一个attention,也就是标题说的multihop attention来获得问题的不同部分的语义,然后再通过sequentional attention获得答案的语义表示;进行多次匹配得出score,最后将score相加得到最终的score表示。
COPY ATTENTION MECHANIC:
《pointing the unknown words》
https://zhuanlan.zhihu.com/p/36368316
https://arxiv.org/pdf/1603.08148.pdf、
《pointer networks》
https://arxiv.org/pdf/1506.03134.pdf
https://www.jianshu.com/p/bff3a19c59be
《How to construct deep recurrent neural networks》
https://arxiv.org/pdf/1312.6026.pdf
《Generating Natural Answers by IncorporatingCopying and Retrieving Mechanisms in Sequence-to-Sequence Learning》
https://aclweb.org/anthology/P17-1019
https://zhuanlan.zhihu.com/p/26826765
MEMORY NETWORK:
https://zhuanlan.zhihu.com/c_129532277
《End-To-End Memory Networks》
https://zhuanlan.zhihu.com/p/29679742
https://arxiv.org/pdf/1503.08895.pdf
《Memory Network》
https://zhuanlan.zhihu.com/p/29590286
《Key-Value Memory Networks for Directly Reading Documents》
https://arxiv.org/pdf/1606.03126.pdf
《Tracking The World State With Recurrent Entity Networks》
https://arxiv.org/pdf/1612.03969.pdf
《Hierarchical Memory Networks》
https://arxiv.org/pdf/1605.07427v1.pdf
https://zhuanlan.zhihu.com/p/30117735
《Hierarchical Memory Networks for Answer Selection on Unknown Words》
https://www.aclweb.org/anthology/C16-1216
《Neural Turing Machines》
https://arxiv.org/pdf/1410.5401.pdf
正文:《Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-EndTask-Oriented Dialog Systems》
https://arxiv.org/pdf/1804.08217.pdf
https://zhuanlan.zhihu.com/p/44110616
introduction
任务型对话系统一般由几个流水线模型组成:语言理解,对话管理,知识查询和语言生成。
目前现有的
- RNN 编码器-解码器模型:它们可以直接将纯文本对话历史映射到输出响应,并且对话状态是潜在的,因此不需要手工标注状态的标签。
RNN 编码器-解码器模型+基于attention的复制机构:它们直接从输入源复制单词到输出响应。即使未知标记出现在对话历史中,模型仍然能够生成正确且相关的实体。
存在的问题:
1)因为RNN对于长序列是不稳定的。所以难以有效地将外部知识库信息与RNN隐藏状态相结合。
2)处理长序列非常耗时,尤其是在使用注意力机制时。
所以,基于MemNN,本文提出了Mem2Seq模型,以端到端的方式学习任务型对话。简而言之,Mem2Seq模型使用序列生成框架扩充了现有的MemNN框架,使用全局多跳注意力(multi-hop attention)机制直接从对话历史或知识库中复制单词。
主要贡献:
1)Mem2Seq是第一个将多跳注意力机制与指针网络结合起来的模型,并允许我们有效地结合知识库信息。
2)Mem2Seq学习了如何动态生成查询去控制Memory的访问,可以可视化memory控制器和attention的跳跃之间的模型动态。
3)Mem2Seq可以更快地进行训练,并在几个任务型对话数据集中实现最先进的结果。
model:
Mem2Seq是第一个结合了multi-hop attention机制和指针网络(pointer network)的生成网络模型。
简单来说,Mem2Seq=MemNN+pointer network,由两个组件组成:memory encoder和memory decoder。如图1所示,MemNN编码器创建对话历史的矢量表示。 然后,存储器解码器读取并复制存储器以产生响应。
实验
在表5中,我们的模型可以达到最高12.6 BLEU分数。此外,Mem2Seq在Entity F1得分(33.4%)方面显示出有希望的结果,一般来说,远远高于其他基线。 值得注意的是,如Seq2Seq或Ptr-Unk这类在此数据集中的性能尤其差,因为RNN方法编码较长知识库信息的效率非常低,这是Mem2Seq的优势。
Mem2Seq拥有最高75.3%的Entity F1得分和55.3 BLEU得分。这进一步证实了Mem2Seq在使用多跳机制而不丢失语言建模的情况下可以很好地检索正确的实体。但是可以发现,每个模型的每个响应精度都小于50%,这是因为数据集非常嘈杂,所以很难生成与黄金响应完全相同的响应。
比如,具有6跳的Mem2Seq在T5中可实现每次响应97.9%和每个对话69.6%的准确度,在T5-OOV中达到84.5%和2.3%,这远远超过现有方法。此外,在任务3-5中证明了跳跃的有效性,因为它们需要对知识库信息具有推理能力。请注意,QRN,MemNN和GMemNN将bAbI任务视为分类问题。虽然与我们的生成方法相比,他们的任务更容易,但Mem2Seq模型也仍然可以超越性能。
结论
传统的任务型对话系统需要在系统设计和数据收集方面进行大量的人力工作。另一方面,尽管端到端对话系统还不完善,但它们需要的人为干预少,特别是在数据集构建中,因为原始会话文本和知识库信息可以直接使用而无需大量预处理(例如NER,依赖解析)。在这种程度上,Mem2Seq是一个简单的生成模型,能够将知识库信息与较好的泛化能力结合起来。
本文为任务型对话系统提供了端到端的可训练的Memory-to-Sequence模型。Mem2Seq将端到端memory网络中的多跳注意力机制与指针网络的概念相结合,以结合外部信息。本文显示了模型使用外部知识库信息和预定义词汇表生成相关答案的能力,并将多跳注意机制如何帮助学习记忆之间的相关性可视化。Mem2Seq快速,通用,能够在三个不同的数据集中实现最先进的结果。
《Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-EndTask-Oriented Dialog Systems》的更多相关文章
- 《Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study》
https://zhuanlan.zhihu.com/p/73723782 请复制粘贴到markdown 查看器查看! Do Neural Dialog Systems Use the Convers ...
- 《C#微信开发系列(Top)-微信开发完整学习路线》
年前就答应要将微信开发的学习路线整理给到大家,但是因为年后回来这段时间学校还有公司那边有很多事情需要兼顾,所以没能及时更新文章.今天特地花时间整理了下,话不多说,上图,希望对大家的学习有所帮助哈. 如 ...
- Smart3D系列教程3之 《论照片三维重建中Smart3D几个工作模块的功能意义》
[摘要] 近年来,倾斜摄影测量技术是国际测绘遥感领域近年发展起来的一项高新技术,利用照片进行三维重建成为一项关键性的技术.Smart3D软件,是照片三维重建主流软件之一,本文将就Smart3D建模软件 ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目 录 第一章 通讯框架介绍... 2 1.1 通讯的本质... 2 1 ...
- C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)
因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...
- 【读书笔记】读《高性能网站建设指南》及《高性能网站建设进阶指南:Web开发者性能优化最佳实践》
这两本书就一块儿搞了,大多数已经理解,简单做个标记.主要对自己不太了解的地方,做一些记录. 一.读<高性能网站建设指南> 0> 黄金性能法则:只有10%~20%的最终用户响应时间 ...
- 《编写高质量代码--Web前端开发修炼之道》读书笔记
前言 这两周参加公司的新项目,采用封闭式开发(项目成员在会议室里开发),晚上加班到很晚,所以没时间和精力写原创博客了,今天就分享下这篇<编写高质量代码--Web前端开发修炼之道>读书笔记吧 ...
- 文《左右c++与java中国的垃圾问题的分析与解决》一bug分析
文<左右c++与java中国的垃圾问题的分析与解决>一bug分析 DionysosLai(906391500@qq.com) 2014/10/21 在前几篇一博客<关于c++与jav ...
- 《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
前几天,个人著作<Unity3D/2D游戏开发从0到1(第二版)>经过七八个月的技术准备以及近3个月的日夜编写,在十一长假后终于完稿.今天抽出一点时间来,给广大热心小伙伴们汇报一下书籍概况 ...
随机推荐
- curl的POST请求,封装方法
//POST请求//参数1是请求的url//参数2是发送的数据的数组//参数3是其他POST选项public static function POST($url, array $post = arra ...
- 外排序 External sorting
2019-04-17 18:11:34 外排序(External sorting)是指能够处理极大量数据的排序算法.通常来说,外排序处理的数据不能一次装入内存,只能放在读写较慢的外存储器(通常是硬盘) ...
- python高阶函数(Map、Reduce、Filter、lamba)
Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 代码如下: >>> def f(x): . ...
- linux blast
建库 减压后,改名为blast,并在blas目录在建立db文件1,建立数据库makeblastdb -in db.fasta -dbtype nucl(prot) -parse_seqids -has ...
- NetSec2019 20165327 Exp4 恶意代码分析
NetSec2019 20165327 Exp4 恶意代码分析 一.实践目标 1.监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...
- 登录获取token,token参数关联至所有请求的请求体内
问题描述: 有些系统接口判断用户是否登录,是校验登录接口成功后传的token值,也就是请求系统所有接口时,前端传参必带登录成功后接口返回的token,后台以此检验是否过期或是否有登录.所有接口都依赖登 ...
- flex属性介绍
- loglog 函数的使用
验证数值算法的正确性,有一个很重要的指标就是收敛阶($\tt\bf Convergent~Rate$) 当有误差估计: $$Error=\lVert u(x)-u_N(x) \rVert \simeq ...
- mui预加载
1.只能加载一个页面 mui.init(); var page = null; mui.plusReady(function() { //预加载页面mui.preload必须放在plusReady事件 ...
- JCache只缓存部分字段
项目中使用的JCache缓存实体,发现每次缓存时存进去了实体,取出的时候字段有些是空的. 具体环境为 Springboot v2.01 JCache(ehcache 3.4.0) jdk 1.8.0_ ...