BiSET: Bi-directional Selective Encoding with Template for Abstractive Summarization翻译

摘要

神经摘要模型的成功源于对源文章的信息进行编码。为了克服训练数据有限且具有噪声的问题,一个有希望的方向是通过在摘要过程中应用过滤器来更好地利用可用的训练数据。在本文中,我们提出了一种新的带有模板的双向选择性编码模型(BiSET),该模型利用从训练数据中发现的模板从每篇源文章中软选择关键信息,以指导其摘要过程。我们在标准摘要数据集上进行了广泛的实验,结果表明,配备了模板的BiSET模型可以通过新的技术极大地提高摘要性能。

1.介绍

生成式文本摘要旨在通过重写同时保留主要思想来缩短源文章或段落。由于重写长文档非常困难,因为该课题的大量研究都集中在段落级文章摘要上。其中,序列到序列模型已成为主流,并且一些模型已经达到了最好的性能。一般而言,这些模型在解码过程中唯一可用的信息只是来自编码器的原始文章的隐藏表示以及先前时刻生成的单词,而之前的单词也是基于文章的隐藏表示而生成的。由于自然语言文本本质上是复杂且冗长的,并且训练数据的大小不足以帮助模型将重要的文章信息与噪音区分开,因此序列到序列模型倾向于随着单词生成的累积而恶化,例如,它们会生成无关紧要且经常重复的单词。
  基于模板的摘要是一种有效的传统生成式摘要方法,其中领域专家手动创建了许多硬模板,然后从源文章中抽取关键片段并将其填充到模板中以形成最终摘要。这种方法的优点是可以在不需要任何训练数据的情况下确保简明扼要的摘要。但是,手动创建所有模板是不现实的,因为这项工作需要大量的领域知识,而且劳动强度大。幸运的是,一些特定的训练文章的摘要可以像硬模板一样为摘要提供类似的指导。因此,这些摘要在本文中称为“软模板”,或为简单起见而称为模板。
  尽管模板可以缓解自然语言数据的冗长和数据不足问题,但目前尚未充分利用模板的优势。例如,Cao et al. (2018a) 在摘要工作中在源文章之后简单地串联模板编码。为此,我们提出了一种具有模板的双向选择性编码(BiSET)模型,用于生成式摘要。我们的模型涉及具有两个门的新型双向选择性层,以从文章及其模板中相互选择关键信息,以协助摘要生成。由于获取手工模板的局限性,我们进一步提出了从训练语料库中自动检索高质量模板的多阶段过程。我们在广泛用于生成式摘要的公共数据集Gigaword数据集上进行了广泛的实验,结果似乎很有希望。仅使用通过我们的方法选择的模板作为最终摘要,我们的模型就已经可以实现优于某些基线模型的性能,从而证明了我们模板的效果。这也可能表明语料库中许多质量模板的可用性。其次,配备模板的摘要模型BiSET明显优于所有最新模型。为了评估双向选择层和两个门的重要性,我们分别进行了消融研究,将其丢弃,结果表明,尽管两个门都是必需的,但模板到文章(T2A)门往往比文章到模板(A2T)门更重要。人工评估进一步验证了我们的模型在生成内容丰富,简明易读的摘要中的有效性。
  这项工作的贡献包括:

  • 我们提出了一种新的双向选择机制,该机制具有两个门,可以从文章和模板中相互选择重要信息,以协助摘要生成。
  • 我们开发了一种快速重排方法,可以从训练语料库中自动选择高质量的模板。
  • 对基准数据集的经验评估表明,我们的模型已经达到了最新水平。
  • 这项工作的源代码已发布,以供将来研究使用:https://github.com/InitialBug/BiSET。

2.框架

我们的框架包括三个关键模块:检索,快速重排和BiSET。对于每篇源文章,Retrieve的目的都是从训练语料库中返回一些候选模板。然后,快速重新排名模块可从候选中快速识别出最佳模板。最后,BiSET从源文章和模板中相互选择重要信息,以生成用于摘要的增强文章表示形式。

2.1 检索

该模块从标准信息检索库开始,以检索一小部分候选对象,以进行细粒度过滤。为此,所有非字母字符(例如,日期)都将被删除,以消除它们对文档匹配的影响。检索过程开始于用原始文章查询训练语料库,以查找几篇(5至30条)相关文章,其摘要将被视为候选模板。

2.2 快速重排

