自动生成文本摘要的相关知识点【入门篇】

前言

本文主要介绍与自动生成文本摘要相关的知识点。

背景

随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,对各类文本进行一个 降维处理,显得非常有必要,文本摘要便是其中的一个手段。 这个技能可以让机器为我们提取一篇文章(甚至是一本书)的重要信息。

这个技术最早是在气象领域中应用起来的,就是用一个固定的格式,把预测出来的数据套进去,后来在金融领域,医疗领域等,这样的工具可以很好的帮助从业人员节省一部分时间。

简单来说,该技术产生的背景就是我们目前处在信息爆炸时代,信息太多,人们筛选出自己想要的时间需要一定的时间。其实,所谓的背景,就是指在一个什么的条件或者环境下,产生了该技术。

动机

在这个信息爆炸的时代,人们从众多的信息中(例如,新闻)筛选出自己想要的信息,需要付出大量的时间,因此为了节省人们的时间,自动文本摘要技术由此产生。

简单来说,就是为了节省人们的时间。所谓的动机,一般考虑,方便了人们什么,为什么要产生这种技术。

文本摘要分类

文本摘要旨在将文本或者文本集合转换为包含关键信息的简短摘要。

按照输入类型

文本摘要按照输入类型可以分为单文档和多文档摘要。单文档摘要从给定的一个文档中生成摘要,多文档摘要从给定的一组主题相关的文档中生成摘要。

按照输出类型

文本摘要按照输出类型可分为抽取式摘要和生成式摘要。抽取式摘要从源文档中抽取关键句和关键词组成摘要,摘要文本全部来源于原文。 生成式摘要根据原文,允许生成新的词语、短语来组成摘要。

按照相关技术

文本摘要按照相关技术可以分为有监督摘要和无监督摘要。

抽取式摘要

抽取式方法从原文中选出关键词、关键句组成摘要。这种方法天然的在语法、句法上错误率低,保证了一定的效果。传统的抽取式摘要方法使用图方法、聚类等方式完成无监督摘要。目前流行的基于神经网络的抽取式摘要往往将问题建模为序列标注和句子排序两类任务。 下面首先介绍传统的抽取式摘要方法,接着简述基于神经网络的抽取式摘要方法。

传统的方法

Lead-3

一般来说,作者常常会在标题和文章的开始就表明主题,因此最简单的方法就是抽取文章中的前几句作为摘要。(有点启发式方法)。常用的方法为Lead-3,即抽取文章的前三句作为文章的摘要。Lead-3方法虽然简单直接,但是却非常有效的方法(当然,与要摘要的文本类型有很大的关系)。

TextRank

TextRank 算法仿照PageRank,将句子作为节点,使用句子间相似度构造无向有权边。使用边上的权值迭代更新节点值,最后选取N个得分高的节点作为摘要(本质上就是句子排序)。

聚类

将文章中的句子视为一个点,按照聚类的方式完成摘要。例如,将文章中的句子使用skip thought vectors和paragram embedding两种方式进行编码,得到句子级别的向量表示。再使用K-Means聚类等方法进行句子聚类,得到N个类别。最后从类别中,选择距离质心最近的句子,得到N个聚类,作为最终的摘要。

序列式标注方法

抽取式摘要可以建模为序列标注任务进行处理,其核心的想法是:为原文中的每一个句子打一个二分类标签(0或者1),0代表该句不属于摘要,1代表该句属于摘要。最终摘要由所有标签为1的句子构成。

序列标注摘要基本框架

将文本摘要建模为序列标注任务的关键在于获得句子的表示,即将句子编码为一个向量,根据该向量进行二分类任务。 例如,AAAI 2017, Nallapati等人,使用双向GRU分别建模词语级别和句子级别的表示。其模型SummaRuNNer如图下所示。蓝色部分为词语级别表示,红色部分为句子级别表示,对于每一个句子表示,有一个0、1标签输出,指示其是否是摘要。
SummaRuNNer
该模型的训练需要监督数据,现有数据集往往没有对应的句子级别的标签,因此需要通过启发式规则进行获取。具体方法为:首选选取原文中与标准摘要计算ROUGE得分最高的一句话加入候选集合,接着继续从原文中进行选择,保证选出的摘要集合ROUGE 得分增加,直至无法满足该条件。得到的候选摘要集合对应的句子设为1标签,其余为0标签。

