《Mem2Seq:Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems》阅读笔记

题目: Mem2Seq:Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems
作者: Andrea Madotto, Chien-Sheng Wu, Pascale Fung
单位:Human Language Technology Center, CAiRe, et al.
出版: ACL2018

------------- 
问题:文章重点解决什么问题

RNN 编码-解码模型:直接将纯文本对话历史映射到输出响应,并且对话状态是潜在的,因此不需要手工标注状态标签。

RNN编码-解码模型+基于attention的复制机制:直接从输入源复制到输出响应端,能够解决在对话历史中没有出现的token,生成正确和相关的实体。

但是这些方法仍然存在两个问题:1)他们努力的想将外部的KB知识整合进入RNN网络的隐藏层,但是RNN处理长序列并不稳定。2)处理长序列非常耗费时间,尤其是加入了attention机制。

为了解决以上问题,发现MemNNs(end-to-end memory networks:将外部存储器嵌入几个embedding 矩阵,并使用查询向量反复的读取存储器)可以很好的解决上述两个问题。即,能够记忆外部KB信息并且快速编码长对话历史记录。但是,MemNN只是从预定义的候选池中选择输出响应,而不是逐字生成,并且Memory query需要显示设计而不是被学习,也缺乏复制机制。

针对MemNNs的问题,提出了Mem2Seq模型,在MemNNs的框架上使用序列生成框架进行扩充,使用全局multi-hop  attention机制直接从历史对话或KB进行复制。

方案:侧重整体性的系统架构或评价体系等

Mem2Seq是第一个结合了multi-hop attention机制和指针网络(pointer network)的生成网络模型。简单来说Mem2Seq由两部分组成:MemNN+pointer network

Mem2Seq的主要优点:1)第一个结合multi-hop attention 机制和 指针网络的模型,并且可以有效融入KB信息。2)Mem2Seq学习了如何动态生成查询去控制Memory的访问,可以可视化memory控制器和attention的跳跃之间的模型动态。3)训练时间短,得到的答案精确。

定义历史对话消息作为token 序列 :,(“hello t1 $u” means “hello” at time step 1 spoken by a user),其中,$是sentinel(哨兵),如果选择了$,则从中生成token,否则从中生成token

定义KB元组: (subject, relation, object),计算subject,relation,object的词向量求和,得到每个KB内存表示。解码阶段,object部分作为的生成。只有于特定对话相关的KB的特定部分才能加载到内存中。

Memory 编码的输入为U,

Memory解码的输入:,也是Memory编码的输出

Y作为预期系统输出响应,Y = 

指针网络的指针索引集,

是输入序列,sentinel位置索引=n+l+1(是X和B中元素的个数再加1)

(a)Memory 编码

输入:U

输出:(Memory vector)

embedding矩阵C,每一个代表把一个token映射为向量,查询向量作为一个reading head。

在K hop时每个memory i的attention 权重:

attention权重的含义是:memory i于查询向量的相关性。attention权重值越高,则越相关。

下一个hop的查询向量要进行更新:

(b)Memory 解码(RNN+MemNN)

输入:

输出:通过指向Memory中的输入生成tokens,于指针网络使用attention相似。

MemNN的动态查询生成:GRU(Gated Recurrent Unit)

(t 解码时刻)GRU的输入:先前生成的单词和先前的查询

                      GRU的输出:新的查询向量

GRU的输出传递给生成token的MemNN

在每一个解码步骤,都会生成2个分布:vocabulary Distribution()和Memory Distribution()。

其中是通过连接第一hop attention的输出和当前查询向量生成的。

是用MemNN最后一hop的解码器的attenion 权重生成的:=

第一hop侧重于检索Memory信息,最后一hop侧重于利用指针监督选择精确的token。

实验:

三个数据集进行评估:bAbI(模拟对话)、DSTC2(真实人机对话)、In-Car(人-人对话和多域对话)

bAbI:Task1-4分别是关于API调用, 优化API调用,推荐选项以及提供其他信息。Task5是Task1-4的集合。

优化器:Adam.

学习效率:

K = 1, 3 ,6(hop数)

embedding大小=Memory大小=RNN隐藏层大小(包括基线):[64,512]

dropout:[0.1, 0.4]

使用grid-seach在验证集上调整参数

测评标准:bAbI、DSTC2 用Per-response, In-Car Assictant用BLEU分数。

Per-respomse:只有当它与黄金响应完全相同时,生成响应才是正确的。仅当对话的每个生成响应都正确时,对话才是正确的

BLEU:面向任务的对话中的相关度量,因为与开放域生成不同,所以生成的答案之间没有很大差异。

Entity F1:评估从KB生成相关实体并捕获对话框语义的能力。

实验评价:侧重性能、安全、正确等。

局限:侧重依赖的假设、未完的工作等。

实体F1得分可能是比每回应准确度或BLEU得分更全面的评估指标,因为人们通常可以选择正确的实体但具有非常多样化的响应。实际上,我们希望强调人类可能具有较低的BLEU分数,尽管它们的正确性,因为在给定的响应和预期的响应之间可能没有大的n-gram重叠。

展望:

在未来的工作中,可以应用几种方法(例如,强化学习等),Beam Search,以改善响应相关性和实体F1得分。但是,我们希望尽可能简化模型,以便即使没有高级方法也能很好地运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值