APP下载

融合序列语法知识的卷积-自注意力生成式摘要方法

2021-02-07罗森林王睿怡吴倩潘丽敏吴舟婷

北京理工大学学报 2021年1期
关键词:解码编码卷积

罗森林, 王睿怡, 吴倩, 潘丽敏, 吴舟婷

(1.北京理工大学 信息与电子学院,北京 100081;2.国家计算机网络应急技术处理协调中心,北京 100094)

自动摘要技术是将文本浓缩为简明、符合语法规则和保留原始文本重要信息的摘要,该技术能够帮助处理海量的信息、节省大量的时间和精力. 随着基于生成式语言模型的深度学习技术在分布式语义、语言模型、机器翻译等[1-2]任务上取得的一系列突破性成果,自动摘要技术领域的研究热点逐步从抽取式转移到生成式. 生成式摘要可以被看作是对原文本进行编码,再进行解码得到目标摘要的编码-解码任务. 因此,编码-解码模型可以应用于生成式摘要当中. 生成式摘要方法分为基于结构、基于语义和基于深度学习的方法.

基于结构的方法[3-7]是从文本中找到最重要的信息,使用模板、规则、树或本体等创建摘要. 基于语义的方法[8-9]是从文本中使用信息项、谓词-参数、语义图和多模态等创建文本的语义表示,并通过该表示生成摘要. 随着深度学习的发展,基于深度学习的编码-解码模型在生成式摘要上取得令人瞩目的进步,研究者开始尝试在编码-解码模型基础上进行各种改进方案以提升摘要的效果[10-13].

如今,注意力机制也已广泛用于编码-解码模型,例如在Bahdanau等[14]和Luong等[15]的工作中解码器利用注意力机制对编码器信息进行打分. 许多基于注意力机制的编码-解码模型已经被提出并用于生成式摘要任务中,如Rush等[16]、Chopra等[17]、Nallapati等[18]工作,均优于传统的统计学习方法.

针对生成的摘要存在语义和语法错误的问题,Chopra等[19]通过改进编码器和解码器的模型来学习训练语料中更多的语法规则和上下文信息;Nallapati等[20]将large vocabulary trick(LVT)技术引入到文本摘要问题中,通过更新词表来提高摘要的表达质量. 但是,需要注意的是,这些工作仅仅使用原文本语料进行训练,使得生成的摘要依赖于词汇的统计共现,某些语法结构在训练数据中没有频繁出现,则使模型很难学习到相应的语法规则.

目前大部分工作都使用循环神经网络作为编码器,但循环神经网络编码长文本时易遗忘历史信息且无法并行计算,从而导致无法捕获长文本的中心思想. 为了解决这个问题,Rush等[18]通过引入注意力机制使编码-解码模型能够获取到被遗忘但重要的信息; See等[21]引入指针网络来保证了原文中心思想;Li等[22]提出一个关键信息指导网络来提高摘要主旨的显著性. 虽然这些工作在一定程度上解决了长文本摘要中无法处理词表之外词汇、显著性的问题,但是由于这些工作主要使用了双向LSTM-单向LSTM的编码-解码框架,因此长文本编码速度慢的问题还未得到解决,以及无法捕获长文本中心思想的效果也有待进一步提高.

为了解决上述问题,本文提出了一种融合序列语法知识的卷积-自注意力生成式摘要方法. 该方法将语法结构信息加入到编码器中使生成的摘要更符合语法规则,使用卷积-自注意力模型取代循环神经网络进行文本编码. 其中,深度可分离卷积可以捕获文本的局部结构信息,自注意力模型则学习文本的全局交互信息,从而达到提高摘要的显著性和模型的编码速度的效果.

1 生成式摘要的方法

1.1 原理框架及短语结构树构建

图1为融合序列语法知识的卷积-自注意力生成式摘要方法的原理框架图.

首先对文本进行数据预处理以获得文本序列;其次利用Berkeley Parser工具(https:∥github.com/slavpetrov/berkeleyparser)对语料中的文本进行语法分析,以获得对应于每篇文本的语法结构树;接着使用深度优先遍历算法序列化短语结构树,得到包含有单词和语法标签的混合序列;使用卷积-自注意力对混合序列进行编码,编码过程经过向量初始化、位置编码层、卷积层、自注意力层和前馈层,得到混合文本表示矩阵,从中抽取单词向量序列组成文本表示矩阵;最后将文本表示矩阵输入到基于注意力机制和指针网络的单向LSTM中进行解码,得到摘要序列.

