Get To The Point: Summarization with Pointer-Generator Networks
ACL 2017的一篇文章,谷歌学术目前引用量618
问题:文本摘要是指一段文字浓缩成一段更短的文字,它包含了原文中的主要信息。文本摘要主要有抽取式和生成式两种方式。把sequence-to-sequence模型应用于摘要生成时存在两个主要的问题:1)难以准确复述原文的事实细;2)无法处理原文中的未登录词(OOV);3)生成摘要中存在重复的片段。长文的总结更有挑战性,要求更高层次的抽象同时避免重复。
方法:本文提出融合了seq2seq模型和pointer network的pointer-generator network以及覆盖率机制(coverage mechanism),在CNN/Daily Mail数据集上,相比于state-of-art,ROUGE分数提升了两个点。
[if !supportLists]1) [endif]融合了seq2seq模型的pointer network:有助于准确的从原文中复制信息,通过生成器生成新的单词2)使用覆盖率跟踪已经总结的内容
使用指针生成器网络(pointer-generator network)来处理OOV(直接复制原文方法),并保留了生成新词的能力。问题在于平衡extractive(抽取)和abstractive(抽象),使用了CopyNet和Forced-Attention句子理解处理短文本摘要。本文提出了一种覆盖向量的新变体,用来跟踪和控制源文档的覆盖范围,并证明覆盖率对消除重复有效。
本文将两种基线模型和提出的模型进行对比,第一种是seq2seq+attention模型
编码器(encoder)是一个双向的LSTM,将序列编码wi转换成隐状态ht;解码器(decoder,实质是一个多分类器),是一个单层无向的lstm,在每个时间t,接受来自上一时刻的词嵌入向量(word embedding),训练时,这个词向量是参考摘要的前一个词,而测试时是由解码器上一时刻预测的词。注意力机制体现在,每个时间步t,考虑当前序列的注意力分布,注意力分布用于生成编码器隐藏状态的加权总和,转化为上下文向量,与解码器t时刻的隐状态进行concatenated然后喂到两个线性层来计算词汇分布P(一个固定维度的向量,每个维度代表被预测词的概率,取argmax就能得到预测的单词)。注意力机制告诉解码器在哪里查找以生成下一个单词,注意力分布公式(1)(2)和生成的词汇分布:
是seq2seq+att和pointer network的混合物,通过指针复制单词,又从固定的词汇表中生成单词,t时刻的生成概率Pgen由上下文向量(content vector) ht,解码器转态st和解码器的输入xt共同产生,公式如下:
将Pgen作为一个开关,来决定从Pvocab中生成一个单词,还是从编码器输入序列的注意力分布at中采样一个单词,扩展的词汇如式(9),如果w是OOV,则Pvocab(w)=0,若w未出现输入文档中,∑i:wi=w ait =0
Coverage mechanism
覆盖机制的目的是为了解决多句子文本的重复问题。例如:覆盖机制维持一个覆盖向量ct,代表decoder之前时间步t所有输出的注意力分布,直观地说,ct是源文档单词上的一个(非规范化的)分布,它表示这些单词到目前为止从注意机制获得的覆盖程度:
这可确保注意机制的当前决定(选择下一个参加的地点)通过提醒其先前的决定(在ct中总结)得到通知。这将使注意机制更容易避免重复注意相同的位置,从而避免产生重复的文本。根据注意力分布来产生的单词,会在覆盖向量里有较高的权重
总结:对于OOV问题,本文提出了一个指针生成网络,在预测的每一步,由注意力分布和输出的隐状态共同计算Pgen,使得OOV词以更大的概率复制到生成的摘要中。与具有注意顺序的系统相比,指针生成器网络具有以下优点:
1、指针生成器网络使从源文本复制单词变得容易。网络只需要对相关单词给予足够大的关注,并使Pgen足够大。
2、指针生成器模型甚至还能够从源文本中复制词汇外的单词。这是一个重大的好处,它使我们能够处理看不见的单词,同时也使我们可以使用较小的词汇量(所需的计算和存储空间更少)。
3、指针生成器模型的训练速度更快,所需的训练迭代次数更少,以实现与序列到序列注意系统相同的性能。
指针生成器网络是两全其美的,将提取(指向)和抽象(生成)结合在一起。
对于重复出现问题,本文使用注意力分布来跟踪到目前为止所涵盖的内容,并惩罚网络以再次参加相同的环节。一个特定源词的覆盖范围等于它到目前为止所受到的关注。
指针生成网络其实是Pointer Network的延续,应用于摘要生成任务中。该网络使用generator保留了其生成能力的同时,用pointer从原文中Copy那些OOV词来保证信息正确的重复。原文更为重要的创新点是应用了coverage mechanism来解决了seq2seq的通病--repitition,这个机制可以避免在同一位置重复,也因此避免重复生成文本。
参考:http://www.abigailsee.com/2017/04/16/taming-rnns-for-better-summarization.html