Get To The Point: Summarization with Pointer-Generator Networks

Get To The Point: Summarization with Pointer-Generator Networks


paper:https://arxiv.org/pdf/1704.04368
code: http://www.github.com/abisee/pointer-generator

摘要

神经序列-序列模型为抽象文本摘要提供了一种可行的新方法(这意味着它们不局限于从原始文本中简单地选择和重新排列段落)。然而,这些模型有两个缺点:它们容易不准确地再现事实细节,而且它们往往重复。在这项工作中,提出了一个新的体系结构,以两种正交的方式扩充标准序列到序列注意模型。首先,我们使用了一个混合指针-生成器网络,它可以通过指针从源文本中复制单词,这有助于信息的准确复制,同时保留了通过生成器生成新单词的能力。其次,我们使用覆盖率来跟踪已经总结的内容,这就不鼓励重复。我们将模型应用于CNN /Daily Mail摘要任务,优先于最新模型至少2个点。

模型

seq2seq+attention(baseline)
PNG网络实在seq2seq+attention的基础上构建的,其架构图如下:

图2:基线序列到序列模型。该模型可以根据源文本中的相关词生成新词,例如,在摘要德国队2-0击败阿根廷队的模型中产生新颖单词beat,可能关注原文中的单词 victorious和win。

文章 w i w_i wi的tokens被一个接一个地馈送到编码器(一个单层双向LSTM),产生一个编码器隐藏状态序列 h i h_i hi。在每一步 t t t上,解码器(单层单向LSTM)接收到前一个词的词嵌入(在训练时,这是参考摘要的前一个词;在测试时,它是解码器发出的前一个单词),并具有解码器状态 s t s_t st a t a^t at的注意分布按Bahdanau et al.(2015)计算:

其中 v v v W h W_h Wh W s W_s Ws b a t n b_{atn} batn为可学习参数。注意力分布可以看作是源单词的概率分布,它告诉解码器从哪里寻找下一个单词。接下来,注意力分布被用来产生编码器隐藏状态的加权和,称为上下文向量 h t ∗ h_t^* ht.

上下文向量可以被看作是从源代码中读取的内容的固定大小的表示,它与解码器状态 s t s_t st连接在一起,并通过两个线性层提供给它,以产生词汇表分布 P v o c a b P_{vocab} Pvocab,如下图所示:

其中 V V V V ′ V' V b b b b ′ b' b是可学参数。 P v o c a b P_vocab Pvocab是词汇表中所有单词的概率分布,它为我们提供了预测单词 w w w的最终分布。

在训练过程中,时间步长 t t t的损失是目标词 w t w_t wt在该时间步长的负对数可能性

整个序列的总损失是

Pointer-generator network

指针生成器网络是基线和指针网络的混合体(Vinyals,2015),因为它既允许通过指向额外单词,也允许从固定词汇表中生成单词。在指针-生成器模型(如图3所示)中, a t a^t at和上下文向量 h t ∗ h^*_t ht的注意分布计算方法如2.1节所示。此外,从上下文向量 h t h_t ht、解码器状态 s t s_t st和解码器输入 x t x_t xt计算出 t t t时刻的生成概率 p g e n ∈ [ 0 , 1 ] p_{gen} \in [0,1] pgen[0,1]

其中向量 w h w_h wh w s w_s ws w x w_x wx和标量 b p t r b_{ptr} bptr为可学参数, σ σ σ为sigmoid函数。接下来, p g e n p_gen pgen被用作软作用,通过 P v o c a b P_{vocab} Pvocab从词汇表中抽样生成单词,或者通过 a t a^t at注意分布从输入序列中复制单词。对于每个文档,让扩展词汇表表示词汇表和出现在源文档中的所有词汇的联合。在扩展的词汇表上,我们得到以下概率分布:

注意,如果 w w w是一个词汇表外的单词(OOV),那么 P v o c a b ( w ) P_{vocab}(w) Pvocab(w)是零;类似地,如果 w w w没有出现在源文档中,则 Σ i : w i = w a i t \Sigma_{i:w_i=w}a_i^t Σi:wi=wait为零。能够生成OOV单词是指针生成器模型的主要优势之一。相比之下,像我们的基线这样的模型被限制在它们预先设定的词汇表中。损失函数如式(6)和式(7)所示,但根据式(9)中给出的修正概率分布P(w)。

Coverage mechanism

重复是序列到序列模型的常见问题。尤其是在生成多句文本时。采用Tu et al.(2016)的coverage模型来解决这个问题。
在coverage模型中,我们保持一个coverage向量 c t c_t ct,它是所有先前解码器时间步上的注意力分布的总和。直观地说, c t c_t ct是源文档单词的(非标准化)分布,表示这些单词迄今为止从注意机制中获得的coverage程度。请注意, c 0 c^0 c0是一个零向量,因为在第一个时间步中,没有涉及任何源文档。

将coverage向量作为注意力机制的额外输入,将式(1)改为

其中 w c w_c wc是一个与 v v v长度相同的可学习参数向量。这确保了注意力机制的当前决策(选择下一个注意地点)被先前决策的提醒通知(汇总在 c t c_t ct中)。这将使注意力机制更容易避免重复注意相同的位置,从而避免产生重复的文本。附加定义一个coverage损失,以惩罚重复单词。

请注意,覆盖率损失是有界的,特别是 c o v e r a g e t ≤ σ i a i t = 1 coverage_t≤\sigma_i a^t_i = 1 coveragetσiait=1 等式(12)与机器翻译中使用的coverage损失不同。在MT中,我们假设应该有一个大致一对一的翻译率;因此,如果最终的coverage平均向量大于或小于1,则会受到惩罚。
我们的损失功能更灵活:因为总结不应该要求统一的coverage范围,所以我们只惩罚了每个注意分布之间的coverage和迄今为止防止重复注意的coverae范围。最后,通过超参数 λ λ λ对覆盖损失进行加权,将coverage损失添加到主损失函数中,得到一个新的复合损失函数

实验

在所有的实验中,我们的模型有256维的隐藏状态和128维的词嵌入。

ROUGE是唯一可以与Nallapati等人的工作进行比较的方法。然而,考虑到lead-3得分差距分别为(+1.1 ROUGE-1, +2.0 ROUGE-2, +1.1 ROUGE-L)分,其最佳模型得分比Nallapati等人(2016)多出(+4.07 ROUGE-1, +3.98 ROUGE-2, +3.73 ROUGE-L)分,可以估计,比之前唯一的抽象系统至少多出2个ROUGE点。

尽管覆盖训练阶段很短(约占总训练时间的1%),但重复问题几乎完全消除了,这可以从定性(图1)和定量(图4)上看到。然而,我们最好的模型并没有完全超过lead-3基线的ROUGE分数,也不是目前最好的提取模型(Nallapati et al., 2017)。

实验效果


蓝色的字体表示的是参考摘要,三个模型的生成摘要的结果差别挺大;
红色字体表明了不准确的摘要细节生成(UNK未登录词,无法解决OOV问题);
绿色的字体表明了模型生成了重复文本。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的比目鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值