首先对文本进行去除杂乱符号、标点符号统一、将所有大写字母都替换成小写字母等文本清洗操作;再将文本分词,对于英文来说直接用空格进行分割.

句子的短语结构树是将句子分成组件,较大的组件由较小的组件组合得到. 图2是一个输入句子序列的例子,它的短语结构树如图3所示. Berkeley Parser[23]是由伯克利大学自然语言处理小组开发的开源语法解析器,支持的语种主要有英文、中文、法文等. Berkeley Parser是一个纯PCFG解析器,只能执行组件分析. 因此,首先使用Berkeley Parser对语料中的文本进行语法分析,得到每个文本对应的短语结构树.

图2 单词序列Fig.2 Word sequence

1.2 短语结构树序列化

直接构建一个带语法信息的模型不仅能够捕获和记录整个短语结构树的结构,而且能够区分任意两个不同词语的内容. 然而,直接构建这样一个带有语法结构信息的模型缺少一个有效的方法,可以使用一个可替代的方法——将短语结构树线性化成一个结构标签序列. 利用深度优先遍历算法,将短语结构树序列化,得到混合文本序列. 例如,图4就是利用深度优先遍历算法遍历图3后得到的混合文本序列,通过该序列可学到结构化的语法信息.

图4 混合文本序列Fig.4 Mixed text sequence

1.3 摘要生成

1.3.1编码器

在编码过程中,首先将混合文本序列进行向量初始化,得到混合文本向量序列;再对混合文本序列的位置进行向量表示得到位置向量,其中词向量和位置向量的维度设置相同,将两个向量相加,得到新的向量表示. 其中,位置向量是将向量中每个维度的值使用不同频率的正弦和余弦函数实现得到余弦向量和正弦向量的加和,正弦函数和余弦函数计算如式(1)和式(2)所示.

PE(pos,2i)=sin(pos/10 0002i/dmod)

(1)

PE(pos,2i+1)=cos(pos/10 0002i/dmod)

(2)

式中:pos表示位置;i表示维度. 波长组成几何级数从2π到1 000·2π. 相对位置,因为对于任何固定偏移k,PEpos+k可以表示为PEpos的线性函数.

将新的混合文本向量序列分别输入卷积层进行编码,得到混合文本卷积向量序列. 因为深度可分离卷积具有高效记忆和更好的泛化性,因此该方法使用深度可分离卷积来完成卷积层的功能,其中内核大小为7,过滤器数量为d=128,块内卷积层数量为4,卷积层模型如图5所示.

图5 卷积层模型图Fig.5 Convolutional layer model

卷积层由4个ConvStep组成,并且输入x与第2个和第4个ConvStep的输出之间有两个跳过连接. 卷积层计算如式(3)~(7)所示.

(3)

(4)

(5)

(6)

ConvModule(x)=

(7)

式中,每个ConvStep都由三部分组成:ReLU激活函数、深度可分离卷积其他和层规范化. 深度可分离卷积[24]包含逐深度卷积和逐点卷积. 逐深度卷积如式(8)所示,逐点卷积如式(9)所示,深度可分离卷积如式(10)所示,卷积步骤计算如式(11)所示.

(8)

(9)

SepConv(Wp,Wd,y)(i,j)=PointwiseConv(i,j)(Wp,

DepthwiseConv(Wd,y))

(10)

ConvStepd,s(W,x)=LN(SepConvd,s(W,ReLU(x)))

(11)

层规范化(layernormalization,LN)计算如式(12)(13)(14)所示.

(12)

(13)

(14)

其中,通过可训练参数G和B对x进行缩放和移位.

接着,将混合文本卷积向量序列输入到自注意力层进行编码,得到混合文本注意向量序列. 对于自注意力层,采用“多头”注意力模型,该模型如图6所示.

图6 “多头”注意力模型Fig.6 Multi-head attention model

输入的查询Q、键K和值V首先进行h次线性变换,其中每次线性变换的参数W是不一样的,分别输入到放缩点积注意力模型中,然后将放缩点积模型输出的解决进行拼接,再对拼接之后的值进行线性变换得到的值即为“多头”注意力模型输出的结果. “多头”注意力模型能够使用不同序列位置的不同子空间的表征信息来进行序列数据处理. 而在单一注意力模型中,不同位置不同子空间的表征信息由于取均值操作的存在,而将被模型丢失. 整个过程计算如式(15)、(16)和(17)所示.