序列标注集合结合Seq2Seq

抽取式摘要还可以再序列标注的基础上结合Seq2seq和强化学习完成。ACL 18中 Zhang等人在序列标注的基础上,使用 Seq2seq学习一个句子压缩模型,使用该模型来衡量选择句子的好坏,并结合强化学习完成模型的训练。其模型(Latent)如下所示:
在这里插入图片描述

该方法的核心关注点是:摘要数据集往往没有对应的句子级别的标签,通常需要通过启发式规则来获取,然而仅仅利用这些标签训练模型会丢失很多标准摘要中重要的信息。因此Latent模型不采用序列标注方法计算标签级别的损失来训练模型,而是将序列标注作为中间的步骤。在得到序列标注的概率分布之后,从中采样候选摘要集合,与标注摘要对比计算损失,可以更好的利用标准摘要中的信息。

Seq2seq方式

之前的抽取式摘要往往建模句子级别的表示,忽略了关键词的作用。 ACL18中,Jadhav等人直接使用Seq2seq模型来交替生成词语和句子的索引序列来完成抽取式摘要任务。其模型SWIP-NET在解码的每一步,计算一个Switch概率,指示生成词语或者句子。最后解码出的是词语和句子的混合序列。最终摘要由产生的句子集合选出。除了考虑生成句子本身的概率之外,还需要考虑该句子是否包含了生成的词语,如果包含,则得分高,最终选择Topk句作为摘要。

句子排序方式

抽取式摘要还可以建模为句子排序任务完成,与序列标注任务的不同点在于,序列标注对于每一个句子表示打一个0、1标签,而句子排序任务则是针对每个句子输出其是否是摘要句的概率,最终依据概率,选取top k个句子作为最终的摘要。虽然任务建模方式不同,但是其核心关注点都是对于句子表示的建模。

句子排序结合新的打分方式

之前的模型都是在得到句子的表示之后对于句子进行打分,这就造成了打分与选择是分离的,先打分,后根据打分进行选择。没有利用句子之间的关系。 在ACL 18中,Zh ou等人提出了一种新的打分方式,使用句子受益作为打分方式,考虑了句子之间的相互关系,其模型NeuSUM如下图所示,在这里插入图片描述
句子编码部分与之前的基本相同。打分和抽取部分使用了单向GRU和双层MLP完成。单向GRU用于记录过去抽取句子的情况,双层MLP用于打分。打分如下公式所示。
g ( S t ∣ S t − 1 ) = r ( S t − 1 ∪ S t ) − r ( s t − 1 ) g(S_{t}|S_{t-1})=r(S_{t-1} \cup S_{t})-r(s_{t-1}) g(StSt1)=r(St1St)r(st1)

其中 r r r代表ROUGE评价指标, S t − 1 S_{t-1} St1代表已经选择的句子集合, S t S_{t} St代笔候选句子,目标是使得 g g g越大越好,即选择最大化收益的句子。因此在打分和选择部分,逐步选择使得g最高的句子,直到无法满足该条件或者达到停止条件为止,集合S为最终摘要。

生成式摘要

抽取式摘要在语法、句法上有一定的保证,但是也面临了一定的问题,例如,内容选择错误、连贯性差、灵活性差等问题。 生成式摘要允许摘要中包含新的词语或者短语,灵活性高,随着近几年神经网络模型的发展,序列到序列(seq2seq)模型被广泛的用于生成式摘要任务中,并取得一定的成果。

仅使用seq2seq来完成生成式摘要存在如下问题:(1)未登陆词问题(OOV),(2)生成重复。现在被广泛应用于生成式摘要的框架由See等人在ACL 17中提出,在给予注意力机制的seq2seq基础上增加了copy和coverage机制,有效的缓解了上述问题。其模型pointer-generator网络如下所示:
在这里插入图片描述
其模型基本部分为基于注意力机制的seq2seq模型,使用每一步解码的隐层状态与编码器隐层状态计算权重,最终得到context向量,利用context向量和解码器隐层状态计算输出概率。

利用copy机制,需要在解码的每一步计算拷贝或者生成的概率,因为词表是固定的,该机制可以选择从原文中拷贝词语到摘要中,有效缓解了未登陆词(OOV)的问题。

利用coverage机制,需要在解码的每一步考虑之前步的attention权重,结合coverage损失,避免继续考虑已经获得最高权重的部分。该机制可以有效缓解生成重复的问题。

基于该框架可以做出一些改进,在ICLR 18中,Paulus等人,在该框架的基础上又使用了解码器注意力机制结合强化学习来完成生成式摘要。

基于上述coverage机制,在EMNLP 18 中,Li等人基于句子级别的注意力机制,使用句子级别的coverage来使得不同的摘要句可以关注不同的原文,缓解了生成信息重复的问题。

利用外部信息

除上述问题以外,基于seq2seq的模型往往对长文本生成不友好,对于摘要来说,更像是一种句子压缩,而不是一种摘要。因此在ACL 18中, C ao等人,使用真实摘要来指导文本摘要的生成。其核心想法在于:相似句子的摘要也具有一定的相似度,将这些摘要作为软模板,作为外部知识进行辅助。其模型一共包含Retrieve、Rerank、Rewrite三个部分。

Rewrite部分主要检索相似句子,获得候选摘要。Rerank部分用于排序候选模板,在训练集中,计算候选与真实摘要的ROUGE得分作为排序依据,在开发集中,使用神经网络计算得分作为排序依据。训练过程中,使得预测得分尽可能与真实得分一致。Rewrite部分,结合候选模板与原文生成摘要。

多任务学习

除了将本身数据集的信息作为一种外部知识以外,在ACL 18中Gu o等人将摘要生成作为主任务,问题生成、蕴含生成作为辅助任务进行多任务学习。问题生成任务需要根据给定的文本和答案生成问题,要求模型具有选择重要信息的能力,蕴含生成任务要求根据给定文本,有逻辑地推出输出文本,要求模型具有逻辑推理能力,在文本摘要中,定位原文中的关键信息是核心问题,根据原文生成摘要又要求模型具有一定的逻辑推理能力,使得生成的摘要与原文不违背,无矛盾。

生成对抗的方式

在AAAI 18中, Liu等人利用S eqGAN的思想,利用生成模型G 来生成摘要,利用判断模型D来区分真实摘要与生成摘要。使用强化学习的方法,更新参数。

抽取生成式摘要

抽取式、生成式摘要各有优点,为了结合两者的优点,一些方法也同时使用抽取结合生成的方法来完成摘要任务。即,joint extractive and abstractive summarization。

在生成式摘要中,生成过程往往缺少关键信息的控制和指导,例如pointer-generator网络在copy的过程中,无法很好的定位关键短语,因此一些方法首选提取关键内容,再进行摘要生成。

从直觉上来讲,摘要任务可以大致分为两步,首选选择重要内容,其次进行内容改写。在EMNLP 18中,G e h r man等人基于这种想法,提出了“Bottom Up”方式的摘要,首选使用‘content selector’选择关键信息,其次使用pointer-generator网络生成摘要。

内容选择部分建模为词语几杯序列标注任务,该部分的训练数据通过将摘要对齐到文档,得到词语级别的标签。摘要生成部分使用pointer-generator网络,使用内容选择部分计算的概率修改原本attention概率,使得解码仅关注选择的内容。

