今天分享的paper是Incorporating Copying Mechanism in Sequence-to-Sequence Learning,作者来自香港大学和华为诺亚方舟实验室。
本文的模型通过借鉴人类在处理难理解的文字时采用的死记硬背的方法,提出了COPYNET。将拷贝模式融入到了Seq2Seq模型中,将传统的生成模式和拷贝模式混合起来构建了新的模型,非常好地解决了OOV问题。解决问题的思路与之前的一篇有关Pointer的文章十分类似。decoder部分不断地变复杂,考虑的因素越来越多,模型的效果也越来越好。如果结合上一篇Minimum Risk Training的训练方法,相信在评价指标上会更进一步。
综述
Seq2Seq技术占据了nlp多个研究任务的评测榜首,包括最早提出该技术的机器翻译,句法分析,文本摘要,对话系统。Seq2Seq本质上是一个encoder-decoder的模型,encoder部分将输入的序列变换成某一种表示,然后decoder将这种表示变换成输出序列。在Seq2Seq的基础上,首次增加注意力机制来做机器翻译的自动对齐。注意力机制在很大程度上提升了Seq2Seq的性能。
本文研究了人类语言交流的另一个机制,“拷贝机制”(copy mechanism
),定位到输入序列中的某个片段,然后将该片段拷贝到输出序列中。比如:
但是注意力机制严重依赖于语义的表示,在系统需要获取到命名实体或者日期时难以准确地表示。相对之下,拷贝机制更加接近于人类处理语言问题的方式。本文提出了COPYNET系统,不仅具备传统Seq2Seq生成词的能力,而且可以从输入序列中拷贝合适的片段到输出序列中。在合成数据和真实数据中均取得了不错的结果。
Seq2Seq
文章的这部分简单介绍了一下Seq2Seq+Attention Mechanism技术,前面的博客分享了很多这部分的内容,这里就不再赘述了。
COPYNET
从神经学角度来讲,拷贝机制和人类的死记硬背类似,较少地理解到了意思但保留了字面的完整。从模型的角度来讲,拷贝机制相比于soft注意力模型更加死板,所以更难整合到神经网络模型中。
模型综述
COPYNET依然是一个encoder-decoder模型,如图1所示:
encoder采用了一个双向RNN模型,输出一个隐藏层表示的矩阵M作为decoder的输入。decoder部分与传统的Seq2Seq不同之处在于以下三部分:
- 预测:在生成词时存在两种模式,一种是生成模式,一种是拷贝模式,生成模型是一个结合两种模式的概率模型。
- 状态更新:用t-1时刻的预测出的词来更新t时刻的状态,COPYNET不仅仅词向量,而且使用M矩阵中特定位置的hidden state。
- 读取M:COPYNET也会选择性地读取M矩阵,来获取混合了内容和位置的信息。
拷贝模式和生成模式
首先,构造了两个词汇表,一个是高频词词汇表,另一个是只在输入序列中出现过一次的词,这部分的词用来支持COPYNET,用UNK表示超纲词(OOV),最终输入序列的词汇表是三者的并集。
给定了decoder当前状态和M矩阵,生成目标单词的概率模型如下:
模型中g表示生成模式,c表示拷贝模式。两种模式的概率由下式给定:
共四种可能情况,下图会更形象一些:
其中生成模式的打分公式是:
拷贝模式的打分公式是:
状态更新
decoder状态更新的公式是
不同的是这里的t-1时刻的y由下式表示:
后面的部分是M矩阵中与t时刻y相关的状态权重之和,如下:
M矩阵
M矩阵中既包含了内容(语义)信息,又包含了位置信息。COPYNET在attentive read时由内容(语义)信息和语言模型来驱动,即生成模式;在拷贝模式时,由位置信息来控制。
位置信息的更新方式如下图所示:
实验
一共分为三个实验:
- 简单规则构造的合成数据。
- 文本摘要相关的真实数据。
- 简单对话系统的数据。
这里只看文本摘要实验。
文本摘要
数据采用LCSTS中文短文本摘要数据集,分为两个level来测试:word-level和char-level,并且以LCSTS的baseline作为对比,结果如下:
本文的模型远远优于baseline,而且word-level的结果比char-level更好,这与当时LCSTS paper中的结论不同,一个可能的原因是,数据集中包含了大量的命名实体名词(entity name),LCSTS paper中的方法并不能很好地处理大量的UNK单词,因此baseline中的char-level效果比word-level更好,而本文的模型的优势在于处理OOV问题,所以word-level结果更好一些。
来源:paperweekly