基于注意力的复制机制,在Memseq和HPGMN中都有提到。
参考翻译: https://blog.csdn.net/u010555997/article/details/76039971
1.简介
(1)介绍
任务型对话通常明确地模拟用户意图(intent)和信念状态(belief state),本文通过潜在的神经嵌入状态和学习选择对话历史的注意力,并通过复制机制结合先验背景来绕过这种显式表示。通过具有复制机制的简单的Seq2Seq来补充最近工作。(背景可以写论文)
(2)贡献:
1)对任务型对话日益复杂的Seq2Seq模型进行系统的实证分析。
2)开发了一个循环神经对话系统,增加了基于注意力的复制机制,能够在实际数据的各种指标上显著优于更复杂的模型。
(3)自己总结:
大概就是seq2seq的encoder-decoder模型,在decoder中加了一个attention,指向input,复制输入中的单词(但是后面又说是复制输入句子中涉及到的KB中的实体)。在DSTC2上测试比单纯的MemNN好,比其他两种要简单。和Pointer有什么区别呢?
2.网络架构
用Encoder-Decoder架构将对话转化为Seq2Seq学习问题。
有效的任务型对话系统必须有强大的语言建模能力,同时能够使用KB中的相关试题。相关实体的一个重要来源是之前作为上下文背景的对话历史。最近的研究表明,将复制机制纳入神经网络架构可以提升各种Seq2Seq任务性能,包括代码生成,机器翻译和文本摘要等。因此本文使用了基于注意力的注意机制来增强Encoder-decoder模型。
左边是基本的Seq2Seq模型。
-
改进:在解码时,logits vector加了一个a[1:m]t,是一个指向encoder隐层的注意力分数。
-
即,前一时刻,当前时刻隐层,以及一个encoder隐层的联合注意力分数,此时Y变成了在|V|+m范围上的预测(V是输出的词汇大小,m是输入的隐层大小)。
-
所以模型变成了从V中预测token yt或者通过注意力分数ati从encoder的输入上下文来复制一个xi。
-
本文中并不是从输入中任何一个token进行复制,而是仅仅复制对话上下文中提及的KB条目中的实体,因为这为模型的预测性学习提供了概念上直观的目标:在训练过程中模型将会学习从标准词汇库中预测一个token,以此来保证生成表现良好的自然原因词汇;或者从输入上下文中复制相关实体,以此学习提取重要的对话上下文。
-
在模型中,我们通过添加实体类型特征来增强encoder的属性。数据集的知识库中提供了8中不同的实体类型,如图1所示,这些类型用one-hot来编码。编码期间看到某种类型的token(应该就是word)时,我们添加entity类型的one-hot编码到单词的嵌入中,然后再将其输入到网络中(就是输入词+entity类型)。这些类型特征通过允许模型在其软关注和复制期间利用特定相关的对话上下文来磨练位置,从而改进对新颖实体的概括。
-
match features: !!!! 其他使用DSTC2的工作用了相似的机制通过基于对话上下文是否有词法实体类存在来扩展候选系统回复的特征表示。 -
本文使用了LSTM作为循环单元,并在忘记门添加了值为1的偏置。
3.训练
(1) 数据集
- DSTC2: 餐厅预订,最初的目标是 建立一个推断对话状态的系统,本文使用Bordes和Weston(2016)的数据版本,它忽略了对话状态注释,仅使用对话的原始文本。原始文本包括用户和系统话语以及系统响应用户查询而对基础KB进行的API调用。本文模型旨在预测这些系统话语和API调用,每个调用都被视为对话的一个turn。
- 该数据集的优势
1)它源于现实世界,因此具有语言多样性和会话能力
2) 它通过该餐厅实体的KB及其属性来简历
3)之前已有关于该数据集的报告,可以直接对比本文模型
(2)训练
使用交叉熵损失和Adam优化进行训练,使用dropout(0.75-0.95)作为输入输出LSTM的正则化。word embedding是300维,使用了梯度裁剪以防出现梯度爆炸。
(3)度量标准
- Per-Response Accuracy:
- Per-Dialogue Accuracy:
- BLEU:
- Entity F1:
(4)对比模型
- 端到端的对话系统(memory network的一个变形)MemNN
- GMeNN
- QRN(2017年DSTC2上最先进的模型)
模型对比,有点没看明白,+attn是LSTM+attention; +copy是在decoder中加指向KB中的pointer?
可以看到 encoder-decoder就比MemNN的对话精度高了。