PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization
谷歌 ICML 2020
论文地址:https://arxiv.org/abs/1912.08777
PEGASUS是谷歌提出的一个专门针对摘要生成的预训练模型,在多种领域的摘要数据集上相比于其他通用预训练模型,都取得了最优的效果。
主要贡献
- 提出了一种针对生成式摘要的新的预训练任务Gap-sentences generation (GSG),并研究了生成伪摘要句子的选择方式;
- 在finetune的过程中,PEGASUS模型只使用少量监督数据仍可以取得良好的性能,并在Xsum、CNN等多个数据集上达到了人类的摘要水平。
模型结构
PEGASUS同样是类似于transformer的encoder-decoder结构。但同时将GSG任务和MLM任务作为预训练的目标。MLM任务用[MASK2]遮蔽、GSG任务用[MASK1]遮蔽。encoder部分负责恢复MLM,decoder部分负责恢复GSG。(但是在后续的实验中,作者发现MLM+GSG的预训练任务不如单独进行GSG任务效果好,因此在PEGASUS_large中仅使用了GSG任务)
Gap Sentences Generation (GSG)
- GSG任务的目标是从输入数据中生成类似于摘要的文本。大致思路是从一个文本中按一定比例取出部分句子作为摘要,剩余的句子作为原文,构造成摘要-原文数据对(伪摘要),放到模型里进行训练。
- 句子抽取的方法:
i. Random:随机选择句子
ii. LEAD:选择开头的几句
iii. Importance:选择重要性高的句子,使用Rouge1-F1评估重要性. - Rouge1表示会将文本分割成1-gram,就是单个的字。Rouge1-F1的范围是0~1,越接近1则两个文本越相似。
- Rouge1-Recall:(文本1和文本2共有的1-gram数量)/(文本1的1-gram数量)
- Rouge1-Precision:(文本1和文本2共有的1-gram数量)/(文本2的1-gram数量)
- Rouge1-F1:2 * (Recall * Precision) / (Recall + Precision)
- 抽取句子的方式和Rouge n-gram的计算方式也有两种:
- Independent(Ind): 在比对rouge时,每次都取1句句子和剩余句子进行比对得到分数,最终获得每个句子的得分,取得分最高的几句。
- Sequence(Seq): 若本次要从4句话中取最重要的2句句子,则取(12、13、14、23、24、34)句,和剩余句子进行比对得到分数,最后取得分最高的一组(如12句)
- Unique(Uniq): 在计算rouge1分数中n-gram数量时,将所有n-gram视为一个无重复的set,如“我爱哈哈哈哈”中n-gram数量就只有3
- Origin(Orig): 原始的计算n-gram数量的方式,“我爱哈哈哈哈”中n-gram数量为6
通过实验发现Ind-Orig的选句效果是最好的
选句的比例在30%左右效果较好
实验
- 数据集
分别在C4和HugeNews上训练 - 在小数据集上效果提升尤其明显
- 在Xsum、CNN/DailyMail上甚至达到了人类撰写摘要的水平
参考文献
https://zhuanlan.zhihu.com/p/528753707
https://zhuanlan.zhihu.com/p/452054368