欢迎光临散文网 会员登陆 & 注册

当深度学习偶遇自动文本摘要!

2020-03-14 19:25 作者:知书少年刚刚酱  | 我要投稿

本文作者

目录:

1.前沿

2.数据集

3.基本模型结构

4.OOV与Word-repetition问题

5.Beyond RNN

6.TRAINING STRATEGIES

7.SUMMARY GENERATION

8.BertSum

9.总结

一、前言

随着大数据时代的到来,信息量大幅度的增加,人们通过互联网会接触到大量的信息,包括新闻、博客、论坛等等。为了高效准确的获取关键信息,如何将大量文本的核心内容总结出来,已经成为了大家迫切的需求。所以像自动文本摘要技术、文本推理技术给我们提供了一种高效的解决方案。在NLP自然语言处理任务中,自动文本摘要技术也有着非常多的具体应用,如新闻标题摘要自动生成、文献报告自动生成、知识内容推理、搜索结果概述等,并同时为下游任务提供了必要的支持。

虽然自动文本摘要任务有着很大的前景,但是对于计算机来说,这项任务同样存在着很大的挑战。在产生摘要的过程中,既要求计算机能够准确的理解原文文本的内容,又能对其总结调整,最终生成流利可读的摘要。不过随着深度学习技术的不断发展,该问题也慢慢迎刃而解。从自动文本摘要任务发展来看,自动文本摘要分为两个重要的思路,分别是抽提式(extractive)文本摘要和生成式(abstractive)文本摘要。抽提式文本摘主要是通过不同方法找出文本中最为代表性的词语或者句子,将其拼在一起组成摘要内容。而生成式方法,是通过模型进行特征提取,最终像人类思考问题一样生成摘要结果,整个过程更加接近人类思考问题的方式。虽然在一些场景里,抽提式的效果会稍好于生成式,但随着深度学习不断的进步,生成式文本摘要成为了自动文本摘要问题中最值得持续研究和应用的方法。

本文主要介绍一些基于深度学习的自动文本摘要,大部分集中在基于Seq2Seq框架的生成式方法,最后也会介绍基于BERT预训练模型的抽提式方法。

二、数据集

在过去的几年中,CNN/Daily Mail数据集已经成为一个标准的基准数据集,用于评估不同摘要模型的性能,这些模型可以为相对较长的文档生成关键的摘要。所以大多数新的模型都会在该数据集上进行验证,该数据集的ROUGE分数也不断被刷新。

从该数据集中拿出一个训练样本可以看出,它的highlight是最终得到的文本摘要,sentences是原文文本。CNN/Daily Mail数据集由这样的超过30万篇新闻文章组成,每一篇文章都有几个highlight,最为最终的训练摘要样本。

三、基本模型结构

生成式文本摘要基于Seq2Seq框架,主要由编码器(Encoder)和解码器(Decoder)组成,通过编码器对数据的特征学习,得到一个中间量Content,同时作为解码器的一个输入,完成自然语言生成任务,生成最终的文本摘要。

随着Google在机器翻译问题中提出了Attention机制,生成文本摘要的效果也越来越好,该模型的主要思想是,在t时刻decoder过程中通过Attention weights的分布情况有倾向的关注encoder中的相关输入。如上图所示,在生成摘要的第二词时,通过图中注意力权重的分布可以看出,模型更加关注“需要”这个词的输入Embedding,以上就是典型的Encoder+Attention+Decoder结构流程。

四、OOV与Word-repetition问题

尽管基础模型结构看似是有希望解决生成式文本摘要的问题,但它们表现出了一些不太好的过程,例如不准确地再现原文细节,无法处理out-of-vocabulary words(未登录词)的问题,以及会生成重复的词语,也就是Word-repetition的问题。为了解决上述的两个问题,在《Get To The Point: Summarization with Pointer-Generator Networks》文中,作者提出了Pointer-Generator Networks网络,简称PGN。

如图所示,PGN模型提出一个系数Pgen,作为生成概率,它的取值范围在【0,1】之间,它的定义见下公式。在decoder的t时刻通过Pgen系数来控制最终的输出概论,最终输出词表概论分布由正常decoder的词表分布与注意力分布相叠加,因为此处考虑了注意力分布,所以我们可以在做数据集的时候将不在词表中的词单独加到一个OOV词表里,通过注意力分布选中这个词,以解决生成摘要时的OOV问题。

Word-repetition问题在Seq2Seq问题中十分常见,不管是在机器翻译问题中还是自动文本摘要问题中,在这里我们可以采用coverage机制来解决这个问题。coverage模型中存在一个c,它等于之前时间步所有注意力分布之和。

与基本结构方法相比,coverage vector作为一个额外的输入一并加入到score计算中,相对于基础结构在计算公式中多一项,如下式:

通过研究发现,加入coverage机制后有必要在Loss函数里加入惩罚,加的coverage loss见下公式:

通过这样的惩罚,能够有效的减少decoder生成词语过程中重复词语的出现。