在这里插入图片描述
  上面的检索过程基本上基于简单的词匹配,无法测量两篇文章之间的深层语义关系。因此,开发了快速重排模块,以根据候选模板与源文章的深层语义相关性,从候选模板中识别出最佳模板。我们将相关性最高的候选人作为模板。如图1所示,该模块由卷积编码器block,相似矩阵和池化层组成。
  (1)Convolution Encoder Block
  该块将输入文章及其候选模板映射为高级表示形式。流行的方法是使用循环神经网络(RNN)或一维卷积神经网络(1D-CNN),但没有一种适合我们的问题。这是因为源文章通常比模板长得多,并且RNN和CNN都可能在编码后导致语义不相关。取而代之的是,我们实现了一个新的卷积编码器模块,该模块包括一个词嵌入层,一维卷积和非线性函数以及残差连接。
  形式上,给定文章的单词嵌入 { e i } i = 1 E ∈ R d \{e_i\}^E_{i=1}∈\mathbb R^d { ei}i=1ERd,我们使用卷积核为 k ∈ R 2 d × k d \textbf k∈\mathbb R^{2d×kd} kR2d×kd且偏差为 b h ∈ R 2 d b_h∈\mathbb R^{2d} bhR2d的一维卷积,来提取n元语法特征:
h i = k [ e i − k / 2 , . . . , e i + k / 2 ] + b h (1) h_i=\textbf k[e_{i-k/2},...,e_{i+k/2}]+b_h\tag{1} hi=k[eik/2,...,ei+k/2]+bh(1)
其中 h i ∈ R 2 d h_i∈\mathbb R^{2d} hiR2d。我们在文章/模板的两边都填充零以保持固定的长度。之后,我们使用门控线性单元(GLU)作为我们的激活函数来控制要传递的信息的比例。GLU将 h i h_i hi尺寸的一半作为输入,并将输入尺寸减小为 d d d。设 h i = [ h i 1 ; h i 2 ] h_i=[h^1_i;h^2_i] hi=[hi1;hi2],其中 h i 1 , h i 2 ∈ R d h^1_i,h^2_i∈\mathbb R^d hi1,hi2Rd,我们有:
r i = G L U ( h i ) = G L U ( [ h i 1 ; h i 2 ] ) = h i 1 ⊗ σ ( h i 2 ) (2) r_i=GLU(h_i)=GLU([h^1_i;h^2_i])=h^1_i\otimes \sigma(h^2_i)\tag{2} ri=GLU(hi)=GLU([hi1;hi2])=hi1σ(hi2)(2)
其中 r i ∈ R d r_i∈\mathbb R^d riRd σ σ σ为sigmoid函数, ⊗ ⊗ 表示逐元素乘法。为了保留原始信息,我们在卷积层的输入到该块的输出之间添加了残差连接: z i = r i + e i z_i=r_i+e_i zi=ri+ei
  (2)Similarity Matrix
  上面的编码器模块为每个源文章/候选模板生成一个高级表示。然后,针对给定的文章表示形式 S ∈ R m × d \textbf S∈\mathbb R^{m×d} SRm×d和模板表示形式 T ∈ R n × d \textbf T∈\mathbb R^{n×d} TRn×d计算相似矩阵 S ∈ R m × n \mathcal S∈\mathbb R^{m×n} SRm×n
