文章目录
- 1 引言
- 2 本文模型
-
- 2.1 Seq2Seq 注意力模型
- 2.2 指针生成网络
- 2.3 覆盖机制(Coverage mechanism)
【Reference】
1. Get To The Point: Summarization with Pointer-Generator Networks
seq2seq模型可用于文本摘要(并非简单地选择、重排原始文本的段落),然后这些模型有两个缺点:不易关注真实细节,以及倾向于生成重复文本。
本文提出一种新颖的架构:使用两种方式增强标准的seq2seq注意力模型。第一,使用混合指针生成网络,利用指针从原文精确地复制单词,同时保留生成器产生新单词的能力。第二,使用覆盖机制跟踪哪些单词已经被摘取,避免生成重复文本。
1 引言
文本摘要任务旨在输出仅包含原文主要信息的压缩文本,大致具有两种方法:抽取式和摘要式。抽取式方法直接抽取段落原文,而摘要式方法可能生成一些原文中并非出现的单词或短语,类似于人类写的摘要。
抽取式方法相对容易,因为直接抽取原文大段文本,可保证语法和准确性。从另一个角度来说,模型的经验能力对于生成高质量摘要至关重要,如改写、总结,以及结合现实世界知识,仅摘要式框架具备这种可能性。
摘要式总结较为困难,先前模型大多采用抽取式,最近提出的seq2seq模型使得摘要式总结成为可能。尽管seq2seq模型具备很大潜力,但它们也暴露了一些不良行为,如无法准确复制真实细节、无法处理OOV问题,以及倾向于自我重复。
本文提出一种网络结构,在多句上下文总结中解决以上三个问题。最近的摘要式模型主要关注与标题生成(将一两句话缩减至单一标题),我们相信长文本摘要挑战与实用性并存,本文使用CNN/Daily Mail数据集,其包含新闻文章(平均39句)和多句摘要,结果显示,本文提出的模型高于SOTA模型2个ROUGE点。
本文的混合指针生成模型通过指针从原文中复制单词,文本生成准确性提高,并解决了OOV问题,同时保留生成原文中未出现的新单词的能力,该网络可视为摘要方法和抽取方法之间的平衡,类似于应用于短文本摘要的 CopyNet 和 Forced-Attention Sentence Compression 模型。我们提出一种新型的覆盖向量(源于NMT,可用于跟踪和控制原文的覆盖率),结果表明,覆盖机制对于消除重复性非常有效。
2 本文模型
2.1 Seq2Seq 注意力模型
本文基线模型类似于图2中的模型:
文中各token依次输入至单层BiLSTM,网络输出编码器隐状态序列hih_ihi?,在时间步ttt,解码器(单层单向LSTM)接收到先前单词的词向量(训练阶段为参考摘要的前一个单词,测试阶段为解码器上一时刻输出的单词),输出隐状态sts_tst?。
基于Bahdanau et al.(2015)注意力机制,计算注意力分布:
式中,v,Wh,Ws,battnv, W_h, W_s, b_\text{attn}v,Wh?,Ws?,battn?为可学习的参数。注意力分布可看作为源单词的概率分布,告诉解码器应关注哪些单词生成下一个单词。接着,使用注意力机制加权编码器隐状态,输出上下文向量ht?h_t^*ht??:
上下文向量可看作为固定维度的、当前时间步从源中读取的内容,将其与解码器隐状态sts_tst?拼接,输入至两层线性网络,产生词典概率分布PvocabP_\text{vocab}Pvocab?:
式中,V,V′,b,b′V, V', b, b'V,V′,b,b′为可学习参数。PvocabP_\text{vocab}Pvocab?为词典中所有单词的概率分布,告知我们预测单词www的最终概率分布:
训练阶段,时间步ttt的损失为目标单词wt?w_t^*wt??的负对数似然:
整个序列的全部损失为
2.2 指针生成网络
本文模型为基线模型seq2seq和指针网络的混合,其允许通过指针复制单词,以及从固定大小的词典中生成单词。在图三所示的指针生成网络中,注意力分布ata^tat和上下文向量ht?h_t^*ht??可以利用2.1章节所述公式计算。
此外,时间步利用上下文向量ht?h_t^*ht??,解码器隐状态sts_tst?,解码器输入xtx_txt?计算生成概率分布:
式中,向量wh?,ws,wxw_{h^*},w_s,w_xwh??,ws?,wx?和变量bptrb_\text{ptr}bptr?为可学习参数,σ\sigmaσ为sigmoid函数。pgenp_\text{gen}pgen?可看作为软开关,用于选择是利用PvocabP_\text{vocab}Pvocab?从词表中抽取单词,还是利用注意力分布ata_tat?从输入句抽取单词。
对于每一篇文档,将原文中所有出现的单词和词典结合为扩充词典,获得在扩展词典上的概率分布:
注意到,如果www不存在与词典中,则Pvocab(w)=0P_\text{vocab}(w)=0Pvocab?(w)=0;类似地,如果www不存在于原文中,则∑i:wi=wait=0\sum_{i:w_i=w}a_i^t=0∑i:wi?=w?ait?=0。产生OOV单词的能力是指针网络的主要优势之一,而我们的基线模型产生单词的数量局限于预设置的词典。损失函数如公式(6)和(7)所示,但我们修改为公式(9)所示的概率分布P(w)P(w)P(w)。
2.3 覆盖机制(Coverage mechanism)
重复是seq2seq模型的常见问题,在生成多句时尤其明显(如图1所示),我们采用覆盖机制解决这个问题。覆盖机制模型中,我们维持之前所有解码步的注意力分布之和作为覆盖向量ct\bm{c_t}ct?:
直观上,ct\bm{c_t}ct?为原文单词上的分布(未归一化),表示这些单词到目前为止从注意力机制中所获得的覆盖度。注意到,c0\bm{c^0}c0为零向量,因为初始时刻源文中没有任何单词被覆盖。
覆盖向量作为注意力机制的额外输入,将公式(1)改为
式中,wcw_cwc?是与vvv具有相同长度的可学习向量。覆盖机制使得注意力机制的当前决策受其先前决策(ctc_tct?之和)影响,因此应该更易避免注意力机制关注相同位置,从而避免生成重复文本。
我们发现,额外定义覆盖损失惩罚重复关注相同位置是必要的,覆盖损失
覆盖损失有界:covlosst≤∑iait=1\text{covloss}_t\leq\sum_ia_i^t=1covlosst?≤∑i?ait?=1,公式(12)中的覆盖损失有别于机器翻译中的覆盖损失。MT中,假定翻译率大致为1:1,如果覆盖向量大于或小于1,其将作为惩罚向量。本文损失函数比较灵活,因为摘要不需要一致覆盖率,本文仅惩罚注意力机制与到目前为止的覆盖向量之间的重叠部分,防止重复关注。
最终,使用超参数λ\lambdaλ加权覆盖损失至先前损失,产生新的合成损失: