0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简述基于神经网络的抽取式摘要方法

电子工程师 来源:lp 2019-04-01 10:23 次阅读

1. 简介

随着互联网产生的文本数据越来越多,文本信息过载问题日益严重,对各类文本进行一个“降 维”处理显得非常必要,文本摘要便是其中一个重要的手段。文本摘要旨在将文本或文本集合转换为包含关键信息的简短摘要。文本摘要按照输入类型可分为单文档摘要和多文档摘要。单文档摘要从给定的一个文档中生成摘要,多文档摘要从给定的一组主题相关的文档中生成摘要。按照输出类型可分为抽取式摘要和生成式摘要。抽取式摘要从源文档中抽取关键句和关键词组成摘要,摘要全部来源于原文。生成式摘要根据原文,允许生成新的词语、短语来组成摘要。按照有无监督数据可以分为有监督摘要和无监督摘要。本文主要关注单文档、有监督、抽取式、生成式摘要。

2. 抽取式摘要

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

2.1 传统方法

2.1.1 Lead-3

一般来说,作者常常会在标题和文章开始就表明主题,因此最简单的方法就是抽取文章中的前几句作为摘要。常用的方法为 Lead-3,即抽取文章的前三句作为文章的摘要。Lead-3 方法虽然简单直接,但却是非常有效的方法。

2.1.2 TextRank

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

2.1.3 聚类

将文章中的句子视为一个点,按照聚类的方式完成摘要。例如 Padmakumar and Saran [11] 将文章中的句子使用 Skip thought vectors 和 Paragram embeddings 两种方式进行编码,得到句子级别的向量表示,再使用 K 均值聚类和 Mean-Shift 聚类进行句子聚类,得到 N 个类别。最后从每个类别中,选择距离质心最近的句子,得到 N 个句子,作为最终摘要。

2.2 序列标注方式

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

2.2.1 序列标注摘要基本框架

将文本摘要建模为序列标注任务的关键在于获得句子的表示,即将句子编码为一个向量,根据该向量进行二分类任务,例如 AAAI17 中,Nallapati 等人[10]的工作,使用双向 GRU 分别建模词语级别和句子级别的表示。其模型 SummaRuNNer 如图 1所示。蓝色部分为词语级别表示,红色部分为句子级别表示,对于每一个句子表示,有一个 0、1 标签输出,指示其是否是摘要。

图1 SummaRuNNer 模型

该模型的训练需要监督数据,现有数据集往往没有对应的句子级别的标签,因此需要通过启发式规则进行获取。具体方法为:首先选取原文中与标准摘要计算 ROUGE 得分最高的一句话加入候选集合,接着继续从原文中进行选择,保证选出的摘要集合 ROUGE 得分增加,直至无法满足该条件。得到的候选摘要集合对应的句子设为 1 标签,其余为 0 标签。

2.2.2 序列标注结合Seq2Seq

抽取式摘要还可以在序列标注的基础上结合 Seq2Seq 和强化学习完成。ACL18 中,Zhang等人[14]在序列标注的基础上,使用 Seq2Seq 学习一个句子压缩模型,使用该模型来衡量选择句子的好坏,并结合强化学习完成模型训练。其模型 Latent 如图 2所示。

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

图2Latent 模型

2.3 Seq2Seq方式

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

2.4 句子排序方式

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

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

之前的模型都是在得到句子的表示以后对于句子进行打分,这就造成了打分与选择是分离的,先打分,后根据得分进行选择。没有利用到句子之间的关系。在 ACL18 中,Zhou 等人[15]提出了一种新的打分方式,使用句子受益作为打分方式,考虑到了句子之间的相互关系。其模型 NeuSUM 如图 3所示。

句子编码部分与之前基本相同。打分和抽取部分使用单向 GRU 和双层 MLP 完成。单向 GRU 用于记录过去抽取句子的情况,双层 MLP 用于打分。打分如下公式所示。

其中 r 代表 ROUGE 评价指标,

图3 NeuSUM 模型

因此在打分和选择部分,逐步选择使得 g 最高的句子,直到无法满足该条件或者达到停止条件为止。集合 S 为最终摘要。

3. 生成式摘要

