论文泛读笔记《Neural Latent Extractive Document Summarization》

文章目录

  • 0 摘要
  • 1 介绍
  • 2 模型
    • 2.1 神经网络抽取式摘要模型
    • 2.2 句子压缩
    • 2.3 使用隐变量做抽取式摘要
  • 3 实验结果
  • 4 个人阅读总结

0 摘要

这应该是第一个提出把句子作为隐变量的抽取式摘要模型

1 介绍

过去的抽取式摘要技术多是把这个看作句子序列标注二分类问题或者句子排序问题。传统方法主要有用人工特征做二分类器的方法,隐马尔可夫模型法,基于图的方法,基于ILP(线性整数规划)的方法。
后来2016-2017年基本上都是在LSTM网络的基础上做序列分类,有时加上一个解码器来进行输出摘要。2018年开始有应用强化学习的方法。
这篇论文的思路截然不同,把句子对应的label视为句子的隐变量。不是最大化每个句子到训练数据(gold label)的可能性,而是最大化生成摘要是这个人工摘要整体的可能性。
该论文并没有在CNN/Daily Mail刷到stoa,但是这篇论文的思路是前所未有的。

2 模型

先介绍隐变量模型的基础: 一个神经网络抽取式摘要模型,然后介绍一个句子压缩模型,这个模型最终会在隐变量模型中体现出来

2.1 神经网络抽取式摘要模型

论文泛读笔记《Neural Latent Extractive Document Summarization》_第1张图片

此模型由3部分组成:
1 句子编码器(将句子编码成一个向量)
2 文档编码器(将聚集的句子表示组成到一起作为整个文档的表示)
3 文档解码器(输出摘要label(label序列,每个label对应一个句子是否应该被保留在摘要中))

句子编码器首先将句子转化为双向LSTM网络中的隐状态向量
整个模型和SummaRunner巨雷同(因为是前人基础上做的一个baseline,反正都是双层双向LSTM网络最后加个softmax)

2.2 句子压缩

标准的基于注意力机制的seq2seq架构,
这个句子压缩模型使用的数据集和抽取式摘要模型使用的数据集一样。
作者假设每个在摘要中出现的句子,都有一个在原文档中对应的"原句"与它最为相似。作者使用ROUGE度量来衡量句子间的相似度。此模型输出从原文档的"原句"到摘要句子的条件概率

2.3 使用隐变量做抽取式摘要

2.1中的抽取式摘要模型,其训练数据要求提供每个句子对应的label,这个是非常主观的。作者将句子当作一个二值隐变量来看待,使用带隐变量的句子来推测gold摘要。
作者使用2.1中的模型来产生隐变量的概率分布:
z i ∼ p ( z i ∣ z 1 : i − 1 , h i − 1 D ) z_i \sim p(z_i | z_{1:i-1}, \bold{h}_{i-1}^D) zip(ziz1:i1,hi1D)
z i z_i zi代表第 i i i个句子的隐变量, h i − 1 D \bold{h}_{i-1}^D hi1D代表文档中的前 i − 1 i-1 i1句话的表示(这是在双向LSTM网络中的中间隐状态向量),这个公式的意思是:根据前面 i − 1 i-1 i1个句子的评估结果,结合模型句子层的中间隐状态,做出判断: 当前句子是否应该纳入最后的摘要中。
作者用 C = { S i ∣ Z i = 1 } C = \{S_i | Z_i = 1\} C={SiZi=1}来代表抽取出的句子集合,也用 C = { C 1 , ⋯   , C ∣ C ∣ } C = \{C_1, \cdots, C_{|C|}\} C={C1,,CC}表示 ,然后评估从 C C C到人类生成的摘要 H H H的可能性有多大。
通过给定的 C i C_i Ci,以及2.2中的压缩模型,可以计算出一个归一化后的概率:
(4) s k l = exp ⁡ ( 1 ∣ H l ∣ log ⁡ p s 2 s ( H l ∣ C k ) ) s_{kl} = \exp(\frac{1}{|H_l|} \log p_{s2s}(H_l | C_k)) \tag{4} skl=exp(Hl1logps2s(HlCk))(4)
作者做了个假设,对每一条原文档中的句子,只对应一条摘要中的句子,举例: 摘要句子为 H l H_l Hl,则对应于文档中的句子 s k l s_{kl} skl。用以下的公式,可以说明用原文档中的句子取代摘要中这条句子的概率:
(6) R r ( C , H ) = 1 ∣ H ∣ ∑ l = 1 ∣ H ∣ max ⁡ k = 1 ∣ C ∣ s k l R_r(C, H) = \frac{1}{|H|} \sum_{l=1}^{|H|} \max_{k=1}^{|C|}s_{kl} \tag{6} Rr(C,H)=H1l=1Hk=1maxCskl(6)
这可以视为摘要对应于文档的召回率(recall),准确率用 R p ( C , H ) R_p(C,H) Rp(C,H)表示
则最终的 R ( C , H ) R(C,H) R(C,H)计算就非常简单了:
(7) R ( C , H ) = α R p ( C , H ) + ( 1 − α ) R r ( C , H ) R(C,H) = \alpha R_p(C,H) + (1-\alpha) R_r(C, H) \tag{7} R(C,H)=αRp(C,H)+(1α)Rr(C,H)(7)
训练目标: 最小化 R ( C , H ) R(C,H) R(C,H)的负期望:
(8) L ( θ ) = − E ( z 1 , ⋯   , z ∣ D ∣ ) ∼ p ( ⋅ ∣ D ) [ R ( C , H ) ] L(\theta) = -\Bbb E_{(z_1, \cdots, z_|D|) \sim p(\cdot | D)} [R(C,H)] \tag{8} L(θ)=E(z1,,zD)p(D)[R(C,H)](8)
计算量相当大,因为隐变量的组合超级多。所以作者使用了强化学习算法来作为 L ( θ ) L(\theta) L(θ)梯度的近似值:
(9) ∇ L ( θ ) ≈ ∑ i = 1 ∣ D ∣ ∇ log ⁡ p ( z i ∣ z 1 : i − 1 , h i − 1 D ) [ R ( C , H ) − b i ] \nabla L(\theta) \approx \sum_{i=1}^{|D|} \nabla \log p(z_i | z_{1:i-1}, \bold{h}_{i-1}^D) [R(C, H) - b_i] \tag{9} L(θ)i=1Dlogp(ziz1:i1,hi1D)[R(C,H)bi](9)
相当于把 R ( C , H ) R(C,H) R(C,H)作为强化学习算法的奖励

3 实验结果

论文泛读笔记《Neural Latent Extractive Document Summarization》_第2张图片

可以看到,LEAD3这么粗暴的方法(把文档前3句作为最终摘要),结果还是相当不错的…
SummaRunner自不用说,2017年的state-of-the-art。EXTRACT就是一开始的基模型(神经网络抽取式摘要模型)。加上了压缩模型后,效果下降了,作者推测是压缩模型是句子级的,移除了可能出现在最终摘要中的短句。

4 个人阅读总结

作者其实在以往的模型上提升并不大,无非是深层双向LSTM网络+强化学习算法,但最有价值的地方是用了一种全新的视角去看待抽取式摘要任务(把句子看作隐变量),这也许会开创新的研究方向。

你可能感兴趣的:(自然语言处理,自动摘要)