论文笔记 --《Bottom-Up Abstractive Summarization》

来源: EMNLP 2018
关键词:NLG,Bottom-Up, Text-Summarization


1.背景及问题描述(Abstract)

文本摘要是需要从长文本上生成内容相关的文本摘要。 基于神经网络的生成式文本摘要发方法可以生成非常通顺的结果,但是他们却不擅长进行内容选择(content selection)。本篇论文引入一个简单的内容选择器(content selector),首先来决定文档中哪部分是有效的,然后只需要在这部分句子上做生成摘要。实验表明,这种方法可以提升句子压缩的质量,同时产生流畅的摘要。并且,这种两部走的办法要比end-to-end的模型要简单和高效。 此外,内容选择器(content selector)的训练只需要非常少的句子就能取得比较好的效果,所以迁移到其他模型是非常容易的。

2.已有的解决方案

目前生成式文本摘要表现比较好的模型是使用 pointer-generator models实现的end-to-end模型。

3.解决方案概述

作者提出的 Bottom-Up方案就是将一般的end-to-end模型分两部走,第一步从长文档中选择可能相关的部分,然后在选择的部分执行常规的摘要模型。作者的思路是从CV中得到的,在做物体识别时,先在图像上画框确定范围,然后只需要关注在这个框里面。

其中内容选择器的实现就是看作一个序列标注问题(sequence-tagging problem),作者只使用Elmo词向量就可以实现超过 60% recall 和50% precision的模型。

把第一步的结果引入到后面的摘要模型中,只需要使用masking机制来限制从原文中copy单词。

图2

1.Bottom-Up Attention

首先定义文本摘要的一般定义:对于文本对 ( X , Y ) (X,Y) ,其中, x X x\in{X} 表示source 序列 x 1 , . . . , x n x_1,...,x_n y Y y\in{Y} 表示生成的摘要序列 y 1 , . . . , y m y_1,...,y_m ,其中 m < < n m << n

作者是把内容选择当作序列标注问题来处理,那么第一步就是需要构造标注数据。作者的处理办法是,文本摘要数据集通常是文档-摘要对,所以作者将摘要与文档对其来构造监督数据。 详细的,对于文档中的token x i x_i 被选中,当:

  1. 它在一段尽可能长的子序列 s = x i j : i : i + k s=x_{i-j:i:i+k} 中,同时 s x s\in{x} 并且 s y s\in{y}
  2. 前面不存在与 s s 相等的序列。

构造好训练数据之后,就是训练一个常规的序列标注模型,作者输入使用ELMo训练一个双层的LSTM模型,然后计算每个位置被选中的概率。

2.Bottom-Up Copy Attention

作者发现encoder直接对原本编码可以有更好的效果。所以,在训练阶段,分别训练pointer-generator model 和内容选择器 。在推理阶段,首先计算source中所有token的选择概率 q 1 : n q_{1:n} ,然后用它来影响copy模型中的copy概率,使得没有被选中的token不会被copy。令 a j i a^i_j 表示在step j对source中iword的copy概率,经过调整之后的概率为,其中 ϵ \epsilon 是一个阈值,取值在0.1-0.2之间:

公式1

这里注意,因为调整之后的概率分布不再正确,需要重新归一化。

3.End-to-End 方案

“两步走”的思路虽然很简单也很有效,但是作者还是尝试了在一个模型中训练,猜想标准的copy模型可以与内容选择期一起训练的。作者设定了三种模式:

  1. 只有mask。
  2. 多任务学习。使用共享的encoder同时训练序列标注任务和文本摘要任务。但是在预测阶段还是“两步走”的策略。
  3. 交叉训练。在训练过程中,直接将copy概率 a j i a^i_j 与选择概率 q i q_i 相乘。

4.推理阶段

对于目前长文档的生成网络主要的两个问题:1.生成错误的长度。2.重复词。作者在得分函数中引入两个惩罚:长度惩罚 l p ( l e n g t h p e n a l t y ) lp (length penalty) 和覆盖惩罚 c p ( c o v e r a g e p e n a l t y ) cp(coverage penalty) s ( x , y ) = log p ( y x ) / l p ( x ) + c p ( x ; y ) s(x,y) = \log{p(y|x)}/lp(x) + cp(x;y)

其中,长度惩罚 l p ( l e n g t h p e n a l t y ) lp (length penalty) 是为了鼓励产生更长的序列,需要在beam search阶段考虑进去。 2021-01-22 14-22-36屏幕截图.png-7.1kB

覆盖惩罚 c p ( c o v e r a g e p e n a l t y ) cp(coverage penalty) 用来防止过度的重复,作者引入了一种新的方法:

2021-01-22 14-24-25屏幕截图.png-17.1kB

4.结果分析

2021-01-22 14-26-28屏幕截图.png-255.1kB

上图是在CNN-DM上的实验表明:

  1. 作者设计的是那种end-to-end方案没有一种是有效的。
  2. 本文提出的“两步走”的Bottom-Up方法对结果提升比较明显。
  3. 用交叉熵训练的模型好于使用强化学习训练的模型。

2021-01-22 14-30-15屏幕截图.png-58.9kB

上图是内容选择器的训练结果,实验结果表明只需要很少的,大于1000条,句子就能取得不错的效果。

2021-01-22 14-33-11屏幕截图.png-51.5kB

上图是在原始了Point-generator模型基础上,在Inference阶段测试三种惩罚策略的效果,可以发现三种惩罚都非常有效,同时提升三个指标。同时这也表明,原始了Point-generator模型已经可以很好的来解决文本摘要问题,如果在预测阶段加一些处理就更好了!

5.创新点或贡献

  1. 本文提出了一种简单但是有效的内容选择模型来处理文本摘要问题。
  2. 作者发现采用“两部走”的bottom-up方法更有效。
  3. 作者提出的方法对数据依赖很低( data-efficiency),可以很容器迁移到其他数据集中。
  4. 作者介绍了两种惩罚策略,并证明非常有效。

6.个人思考

本篇论文基础模型还是Pointer-Generator Network,非常实用性的改进,主要有三点可以考虑使用:

  1. 使用bottom-up的思路 + “两部走”的策略
  2. 在beam-search阶段加入长度惩罚可以生成更长更丰富的结果序列。
  3. 新的覆盖惩罚用来处理重复问题。

猜你喜欢

转载自juejin.im/post/7016574810419363847