[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning

目前在自然语言处理的很多任务中,比如机器翻译、句法分析、自动文摘以及对话系统等领域,sequence-to-sequence 已经取得了瞩目的成就。简单说下sequence-to-sequence, 也称为seq2seq 由两个RNN组成:处理输入的编码器网络和生成输出的解码器网络. 所以也称之为encoder-decoder model.
paper 提出了一种”copying mechanism”, 意思就是复制input sentence中的segment 然后复制到output sequence. 举个例子,比如在对话系统中,日期或实体信息就需要复制。
目前很多做法都是讲attention model 融入到seq2seq中,本文提出的网络结构称为copynet, 可以有效的解决上面提出的问题
[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning

在decode的时候有三点特别之处:
(1)prediction: 输出有是个generate-code和copy-mode的混合模型, copy-mode就是从input sentence 中选词
(2)之前更新状态si=f(si1, yi1, ci)
本文中的状态更新加入了位置信息
原公式中的yi1更新为[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning

[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning

(3)处理原句子的隐层状态时有两种做法: attentive read 和 selective read 对应了content-based addressing 和 location-based

最后预测词时根据词在不同的集合有不同的打分函数
[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning
这儿给出过公式(6)的解释说明:j:xj=yt, 这是个约束条件,针对公式(6)中的词有重复的,可能有多个词是yt, 所有是yt的的概率和

[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning

在paper的3.2小节中公式的理解,虽然手写字很难看,可是还是很方便:
[ACL2016] Incorporating Copying Mechanism in Sequence-to-Sequence Learning