除了上述序列标注方式选择关键词的方法外,在NAACL 18中,Li等人使用TextRank算法获得关键词,之后使用神经网络获得关键词语的表示,并将该表示结合pointer-generator网络生成摘要。

上述方法从原文中选择重要的部分用来指导摘要的生成,显式地利用了文本级别的信息,在 EMNLP18 中,Li 等人[7],使用门控机制,从编码得到的向量表示中选择有用的信息用于之后的摘要生成,属于一种 Soft 方式。在使用层次化 encoder 得到句子级别的向量表示之后,使用门控机制,得到新的句子级别向量,表示从中选择有用信息。其模型 如下图 所示。
在这里插入图片描述

在 ACL18 中,Hsu 等人[4]将抽取式模型的输出概率作为句子级别的 attention 权重, 用该权重来调整生成式模型中的词语级别的 attention 权重,如下图所示,其核心想法为:当词语级别的 attention 权重高时,句子级别的 attention 权重也高。基于此想法提出了 Inconsistency 损失函数,使得模型输出的句子级别的权重和词语级别的权重尽量一致。在最终训练时,首先分别预训练抽取式和生成式模型,之后有两种方式来结合两个模型,Hard 方式:将抽取式模型抽出的关键句直接作为生成式模型的输入;Soft 方式:将抽取式模型的的输出概率用来调整词语级别的权重。

在这里插入图片描述

数据集

常用的文本摘要数据集有 DUC 数据集、New York Times 数据集、CNN/Daily Mail 数据集、 Gigaword 数据集、LCSTS 数据集。

由于 DUC 数据集规模较小,因此神经网络模型往往在其他数据集上进行训练,再在 DUC 数据集上进行测试。

NYT 数据集包含了发表于 1996 至 2007 年期间的文章,摘要由专家编写而成。该数据集的摘要有时候不是完整的句子,并且长度较短,大约平均 40 个词语。

目前广泛使用的是 CNN/Daily Mail 数据集,属于多句摘要数据集,常用于训练“生成式”摘要系统。该数据集一共有两个版本,匿名(Anonymized)版本和未匿名(Non-anonymized)版本,未匿名版本包括了真实的实体名(Entity names),匿名版本将实体使用特定的索引进行替换。

Gigaword 数据集摘要由文章第一句话和题目结合启发式规则构成。

LCSTS 为中文短文本摘要数据集,由新浪微博构建得到。

总结

文本摘要作为传统的自然语言处理任务,至今依旧有新的发展和创新,这一方面得益于模型、方法、语料的支撑,另一方面也是由于摘要任务自身的重要性。摘要生成作为文本生成的一种,除了有着重复、冗余、不连贯、生成较短等问题,还有着摘要任务特定的问题,其中最核心的为:如何确定关键信息。当下的文本摘要更关注“什么是真正的摘要”,而不仅仅是简单地句子压缩。利用外部知识,利用关键词信息等方式来更好的辅助摘要的生成。各个摘要模型各有优点,在实验结果上各有优势。因此在考虑评价指标的同时,更应该关注问题本身,才能使得方法更具有普适性,更好的满足真实需要。

毫无疑问,文本摘要最核心的问题是确定关键信息,在生成摘要的时候,要将这些关键信息融入进去,同时要尽量避免出现重复、可读性差、这些问题。 关于文本摘要未来的方向,可以考虑从以下几个方面入手:

  • 能不能使用更少的数据进行学习,或者是研究一下无监督型的摘要;
  • 现在的数据集大多集中在新闻领域,在这上面训练好的模型应用到其他领域的话效果并不好,即模型的适应性不够好;
  • 能不能尝试设计新的评价指标,更好地自动评估摘要的质量;

一些参考资料

文本摘要简述
文本摘要简述2
本文内容大部分来自于这两篇文章,文章提到的一些方法,都可以在这两篇文章中找到,并有对应的paper信息。

  • 5
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱科研的徐博士

请各位看官赏赐,小仙女笔芯笔芯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值