copy net 和 pointer softmax network都是在ACL 2016上提出的,目的是为了解决OOV的问题,本篇主要是想借此总结一下copy机制的原理。
论文阅读
Incorporating Copying Mechanism in Sequence-to-Sequence Learning
Jiatao Gu, Zhengdong Lu
The University of Hong Kong & Huawei Noah’s Ark Lab
ACL 2016
这篇提出了copynet的思路,同时结合了generative和copy两种方式,对OOV词采用直接copy的方式。attention中包含了两个部分,第一个部分是词表,用one hot向量表示的,第二个部分是encoder的隐藏状态,即输入的句子,之所以用隐藏状态是因为其包含有位置信息,这个对生成很重要。建模是通过两者的叠加,例子中就是Prob(“Jebara”) = Prob(“Jebara”, g) + Prob(“Jebara”, c)。
M是输入隐藏层状态的集合, ct c t 是attention score, st s t 是输出的隐藏状态,g代表生成,c代表复制。
生成还是复制基于概率最大来选择,加了一个简单的限制规则,如果 yt y t 在输入中没出现,那么肯定不会是copy, p(yt,c|∗)=0 p ( y t , c | ∗ ) = 0 ;如果