1 What
在Seq2seq模型中,重复生成文字是常见的问题。《Pointer-Generator Networks》作者在《Modeling Coverage for Neural Machine Translation》提出的Coverage机制的基础上,简化了Coverage机制并融合到其模型中,在decoder的每个时间步维护一个coverage向量,该向量由时刻 t 之前的attention weight向量累加获得。
c t = ∑ t ′ = 0 t − 1 a t ′ c_t =\sum_{t\rq=0}^{t-1}a^{t\rq} ct=t′=0∑t−1at′
这个coverage向量表示过往时刻的所有注意力机制的累加,其告诉模型,encoder的输入中哪些部分是已经被注意力关注过的,哪些没有。
为了使得模型不过多地关注已经关注过的区域,所以将coverge向量作为下一步的注意力的构成部分,这样下一步生成的注意力分布就会有意识地减少已经关注过的区域的概率。
e i t = v T t a n h ( W h h i + W s s t + w c c i t + b a t t n ) e^ t_ i = v^T tanh(W_hh_i +W_ss_t +w_c c^t_i +b_{attn}) eit=vTtanh(Wh