本文转自知乎用户 : 知识图谱 | 提取内容摘要综述 - 安小飞的文章 - 知乎 https://zhuanlan.zhihu.com/p/114503969
提取内容摘要
主要介绍提取内容摘要的概念和方法以及思路。
1、概述
利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。摘要问题的特点是输出的文本要比输入的文本少很多很多,但却蕴藏着非常多的有效信息在内。类比机器学习中的主成分分析。[1]
自动摘要(Automatic Summarization)的方法主要有两种:
- Extraction 是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;
- Abstraction 是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要;
由于自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。抽取式摘要成为现阶段主流,它也能在很大程度上满足人们对摘要的需求。[2]
2、抽取式摘要提取
抽取式的方法基于一个假设,一篇文档的核心思想可以用文档中的某一句或几句话来概括。那么摘要的任务就变成了找到文档中最重要的几句话,也就是一个排序的问题。怎么排序有很多方法: - 基于统计:统计词频,位置等信息,计算句子权值,再简选取权值高的句子作为文摘,特点:简单易用,但对词句的使用大多仅停留在表面信息。 - 基于图模型:构建拓扑结构图,对词句进行排序。例如,TextRank/LexRank - 基于潜在语义:使用主题模型,挖掘词句隐藏信息。例如,采用 LDA,HMM - 基于线路规划:将摘要问题转为线路规划,求全局最优解。
2.1、无监督抽取式方法
- TextRank[3]的思想借鉴于网页排序算法——PageRank,是一种用于文本的基于图的排序算法。通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名高的句子组合成文本摘要。
- Two-Level Sparse Representation[4]是将Sparse Coding的思想融入到文本摘要任务中来,将摘要句子看作原文的稀疏编码表示,通过最大化摘要对原文句子的表征能力来学习映射参数。在学习相关参数时,作者主要考虑了三点,Coverage(覆盖度)、稀疏度(Sparsity)以及Diversity(多样性)。
- RA-MDS[5]与上述方法不同的是,本篇论文在使用Sparsed Coding时,融入了更为精细的语法单元,即名词和动词短语来对原文进行压缩;除此之外,为了提高最终生成的摘要的质量,作者还对相关的命名实体进行了改写。
- DAE[6]在处理无监督抽取式摘要问题时分为三个步骤,第一步是对现有的句子进行扩增,采用的方法是从语料集中随机采样一部分的短语或单词进行打乱,然后加入到现有的句子中,组成较长的句子;第二步是按照Encoder-Decoder摘要框架对长句子进行压缩;第三步是构建损失函数使得第一步中的句子与第二步压缩后的句子尽量相同。
- PACSUM[7]的整体框架是基于TextRank,Centroid等传统的基于图的摘要方法,但是有两方面的创新:其一是在句子表示中引入了BERT模型来捕获句子的深层语义信息,其二是图网络中使用位置信息来判断句子之间的指向关系,从而将传统的无向图转换成有向图,提高模型准确率。
2.2、有监督抽取式方法
- R2N2[8]作者使用人工定义的14个特征(包含词级、短语级和句子级)来表示句子,同时使用递归神经网络来建模句子向量与其标签之间的映射关系。递归神经网络可以模拟句子内部各元素之间的语义依存关系,更好地学习语义特征。
- NeuralSum[9]相比R2N2,NeuralSum方法使用卷积神经网络和循环神经网络来提取句子特征,从而改善了传统人工特征的不准确性。
- SummaRuNNer[10]相比NeuralSum,SummaRuNNer创新点包括两方面:其一是使用分层神经网络提取句子的特征,捕获了单词,句子和文档之间的分层关系。其二是在句子建模过程中引入了位置信息向量。
- BertSum[11]是第一篇将Bert应用到抽取式摘要中,并在Bert Baseline模型的基础上,在每句话前面都添加了[cls],以此来得到每句话的特征。最后经过了Summarization层得到摘要。作者在Summarization层采用了三种方法:(1)通过矩阵运算直接得到分类器(2)在分类器前加入Transformer(3)在分类器前加入RNN。
- STRASS[12]这篇论文使用了Transformation层来选择与原文向量最相近的句子向量来组成摘要,通过最小化Extractive Summarization与Groud Truth向量的相似度来学习转义网络参数,由于Transformation只有一层,因此可以在CPU上快速的训练,提高效率。
3、生成式自动文摘
自动生成文本摘要主要有两类方法,第一类是通过关键词,位置等多种特征,摘取原文内容做摘要,简称“摘取式摘要”。第二类是通过深度学习模型学习大量数据进行编码,解码,产生抽象的摘要内容,摘要内容来源不限于原文内容,简称“生成式摘要”。第一类方法是传统摘要方法,常见应用于新闻摘要,但是该方法扩展性,通用性很有限,难以适应多变的文本内容。第二类方法是最新基于深度学习的方法,可以应用于各种文本,不过生成的摘要通常是一句话,不适合生成比较长的摘要(难度太大)。
- 基于模型结构,简单来说就是Sequence-to-Sequence结构; - 基于递归神经网络的模型,表现比较好的是Deep Reinforced Model[13],使用了注意力机制和强化学习; - 基于卷积神经网络的模型,比较有代表性的是ConvS2S[14]模型;
Sequence-to-Sequence方面的一些改进:
- copy机制,在每一次解码的时候,计算一个概率,根据这个概率选择是否从原文中复制词语,有效解决未登录词的问题;
- coverage机制,让注意力机制避免多次在同一个地方赋予高权重,避免重复;
- Get To The Point: Summarization with Pointer-Generator Networks
- 针对长文档使用更复杂的encoder-decoder,实现更好地对信息编码,解码;
- Improving Neural Abstractive Document Summarization with Structural Regularization
- 对注意力机制进行改进,融合文章的关键信息;
- Guiding Generation for Abstractive Text Summarization based on Key Information Guide Network
- 结合抽取式的方法,比如先抽取多个重要的句子,然后结合这些句子进行改写;
- Fast Abstractive Summarization with Reinforce-Selected Sentence Rewriting
- 针对序列生成过程中的Exposure Bias还有训练损失和评价指标不一致的问题,加入强化学习的机制,用强化学习来训练网络;
- Generative Adversarial Network for Abstractive Text Summarization
- Multi-Reward Reinforced Summarization with Saliency and Entailment
- 受Bert启发,使用预训练语言模型,专门针对序列到序列的自然语言生成任务,比如2019年ICML上微软提出的MASS:
- MASS: Masked Sequence to Sequence Pre-training for Language Generation
4、语料数据集
这里的语料分为两种,一种是用来训练深度学习模型的大型语料,一种是用来参加评测的小型语料。
4.1、DUC 这个网站提供了文本摘要的比赛,2001-2007 年在这个网站,2008 年开始换到这个网站 TAC。很官方的比赛,各大文本摘要系统都会在这里较量一番,一决高下。这里提供的数据集都是小型数据集,用来评测模型的。
4.2、Gigaword 该语料非常大,大概有 950w 篇新闻文章,数据集用 headline 来做 summary,即输出文本,用 first sentence 来做 input,即输入文本,属于单句摘要的数据集。
4.3、CNN&Daily Mail 该语料就是我们在机器阅读理解中用到的语料,该数据集属于多句摘要。
4.4、Large Scale Chinese Short Text SummarizationDataset(LCSTS) 这是一个中文短文本摘要数据集,数据采集自新浪微博,给研究中文摘要的童鞋们带来了福利。
4.5、TAC-2008~2015
参考
[1] 使用Python自动提取内容摘要
[2] 文本摘要综述
[3] Mihalcea R, Tarau P. Textrank: Bringing order into text[C]//Proceedings of the 2004 conference on empirical methods in natural language processing. 2004: 404-411.
[4] Liu H, Yu H, Deng Z H. Multi-document summarization based on two-level sparse representation model[C]//Twenty-ninth AAAI conference on artificial intelligence. 2015.
[5] Li P, Bing L, Lam W, et al. Reader-aware multi-document summarization via sparse coding[C]//Twenty-Fourth International Joint Conference on Artificial Intelligence. 2015.
[6] Fevry T, Phang J. Unsupervised Sentence Compression using Denoising Auto-Encoders[J]. arXiv preprint arXiv:1809.02669, 2018.
[7] Zheng H, Lapata M. Sentence Centrality Revisited for Unsupervised Summarization[J]. arXiv preprint arXiv:1906.03508, 2019.
[8] Cao Z, Wei F, Dong L, et al. Ranking with recursive neural networks and its application to multi-document summarization[C]//Twenty-ninth AAAI conference on artificial intelligence. 2015.
[9] Cheng J, Lapata M. Neural summarization by extracting sentences and words[J]. arXiv preprint arXiv:1603.07252, 2016.
[10] Nallapati R, Zhai F, Zhou B. Summarunner: A recurrent neural network based sequence model for extractive summarization of documents[C]//Thirty-First AAAI Conference on Artificial Intelligence. 2017.
[11] Liu Y. Fine-tune BERT for Extractive Summarization[J]. arXiv preprint arXiv:1903.10318, 2019.
[12] Bouscarrat L, Bonnefoy A, Peel T, et al. STRASS: A Light and Effective Method for Extractive Summarization Based on Sentence Embeddings[J]. arXiv preprint arXiv:1907.07323, 2019. [13] Paulus R, Xiong C, Socher R. A deep reinforced model for abstractive summarization[J]. arXiv preprint arXiv:1705.04304, 2017. [14] Dauphin Y N, Fan A, Auli M, et al. Language modeling with gated convolutional networks[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 933-941.