目前已有的生成式文本摘要有两个显著的缺点:
(1)不准确复制事实细节(复制的事实细节不对)
(2)有时候摘要会重复他们本身
针对这两个问题,本文给出了相应的解决方法:
(1)pointer-generator模型(指针生成网络), 通过指针从源文本中复制单词以解决OOV问题,并且有能力生成新词(在源文本中没有出现的词)
(2)coverage机制:解决seq2seq模型生成句子中经常有重复片段现象
首先给出以往做法的框架图,其实也是生成式文本摘要的开山之作《a neural attention model for abstractive sentence summarization》的思想,简而言之,就是在解码的第t步用attention计算出源文本中所有词的概率分布,然后生成文本向量c, 利用c和解码的h生成第t步在固定词汇集上的概率分布:
本文的主要思想框架如下:
(1)seq2seq attentional model
为了更明白地解释Pointer-generator network和Coverage mechanism,首先回顾下seq2seq attention model的原理,不具体进行解释了:
context vector:
(2) Pointer-generator network
公式(8)中的p是标量值,范围是[0, 1],直观理解就是生成新词的概率, 如果概率大就选择生成新词,否则就从源文本中copy单词。公式中的 是第t步解码时第t-1步的输出,了解seq2seq的知道,第t-1步的输出就是第t步的输入
在公式(9)是固定词汇集合中的概率分布,即Figure 3中的右上角绿色部分,(w)是单词w在固定词汇集合中的概率值是在解码时刻计算出的源句子中第i个词的概率, i:w=w中i是变量大小是0<i<源文档词的个数(不去重),源句子中w只要是单词w,就将该词概率相加。大概意思是源文档中有重复的单词,重复词的概率和。
整个公式(9)可以理解为:解码生成的某个单词的概率由两部分组成,一是生成模式生词这个词的概率,二是源句子里在解码第t步词w的概率。
如果w是oov词,则(w)就等于零,想当于从源文档中复制词,如果w没有出现在源文档中,则公式(9)中左边的第二个compnents就等于0
(3)Coverage mechanism
这个机制是为了解决重复片段问题的,尤其当生成多个句子的文摘时,重复问题很严重。
公式(10)中的 t范围是从0到 t-1,是已经解码的每一步,源文档中所以词的概率分布相加
在公式(11)中 wc中得到提示,使注意力机制避免重复关注相同的位置, 也就是说避开已经关注过的单词