(15)

(16)

MultiHead(Q,K,V)=Concat(head1,…,headh)WO

(17)

其中查询Q、键K和值V都是用相同的向量表示序列,将其代入式(12)、(13)和(14)中,可得到对应的注意向量序列.

混合文本注意向量序列经过前馈层,输出为混合文本表示向量序列,即混合文本表示矩阵. 然后从混合文本表示矩阵中抽取出单词向量序列,组成文本表示矩阵输入到解码器中.

1.3.2解码器

在解码过程中,使用一个结合注意力机制和指针网络的单层单向LSTM作为解码器,如图7所示.

图7 基于注意力机制和指针网络的单向LSTM解码模型图Fig.7 LSTM decoding model diagram based on attention mechanism and pointer network

图中的LSTM可以预测一个目标序列y={y1,y2…,yn}. 在一个LSTM隐层向量st、前一个预测词yt-1,和一个上下文向量ct的基础上,通过一个多层感知机预测目标词yt. 其中,ct是通过文本表示矩阵中的隐层向量序列(h1,h2…,hm)进行加权求和得到的. 其中,注意力概率分布的计算如式(18)和(19)所示为

(18)

at=softmax(et)

(19)

式中,v、Wh、Ws和battn为可训练学习的参数. 注意力概率分布是一个关注编码器中隐层向量对输出目标词的重要程度的概率分布,该概率分布的计算对解码器生成下一个目标词能起到重要的指导作用. 使用注意力概率分布对编码器隐层向量进行加权求和,得到上下文向量ct为

(20)

该上下文向量ct,可被看作一个经过编码器后对原文本语义信息的表示向量. 将上下文向量ct和解码器中隐层向量st拼接在一起,将合成的向量经过两次线性变换得到词表分布P词表,P词表计算如式(21)所示.

P词表=softmax(V′(V[st,ct]+b)+b′) (21)

式中:V、V′、b和b′都是可训练学习的参数;P词表是一个表示词表中所有词概率分布的函数. 根据上下文向量ct、解码器隐层向量st和解码器该时刻t的输入词yt-1(在训练过程中,指的是参考摘要的前一个词;在测试过程中,指的是解码器生成的前一个词)计算该时刻t的生成概率p生成∈[0,1] 如式(22)所示.

(22)

(23)

(24)

计算整个序列的全部损失值计算如式(25)所示.

(25)

2 实验分析

2.1 实验数据

使用CNN/DailyMail语料进行实验. 该语料最初是Hermann等[23]从CNN和DailyMail这两个网站中的新闻故事中收集人工总结的摘要构成的,其中包含在线新闻文章(平均791个单词)与摘要(平均62个单词),该语料已经广泛用于长文本生成式摘要任务. 实验使用了See等[19]提供的脚本进行同样的预处理操作来获得相同版本的数据,其训练集数据有287 226对,验证集数据有13 368对和测试集数据有11 490对.

2.2 评价方法

采用标准ROUGE[24]评价指标来评估模型.ROUGE评价方法通过计算生成摘要和参考摘要的单词重合度来区分生成摘要的质量. 本文具体使用pyrouge库(pypi.python.org/pypi/pyrouge/0.1.3)工具来计算ROUGE-1、ROUGE-2和ROUGE-L值来评价模型的效果. 其中,ROUGE-1基于uni-grams单词的共现程度进行统计;ROUGE-2基于bi-grams单词的共现程度进行统计,ROUGE-L基于参考摘要和要评估的摘要之间的最长公共序列的重叠程度进行统计.

2.3 对比分析实验

为了验证本文方法的有效性,建立两个对比方法的分析实验.abstractivemodel[18]是Nallapati于2016年提出的使用循环神经网络作为编码器和解码器、基于注意力机制的生成式摘要模型.pointer-generator是See等[19]于2017年提出的基于指针网络和注意力机制的生成式摘要模型,并作为本文的基线模型.pointer-generator+cnn+selfattention是本文提出的卷积-自注意力编码的生成式摘要模型. 该模型以不经过语法分析的原文本作为输入,直接输入到摘要生成模型中进行训练,模型的词向量维度设为128,隐层维度为256,卷积层数为4,内核大小为7,输入文本序列长度最大设为400,词表大小为50 000,批处理大小为16,单向LSTM隐层维度为128,优化算法为Adagrad,学习率为0.15,梯度裁剪的最大梯度范数为2,集束搜索大小为4,输出摘要序列最大长度为100,最小长度为20.pointer-generator+cnn+selfattention+mixedsyn是文本提出的融合序列语法知识的卷积-自注意力生成式摘要模型,该模型的输入文本序列(带有语法标签)长度最大设为1 200,其他参数与pointer-generator+cnn+selfattention模型一致.

