基于文本结构和图卷积网络的生成式摘要
2021-04-29魏文杰王红玲王中卿
魏文杰,王红玲,王中卿
(苏州大学 计算机科学与技术学院,江苏 苏州 215006)
0 引言
在如今信息爆炸、互联网发展突飞猛进的时代,人们在网络上可以接触到各式各样的信息。为了快速从这些五花八门的信息中搜索到自己想要的内容,借助于摘要是个有效的方法。文本摘要通常被定义为“由单个或多个文本生成的,囊括了原文本重要信息的文本,且其长度不超过原文本的一半”[1]。然而在庞大的数据面前,人工生成摘要的方式显得力不从心,自动生成摘要的方法应运而生。
自动文摘[2]作为自然语言处理领域的一个重要研究方向,其通过对原文本进行压缩、提炼,生成简明扼要的语句,构成摘要提供给用户。从实现的方法上,自动文摘可分为:抽取式文摘(extractive summarization)[3]和生成式文摘(abstractive summarization)[4]。传统的自动文摘大多采用抽取式的方法,由于其算法简单、易于实现,且不存在句内逻辑错误而被广泛使用,但目前其发展已经遇到瓶颈。随着深度学习的热潮,基于神经网络的生成式文摘方法受到了更多的关注。相比于抽取式文摘,生成式文摘能从原文提取信息,生成更精确、简明的摘要,且不局限于原文本,可以利用文本以外的词生成摘要。
目前主流的生成式文摘通常采用基于编码器和解码器(encoder-decoder)框架[5]的学习模型。该模型一般以循环神经网络(recurrent neural network,RNN[6])作为编码器和解码器,该类网络主要学习序列化的线性语义表示,一般不涉及文本结构的学习。所谓的文本结构,通常是指文本内部的组织框架,部分或要素之间的关联方式。从语言学的角度来讲,文本结构包括文体、语体、风格与篇章结构。其中,目前利用计算机进行的研究主要针对篇章结构,其他的尚处在理论研究层面。对篇章结构的研究涉及到自然语言的另一个重要研究方向:篇章结构分析。篇章结构分析的目的是分析出篇章的层次结构和语义关系等,可认为是对文本结构的深层次分析。尽管篇章结构分析的理论研究较多,如Hobbs模型[7]、修辞结构理论[8]和宾州篇章树体系库[9]等,但相关的应用偏少,特别是针对中文的篇章结构分析应用更少。另外,本文的研究语料是普通的中文文本数据集,没有对文本进行段落划分和段落标题命名,也没有构建相应的篇章关系依存树,所以很难对其进行深层结构分析。因此,本文只研究文本的浅层结构,即简单的句间关系和词间关系,未来我们的研究将考虑文本的篇章结构。
从语言学的角度来讲,文本本身具有很强的结构性,特别是长文本具有较强的结构信息,而结构信息对于文本重要内容的判断同样具有重要意义。因此,如需学习文本的结构信息,仅使用循环神经网络是不够的,需要使用能够输入结构信息的神经网络模型,如图卷积网络(graph convolution network,GCN)[10]。
本文提出了一个基于文本结构和图卷积网络的生成式摘要模型,通过对文本的结构信息进行建模,在传统序列到序列模型的基础上做出以下改进:
(1)提出基于文本结构信息的编码器,其使用图卷积网络去编码文本的结构信息。在图卷积网络上还采用了层级的结构,不仅利用图卷积网络对文本的单字进行建模,还对文本的句子进行建模。
(2)提出一种规范融合层,其将文本的线性信息融入到目标端,旨在使模型获取文本结构信息的同时,仍然能关注到文本的线性信息。
(3)在解码端配备了多头注意力机制[11],以提高生成摘要的质量。
1 相关工作
近几年,随着深度学习的迅速发展,神经网络被广泛应用到各种自然语言处理任务中,如情感分析、机器翻译和自动文摘。其中,基于编码器和解码器框架的序列到序列(Seq2Seq,Sequence to Sequence)模型尤其受到研究者们的关注。所谓序列到序列,就是一种能够根据给定序列,通过特定的方法生成另外一个序列的算法。
Rush等[12]首次将编码器—解码器架构运用到文本摘要生成上,并利用上下文注意力前馈神经网络在解码端生成摘要,在自动摘要任务上取得了显著的效果。Gu等[13]在传统Seq2Seq模型的基础上提出CopyNet机制,以一定概率复制原文中的稀有词来解决词表中未能覆盖到的OOV词问题。Gulcehre等[14]也提出过类似的观点,运用一个选择门,控制单词是从原文生成还是从词表选择。而See等[15]首次将CopyNet运用到自动文摘任务中,用以解决OOV词问题,并命名该模型为Pointer-Generator Network,实验结果显示,该模型在自动文摘任务上取得了显著的效果。作为对传统模型的扩充,Cohan等[16]提出了分层编码器,即编码端具有层级结构,其将前一级神经网络的最后一个时间步的输出作为后一级神经网络的输入,旨在获取文本的层次结构信息。实验结果表明,Cohan等提出的分层解码器在长文本摘要的任务上取得了良好的效果,它弥补了RNN等循环神经网络不善于处理长文本序列的缺陷。
然而,现有方法很少去探索文本本身的结构性特点。早期的基于图模型的算法如PageRank[17],其基本思想就是探索句间的关系,融合文本的结构化信息到下游的NLP任务中。在PageRank算法的基础上,Mihalcea等[18]提出了TextRank算法,Erkan等[19]提出了LexPageRank算法,他们的思想都是将文本视作图,围绕句间关系或者字间关系来探索文本的结构化特征。Henaff 等[20]提出利用卷积神经网络去处理基于图结构的数据,并取得了很好的实验效果。在此基础上Kipf等[21]首次提出了一种专门处理图结构数据的图卷积神经网络GCN,并将其运用到半监督分类任务上。Schlichtkrull等[22]又将图卷积网络运用到关系预测和实体分类任务上,在实验中取得了显著效果。
本文受此启发,同样视文本为图,然后使用图卷积网络将文本结构信息运用到文本摘要生成上。同时,为保留文本的线性信息,本文提出了一种规范融合层,将文本的线性信息融入到目标序列中,使得模型在学习文本结构信息的同时,也能关注到文本的线性信息。
2 基于文本结构和图卷积网络的生成式摘要
本文提出的基于文本结构和图卷积网络的生成式摘要模型主要包括三个部分:①文本结构信息编码器; ②规范融合层; ③配备多头注意力机制的解码器。其中,文本结构信息编码器包括双向LSTM[23]和层级图卷积网络,其任务是将输入序列编码成包含文本结构信息的语义表征。规范融合层的任务是对序列做归一化处理,并融合线性语义表征和目标序列,使得模型能够关注到文本经过双向LSTM后得到的线性信息。解码器的任务则是通过语义表征生成摘要。
基于文本结构和图卷积网络的生成式摘要模型结构如图1所示。其中,输入词嵌入向量(input embedding)和输出词嵌入向量(output embedding)分别作为编码器和规范融合层的输入,均是经过嵌入层(embedding)矩阵(初始化是随机的)降维后得到的嵌入向量,即分布式表示(distributed representation)[24],其并没有经过预训练[25],也没有融入相对位置词嵌入向量(positional embedding)[11]。在编码端,输入词向量依次经过文本结构信息编码器中的Bi-LSTM和层级图卷积网络(hierarchical GCN),分别得到线性语义表征和具有文本结构信息的语义表征。这里需要注意的是,只有由Bi-LSTM得到的线性语义表征经过规范融合层与输出词向量进行规范融合,原因是为了使模型能够重新关注文本的线性化信息,而不仅仅只注意于文本的结构信息。如果这里用图卷积网络得到的结构信息语义表征进入规范融合层,则模型会过分注意于文本的结构信息,而忽略了文本原有的线性信息。在解码端,以融合了线性语义特征的目标序列作为输入,利用多头注意力机制对经由文本结构编码器得到的具有文本结构信息的语义表征进行注意力分布,然后通过线性全连接层(linear)和softmax函数得到最终的输出概率分布。
图1 基于文本结构和图卷积网络的生成式摘要模型结构
下文将首先讲述文本结构模型,然后再详细介绍文本结构信息编码器、规范融合层、配备多头注意力机制的解码器以及训练的方法。
2.1 文本结构模型
对于给定文本D,我们可以用单词序列Dx和句子序列Ds来表示,其中Dx=(x1,x2,…,xTx),Ds=(s1,s2,…,sTs),T表示序列长度。自动文摘任务的目标是通过给定输入文本D,生成简短、精确的摘要序列Y=(y1,y2,…,yTy)。
关于如何构建文本结构模型,我们以给定文本的单词序列Dx和句子序列Ds来举一个例子:对于单词序列Dx=(x1,x2,…,xTx),我们为其构建一个邻接矩阵Ax,Ax是一个TX(单词序列长度)阶的方阵,其中每一行代表某一个单词和其他所有单词的关系,0代表无关,1代表相关。以一个句子构成的文本为例,我们会考虑该句中的每个字都与自身相关,且与后一个字相关,即构建出的矩阵是一个三对角线矩阵(主对角线上元素和其相邻的两个对角线上元素均为1,其余元素都为0的矩阵)。然后将构建好的邻接矩阵Ax和单词序列Dx的语义表征通过图卷积网络进行学习。对于句子序列Ds=(s1,s2,…,sTs),我们为其中每个句子构建一个邻接矩阵As,其构建方式和单词序列的一致。然后将每句的语义表征和每句的邻接矩阵As通过各自的图卷积网络学习分别得到结果,随后将这些结果拼接再通过一个图卷积网络学习。最后拼接单词序列和句子序列图卷积网络学习的结果作为编码端最终的语义表征。
2.2 文本结构信息编码器
文本结构信息编码器的结构如图2所示,其主要由两部分组成:双向LSTM(BiLSTM)和层级图卷积网络。其中,层级图卷积网络模型由字级别图卷积网络和句级别图卷积网络组成。编码端选择LSTM和图卷积这两种网络是分别基于文本序列线性相关的特点和文本具有语义结构的特点。因此,此编码器能够更好地编码出包含文本结构的语义表征。其中,双向LSTM模型不作过多介绍,下文将从字级别图卷积网络和句级别图卷积网络这两个层次来介绍层级图卷积网络模型。
图2 文本结构信息编码器的结构
2.2.1 字级别图卷积网络
所谓字级别图卷积网络,实质是将图卷积网络运用到每一个字的表征上,构建一个大小为N阶(这里的N代表输入序列的长度)的邻接矩阵。依据图论可知,邻接矩阵代表了图中各节点的关系,在实际问题中,也就代表了文本序列中各个字之间的关系,那么如何构建好邻接矩阵就成了模型的重点。
从语言学的角度讲,在大多数情况下,前后句之间都存在着联系。前后句之间的关系可以是转折、递进、承接、因果、条件、目的等关系,这里无论它们是什么关系,我们都称它们是相关的。从此角度出发,我们考虑构建一个前后句相关的邻接矩阵,即前一句的最后一个词和后一句的第一个词之间是关联的,在邻接矩阵上只需在这两个位置都置1即可,如:前一句话的最后一个词在原序列中的位置为i,后一句话的第一个词在原序列中的位置为i+1,则Matrix[i,i+1]=1且Matrix[i+1,i]=1。另外,我们还考虑到每一个节点都和自身有关联,所以我们在上述构建的邻接矩阵上添加一个同阶的单位矩阵,即每个节点都有一条与自身相连的边。
2.2.2 句级别图卷积网络
所谓句级别图卷积网络,实质就是把原文本分成按句划分的文本,每句都放入一个图卷积网络中,并把它们的结果拼接在一起,再放入一个图卷积网络中并输出最终的结果。
与字级别图卷积网络类似,在句级别图卷积网络中,如何构建邻接矩阵成了关键。从语言学的角度上来讲,在绝大多数情况下,句内相邻的字之间存在逻辑关系,所以在构建每一句话的邻接矩阵时,我们都会将Matrix[i,i+1]和Matrix[i+1,i]置为1(其中的i从0遍历到句子序列的最大长度N)。同样,上述邻接矩阵也会加上一个同阶的单位矩阵以体现自相关的特性。之后,将每个句子经过图卷积网络得到的结果拼接在一起,作为整体放入另一个图卷积网络中。这么做的目的是为了进一步融入句间关系到模型中。因为上一步所做的只是运用到句内的逻辑关系,现在将其结果拼接作为一个图卷积网络的输入时,就可以构建一个能体现句间关系的邻接矩阵,从而将句间关系融入其中。在考虑如何构建能体现句间关系的邻接矩阵时,我们利用PageRank算法中初始化矩阵的方法,即利用句间相似度来为邻接矩阵赋值。所谓句间相似度,就是利用句子向量的点积来计算句子向量之间的夹角大小,其计算方法如式(1)所示。句子向量间的夹角越小,句间相似度就越高,即这两个句子就越相关。我们依据句子间的相似度来设置句间邻接矩阵,该矩阵不再如之前的邻接矩阵那样是0-1类型的矩阵,而是一个所有值都在0到1之间的小数类型的矩阵,并且图中的节点不再是字,而是句子。
(1)
最后将句级别图卷积网络和字级别图卷积网络得到的结果拼接在一起,得到编码端的最终语义表征。
2.3 规范融合层
规范融合层的功能主要为:规范和融合。所谓规范就是对数据进行归一化处理,强行把数据拉回到均值为0,方差为1的正态分布上。常用的归一化方法有(batch normalization,BN)[26]和layer normalization[27]。Batch normalization针对的是一个Batch的训练数据,而layer normalization针对的是一个层的训练数据。对于BN来说,其存在以下缺点:①对batch-size的大小特别敏感,由于每次计算均值和方差都是在一个batch上,如果batch-size太小,则计算的均值和方差不足以代表整个数据的分布。②BN在实际应用时需要计算并保存某一层神经网络在一个batch上的均值和方差等统计信息,对于一个固定深度的前向神经网络(CNN[28]、DNN[29])来说,使用BN很方便,但是对于RNN等循环神经网络,由于其处理的序列长度不一致,即神经网络的深度是不固定的,使用BN在计算时会相当麻烦。基于上述原因,我们选择了LN作为数据归一化的方法,其计算如式(2)、式(3)所示。
所谓融合,即是将LSTM输出的语义表征经过池化层后与目标序列结合在一起。这么做的原因是受到Transformer模型中残差网络的启发,由于在编码端最终得到的语义表征是基于图卷积网络的,考虑到模型输出的语义表征可能过多地关注文本的结构信息,而忽视了文本的线性信息,所以在这里,我们将LSTM提取到的文本的线性语义表征融合到目标序列中,其计算方法如式(4)所示。
Yi=yi*W1*hT+hT*W2
(4)
其中,yi为目标序列,W1和W2为可训练参数矩阵,hT为文本经过LSTM得到的语义表征。
2.4 配备多头注意力机制的解码器
多头注意力机制源自于Transformer模型。与传统注意力机制不同的是,多头注意力机制将原隐藏层向量拆分为N个同型向量,即将注意力分散到原向量的各个部分中去,这里的N一般称为头数,而且通常设置为6或者8。对于每一个头,都采用经过放缩点积的方式去计算Attention,其计算方法如式(5)所示。
(5)
Q,K,V先通过一个线性变换层,然后再输入到放缩点积层中,需要做N次,即N个头平行着进入上述层中。最后将N次缩放点积层得到的Attention拼接,再进行一次线性变换得到最终的分布结果,其计算方法如式(6)、式(7)所示。
2.5 训练与推理
给定输入序列x,模型使用随机梯度下降的方式进行训练,通过最小化生成摘要的损失函数来估计模型的参数。其损失函数如式(8)所示。
(8)
其中,θ是可训练的模型参数,Ty是生成的摘要序列的长度。
3 实验与评价
本节将详细介绍实验数据集、评价方法、对照实验和实验设置,其中实验设置包括文本预处理和超参数设置。然后对实验结果进行分析和总结。
3.1 实验数据集
本文选用的实验数据集为NLPCC2017 Shared Task3:Single Document Summarization评测任务提供的数据集TTNews[30]。该数据集中的语料均是新闻题材,其中50 000篇带有人工摘要的文本作为训练集,2 000篇带有人工摘要的文本作为测试集。TTNews数据集的文本统计信息如表1所示。
表1 TTNews数据集文本统计信息
3.2 评价方法
本文使用ROUGE(recall-oriented understudy for gisting evaluation)[31]作为生成式摘要的评价标准。由于人工评价具有成本高、耗时长和主观性强等缺点,Chin-Yew Lin于2004年提出了ROUGE评价准则。ROUGE是基于摘要中的n元词(n-gram)的共现信息来评价摘要,是一种面向n元词召回率的评价方法。其基本思想为:由多个专家分别生成人工摘要,构成标准摘要集。然后将系统生成的摘要与专家生成的标准摘要进行对比,通过统计二者之间重叠的基本单元(n元语法、词序列和词对)的数目,来评价生成摘要的质量。通过多个专家人工摘要的对比,提高评价系统的健壮性和稳定性。ROUGE评价方法现已经成为摘要评价技术的通用标准之一。
本文主要采用ROUGE评价标准中的ROUGE-2,ROUGE-4和ROUGE-SU4来评测实验的结果。此外我们还限制了生成摘要的长度,其最大值不超过原文本的10%,即100个字符左右。而据统计,我们的模型生成的摘要长度一般只在40个字符左右,接近于人工摘要的长度。
3.3 对照实验
为了评估本文所提出的模型在TTNews数据集上的实验效果,我们将对比在NLPCC2017 Shared Task3测评任务中提交的具有代表性的模型和一些在自动文摘上常用的模型。下文简要介绍需要对比的实验模型。
LEAD[30]:作为NLPCC2017 Shared Task3的基线模型,其直接选取文本开头的60个中文字符作为摘要。由于新闻题材文本的开头部分一般包含许多重要信息,所以选取前几句话作为摘要能大致覆盖到文本的主题,使得模型具有比较好的性能。
ccnuSYS[30]:生成式摘要模型,基于LSTM网络的编码器—解码器架构,并配备注意力机制的模型。其接收原文本作为输入序列,将摘要作为输出序列。
NLP_ONE[30]:生成式摘要模型,针对传统序列到序列框架外加注意力机制模型的不足,NLP_ONE模型提出了在输出序列上增加一个新的注意力机制去生成摘要,并采用subword的方法,其实验结果相对于基线模型LEAD,有显著的提升。
NLP_@WUST[30]:抽取式摘要模型,使用了基于特征工程的句子抽取式框架来生成摘要。在抽取出摘要之后,还添加了一个句子压缩算法以生成更精简的摘要。其实验结果相比于基线模型LEAD,有显著的提升。
PageRank[17]:抽取式摘要模型,该模型是基于图排序的算法,即将文本中每一句话都视为图中的一个节点,通过计算句间相似度的方式给句子打分,并通过迭代的方式使句间相似度矩阵趋于平稳,最后选择得分最高的几句作为生成的摘要句。
LSTM[23]:抽取式摘要模型,利用LSTM网络作为训练器,将训练好的神经元经过Dense层后得到一个二分类概率分布,最后选取概率最高的几句作为摘要句。
3.4 实验设置
3.4.1 文本预处理
在预处理时,本文利用正则表达式将文本中的图、公式和非法字符等均以“#”替换。我们舍弃了文本中篇幅过长或过短的,还舍弃了文本摘要过长或过短的。另外,由于硬件的原因,我们还限制了输入文本的最大长度为600个字符,文本如果超过了这个长度就会做截断处理,少于这个长度则会做填充处理。
3.4.2 超参数设置
本文采用的是Keras学习框架,并在NVIDIA 1080Ti GPU上进行实验。本文在实验中并没有限定字表的大小,因为在实验中发现限定字表到某一大小并不能提高实验性能。在模型反向传播方面,选取的是Keras内封装的默认设定参数Adam[32]优化器,learn-rate设置为0.001。其他参数设置如表2所示。
表2 实验参数设置表
3.5 实验结果和分析
首先,将本文提出的基于文本结构和图卷积网络的生成式摘要模型与之前所述的模型进行比较,然后,再分析模型中不同部分对于整体的贡献程度。最后,还将列举生成摘要的实际样例来对比和分析加入模型的各个部件后,各部分对生成的摘要质量的影响。
3.5.1 实验结果对比
实验结果对比如表3所示,其中HGNF(Hierarchical-GCN+Normalization&Fusion)为本文所提出的模型,其他的均为对照模型。
表3 TTNews数据集上实验结果对比
从表3可以看出,本文提出的基于文本结构和图卷积网络的生成式摘要模型的实验结果远好于其他所有对比模型,在各项ROUGE评测指标上都有显著提升。相比于对比实验中性能最好的模型NLP_ONE,我们的模型HGNF在ROUGE-2、ROUGE-4和ROUGE-SU4上分别提高了3.26,2.00和5.13个百分点。实验结果证实,我们提出的模型是有效的。
3.5.2 模型中各部分的贡献分析
为了探究模型中各部分对于整体的贡献,我们将模型分解成以下三类模型:
(1)基线模型:Baseline,其输入端仅使用了双向LSTM的编码器,输出端配备了多头注意力机制的解码器。
(2)文本结构模型GM(GCN model),即在基线模型的基础上,编码端使用了文本结构信息编码器的模型。
(3)在GM模型的基础上加了规范融合层,也就是本文所提出的HGNF模型。上述各模型在TTNews数据集上的实验结果如表4所示。
表4 不同部分模型的实验结果
对比表4中各部分在TTnews数据集上的实验结果可知,模型各部分对于模型的贡献程度是不同的。我们的Baseline模型在ROUGE各项评测上已经优于之前所有的对比模型,相比于对比模型中的第一名NLP_ONE,Baseline模型在ROUGE-2、ROUGE-4和ROUGE-SU4上分别提高了1.13,0.14和3.12个百分点,这说明配备了多头注意力机制的编码器的有效性。相比于Baseline模型,在编码端加入层级图卷积网络组成文本结构信息编码器的GM模型,其分别在ROUGE-2、ROUGE-4和ROUGE-SU4上提高了1.27、1.03和1.09个百分点,这说明使用图卷积网络去获取文本的结构信息是有效的,在编码端得到具有文本结构的语义表征是可以提升生成式摘要的质量。最后,本文提出的基于文本结构和图卷积网络的生成式摘要模型HGNF,相比于GM模型,HGNF在加入了规范融合层后,分别在ROUGE-2、ROUGE-4和ROUGE-SU4上提高了0.86,0.83和0.92个百分点,表明规范融合层是有效的。
3.5.3 各模型生成摘要的对比和分析
为了进一步评估生成摘要的质量,以下将从概括性(重要信息包含程度)和可读性(语言的逻辑性和文字的重复程度)两个方面,采用人工评价的方式对上述各个模型(Baseline、GM、HGNF)生成的摘要进行对比和分析。
对于给定的文本样例,各模型生成的摘要如图3所示。为了方便对生成的摘要进行对比和参照,原文本中的重要信息被加粗并用下划线标识;标准摘要同样被加粗并用斜体表示;而各模型生成的摘要包含了原文本重要信息的部分或是与标准摘要相近的部分,也会被加粗并由下划线标识。
图3 各模型生成摘要的对比图
从图3可以看出,对于该文本,Baseline模型生成的摘要存在以下三个问题:①摘要涵盖原文本的重要信息很少;②摘要句前后不是很连贯,语言逻辑性较差;③摘要中重复词较多。GM模型在Baseline模型的基础上添加了文本结构信息编码器后,其生成摘要明显涵盖了更多的重要信息。这证实了文本结构信息编码器能编码出具有文本结构信息的语义表征,从而使模型能够捕捉到原文本中的重要信息。相比于GM,HGNF模型在引入了规范融合层后,其生成的摘要的可读性明显提升,即重复词大大减少,而且语义逻辑更加连贯。这也证实了在加入规范融合层后,模型会重新关注文本的线性信息,使得生成的摘要更具线性逻辑性,可读性大大提升。
4 结束语
自动文摘作为自然语言处理领域一个重要的研究方向,其在近60年的持续性研究已在部分文摘任务上有了突破性的进展。本文提出的模型,针对传统的序列到序列的生成式摘要模型,做了以下的改进:使用图卷积神经网络在编码端融入文本的结构信息,并提出了一种规范融合层,旨在使模型关注文本结构信息的同时,也能关注到文本的线性信息。最后在解码端,使用多头注意力机制生成摘要。实验结果表明,该方法与传统的抽取式和生成式摘要模型相比,在ROUGE各项评测上有明显的提升,并且模型生成的摘要具有更好的概括性和可读性。接下来的工作中,我们将把研究重点放到英文语料的自动文摘任务中。除此之外,我们还将考虑融入篇章的关键词和修辞结构等信息来辅助摘要的生成。