转载自知乎https://zhuanlan.zhihu.com/p/67078700
文本摘要是一种从一个或多个信息源中抽取关键信息的方法,它帮助用户节省了大量时间,用户可以从摘要获取到文本的所有关键信息点而无需阅读整个文档。
文本摘要按照输入类型可分为单文档摘要和多文档摘要。单文档摘要方法是指针对单个文档,对其内容进行抽取总结生成摘要;多文档摘要方法是指从包含多份文档的文档集合中生成一份能够概括这些文档中心内容的摘要
按照输出类型可分为抽取式摘要和生成式摘要。抽取式摘要从源文档中抽取关键句和关键词组成摘要,摘要全部来源于原文。生成式摘要根据原文,允许生成新的词语、短语来组成摘要。(更详细的解释 from 《文本摘要研究进展与趋势》)抽取式摘要方法通过抽取文档中的句子生成摘要,通过对文档中句子的得分进行计算,得分代表重要性程度,得分越高代表句子越重要,然后通过依次选取得分最高的若干个句子组成摘要,摘要的长度取决于压缩率。生成式摘要方法不是单纯地利用原文档中的单词或短语组成摘要,而是从原文档中获取主要思想后以不同的表达方式将其表达出来。生成式摘要方法为了传达原文档的主要观点,可以重复使用原文档中的短语和语句,但总体上来说,抽取式摘要需要用作者自己的话来概括表达。生成式摘要方法需要利用自然语言理解技术对原文档进行语法语义的分析,然后对信息进行融合,通过自然语言生成的技术生成新的文本摘要。
按照有无监督数据可以分为有监督摘要和无监督摘要。有监督方法需要从文件中选取主要内容作为训练数据,大量的注释和标签数据是学习所需要的。这些文本摘要的系统在句子层面被理解为一个二分类问题,其中,属于摘要的句子称为正样本,不属于摘要的句子称为负样本。无监督的文本摘要系统不需要任何训练数据,它们仅通过对文档进行检索即可生成摘要。
文本摘要算法的发展历程:
1、基于统计学
早期的文本摘要方式主要是抽取式文本摘要,其关键问题在于从原始的文档中抽取出重要性高的句子,这里实际上涉及到两个问题:1、如何给句子的重要性打分;2、如何抽取重要性高的句子并且抽取之后如何使用; 最早的时候人们主要是基于统计学进行抽取式文本摘要,需要计算统计特征,如词频、句子之间的相似性、句子位置、句子与标题(如有)的相似性、句子的相对长度等,首先使用“词频”这一简单的文本特征对文档的重要句子和词组进行抽取生成,根据经验可知,除去停用词以外,文中出现频率越高的单词,其重要性也就越高。根据单词的词频高低分别设置相应的词权重,词频越高,对应的权重也就越高;句子的权重是组成句子单词的权重之和。然后从文档中抽取权重高的单词和句子组成摘要,这就是简单的基于词频的文本摘要方法(这个思路也是很简单易懂)。其它的还有基于tf-idf的文本摘要算法以及其各种改良版这里就不赘述了,还是把重点放在主流的算法上比较好,这些作为了解即可。
2、基于外部语义资源
这话方法涉及到词汇链的概念,简单说就是借助外部的数据,例如wordnet(面向语义的英文词典)、词性标注工具等来辅助文本摘要,将原文档中与某个主题相关的词集合起来,比如happy、sad、angry等等都是属于情绪词,可能使用这种方式将这些词都集合为“情绪”的词汇链中,然后通过一些评价方法来给每一条词汇链计算其重要性,并且据此计算出每一个句子的代表重要性的权重,最后根据给定的摘要比例选择特定数量的句子生成摘要。这种方法通过考虑词的语义关系、全局性等改进了基于统计学的文本摘要的方法未充分利用词义关系、词间关系等的不足。当然,他还是属于抽取式文本摘要,因为它的输出仍旧都是从原文抽取出来的。
3、基于图排序的方法
基于图排序的文本摘要生成的主要方法是通过把文章分成若干个段落或句子的集合,每个集合对应一个图的顶点,集合之间的关系对应边,最后通过图排序的算法(如PageRank[30]、HITS[31]等)计算各个顶点最后的得分,然后依据得分高低生成文本摘要。其中Text rank排序算法以其简洁、高效的特点被工业界广泛运用。大体思想就是先去除文章中的一些停用词,之后对句子的相似度进行度量,计算每一句相对另一句的相似度得分,迭代传播,直到误差小于0.0001,再对上述方法得到的关键语句进行排序,即可获得摘要。抽取式摘要主要考虑单词词频,并没有过多的语义信息,像“猪八戒”、“孙悟空”这样的词汇都会被独立对待,无法建立文本段落中完整的语义信息。
Text rank原理如图所示,根据句子的相似性进行排序打分。
LexRank是一种类似于TextRank的无监督图形方法。LexRank使用IDF修改的余弦作为两个句子之间的相似性度量。该相似度用作两个句子之间的图形边缘的权重。LexRank还采用了智能的后处理步骤,确保为摘要选择的顶级句子彼此不太相似。
基于 PageRank、HITS 以及 TextRank改进的图排序算法都是无监督的,它具有简单、语言弱相关及同时适合单文本和多文本等众多优点,无需手动标注数据集,相比有监督或半监督的深度学习的文本摘要方法,节省了一定的时间和人力。虽然它具有语言独立、不需要大量语料训练、节约时间等优点,但是由于无监督学习方法还没有充分挖掘和利用数据之间的关系,所以虽然文本摘要的效果和质量有所提升,但是对数据利用不够充分,存在局限性,之后的基于有监督、半监督学习的文本摘要方法对数据进行了合理利用,相比无监督方法有显著的性能提升。
4、基于统计机器学习的方法
有监督的机器学习的方法在自然语言处理领域也得到了极其广泛的利用。监督、半监督的机器学习方法通过对数据集的语料进行人工标注,人为地判定划分得到句子的文本特征以及句子重要性的关系模型,在此模型的基础上,对未被标注的语料进行训练,预测未被标注语料中句子的重要性排序,然后依据句子重要性排序,依次选取若干句子生成最后所需要的文本摘要。
这种方法类似于一个二分类问题,对于某一个句子,它只有 2 种可能性:要么是摘要句,要么是非摘要句。首先通过人工标注的方法,把重要句子手动标注出来,接着在此基础上提取这些重要句子间的特征,通过统计分析学习的方法,找到句子重要性与这些特征之间的关系,最后选择合适的分类器对其进行分类,然后对分类器参数进行调整和对模型加以改进得到最佳的分类器结构,但是这个过程中要防止过拟合的出现。对分类器输入一个句子,在分类器的输出端将得到该句子相应的重要性得分,依据重要性得分的高低抽取所需的句子生成摘要。
机器学习的方法很好地利用了计算机强大的计算性能,借助统计学的知识理论,对海量的文本信息进行高效合理的建模,能够挖掘出隐藏在海量文本信息中的隐藏属性。这些机器学习的方法中使用较为广泛的有朴素贝叶斯算法、隐马尔可夫算法、决策树算法等。Kupiec 等首次将统计机器学习的方法应用于文本摘要领域,他们选取了主题词特征、大写词特征、线索短语特征、句子长度特征、段落特征五大类特征,并认为这些特征之间是相互独立互不影响的。该方法在 21 种科技期刊中随机选择了188 篇文章进行人工撰写摘要作为训练所需的语料,使用贝叶斯分类的方法训练得到一个分类器用以给句子的重要性进行评分。Kupiec 提出了一种通过朴素贝叶斯分类模型的新方法判定文档中的某一个句子是否应该被选取作为摘要。在他提出的方法中,假设 s 是其中某一个句子,S 是组成摘要的句子的集合, F1 ,…, Fk 是文本中的 k 个特征,假设这些特征两两之间是相互独立的,表达式如下:
通过上述表达式,可以为每一个句子计算它可能作为文本摘要的概率,然后依次从得分顺序由高到低的句子中顺次抽取前若干个句子生成摘要。Conroy 等[49]提出了隐马尔可夫模型的摘要算法,该算法通过使用文档中的一些特征(如句子位置、句内词数以及句子中词语与文档中词语的相似度等)来计算句子得分,然后依据句子得分生成文本摘要。Lin 等[50]假设用于生成摘要的文档的各种特征之间是相互的,他们提出了决策树的算法来替代之前提出的贝叶斯分类模型来对句子进行评分,从中依次选取评分最高的若干句子生成摘要。机器学习方法中特征选择的范围是相当广泛的,由于训练分类器特征的可供选择性非常广泛,在本文看来,任意能够表示句子重要性的特征都可以用来训练分类器。这里所提及的特征有前文中提到的词频、线索词、句子位置、TF-IDF 值等简单的特征。此外,研究者还尝试了一些开放性的特征,如标题词长,平均句子长度,平均词汇连接度,是否包含数词、时间等信息,是否包含代词、形词等词汇,是否包含命名实体等特征信息。基于这些开放性特征的机器学习的方法在提高生成摘要的可读性和准确度上起到了一定的效果。
总的来说,这也是很多公司的一个常见的思路,通过人工的方式来进行样本标签的标注,然后用机器学习算法来拟合特征与标注信息,希望通过这样的方式使得算法能够学习到人类的判别能力。不过这种方法在特征工程方面会比较麻烦,不知道有没有什么统一的特征提取的标准,后续代码实现的时候再查一查。
5、基于深度学习的方法
深度学习是利用多层感知器结构对非线性信息进行处理的一种学习方法。Hinton 等首先提出了深度置信网络和相应的高效学习算法,该算法具有无监督学习的能力,降低了对人工的依赖,可以较为高效地进行训练,之后深度学习发展都是在此基础上进行改进的。目前深度学习方法在对自然语言处理方面的基本方向是通过对文档上下文进行学习训练,对于中文文档,还需要先进行中文分词处理,然后将文档中的词语、句子分别用连续实值向量进行表示,形成的向量称为嵌入向量,这样做是为了方便处理文本语义特征,将词语、句子用向量表示,在处理文本语义特征时,对词向量、句向量直接进行向量上的计算即可表征它们之间的文本语义关系。
要将自然语言处理的问题转化成为一个机器学习的问题,首先需要让机器能够理解自然语言,所以第一步就是将自然语言转化为机器可以理解的语言,于是想到将它进行符号数学化,为了能表示多维特征,增强其泛化能力,想到用向量对其进行表示,因此也就引出了对词向量、句向量的研究。但是词向量和句向量的生成仍然具有一定的难度,将文本中不同单词、句子用词向量或句向量进行唯一的表示,这样可以方便其在自然语言处理过程中进行各种操作变换和计算。虽然现在看来将文本中的词、句转化成唯一对应的词、句向量还具有相当大的难度,但由于其在自然语言理解中是关键的一步,因此这将是今后研究中亟待解决的问题和重点研究的方向之一。(关于文本向量化是一大块内容,后面也需要单独写一个和本文的类似的总结的文章来总结一下,从word2vec到现在的bert,以及lda、doc2cev等等,入坑啊喂。。。。。。)
Seqence-to-Sequence 模型广泛应用于机器翻译、语音识别、视频图片处理、文本摘要等多个领域。现在最新的一些基于深度学习研究文本摘要生成方法的也都是基于这个模型进行的。基于Seqence-to-Sequence 模型的文本摘要需要解决的问题是从原文本到摘要文本的映射问题。摘要相对于原文具有大量的信息损失,而且摘要长度并不会依赖于原文本的长度,所以,如何用简短精炼的文字概括描述一段长文本是文本摘要需要解决的问题。最先是基于递归神经网络( RNN ) 的Seqence-to-Sequence 模型用于文本摘要起到了一定的效果,之后考虑到 RNN 具有长程依赖性,为了减小长程依赖性,提出了基于长短时记忆网络(LSTM)的 Seqence-to-Sequence 模型用于文本摘要的生成。考虑到句子中的某些特定词或特定词性的词更具有影响句子中心意思的作用,引入了广泛应用于机器翻译中的注意力机制(attention mechanism)对句子的不同部分赋予不同的偏重,即权重。Rush 等在这个基础上提出基于注意力模型的生成式文本摘要,在 DUC-2004 数据集上显示出了优良的性能提升。Rush 等首次将深度学习应用于文本摘要的生成,他们基于Seqence-to-Sequence 模型,将卷积模型应用于对原文档进行编码,然后利用上下文之间的注意力前馈神经网络生成摘要,在当时取得了很好的效果。Chopra 等同样利用卷积模型对原文档进行编码,但使用递归神经网络作为解码器解码输出,取得良好的改进效果,大大提高了文本摘要的质量。Ramesh 等将综合的 RNN和 attention 机制的Seqence-to-Sequence 模型用于生成文本摘要,在文本摘要的准确性和可读性上取得了很大的提高。See 等利用注意力模型相对分心机制来缓解重复出现的冗余词句的权重,降低注意力权值大小达到去除冗余信息的效果,从而大大提高了文本摘要的新颖性。
2016 年,谷歌也开源了基于 TensorFlow的一个自动摘要模块 Textsum,该模块也是利用Seqence-to-Sequence 模型,基于深度学习的方法自动生成新闻标题,在质量和准确度上都取得了良好的效果。Sutskever 等考虑到 RNN 具有长程依赖性,为了减轻长程依赖的影响,将 RNN 用 LSTM网络进行了替换,在此基础上取得了良好的改进。最近 Facebook 尝试把 CNN 引入自然语言处理中,由于 CNN 不能处理变长的序列,在这之前 CNN 都只应用于图片视频领域的处理,恰巧Seqence-to-Sequence 模型可以很好地处理变长序列问题,所以综合 CNN 与 Seqence-to-Sequence 模型,Gehring 等提出了基于 CNN 的 Seqence-to- Sequence 模型,成功应用于机器翻译领域,取得了比之前模型应用更优的结果,准确度超过了之前其他的所有模型。这同样也是一个启示,是否能够将基于 CNN 的 Seqence-to-Sequence 模型成功应用到文本摘要的领域取得最优的结果?这也是接下来要研究的一个问题。Liu 将广泛应用于图像领域的生成对抗网络(GAN, generative adversarial networks)借用于文本摘要领域取得了显著成效,提出了一种生成式文本摘要的生成对抗过程,在这个过程中,同时训练一个生成模型 G 和一个判别型D。生成器通过文本的输入来预测生成摘要,判别器则试图将机器生成的摘要与真实摘要进行区分。在这个博弈过程中,双方不断提高性能,最后利用训练得到的生成器生成与真实摘要基本吻合的机器摘要。最近,Tan 等提出了一个基于图的注意力神经模型的生成式文本摘要,该文在回顾了基于神经网络的生成式文本摘要难点的基础上,提出了一种新颖的基于图注意力机制的模型框架。这里仍然使用被广泛应用于机器翻译和对话系统中的编码器解码器的框架,需要特别说明的是,这里使用的是一个分层的编码器解码器结构,并引入了基于图的注意力模型。编码器结构由字编码器和句编码器组成,字编码器将句子中的单词编码成句子表示,句编码器将文档中的句子编码成文档表示。这里用 LSTM 结构的变体作为字编码器和句编码器的网络结构。不同于一般的解码器结构,这里使用的是带注意力机制的分层解码器结构。在原始解码器模型中,生成的代表文档整体的语义向量 c 对于所有的输出,字是相同的,这就需要语义向量 c 作为整个输入序列的充分表示。这里引入了注意力机制,对解码器不同发生状态下不同部分的输入赋予了不同的注意力,减轻了需要记忆整个输入序列的负担。分层解码器中还利用了波束搜索的策略对句子中的重复现象进行缓解。最后基于图的抽取式摘要模型的TextRank(Mihalcea 和 Tarau 于 2004 年提出)[68]和 LexRank(Erkan 和 Radev 于 2004 年提出)对文档中句子的重要性进行识别。基于这种改进的图注意力的神经模型的生成式文本摘要方法实现了相较先前神经摘要模型相当大的提升,效果甚至可以与最先进的抽取式摘要方法进行比较。总体来说,基于深度学习的自动摘要方法是目前效果最好的方法,但其研究深度和研究数量还远远不够,有待进一步深化。
(看到这么多研究结果,瑟瑟发抖,弱小的我还是找一些开源的实现就好了。。。。。至于创新发展留给在校的科研大牛吧)
抽取式方法从原文中选取关键词、关键句组成摘要。这种方法天然的在语法、句法上错误率低,保证了一定的效果。传统的抽取式摘要方法使用图方法、聚类等方式完成无监督摘要。目前流行的基于神经网络的抽取式摘要往往将问题建模为序列标注和句子排序两类任务。下面首先介绍传统的抽取式摘要方法,接着简述基于神经网络的抽取式摘要方法。
一般来说,作者常常会在标题和文章开始就表明主题,因此最简单的方法就是抽取文章中的前几句作为摘要。常用的方法为 Lead-3,即抽取文章的前三句作为文章的摘要。Lead-3 方法虽然简单直接,但却是非常有效的方法。
TextRank 算法仿照 PageRank,将句子作为节点,使用句子间相似度,构造无向有权边。使用边上的权值迭代更新节点值,最后选取 N 个得分最高的节点,作为摘要。
将文章中的句子视为一个点,按照聚类的方式完成摘要。例如 Padmakumar and Saran [11] 将文章中的句子使用 Skip thought vectors 和 Paragram embeddings 两种方式进行编码,得到句子级别的向量表示,再使用 K 均值聚类和 Mean-Shift 聚类进行句子聚类,得到 N 个类别。最后从每个类别中,选择距离质心最近的句子,得到 N 个句子,作为最终摘要。
抽取式摘要可以建模为序列标注任务进行处理,其核心想法是:为原文中的每一个句子打一个二分类标签(0 或 1),0 代表该句不属于摘要,1 代表该句属于摘要。最终摘要由所有标签为 1 的句子构成。
将文本摘要建模为序列标注任务的关键在于获得句子的表示,即将句子编码为一个向量,根据该向量进行二分类任务,例如 AAAI17 中,Nallapati 等人[10]的工作,使用双向 GRU 分别建模词语级别和句子级别的表示。其模型 SummaRuNNer 如图 1所示。蓝色部分为词语级别表示,红色部分为句子级别表示,对于每一个句子表示,有一个 0、1 标签输出,指示其是否是摘要。
图1 SummaRuNNer 模型
该模型的训练需要监督数据,现有数据集往往没有对应的句子级别的标签,因此需要通过启发式规则进行获取。具体方法为:首先选取原文中与标准摘要计算 ROUGE 得分最高的一句话加入候选集合,接着继续从原文中进行选择,保证选出的摘要集合 ROUGE 得分增加,直至无法满足该条件。得到的候选摘要集合对应的句子设为 1 标签,其余为 0 标签。
抽取式摘要还可以在序列标注的基础上结合 Seq2Seq 和强化学习完成。ACL18 中,Zhang等人[14]在序列标注的基础上,使用 Seq2Seq 学习一个句子压缩模型,使用该模型来衡量选择句子的好坏,并结合强化学习完成模型训练。其模型 Latent 如图 2所示。
该方法的核心关注点是:摘要数据集往往没有对应的句子级别的标签,需要通过启发式规则获取,然而仅仅利用这些标签训练模型会丢失很多标准摘要中重要的信息。因此 Latent 模型不采用序列标注方法计算标签级别的损失来训练模型,而是将序列标注作为中间的步骤。在得到序列标注的概率分布之后,从中采样候选摘要集合,与标准摘要对比计算损失,可以更好地利用标准摘要中的信息。
图2 Latent 模型
之前的抽取式摘要往往建模句子级别的表示,忽略了关键词的作用。ACL18 中,Jadhav and Rajan等人[5]直接使用 Seq2Seq 模型来交替生成词语和句子的索引序列来完成抽取式摘要任务。其模型 SWAP-NET 在解码的每一步,计算一个 Switch 概率指示生成词语或者句子。最后解码出的是词语和句子的混合序列。最终摘要由产生的句子集合选出。除了考虑生成句子本身的概率之外,还需要考虑该句是否包含了生成的词语,如果包含,则得分高,最终选择 top k 句作为摘要。
抽取式摘要还可以建模为句子排序任务完成,与序列标注任务的不同点在于,序列标注对于每一个句子表示打一个 0、1 标签,而句子排序任务则是针对每个句子输出其是否是摘要句的概率,最终依据概率,选取 top k 个句子作为最终摘要。虽然任务建模方式(最终选取摘要方式)不同,但是其核心关注点都是对于句子表示的建模。
之前的模型都是在得到句子的表示以后对于句子进行打分,这就造成了打分与选择是分离的,先打分,后根据得分进行选择。没有利用到句子之间的关系。在 ACL18 中,Zhou 等人[15]提出了一种新的打分方式,使用句子受益作为打分方式,考虑到了句子之间的相互关系。其模型 NeuSUM 如图 3所示。
句子编码部分与之前基本相同。打分和抽取部分使用单向 GRU 和双层 MLP 完成。单向 GRU 用于记录过去抽取句子的情况,双层 MLP 用于打分。打分如下公式所示。
其中 r 代表 ROUGE 评价指标,
代表已经选择的句子集合,
代表候选句子,目标是使 得 g 越大越好,即选择最大化收益的句子。
图3 NeuSUM 模型
因此在打分和选择部分,逐步选择使得 g 最高的句子,直到无法满足该条件或者达到停止条件为止。集合 S 为最终摘要。
抽取式摘要在语法、句法上有一定的保证,但是也面临了一定的问题,例如:内容选择错误、连贯性差、灵活性差等问题。生成式摘要允许摘要中包含新的词语或短语,灵活性高,随着近几年神经网络模型的发展,序列到序列(Seq2Seq)模型被广泛的用于生成式摘要任务,并取得一定的成果。
仅使用 Seq2Seq 来完成生成式摘要存在如下问题:(1)未登录词问题(OOV),(2)生成重复。现在被广泛应用于生成式摘要的框架由 See 等人[13]在 ACL17 中提出,在基于注意力机制的 Seq2Seq 基础上增加了 Copy 和 Coverage 机制,有效的缓解了上述问题。其模型 pointer-generator 网络如图 4所示。
图4 Pointer-Generator 模型
其模型基本部分为基于注意力机制的 Seq2Seq 模型,使用每一步解码的隐层状态与编码器的隐层状态计算权重,最终得到 context 向量,利用 context 向量和解码器隐层状态计算输出概率。
利用 Copy 机制,需要在解码的每一步计算拷贝或生成的概率,因为词表是固定的,该机制可以选择从原文中拷贝词语到摘要中,有效的缓解了未登录词(OOV)的问题。
利用 Coverage 机制,需要在解码的每一步考虑之前步的 attention 权重,结合 coverage 损失, 避免继续考虑已经获得高权重的部分。该机制可以有效缓解生成重复的问题。
基于该框架可以做出一些改进,在 ICLR18 中,Paulus 等人[12],在该框架的基础上又使用解码器注意力机制结合强化学习来完成生成式摘要。
基于上述 Coverage 机制,在 EMNLP18 中,Li 等人[8]基于句子级别的注意力机制,使用句子级别的 Coverage 来使得不同的摘要句可以关注不同的原文,缓解了生成信息重复的问题。
除上述问题以外,基于 Seq2Seq 的模型往往对长文本生成不友好,对于摘要来说,更像是一种句子压缩,而不是一种摘要。因此在 ACL18 中,Cao 等人[1],使用真实摘要来指导文本摘要的生成。其核心想法在于:相似句子的摘要也具有一定相似度,将这些摘要作为软模板,作为外部知识进行辅助。其模型
Sum 一共包含 Retrieve、Rerank、Rewrite 三个部分。
Retrieve 部分主要检索相似句子,获得候选摘要。Rerank 部分用于排序候选模板,在训练集中,计算候选与真实摘要的 ROUGE 得分作为排序依据,在开发集与测试集中,使用神经网络计算得分作为排序依据。训练过程中,使得预测得分尽可能与真实得分一致。Rewrite 部分,结合候选模板与原文生成摘要。
除了将本身数据集的信息作为一种外部知识以外,在 ACL18 中,Guo 等人[3]将摘要生成作为主任务,问题生成、蕴含生成作为辅助任务进行多任务学习。问题生成任务需要根据给定的文本和答案生成问题,要求模型具有选择重要信息的能力,蕴含生成任务要求根据给定文本,有逻辑地推出输出文本,要求模型具有逻辑推理能力。在文本摘要中,定位原文中的关键信息是核心问题,根据原文生成摘要又要求模型具有一定的逻辑推理能力,使得生成的摘要与原文不违背,无矛盾。
在 AAAI18 中,Liu 等人[9]利用 SeqGAN[14] 的思想,利用生成模型 G 来生成摘要,利用判别模型 D 来区分真实摘要与生成摘要。使用强化学习的方法,更新参数。
抽取式、生成式摘要各有优点,为了结合两者的优点,一些方法也同时使用抽取结合生成的方法来完成摘要任务。
在生成式摘要中,生成过程往往缺少关键信息的控制和指导,例如 pointer-generator 网络在 copy 的过程中,无法很好地定位关键词语,因此一些方法首先提取关键内容,再进行摘要生成。
从直觉上来讲,摘要任务可以大致分为两步,首先选择重要内容,其次进行内容改写。在 EMNLP18 中,Gehrmann 等人[2]基于这种想法,提出了“Bottom Up”方式的摘要, 首先使用“content selector”选择关键信息,其次使用 pointer-generator 网络生成摘要。
内容选择部分建模为词语级别序列标注任务,该部分的训练数据通过将摘要对齐到文档,得到词语级别的标签。摘要生成部分使用 pointer-generator 网络,使用内容选择部分计算的概率修改原本 attention 概率,使得解码器仅关注选择的内容。
除了上述以序列标注方式来选择关键词的方法以外,在 NAACL18 中,Li 等人[6]使用 TextRank 算法获得关键词,之后使用神经网络获得关键词语的表示,并将该表示结合 pointergenerator 网络生成摘要。
上述方法从原文中选择重要的部分用来指导摘要的生成,显式地利用了文本级别的信息,在 EMNLP18 中,Li 等人[7],使用门控机制,从编码得到的向量表示中选择有用的信息用于之后的摘要生成,属于一种 Soft 方式。在使用层次化 encoder 得到句子级别的向量表示之后,使用门控机制,得到新的句子级别向量,表示从中选择有用信息。其模型 InfoSelection 如图 5所示。
图 5 InfoSelection 模型
在 ACL18 中,Hsu 等人[4]将抽取式模型的输出概率作为句子级别的 attention 权重, 用该权重来调整生成式模型中的词语级别的 attention 权重,如图 6所示,其核心想法为:当词语级别的 attention 权重高时,句子级别的 attention 权重也高。基于此想法提出了 Inconsistency 损失函数,使得模型输出的句子级别的权重和词语级别的权重尽量一致。在最终训练时,首先分别预训练抽取式和生成式模型,之后有两种方式来结合两个模型,Hard 方式:将抽取式模型抽出的关键句直接作为生成式模型的输入;Soft 方式:将抽取式模型的的输出概率用来调整词语级别的权重。
图6 权重调整过程
6、文本摘要的评价方法
首先可以是人工评价,这种方式就是人工去看摘要的结果和实际文章的内容是否比较好的对应,很费时费力但是评测的准确度也是比较高的,之前做lda相关项目的时候也有用到这种方法,不过要应用到实际的业务中去成本太高了。
这里介绍另一种自动评价的方式。目前来说,自动评价指标采用的是ROUGE,R是recall的意思,换句话说,这个指标基于摘要系统生成的摘要与参考摘要的n元短语重叠度:
ROUGE-Nrecall=∑S∈{Ref}∑n-gram∈SCountmatch(n-gram)∑S∈{Ref}∑n-gram∈SCount(n-gram)ROUGE-Nrecall=∑S∈{Ref}∑n-gram∈SCountmatch(n-gram)∑S∈{Ref}∑n-gram∈SCount(n-gram)
摘要这个任务要求用短序列概括长序列,用召回率这样的计算思路可以反映出人工给出的参考摘要所列出的要点中有多少被包含在了机器生成的摘要中。这个指标用来应付抽取式摘要可能问题不大,但是由于其无法评价所生成摘要的语法和语义,而且倾向于长摘要,所以其实还应该继续探索更合理的指标来评价理解式摘要。此外,当然也可以计算基于precision的ROUGE,而且ROUGE还有ROUGE-L等多种版本;最常使用的是ROUGE-N的N取2的方式(也就是ROUGE-2)。评测工具的链接是这里。
6、总结
文本摘要研究初期,以原文档中的词、句为基础,基于词频、句子位置等简单特征从文档中生成摘要。随后借助外部语义资源的方法(如词汇链、WordNet 语义字典)帮助选取关键词、关键句,从而生成相应摘要。接着出现图排序的方法,将文本单元中的各种关系映射到图论中的顶点与边的关系上,利用句子中词共现频率、句子相似度、语义关系等特征生成边权重,从而辅助判断找出句子重要性最高的若干个句子,较好地解决了结构较为松散且涉及主题较多的文本摘要生成的问题。之后,随着计算机性能的显著提升,基于统计机器学习的文本摘要方法兴起,朴素贝叶斯算法、隐马尔可夫算法、决策树算法等大量统计机器学习的算法接连应用于文本摘要领域,并在生成文本摘要方法的效果上取得一定的突破。当前最流行、效果最显著的是基于深度学习的生成文本摘要,基于深度学习的文本摘要方法很好地利用了计算机强大的性能对文档的局部以及上下文的多维特征同时学习,对特征进行编码向量化,使文档的上下文特征、句法特征、语义特征等多维特征转化为能够进行计算的向量特征,方便利用深层网络对其进行训练学习,在文本摘要质量上实现了许多最优的实验结果。
下面是对于从文本摘要诞生至今的各种摘要方法的总结以及优缺点: