【论文阅读】Incorporating copying mechanisim in sequence-to-sequence learning


摘要:

借鉴人类面对复杂生词死记硬背的方式,本文提出了一种机制,将拷贝的方式结合seq2seq模型(CopyNet),能比较好的处理OOV问题,可以将部分实体直接复制到输出中。

介绍:

回答中的一些子序列是copy的问句中的,如图:


这些往往是一些名词实体、日期等

背景:

介绍了seq2seq模型

encoder:

decoder:


attention 机制:

上下文向量ct是变化的(会遗忘和记住)

CopyNet模型:

类似死记硬背,理解的少,但是更好的保留了字面的完整性。

3.1 模型架构

模型架构如图:


整体上还是encoder-decoder模式,袁淑茹经过encoder转化为合适的表达形式,decoder再将其转化为目标词汇

encoder部分是一个双向的RNN,将源序列转化为等长的hidden state ht,每个ht都与原序列中xt有关,输出的{h1,h2,,,hts}作为一个矩阵M,是decoder的输入

decoder部分以M为输入,与传统的RNN decoder不同之处在于以下几点:

    预测:两种模型来预测,生成式模型和拷贝模型,后者直接从源序列中拷贝

    状态更新:在t-1时刻的状态用来更新t时刻的状态,区别在于不仅仅使用word embedding ,还使用M矩阵中相应位置的hidden-state,因为copy的时候位置信息很重要

    读入M:CopyNet会选择性的读取M,来获得内容和位置信息

3.2 用拷贝和生成预测

构造V为常用词表(高频),UNK是OOV部分的词,X表示输入序列中unique的词(只出现过一次),X中是可能包含V中没有的词的。最终的输入序列是三者的并集。

给定decoder M和当前状态后最终用于预测的式子是:



结合这个图看可能更清楚:

这两个都是具体的yt是vi或xj的概率

3.3 状态更新

decoder中的状态更新:


在拷贝机制中,



也表示选择性的读取M矩阵,是专门为拷贝机制设定的

3.4 混合处理M矩阵

M矩阵中既包含了内容信息,又有位置信息。COPYNET在attentive read时由内容(语义)信息和语言模型来驱动,即生成模式;在拷贝模式时,由位置信息来控制。

位置更新的方式如图:


学习过程


实验:

一共分为三个实验:

简单规则构造的合成数据。文本摘要相关的真实数据。简单对话系统的数据。



猜你喜欢

转载自blog.csdn.net/beforeeasy/article/details/80350620