使用测试集进行模型评估,摘要对比实验结果如表1所示.

表1 摘要对比实验结果

表1显示,pointer-generator+cnn+self attention和pointer-generator+cnn+self attention+mixed syn模型结果超过了pointer-generator模型. 其中,与pointer-generator相比,pointer-generator+cnn+self attention+mixed syn的ROUGE-1值提高了2.46、ROUGE-2值提高了0.95,ROUGE-L值提高了1.86. 这说明使用卷积-自注意力模型进行文本表示能够整体提升摘要质量. 将序列语法知识融入到卷积-自注意力编码模型中,能够使单词的向量表示学习到更多的语法结构信息,使得文本表示不仅包含上下文信息、还能包含更多的语法结构信息,从而进一步提升摘要的阅读质量. 同时,训练过程中模型平均迭代一次用时与对比模型相比加快4倍多,说明卷积-自注意力模型的并行计算可以提高模型的编码速度和训练时间效率,缓解模型训练长序列语料时间效率低的问题. 由于加入序列语法知识后,混合序列的长度增加,因此模型平均迭代一次用时也会稍微增加一些,但相比pointer-generator模型,时间效率还是提高不少.

2.4 实例分析实验

用具体样例来分析结果,如表2所示.

表2 摘要结果对比实例

由实例可以看出,提出的两种模型和基线模型基本都能准确地总结出文本的内容. 仔细观察参考摘要和三个模型生成摘要的内容发现,提出的模型概括性更强且能够准确地提炼出与参考摘要相符的连贯短语,比如在第一个例子中,pointer-generator+cnn+self attention+mixed syn能够提炼出“president obama”、“andress lubitz”和“entire nation into the rocks”,这几个短语也在参考摘要中出现. 在第二个例子中,pointer-generator+cnn+self attention能够提炼出同在参考摘要中出现的“be lefted”和“families are not interested in attending”,pointer-generator+cnn+self attention+mixed syn能提炼出同在参考摘要中出现的“the ban will be lifted for some events”. 而这些短语在pointer-generaotr中均未被提炼出来. 通过分析可以看出,pointer-generator+cnn+self attention模型中使用卷积-自注意力编码器,能够更好地学习文本的全局信息和局部信息,pointer-generator+cnn+self attention+mixed syn模型中加入序列语法知识能够给编码器在学习的过程中提供更多语法结构信息,从而提高摘要的语法质量,能够提炼出更多准确的短语结构信息.

3 结 论

针对基于编码-解码的生成式摘要模型不能充分提取语法知识导致摘要易不符合语法规则、循环神经网络易遗忘历史信息且训练时无法并行计算导致处理长文本时生成的摘要主旨不显著且编码速度慢,提出了一种融合序列语法知识的卷积-自注意力生成式摘要方法. 该方法使用卷积-自注意力模型来取代双向LSTM进行编码,并将语法知识以序列化的形式嵌入到编码模型当中,得到同时包含上下文信息和语法信息的文本表示矩阵,最后使用基于注意力机制和指针网络的单向LSTM进行解码生成摘要. 实验结果表明,在CNN/Daily Mail语料上进行实验,实验效果优于当前先进算法,其中ROUGE-1、ROOUGE-2和ROUGE-L值分别达到38.90、16.61和35.28,训练过程中平均一次迭代用时能达到0.92 s. 该方法使用卷积-自注意力模型进行文本表示和并行计算,通过卷积层学习文本的局部结构信息,自注意力层学习单词与单词之间的全局交互信息,同时将语法知识序列化嵌入到编码器中,使得在编码过程中能够充分利用语法结构信息,进一步使摘要更符合语法规则、突出了摘要的主旨以及提高了模型的编码速度.

猜你喜欢

解码编码卷积
基于全卷积神经网络的猪背膘厚快速准确测定
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
解码 四十五度仰望天空
文化解码
文化 解码