s i j = f ( S i , T j ) (3) s_{ij}=f(\textbf S_i,\textbf T_j)\tag{3} sij=f(Si,Tj)(3)
其中 f f f是相似性函数, f f f的常见选项包括:
f ( x , y ) = { x T y , d o t   p r o d u c t x T W y , b i l i n e a r   f u n c t i o n ∣ ∣ x − y ∣ ∣ , E u c l i d e a n   d i s t a n c e (4) f(x,y)=\begin{cases} x^Ty, & dot~product\\ x^TWy, & bilinear~function\\ ||x-y||, & Euclidean~distance \end{cases}\tag{4} f(x,y)=xTy,xTWy,xy,dot productbilinear functionEuclidean distance(4)
  以前的大多数工作都使用点积或双线性函数来实现相似性,但是我们发现欧式距离对于我们的任务表现更好。因此,我们将相似性函数定义为:
f ( x , y ) = e x p ( − ∣ ∣ x − y ∣ ∣ 2 ) (5) f(x,y)=exp(-||x-y||^2)\tag{5} f(x,y)=exp(xy2)(5)
  (3)Pooling Layer
  该层旨在过滤出矩阵 S \mathcal S S中不必要的信息。在相似矩阵上应用诸如最大池化和k-max池化之类的池化操作之前,我们注意到源文章中存在重复的单词,且我们只想计数一次。 因此,我们首先从 S S S确定一些显着权重:
q = m a x c o l u m n ( S ) (6) q=max_{column}(\mathcal S)\tag{6} q=maxcolumn(S)(6)
选择 k k k个最重要的权重, p ∈ R k p∈\mathbb R^k pRk。最后,我们应用两层前馈网络为源文章和候选模板输出相似性得分:
p = k − m a x ( q ) (7) p=k-max(q)\tag{7} p=kmax(q)(7)
a = R e L U ( W a p + b 1 ) (8) a=ReLU(\textbf W_ap+b_1)\tag{8} a=ReLU(Wap+b1)(8)
s = σ ( W s a + b 2 ) (9) s=\sigma(\textbf W_sa+b_2)\tag{9} s=σ(Wsa+b2)(9)

2.3 传统方法

在本节中,我们探索三种传统方法来利用模板进行摘要。它们共享相同的编码器和解码器层,但是拥有不同的交互层,以将源文章和模板组合在一起。编码器层使用标准的双向RNN(BiRNN)将源文章和模板分别编码为隐藏状态 h i s h^s_i his h j t h^t_j hjt
  (1)Concatenation
  此方法在文章表示形式 { h i s } i = 1 M \{h^s_i\}^M_{i=1} { his}i=1M之后直接串联模板的隐藏状态 { h i t } i = 1 N \{h^t_i\}^N_{i=1} { hit}i=1N,以形成新的文章表示形式 { z i s } i = 1 M + N \{z^s_i\}^{M+N}_{i=1} { zis}i=1M+N。这种方法类似于R3Sum,但使用了我们的快速重排和摘要生成模块。
  (2)Concatenation+Self-Attention
  这种方法在上述直接串联的基础上增加了一个具有4个头的多头自注意力层。
  (3)DCN Attention
  最初DCN Attention是为机器阅读理解而引入的,此处采用这种交互方法来创建基于模板的文章表示形式。首先,我们通过对每一个文章模版单词对计算 s i j = W 0 [ h i s ; h j t ; h i s ⊗ h j t ] s_{ij}=\textbf W_0[h^s_i;h^t_j;h^s_i⊗h^t_j] sij=W0[his;hjt;hishjt],来得到相似矩阵 S ∈ R m × n \mathcal S\in \mathbb R^{m\times n} SRm×n,其中“;”是串联操作。然后,我们通过softmax对 S \mathcal S S的每一行和列进行归一化,从而产生两个新矩阵 S ‾ \overline{\mathcal S} S S ‾ ‾ \overline{\overline {\mathcal S}} S。之后,将DCN Attention应用于计算双注意力: A = S ‾ ⋅ h t , B = S ‾ ⋅ S ‾ ‾ T ⋅ h s \textbf A=\overline{\mathcal S}·h^t, \textbf B = \overline{\mathcal S}·\overline{\overline {\mathcal S}}^T·h^s A=Sht,B=SSThs,其中 A \textbf A A表示从文章到模板的注意力, B \textbf B B表示从模板到文章的注意力。 最后,我们获得基于模板的文章表示形式 { z i s } i = 1 M \{z^s_i\}^M_{i=1} { zis}i=1M
z i s = [ h i s ; A i ; h i s ⊗ A i ; h i s ⊗ B i ] (10) z^s_i=[h^s_i;\textbf A_i;h^s_i\otimes \textbf A_i;h^s_i\otimes \textbf B_i]\tag{10} zis=[his;Ai;hisAi;hisBi](10)

2.4 BiSET

在这里插入图片描述
  受机器阅读理解和选择机制研究的启发,我们提出了一种新的使用模板的双向选择编码(BiSET)模型用于生成式句子摘要。BiSET背后的核心思想是使用模板以协助文章表示和摘要生成。如图2所示,BiSET包含两个选择性门:模板到文章(T2A)门和文章到模板(A2T)门。T2A的作用是使用模板来过滤源文章的表示形式:
g i = σ ( W s h h i s + W t h h t + b s ) (11) g_i=\sigma(\textbf W_{sh}h^s_i+\textbf W_{th}h^t+b_s)\tag{11} gi=σ(Wshhis+Wthht+bs)(11)
h i g = h i s ⊗ g i (12) h^g_i=h^s_i\otimes g_i\tag{12} hig=hisgi(12)
其中 h t h^t ht是模板编码器的最后一个前向隐藏状态 h → n t \overrightarrow h^t_n h nt和第一个后向隐藏状态 h ← 1 t \overleftarrow h^t_1 h 1t的拼接。
  另一方面,A2T的目的是控制最终文章表示中 h g h^g hg的比例。我们假设原始文章是可信的,并使用其表示形式 h s h^s hs h t h^t ht来计算置信度,其中 h s h^s hs的获取方式与 h t h^t ht类似。置信度 d d d由以下公式计算:
d = σ ( ( h s ) T W d h t + b d ) (13) d=\sigma((h^s)^T\textbf W_dh^t+b_d)\tag{13} d=σ((hs)TWdht+bd)(13)
文章的最终表示形式被计算为 h i s h^s_i his h i g h^g_i hig的加权总和:
z i s = d h i g + ( 1 − d ) h i s (14) z^s_i=dh^g_i+(1-d)h^s_i\tag{14} zis=dhig+(1d)his(14)
这提供了灵活的模板合并方式,并有助于在给出低质量模板时抵制错误。
  (1)解码器层
  该层包括一个普通的RNN解码器。在每个时刻 t t t,解码器读取单词 w t − 1 w_{t-1} wt1和上一时刻中生成的隐藏状态 h t − 1 c h^c_{t-1} ht1c,并为当前时刻提供新的隐藏状态:
h t c = R N N ( w t − 1 , h t − 1 c ) (15) h^c_t=RNN(w_{t-1},h^c_{t-1})\tag{15} htc=RNN(wt1,ht1c)(15)
其中,使用源文章表示形式 h s h^s hs作为初始化隐藏状态。然后,我们计算 h t c h^c_t htc和文章最终表示形式 z s z^s zs之间的注意力,以获得上下文向量c_t:
ε t , i = ( z i s ) W c h t c (16) \varepsilon_{t,i}=(z^s_i)\textbf W_ch^c_t\tag{16} εt,i=(zis)Wchtc(16)
α t , i = e x p ( ε t , i ) ∑ i = 1 M e x p ( ε t , i ) (17) \alpha_{t,i}=\frac{exp(\varepsilon_{t,i})}{\sum^M_{i=1}exp(\varepsilon_{t,i})}\tag{17} αt,i=i=1Mexp(εt,i)exp(εt,i)(17)
c t = ∑ i = 1 M α t , i z i s (18) c_t=\sum^M_{i=1}\alpha_{t,i}z^s_i\tag{18} ct=i=1Mαt,izis(18)
之后,使用一个简单的全连接层将隐藏状态 h t c h^c_t htc和上下文向量 c t c_t ct组合成一个新的隐藏状态 h t a h^a_t hta
h t a = t a n h ( W h a [ c t ; h t c ] ) (19) h^a_t=tanh(\textbf W_{ha}[c_t;h^c_t])\tag{19} hta=tanh(Wha[ct;htc])(19)
它将映射到词汇表大小的新表示形式,并通过softmax层进行馈送以输出目标单词分布:
p ( w t ∣ w 1 , . . . , w t − 1 ) = s o f t m a x ( W p h t a ) (20) p(w_t|w_1,...,w_{t-1})=softmax(\textbf W_ph^a_t)\tag{20} p(wtw1,...,wt1)=softmax(Wphta)(20)

2.5 训练

检索模块涉及采用传统索引和检索技术的无监督过程。对于快速重排,由于没有可用的训练数据,我们使用ROUGE-1来评估候选模板相对于当前源文章的摘要的重要性。 因此,损失函数定义为:
L r ( θ ) = − 1 N ∑ i = 1 N [ s ∗ l o g   s + ( 1 − s ∗ ) l o g ( 1 − s ) ] (21) L_r(\theta)=-\frac{1}{N}\sum^N_{i=1}[s^*log~s+(1-s^*)log(1-s)]\tag{21} Lr(θ)=N1i=1N[slog s+(1s)log(1s)](21)
其中 s s s是由公式9预测的分数, N N N是训练集大小 D D D和每篇文章的检索模板数的乘积。
  对于BiSET模块,损失函数被选择为生成的摘要 w w w和真实摘要 w ∗ w^∗ w之间的负对数概率:
L w ( θ ) = − 1 D ∑ i = 1 D ∑ j = 1 L l o g   p ( w j ∗ ( i ) ∣ w j − 1 ( i ) , x ( i ) , y ( i ) ) (22) L_w(\theta)=-\frac{1}{D}\sum^D_{i=1}\sum^L_{j=1}log~p(w^{*(i)}_j|w^{(i)}_{j-1},x^{(i)},y^{(i)})\tag{22} Lw(θ)=D1i=1Dj=1Llog p(wj(i)wj1(i),x(i),y(i))(22)
其中 L L L是真实摘要的长度, θ θ θ包含所有可训练变量, x x x y y y分别表示源文章和模板。

猜你喜欢

转载自blog.csdn.net/qq_28385535/article/details/114580216