(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记

《Incorporating Copying Mechanism in Sequence-to-Sequence Learning》

引言

最近看了一下CopyNet,感觉此网络也是比较玄学,它能够自动的,决定下一步的预测是生成模式还是复制模式。生成模式就是我们常说的注意力机制,复制模式就是这篇文章的一个创新点。
他的想法是来源于,人类在阅读文章的时候,或者去做一些摘要的时候,除了自己会生成一些概括语句之外,还会从文章当中去摘抄一些核心句子。也就是说,理解生成和死记硬背。

1、Motivation

  • 注意力机制当中,都是根据语义表达生成词语,而且都是词汇表当中的词语。一个问题就是他没有办法去处理out of vocabulary。而在某些系统当中,需要的是输入的一些子串,比如说像一些实体名词等。如下图:

(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记

  • 于是提出copy机制,他需要更少的理解,但是能够确保文字的保真度。对于摘要,对话系统等来说,能够提高文字的流畅度和准确率。并且也是端到端进行训练。

2、Model

(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
Copy net is still an encoder and decoder framework,以单轮对话为例。输入是句子A以及位置信息,经过Encoder,由Decoder得到输出——句子B。

2.1 Encoder

源端的表达就是一个Encoder,被认为是一个short term memory,在论文后部分用M表示。

2.2 Decoder

和传统的解码器一样,根据M预测目标序列,主要有以下几个不同点:

  • 预测:两个模式的混合概率模型,一个是生成模式,一个是复制模式(见2.2.1),即在源端选出一些子串。
  • 状态更新:更新t时刻的状态会用到前一时刻预测的词。但是copy network,不仅仅使用它的词向量,而且还使用它对应的位置信息。(见2.2.2)
  • Reading M:除了对M做一个attentive read,还会对他做一个selective read,混合了基于内容和基于位置的处理。

2.2.1 生成模式&复制模式

假定有一个词表 V={v1,v2,...vn}\ V = \{v_1, v_2, ...v_n\},使用UNK表示OOV。源端句子  X={x1,x2,...xTs}\ X = \{x_1, x_2, ...x_{Ts}\},X中可能包含V中没有的词,这样用copy mode就能够复制词表中没有的词。给定解码端隐藏状态s,以及M,目标词的概率由以下混合概率模型定义:(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
两种模式的概率是:
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
总共需要考虑4个情况,目标词yt如果属于词汇表或者源端,就分别计算上述两个概率;如果既不属于词汇表,也不属于源端,就是UNK;如果属于源端,但不属于词汇表,那么生成的概率为0;如果不属于源端,那么复制的概率为0。Z是两种模式共享的归一化项。下图可见:(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
这个地方我的理解,应该是在训练当中yt作为目标词,整个模型的目标是要让yt的混合概率最大。即-log似然概率最小。(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
然后在预测的时候,因为没有目标词。按照作者给的模型框架图,应该是在最后一层前馈神经网,维度为词汇表的数量加源端句子的长度。然后把每一个词对应的概率加起来选择最大概率的词作为prediction。(这个词如果没有出现在源端,则复制模式概率为零。这个词如果出现在了源端,但是不在目标词里,生成模式概率为0。)(如有错误欢迎指正)

下图是两种模式分数的计算方法:
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记

2.2.2 State Update

注意力机制中,状态的更新为下公式:
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
但是在copy net, yt1\ y_{t-1}有一点小的变化,其被表达成以下形式:
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
前者是一个embedding,后者是一个加权和的计算,对于源端中的词,如果其等于 yt1\ y_{t-1},则以公式9进行计算,否则其概率为0。也就是说,我们挑选出等于 yt1\ y_{t-1}的词的隐层状态和词向量连接。(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
这里的操作称之为selective read,与attentive read相似。attentive read是用decoder的隐状态和encoder隐状态做attention,是soft操作;而selective read是用t-1时刻的输出与encoder的输入做selection,不相等则为0,是hard操作。

3、Experiment

第一个实验是自动文摘,因为文摘任务当中,可以发现摘要中的大部分,都是可以从原文当中直接复制过来的。在源端可能会出现很多的out of vocabulary,所以基于注意力的encoder decoder模型,生成的摘要效果很差。
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
第二个实验用在单轮对话系统,在单轮对话任务当中,虽然基于注意力的encoder decoder模型,能够去生成完整的有语义的句子,可是往往答非所问。
(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning论文笔记
可见copy network,在这些任务上效果还是比较好的。

4、Discussion

优点:

  • 加入copy机制,不仅仅考虑生成模式,还考虑复制模式,对文摘或者单轮对话任务起到比较好的效果。

缺点:

  • Hard操作,将其他的全部置零是否稳妥?
  • 多轮对话是否有用?
  • 对于源端和目标端不同语言的任务,如何改进?