五、Beyond RNN

为了持续改进自动生成文本摘要的结构,我们可以从网络结构下手,将传统的RNN系列网络替换成CNN、Transformer等结构,从不同角度提升整体模型的效果。Transformer特征提取器,作为最为流行的大规模预训练语言模型的基本结构单元,必然可以拿来一试效果。在《Transformers and Pointer-Generator Networks for Abstractive Summarization》中,作者将Transformer结构与PGN网络进行结合,与传统的PGN网络相同的地方是,Pgen依然与decoder生成的词表概论分布相乘,Pgen的计算公式同基本PGN网络计算公式相同,如:

这其中ht*是通过多层Encoder结构后得到的平均输出,st是Decoder结构中的隐层信息,xt是Decoder结构的输入Embedding。其他的步骤和传统PGN网络基本是一样的。由于Transformer结构的使用,计算就可以采用平行计算的方式,最大的发挥GPU的作用。

六、TRAINING STRATEGIES

在Encoder-Decoder结构训练过程中,我们往往会采用一些策略来加速训练收敛速度,一种比较常用的策略是Teacher Forcing,一般t时刻decoder的输入会采用上一步的预测输出,但是由于不准确的输出会带跑整个模型的节奏,造成模型收敛速度慢。但是Teacher Forcing是将前一步的真实标签作为t时刻decoder的输入,这样做的好处是让模型很快的学习到了训练集中的一些特征,不过往往事情都是有两面性的,如果一直将正确答案给到模型中,模型在验证集和测试集上的表现不会太理想,我对这个地方理解是模型的鲁棒性一般。

为了发挥Teacher Forcing的优点,并改掉它的缺点,可以采用scheduled sampling的方法。我们可以在t时刻decoder过程中以一定概率选取真实标签,将真实标签与预测结果融合作为decoder的输入,在前几步decoder过程中更多的加入真实的值以便模型快速的往收敛方向发展,在随后decoder过程中减少真实的标签,增大预测的结果,会使得模型的学习能力变得更强。这个选取概论P随着时刻t的变化而变化,一般有下图中集中变化方式。

七、SUMMARY GENERATION

为了改进生成效果,一般在推理的过程中会采用Beam Search的方法,Beam Search是对Greedy Search的一种改进,相对Greedy Search增加了搜索空间。Beam Search通过一个参数beam size来调整,假设这个值为m,在docoder的过程中每个时间步都会只选择出现概论最大的前m个结果,以此类推,在最后生成的结果中挑出最好的结果。

虽然Beam Search应用很广泛,但是这种搜索方式还是缺乏生成结果的多样性。换言之,如果采用Beam Search经常能在top-m摘要结果中可以看出相同的结果,摘要的前部分词语组成都比较接近,只是摘要序列尾部的一些词语会有所不同,这样不仅会影响生成的结果同时也会浪费计算资源。在此,我们可以通过Diverse Beam Search的方法来解决生成结果不够多样性的问题,这种方法的主要思想是,在每个t时刻生成文本时将每一个预测词复制几个,如果Beam Size设置为3,都复制两份,这样一轮预测下来,会有6个结果,在t+1时刻预测时应用t时刻的前两个结果,生成新的结果后将其传给后面的预测程序里,在此做一个惩罚,也就说预测过的词在下面的流程中减分,以此减少重复词语的出现,增加文本生成的多样性。

八、BertSum

Bidirectional Encoder Representations from Transformers(BERT)模型作为最火爆预训练模型已经席卷大多数NLP任务,但是基于BERT模型仅仅拿Transformer的Encoder编码器结构进行训练,导致BERT在自然语言生成NLG问题中很难崭露头尖。但最新的研究成果《Text Summarization with Pretrained Encoders》中指出一种基于BERT模型的抽提式文本摘要方法,通过抽提的方式解决BERT模型结构中没有Decoder结构的劣势。

该模型的原理在原有BERT模型的基础上做了一些改进,模型在输入层将文本原文按句子分开,句子与句子中间插入【SEP】和【CLS】输入,在Interval Segment Embeddings中将句子分别依次设置成EA和EB,最终训练整个模型,在output层拿到【CLS】的状态表征,再接上一层全连接层、RNN、甚至可以再加一层Transformer。通过这样的改进实现一个分类任务,如果一个句子是最终文本摘要的结果,那么这个句子输出标签为1,不是摘要输出为0,以此方法实现抽提式文本摘要的任务。

通过文中在CNN/Daily Mail数据集上的实验可以看出,BERTSUM模型在ROUGE分数上已经超过Seq2Seq基础的生成式文本摘要的结果。

九、总结

当深度学习偶遇自动文本摘要,不管是生成式摘要还是抽提式摘要,在模型的角度都有了很大的提升,通过一些策略的应用,能够有效的将研究落地到实际应用中,扩充了自动文本摘要的应用。


当深度学习偶遇自动文本摘要!的评论 (共 条)

分享到微博请遵守国家法律