[论文速览]A Neural Attention Model for Sentence Summarization

A Neural Attention Model for Sentence Summarization 一种用于句子摘要的神经注意模型,2015,EMNLP,https://www.aclweb.org/anthology/D15-1044/

Abstract

基于文本抽取的摘要本身就有局限性,但是生成式的抽象方法已经被证明具有挑战性。本文提出了一种基于句子驱动的数据摘要方法。我们的方法利用一个基于局部注意的模型,根据输入句子生成摘要的每个单词。虽然该模型结构简单,但是可以很容易地进行端到端的训练,并且可以扩展到大量的训练数据。该模型显示,与几个强基线相比,DUC-2004共享任务的性能显著提高。

Introduction

摘要是自然语言理解的一个重要挑战。其目的是产生一个输入文本的浓缩表示,捕获原文的核心意思。大多数成功的摘要系统都使用抽取的方法,这些方法将文本的各个部分突出并缝合在一起,从而生成一个精简的版本。相反,抽象摘要试图产生一个自下而上的摘要,其中的某些方面可能不会作为原始摘要的一部分出现。

我们的重点是句子级摘要。虽然这项任务的许多工作都着眼于基于删除的句子压缩技术(Knight和Marcu(2002)等),但对人类摘要生成器的研究表明,在压缩的同时应用其他各种操作是很常见的,例如释义、泛化和重排序(Jing,2002)。过去的工作已经使用语言启发的约束(Dorr et al.,2003;Zajic et al.,2004)或输入文本的句法转换(Cohn and Lapata,2008;Woodsend et al.,2010)对这种抽象摘要问题进行了建模。

相反,我们探索一种完全数据驱动的方法来生成抽象摘要。受最近神经机器翻译成功的启发,我们将神经语言模型与上下文输入编码器相结合。我们的编码器是模仿Bahdanau等人基于注意力的编码器。(2014)因为它学习了输入文本的潜在软对齐,以帮助提供摘要信息(如图1所示)。关键的是,在句子摘要任务中,编码器和生成模型被联合训练。我们的模型还包含了一个波束搜索解码器以及对提取元素进行建模的附加特性。

这种摘要方法,我们称之为基于注意的摘要(ABS),它比可比较的抽象摘要方法包含更少的语言结构,但是可以很容易地扩展到对大量数据的训练。由于我们的系统对生成摘要的词汇没有任何假设,因此它可以直接在任何文档摘要对上进行训练。这使我们能够在Gigaword(Graff et al.,2003)中包含约400万篇文章的文章对语料库上训练标题生成模型。图2中给出了生成的一个例子,我们将在第7节讨论这个任务的细节。

为了检验这种方法的有效性,我们对多个抽象和提取基线进行了广泛的比较,包括基于传统语法的系统、整数线性规划约束系统、信息检索风格的方法以及基于统计短语的机器翻译。我们的方法优于在相同的大规模数据集上训练的机器翻译系统,并且比DUC-2004竞赛中得分最高的系统有了很大的改进。
[论文速览]A Neural Attention Model for Sentence Summarization

图1:基于注意力的摘要(ABS)系统的示例输出。热图表示输入(右)和生成的摘要(顶部)之间的软对齐。列表示在生成每个单词后在输入上的分布。
[论文速览]A Neural Attention Model for Sentence Summarization
图2:示例输入语句和生成的摘要。生成yi+1(terrorism)y_{i+1} (terrorism)的分数是基于ycfor...againsty_c(for ... against)代表。以及输入x1...x18x_1 ... x_{18}。请注意,生成的摘要是抽象的,这使得概括(russian defense minister to russia)和转述(for combating to against)成为可能,除了压缩(删除the creation of),见Jing(2002)查看这些编辑操作的调查。

Model

虽然抽象摘要提出了一个更困难的生成挑战,但缺乏硬约束会使系统在生成过程中有更大的*度,并允许它适应更广泛的训练数据。在这项工作中,我们重点关注因子评分函数ss,它考虑了前面单词的固定窗口:
s(x,y)i=0N1g(yi+1,x,yc)s(\mathbf{x}, \mathbf{y}) \approx \sum_{i=0}^{N-1} g\left(\mathbf{y}_{i+1}, \mathbf{x}, \mathbf{y}_{c}\right)

我们定义ycy[iC+1,,i]\mathbf{y}_{\mathrm{c}} \triangleq \mathbf{y}_{[i-C+1, \ldots, i]}为窗口大小CC
考虑给定输入的摘要的条件对数概率
s(x,y)=logp(yx;θ)s(\mathbf{x}, \mathbf{y})=\log p(\mathbf{y} \mid \mathbf{x} ; \theta) 我们可以写为
logp(yx;θ)i=0N1logp(yi+1x,yc;θ)\log p(\mathbf{y} \mid \mathbf{x} ; \theta) \approx \sum_{i=0}^{N-1} \log p\left(\mathbf{y}_{i+1} \mid \mathbf{x}, \mathbf{y}_{\mathrm{c}} ; \theta\right)

在这里,我们对上下文的长度做一个Markov假设,假设i<1i<1yiy_i是一个特殊的开始符号<S><S>

考虑到这个评分函数,我们的主要焦点将是模拟局部条件分布:p(yi+1x,yc;θ)p\left(\mathbf{y}_{i+1} \mid \mathbf{x}, \mathbf{y}_{c} ; \theta\right)。这是一种基于输入句子x的条件语言模型。过去关于摘要和压缩的研究使用了噪声信道方法来分割和独立估计语言模型和条件摘要模型
argmaxylogp(yx)=argmaxylogp(y)p(xy)\underset{\mathbf{y}}{\arg \max } \log p(\mathbf{y} \mid \mathbf{x})=\underset{\mathbf{y}}{\arg \max } \log p(\mathbf{y}) p(\mathbf{x} \mid \mathbf{y})

其中 p(y)p(y) and p(xy)p(x \mid y)单独估算。
在这里,我们遵循神经机器翻译的工作,并直接将原始分布参数化为一个神经网络。该网络包含一个神经概率语言模型和一个作为条件摘要模型的编码器。

Neural Language Model
我们参数化的核心是一个语言模型,用于估计下一个单词的上下文概率。该语言模型是从标准的前馈神经网络语言模型(NNLM)改编而来的,特别是Bengio等人描述的NNLM类。(2003年)。完整模型是:

p(yi+1yc,x;θ)exp(Vh+Wenc(x,yc))y~c=[EyiC+1,,Eyi]h=tanh(Uy~c)\begin{aligned} p\left(\mathbf{y}_{i+1} \mid \mathbf{y}_{\mathrm{c}}, \mathbf{x} ; \theta\right) & \propto \exp \left(\mathbf{V h}+\mathbf{W} \operatorname{enc}\left(\mathbf{x}, \mathbf{y}_{\mathrm{c}}\right)\right) \\ \tilde{\mathbf{y}}_{\mathrm{c}} &=\left[\mathbf{E} \mathbf{y}_{i-C+1}, \ldots, \mathbf{E}_{\mathbf{y} i}\right] \\ \mathbf{h} &=\tanh \left(\mathbf{U} \tilde{\mathbf{y}}_{\mathrm{c}}\right) \end{aligned}
The parameters are θ=(E,U,V,W)\theta=(\mathbf{E}, \mathbf{U}, \mathbf{V}, \mathbf{W}) where ERD×V\mathbf{E} \in \mathbb{R}^{D \times V} is a word embedding matrix, U\mathbf{U} \in
R(CD)×H,VRV×H,WRV×H\mathbb{R}^{(C D) \times H}, \mathbf{V} \in \mathbb{R}^{V \times H}, \mathbf{W} \in \mathbb{R}^{V \times H} are weight
matrices, D是单词嵌入的大小,h是大小为h的隐藏层。黑盒函数enc是一个上下文编码器术语,它返回一个表示输入和当前上下文的h大小的向量;我们考虑几个可能的变体,随后将进行描述。图3a给出了解码器架构的示意图。
[论文速览]A Neural Attention Model for Sentence Summarization

图3:(a)带有额外编码器元件的NNLM解码器的网络图。(b) 基于注意力的编码器enc3enc_3的网络图。

Encoders
请注意,如果没有编码器术语,这表示一个标准的语言模型。通过将这两个元素合并到enc中并共同训练,我们可以将输入文本合并到生成中。接下来我们将讨论编码器的几个可能的实例。

Bag-of-Words Encoder
我们最基本的模型只是简单地使用嵌入到H大小的输入句子的单词包,而忽略了原始顺序的属性或相邻单词之间的关系。我们将此模型写成:

enc1(x,yc)=px~p=[1/M,,1/M]x~=[Fx1,,FxM]\begin{aligned} \operatorname{enc}_{1}\left(\mathbf{x}, \mathbf{y}_{c}\right) &=\mathbf{p}^{\top} \tilde{\mathbf{x}} \\ \mathbf{p} &=[1 / M, \ldots, 1 / M] \\ \tilde{\mathbf{x}} &=\left[\mathbf{F} \mathbf{x}_{1}, \ldots, \mathbf{F} \mathbf{x}_{M}\right] \end{aligned}

Where the input-side embedding matrix F\mathbf{F} \in RH×V\mathbb{R}^{H \times V} is the only new parameter of the encoder and p[0,1]M\mathbf{p} \in[0,1]^{M} is a uniform distribution over the input words.

对于摘要,该模型可以捕捉单词的相对重要性,以区分内容词和停止词或修饰词。潜在地,该模型还可以学习组合单词;尽管它在表示连续短语方面存在固有的局限性。

Convolutional Encoder
为了解决单词包的一些建模问题,我们还考虑在输入语句中使用深卷积编码器。该架构改进了单词包模型,允许单词之间的本地交互,同时在编码输入时不需要上下文ycy_c
我们使用标准的时延神经网络(TDNN)架构,在时间卷积层和最大池层之间交替。

j,enc2(x,yc)j=maxix~i,jLi,l{1,L},x~jl=tanh(max{x2i1l,x2il})i,l{1,L},xil=Qlx~[iQ,,i+Q]l1x~0=[Fx1,,FxM]\begin{aligned} \forall j, \operatorname{enc}_{2}\left(\mathbf{x}, \mathbf{y}_{c}\right)_{j} &=\max _{i} \tilde{\mathbf{x}}_{i, j}^{L} \\ \forall i, l \in\{1, \ldots L\}, \tilde{\mathbf{x}}_{j}^{l} &=\tanh \left(\max \left\{\overline{\mathbf{x}}_{2 i-1}^{l}, \overline{\mathbf{x}}_{2 i}^{l}\right\}\right) \\ \forall i, l \in\{1, \ldots L\}, \overline{\mathbf{x}}_{i}^{l} &=\mathbf{Q}^{l} \tilde{\mathbf{x}}_{[i-Q, \ldots, i+Q]}^{l-1} \\ \tilde{\mathbf{x}}^{0} &=\left[\mathbf{F} \mathbf{x}_{1}, \ldots, \mathbf{F} \mathbf{x}_{M}\right] \end{aligned}

Where F\mathbf{F} is a word embedding matrix and QL×H×2Q+1\mathbf{Q}^{L \times H \times 2 Q+1}由每个层的一组过滤器组成{1,L}.\{1, \ldots L\} . 第三个式子是一个时间(1D)卷积层,第二个式子由2个元素的时间最大池层和点态非线性组成,最终输出公式一是随时间变化的最大值。在每一层 x~\tilde{x}xˉ\bar{x}大小的一半.为了简单起见,我们假设卷积在边界处填充,并且MM大于2L2^{L},因此维度是定义良好的。

Attention-Based Encoder
虽然卷积编码器的容量比bag-of-words更丰富,但它仍然需要为整个输入句子生成一个单一的表示。机器翻译中的一个类似问题启发了Bahdanau等人。(2014)相反,利用基于注意力的上下文编码器来构建基于生成上下文的表示。这里我们注意到,如果我们利用这个上下文,我们实际上可以使用一个相当简单的模型,类似于bag-of-words:

enc3(x,yc)=pxpexp(x~Py~c)x~=[Fx1,,FxM]y~c=[GyiC+1,,Gyi]ixi=q=iQx~i/Q\begin{aligned} \operatorname{enc}_{3}\left(\mathbf{x}, \mathbf{y}_{c}\right) &=\mathbf{p}^{\top} \overline{\mathbf{x}} \\ \mathbf{p} & \propto \exp \left(\tilde{\mathbf{x}} \mathbf{P} \tilde{\mathbf{y}}_{\mathrm{c}}^{\prime}\right) \\ \tilde{\mathbf{x}} &=\left[\mathbf{F} \mathbf{x}_{1}, \ldots, \mathbf{F} \mathbf{x}_{M}\right] \\ \tilde{\mathbf{y}}_{\mathrm{c}}^{\prime} &=\left[\mathbf{G} \mathbf{y}_{i-C+1}, \ldots, \mathbf{G} \mathbf{y}_{i}\right] \\ \forall i \quad \overline{\mathbf{x}}_{i} &=\sum_{q=i-Q} \tilde{\mathbf{x}}_{i} / Q \end{aligned}
Where GRD×V\mathbf{G} \in \mathbb{R}^{D \times V} is an embedding of the context, PRH×(CD)\mathbf{P} \in \mathbb{R}^{H \times(C D)} is a new weight matrix parameter mapping between the context embedding and input embedding, and QQ is a smoothing window. The full model is shown in Figure 3 b.

非正式地说,我们可以把这个模型看作是简单地用输入和摘要之间学习的软对齐P来代替单词袋中的均匀分布。图1显示了在生成摘要时此分发p的示例。然后,在构造表示时,使用软对齐来加权输入x\overline{\mathbf{x}} 的平滑版本。例如,如果当前上下文与位置ii一致,那么单词xiQ,...,xi+Qx_{i−Q},...,x_{i+Q}。由编码器高度加权。与NNLM一起,该模型可以看作是基于注意力的神经机器翻译模型的精简版。

Training
由于缺少生成约束,可以在任意输入输出对上训练模型。一旦我们定义了局部条件模型, p(yi+1x,yc;θ),p\left(\mathbf{y}_{i+1} \mid \mathbf{x}, \mathbf{y}_{c} ; \theta\right), 我们可以估计参数以最小化一组摘要的负对数似然.将此训练集定义为由JJ个输入摘要对组成,(x(1),y(1)),,(x(J),y(J)).\left(\mathbf{x}^{(1)}, \mathbf{y}^{(1)}\right), \ldots,\left(\mathbf{x}^{(J)}, \mathbf{y}^{(J)}\right) .

NLL(θ)=j=1Jlogp(y(j)x(j);θ)=j=1Ji=1N1logp(yi+1(j)x(j),yc;θ)\begin{aligned} \operatorname{NLL}(\theta) &=-\sum_{j=1}^{J} \log p\left(\mathbf{y}^{(j)} \mid \mathbf{x}^{(j)} ; \theta\right) \\ &=-\sum_{j=1}^{J} \sum_{i=1}^{N-1} \log p\left(\mathbf{y}_{i+1}^{(j)} \mid \mathbf{x}^{(j)}, \mathbf{y}_{c} ; \theta\right) \end{aligned}
我们利用小批量随机梯度下降法最小化NLL.

Generating Summaries
现在我们回到生成摘要的问题。我们的目标是找到

y=argmaxyYi=0N1g(yi+1,x,yc)\mathbf{y}^{*}=\underset{\mathbf{y} \in \mathcal{Y}}{\arg \max } \sum_{i=0}^{N-1} g\left(\mathbf{y}_{i+1}, \mathbf{x}, \mathbf{y}_{\mathrm{c}}\right)

与基于短语的机器翻译不同,推理是NP难的,实际上在理论上计算y*。由于没有明确的硬对齐约束,维特比译码可以应用,并且需要ONVCO(NV^C)时间来找到精确解。在实践中,虽然V足够大,使之难以实现。

另一种方法是使用严格贪婪或确定性解码器来近似arg max。虽然这种形式的解码器可以产生非常差的近似值,但对于神经机器翻译模型,它们已经证明是相对有效和快速的(Sutskever等人,2014)。
精确解码和贪婪解码之间的折衷方案是使用波束搜索解码器(算法1),该解码器保持完整的词汇V,同时在摘要的每个位置限制为K个潜在假设。波束搜索算法如下所示:

[论文速览]A Neural Attention Model for Sentence Summarization
与Viterbi一样,这种波束搜索算法比基于短语的机器翻译的波束搜索简单得多。因为没有明确的限制,即一旦不需要维护一个位集,每个源单词就可以被精确地使用,我们可以简单地从左向右移动生成单词。波束搜索算法需要OKNVO(KNV)时间。
但是从计算的角度来看,每一轮波束搜索都是由计算每一个K假设的pyixycp(y_i | x,y_c)决定的。这些可以计算为一个小批量,这在实践中大大降低了系数K。

Extension: Extractive Tuning

虽然我们将看到基于注意力的模型在生成摘要方面是有效的,但它确实遗漏了人类生成的参考文献中看到的一个重要方面。特别是抽象模型在必要时不具备寻找提取词匹配的能力,例如从输入中转移看不见的专有名词短语。在神经翻译模型中也发现了类似的问题,特别是在翻译稀有词方面(Luong等人,2014)。
为了解决这个问题,我们尝试调整一组非常小的附加特性,以权衡系统的抽象/提取倾向。我们通过修改评分函数来使用对数线性模型直接估计摘要的概率,这是机器翻译的标准:
p(yx;θ,α)exp(αi=0N1f(yi+1,x,yc))p(\mathbf{y} \mid \mathbf{x} ; \theta, \alpha) \propto \exp \left(\alpha^{\top} \sum_{i=0}^{N-1} f\left(\mathbf{y}_{i+1}, \mathbf{x}, \mathbf{y}_{c}\right)\right)
Where αR5\alpha \in \mathbb{R}^{5} is a weight vector and ff is a feature function. 在这个分布下找到最佳摘要对应于最大化因子得分函数s
s(y,x)=i=0N1αf(yi+1,x,yc)s(\mathbf{y}, \mathbf{x})=\sum_{i=0}^{N-1} \alpha^{\top} f\left(\mathbf{y}_{i+1}, \mathbf{x}, \mathbf{y}_{c}\right)

函数f的定义是将局部条件概率与一些附加指标特征相结合:
f(yi+1,x,yc)=[logp(yi+1x,yc;θ)1{j.yi+1=xj}1{j.yi+1k=xjkk{0,1}}1{j.yi+1k=xjkk{0,1,2}}1{k>j.yi=xk,yi+1=xj}]\begin{array}{l} f\left(\mathbf{y}_{i+1}, \mathbf{x}, \mathbf{y}_{\mathrm{c}}\right)=\left[\log p\left(\mathbf{y}_{i+1} \mid \mathbf{x}, \mathbf{y}_{\mathrm{c}} ; \theta\right)\right. \\ \mathbb{1}\left\{\exists j . \mathbf{y}_{i+1}=\mathbf{x}_{j}\right\} \\ \mathbb{1}\left\{\exists j . \mathbf{y}_{i+1-k}=\mathbf{x}_{j-k} \forall k \in\{0,1\}\right\} \\ \mathbb{1}\left\{\exists j . \mathbf{y}_{i+1-k}=\mathbf{x}_{j-k} \forall k \in\{0,1,2\}\right\} \\ \left.\mathbb{1}\left\{\exists k>j . \mathbf{y}_{i}=\mathbf{x}_{k}, \mathbf{y}_{i+1}=\mathbf{x}_{j}\right\}\right] \end{array}