抽取式摘要在语法、句法上有一定的保证,但是也面临了一定的问题,例如:内容选择错误、连贯性差、灵活性差等问题。生成式摘要允许摘要中包含新的词语或短语,灵活性高,随着近几年神经网络模型的发展,序列到序列(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 来使得不同的摘要句可以关注不同的原文,缓解了生成信息重复的问题。

3.1 利用外部信息

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

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

3.2 多任务学习

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

3.3 生成对抗方式

在 AAAI18 中,Liu 等人[9]利用 SeqGAN[14] 的思想,利用生成模型 G 来生成摘要,利用判别模型 D 来区分真实摘要与生成摘要。使用强化学习的方法,更新参数

4. 抽取生成式摘要

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

在生成式摘要中,生成过程往往缺少关键信息的控制和指导,例如 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 权重调整过程

5. 数据集

常用的文本摘要数据集有 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 为中文短文本摘要数据集,由新浪微博构建得到。

6. 总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98884
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24366
  • 强化学习
    +关注

    关注

    4

    文章

    259

    浏览量

    11119

原文标题:工大SCIR | 文本摘要简述

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.1 MP模型  2.2 感知器模型  2.3
    发表于 03-20 11:32

    求助基于labview的神经网络pid控制

    小女子做基于labview的蒸发过程中液位的控制,想使用神经网络pid控制,请问这个控制方法可以吗?有谁会神经网络pid控制么。。。叩谢
    发表于 09-23 13:43

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    【案例分享】ART神经网络与SOM神经网络

    今天学习了两个神经网络,分别是自适应谐振(ART)神经网络与自组织映射(SOM)神经网络。整体感觉不是很难,只不过一些最基础的概念容易理解不清。首先ART神经网络是竞争学习的一个代表,
    发表于 07-21 04:30

    人工神经网络实现方法有哪些?

    人工神经网络(Artificial Neural Network,ANN)是一种类似生物神经网络的信息处理结构,它的提出是为了解决一些非线性,非平稳,复杂的实际问题。那有哪些办法能实现人工神经网络呢?
    发表于 08-01 08:06

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    基于BP神经网络的PID控制

    神经网络可以建立参数Kp,Ki,Kd自整定的PID控制器。基于BP神经网络的PID控制系统结构框图如下图所示:控制器由两部分组成:经典增量PID控制器;BP神经网络...
    发表于 09-07 07:43

    卷积神经网络一维卷积的处理过程

    以前的神经网络几乎都是部署在云端(服务器上),设备端采集到数据通过网络发送给服务器做inference(推理),结果再通过网络返回给设备端。如今越来越多的神经网络部署在嵌入
    发表于 12-23 06:16

    神经网络移植到STM32的方法

    神经网络移植到STM32最近在做的一个项目需要用到网络进行拟合,并且将拟合得到的结果用作控制,就在想能不能直接在单片机上做神经网络计算,这样就可以实时计算,不依赖于上位机。所以要解决的主要是两个
    发表于 01-11 06:20

    卷积神经网络模型发展及应用

    地介绍了卷积 神经网络的发展历史,然后分析了典型的卷积神经 网络模型通过堆叠结构、网中网结构、残差结构以及 注意力机制提升模型性能的方法,并进一步介绍了 特殊的卷积
    发表于 08-02 10:39

    优化神经网络训练方法有哪些?

    优化神经网络训练方法有哪些?
    发表于 09-06 09:52

    自适应模糊神经网络研究

    模糊神经网络提供了从人工神经网络中模糊规则的抽取。本文研究模糊神经网络的自适应学习、规则插入和抽取神经
    发表于 06-06 13:45 18次下载

    基于BP神经网络的小麦病害诊断知识获取

    为了从神经网络中获取易于理解的知识,以小麦病害诊断为例,研究了BP 神经网络的规则抽取,提出一种基于结构分析的BP 神经网络规则抽取
    发表于 07-30 09:18 13次下载

    基于HMM和小波神经网络混合模型的Web信息抽取_李少天

    基于HMM和小波神经网络混合模型的Web信息抽取_李少天
    发表于 03-19 11:38 0次下载

    神经网络原理简述—参数正则

    前面的一篇原理简述的文章中,给大家简单介绍了神经网络前(后)传播的有向图、反向传播的计算和更新。这篇文章跟大家简单讨论一下神经...
    发表于 02-07 11:33 3次下载
    <b class='flag-5'>神经网络</b>原理<b class='flag-5'>简述</b>—参数正则