文本摘要的目标是从输入中生成准确、简洁的内容。做摘要时,我们知道有两种方法,一种是抽取式文本摘要,一种是生成式文本摘要。抽取式就是从输入文本中抽取出一些文本片段来组成文本摘要,而生成式则是根据输入文本来生一个一个的 word 组成的摘要。生成式文本摘要任务相比抽取式文本摘要难度要更高,最简单的一点就是得保证生成的内容能够表达输入的文本的主旨,并且语言也要流畅。
Paper:https://arxiv.org/pdf/1912.08777.pdf
用于解决生成式文本摘要的神经网络主要是再大量、高质量的数据集上进行有监督训练,在技术架构上,主要是基于 RNN 或者 Transformers 的 Seq2Seq 架构。
近年来,我们看到很多将 Transformer 在海量语料上进行无监督学习,并且模型在很多的重要 NLP 任务上表现很优秀。作者就想,能不能也将 Transformer 通过在海量语料上进行无监督学习,从而能够在文本摘要任务也表现得很优秀。
我们在学习 Transformer 的进行无监督学习时,发现一点,模型必须要先设计一系列的预训练任务,从而才能实现模型在语料上的无监督学习,并且该任务要更加贴合下游任务,这样经过无监督训练的模型在下游任务才能有优秀的表现。
论文中提出了 Gap Sentences Generation (GSG) 训练任务,GSG 就是从输入文本中生成伪摘要。简单来说,就是输入文档,将文档中部分的 sentence 进行掩码,这些被 mask 的 sentence 组成了伪摘要,由模型的解码器不分来生成。
我们可以结合上图来大概理解下 GSG,注意上图中是加入了 MLM + GSG 两个训练目标。论文中通过实现发现 MLM 的加入对于下游任务的表现没有啥帮助,所以我们也忽略它。将输入中的一个 sentence 掩码,上图中就是将 it it pure white 进行掩码,由编码器对掩码的上下文进行语义理解。再由解码器来还原被掩码的这部分内容。
这里需要了解的一个细节是,GSG 任务如何选择将那些 sentence 进行掩码,从而去组合伪摘要?论文中考虑到了 3 种策略:
- Random:随机从输入的 n 个 sentence 中选择 m 个 sentence;
- Lead:选择输入的前 m 个 sentence;
- Principal:根据重要性来选择 sentence,计算方法使用的 RougeN。
重要性的计算需要两个步骤,第一个是选择句子(一次选一个,还是一次选多个):
- 如果一次选择一个句子,则计算该句子和剩余内容的分数,选择分数最高的 m 个 sentence 进行掩码,这种方法论文中叫做 Ind(independently)
- 如果一次选择一组多个句子,则计算该组句子和剩余内容的分数,选择分数最高的一组 sentence 进行掩码,这种方法论文中叫做 Seq(sequentially)
选择完句子之后,就是如何计算 Rouge-N,论文中提到两个方法:
- Orig:正常计算两个文本的 Rouge n-gram 分数;
- Uniq:对文本进行去重之后,再计算 Rouge n-gram 分数。
将选择句子的方式和计算 Rouge 的方式进行组合就会得到 4 种选择句子的进行掩码策略:
- Ind + Orig
- Ind + Uniq
- Seq + Orig
- Seq + Uniq
加上前面提到的两种策略,一共有 6 种策略,至于那个效果更好一些,论文中也做了实验,如下图所示:
实验是在 Xsum、CNN/DailyMail、WikiHow、Reddit TIFU 数据集上进行。GSR(gap sentences ratio)为 0.3,表示 gap sentence 的比例。从图中可以看到 Ind + Orig 的策略效果最好,其次是 Seq + Uniq。
提到 GSR,论文也在 Ind + Orig 策略下,实验几种不同的 ratio,如下图所示:
从图上来看的话,0.3 的 ratio 看起来效果不错。
文章内容来自 Paper 《PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization》,理解不正确的地方,欢迎指正。