这些特征对应于一元、二元和三元符号与输入的匹配以及输入词的重新排序。注意设置α=1,0,,0\alpha=\langle 1,0, \ldots, 0\rangle给出了一个与标准ABS相同的模型。

在训练主神经网络模型后,我们确定θ并调整α参数。我们遵循统计机器翻译设置,并使用最小错误率训练(MERT)来调整调整数据的摘要度量(Och,2003)。此调整步骤也与用于基于短语的机器翻译基线的步骤相同。

Experimental

数据集
标准句子摘要评估集与DUC-2003和DUC2004共享任务相关性(Over等人,2007)。这项任务的数据由来自纽约时报和美联社通讯社的500篇新闻文章组成,每篇文章都有4个不同的人工生成的参考摘要(实际上不是标题),上限为75字节。该数据集仅用于评估,尽管同样大小的DUC-2003数据集可用于该任务。我们的期望是在一篇完整的文章的基础上,总结大约14个单词(尽管我们只使用第一句话)。可根据要求提供完整的数据http://duc.nist.gov/data.html 。
对于这个共享任务,系统被输入并使用重新分配方向的ROUGE度量的几个变体进行评估(Lin,2004)。为了使仅召回的评价对长度无偏,所有系统的输出在75个字符后被切断,对于较短的字符不给予任何奖励总结。不像BLEU插值各种n-gram匹配,有不同匹配长度的ROUGE。DUC评估使用ROUGE-1(unigrams)、ROUGE-2(bigrams)和ROUGE-L(最长公共子串),所有这些我们都报告了。

除了标准的DUC-2014评估外,我们还报告了使用Gigaword的随机heldout子集生成单参考标题的评估。这个评估更接近模型的训练任务,它允许我们使用一个更大的评估集,我们将包括在我们的代码版本中。对于这个评估,我们调整系统以生成平均标题长度的输出。

对于这两个任务的训练数据,我们使用带注释的Gigaword数据集(Graff et al.,2003;Napoles et al.,2012),该数据集由标准的Gigaword组成,使用斯坦福CoreNLP工具进行预处理(Manning et al.,2014)。我们的模型只使用注释进行标记化和句子分离,尽管一些基线也使用解析和标记。Gigaword包含了过去20年来来自国内外各种新闻服务的约950万篇新闻文章。

对于我们的训练集,我们将每篇文章的标题与其第一句话配对,以创建一个input-summary对。虽然理论上该模型可以在任何一对上进行训练,但Gigaword包含许多虚假的标题-文章对。因此,我们基于以下启发式过滤器对训练进行剪枝:(1)是否存在共同的不间断词?(2) 标题是否包含署名或其他无关的编辑标记?(3) 标题有问号还是冒号?应用这些过滤器后,训练集大约由J=400万个标题文章对组成。我们应用了一个最小的预处理步骤,使用PTB标记化,小写,用#替换所有数字字符,并用UNK替换出现次数少于5次的单词类型。我们还从DUC评估的时间段中删除所有文章。

完整的输入训练词汇包括1.19亿个单词标记和11万个独特的单词类型,平均句子大小为31.3个单词。
标题词汇包括3100万个标记和69K个单词类型,平均标题长度为8.3个单词(请注意,这比DUC摘要要短得多)。平均来说,在标题和输入之间有4.6个重叠的单词类型;尽管在输入的前75个字符中只有2.6个。

[论文速览]A Neural Attention Model for Sentence Summarization
表1:关于不同ROUGE度量的主要摘要任务的实验结果。我们报告摘要中也出现在Gigaword输入中的令牌百分比作为Ext%。

结论
基于神经机器翻译的最新进展,我们提出了一个基于神经注意的抽象摘要模型。我们将此概率模型与生成算法相结合,生成精确的抽象摘要。下一步,我们希望以数据驱动的方式进一步改进摘要的语法性,并扩展该系统以生成段落级摘要。这两个问题都对生成和一致性提出了额外的挑战。