基于注意力-拷贝机制的复杂文本摘要生成方法*
2021-12-01林锐涛程超鹏彭显刚林幕群林洪浩
林锐涛 程超鹏 林 峰 彭显刚 林幕群 林洪浩
(1.广东电网有限责任公司汕头供电局 汕头 515000)(2.广东工业大学自动化学院 广州 510006)
1 引言
当今互联网飞速发展,网络中海量复杂的文本信息喷涌而出。相比于短文本信息的获取,复杂文本有效信息的获取方式与现代社会的高效率要求形成了极大的反差。深度学习其强大的数据特征学习能力,在自然语言处理[1~4]、图像识别[5]、语音识别[6]等领域取得丰硕成果,成为当前的研究热点。在此基础上,基于深度学习的编码-解码模型成为目前针对海量复杂文本自动摘要[7]的主流算法。
该模型先将输入文本序列压缩到一个固定维度语义向量,该向量代表了对输入序列的记忆与理解,在解码阶段,利用语义向量一步一步生成目标序列,使很多seq2seq任务[8]得到很好的解决,但是也存在很大的局限性。模型将输入序列压缩成一个固定维度的语义向量,无法完整表达输入序列信息;同时,以RNN[9~10]编码为例,前面的序列信息会被后面的序列信息覆盖,编码后的语义向量可能只包含序列最后的输入,序列越长,问题越严重[11~12],并且模型的输出非常依赖对输入序列的编码。文献[13]利用编码-解码模型解决文本摘要问题,编码阶段借助CNN捕获文本特征,解码阶段使用RNN。编码阶段捕获输入文本关键信息,并将捕获到的关键信息提供给解码阶段,使生成的摘要能够大致涵盖原文本的关键信息。文献[14]利用RNN-RNN的编码-解码模型解决文本摘要问题,该模型在编码解码阶段均采用RNN,能够更好利用语序语义等信息,加强模型推理能力。但该模型对语义向量的依赖性非常强,语义向量在解码阶段只在起始阶段输入,在解码后期模型若出现语义信息的遗失,生成的摘要将会出现语义不全的情况。文献[15]在RNN-RNN编码-解码模型基础上增加了注意力机制,一定程度上减少了对文本长度的限制。但是过分关注局部信息,会造成对输入文本语义的整体把握的缺失,并且模型在解码阶段完全自主生成,对输入文本的记忆与理解提出了比较高的要求。
针对上述问题,本文提出了一种基于注意力-拷贝机制的复杂文本摘要方法。首先基于编码-解码模型,在编码阶段采用CNN[16]和LSTM[17~18]两种方式编码,能够高效捕获输入文本的全局特征、增强推理能力;在解码阶段采用LSTM对语言模型进行建模;并使用文本简化、批量归一化和计划采样对模型进行强化。解码阶段利用了全局语义向量、注意力局部语义向量、前一阶段字向量:每个阶段都使用全局语义向量进行运算运算,保证每阶段都能在整体语义的约束下输出;同时利用注意力机制[19~21]重点关注输入文本中不同信息,联合全局语义向量,在整体理解文本语义下,根据当前要生成的内容重点关注某些局部信息;最后利用拷贝机制[22]在解码阶段对分布概率进行计算,从而选择输出直接从输入序列复制或者自主生成。通过法律文书数据实验结果表明,在复杂文本环境下,本文提出的模型准确率较高,具备较强的命名实体识别与实体关系抽取、推理能力,适合复杂文本摘要的生成。
2 基于注意力-拷贝机制的复杂文本摘要生成方法
2.1 注意力机制
注意力机制主要思想是,在编码阶段,不直接使用编码阶段最后的语义向量,每阶段根据需要重点关注输入序列不同部分的信息,产生一个“注意力范围”表示接下来要重点关注输入序列的某些部分的信息。类于人类思维方式,以文本摘要为例,生成摘要文本不同内容时,也需要根据要输出的内容而关注输入文本不同部分的信息。
图1 是基于注意力机制的编码-解码翻译模型,x1,x2,x3,…,xT是输入序列,y1,y2,y3,…,yT是输出序列,h1,h2,h3,…,hT是输入序列RNN编码隐藏层状态序列,s1,s2,s3,…,sT是RNN解码隐藏层状态序列,st表示解码阶段t时刻的隐藏层状态。如式(1)所示,在形式上与普通的编码-解码模型相似,区别在于各阶段语义向量Ct不是固定的,而是根据当前需要“关注”输入序列不同部分信息而得到的,如式(2)所示,Ct是h1,h2,h3,…,hT的加权值。
图1 基于注意力机制的编码-解码模型
输入序列各个加权系数如下:
2.2 拷贝机制
目前,文本摘要的语义理解不需要模型完美理解输入文本的语义,只需掌握文本主旨即可。因此,在seq2seq任务中,引入拷贝机制后,输出阶段不再是模型完全自己生成,而是根据当前的需要,直接从输入序列复制或者自主生成。图2是基于拷贝机制的编码-解码文本生成模型图[23],编码与解码阶段都采用RNN编码。解码阶段的输出有两种模式,G模式与P模式。G模式表示直接生成当前词,P模式则产生指向输入文本某个输入的指针,并将该输入作为当前的输出同时提供给下阶段计算。
图2 基于拷贝机制的编码-解码模型
2.3 基于注意力-拷贝机制的编码-解码模型
图3 是本文所提出模型的架构图,基于编码-解码模型进行改进,通过编码对输入文本进行文本的记忆、推理、理解,并在解码阶段根据编码阶段掌握的信息生成摘要。在编码阶段采用CNN和LSTM两种方式的编码。CNN具备强大的特征捕获能力,可以高效捕获输入文本的全局特征。通过多层CNN编码,可以较好地理解文本语义,尽可能多地捕获到一些关键信息,为解码提供输入文本的整体的语义把握。解码阶段为每阶段的计算提供输入文本语义的整体理解以及约束。
图3 基于注意力-拷贝机制的编码-解码模型
式中,gc表示CNN编码后的全局语义向量。
模型利用了LSTM的推理能力对输入文本进行编码,引入注意力机制后,可以在解码阶段重点关注输入文本不同的信息;LSTM编码也能够为拷贝机制提供所需要的信息。
采用CNN编码与LSTM编码可以为解码提供全局与局部语义信息,CNN能够高效捕获输入原文本特征;LSTM对输入文本进行编码,利用注意力机制侧重关注重要输入,同时为解码提供某些复制信息的内容。采用LSTM对语言模型进行解码。利用全局语义变量进行运算,能够获取输入文本梗概信息并掌握对输入文本语义整体的理解,保证整体语义对输出的约束;利用注意力机制能够重点关注输入文本中不同信息,联合全局语义向量,可以在整体理解文本语义的基础上,根据当前要生成的内容重点关注某些局部信息;在人们的语言习惯中,说的字总是与前文相关,前文总是影响着后面的输出,当我们说了“广东工业大”,接下来的字就很有可能是“学”,语言模型中假设当前输出与历史输出是条件概率关系,利用前一阶段字向量能让模型更好地生成自然语言,LSTM利用了前文的状态信息,同样地,语言模型中也利用了前面的输出。即:
其中s1,s2,s3,s4,… 表示解码阶段输出的隐藏层状态,st-1表示解码前一阶段隐藏层状态,yt-1表示前一阶段输出字向量,gc表示CNN编码后的全局语义向量,ct表示解码阶段注意力机制下的局部语义向量。
引入拷贝机制后,解码的每个阶段都会计算两个概率分布,生成概率与拷贝概率,生成概率分布是一个字典大小的概率分布向量,向量的每一维的值代表生成对应字的概率;拷贝概率分布是一个输入文本长度的概率分布向量,向量中每一维的值代表拷贝输入文本中对应字的概率。将两个概率分布相加,得到当前输出的概率分布,采样概率最大的字,认为它是当前的输出。式(11)为生成模式,表示为t时刻生成vi的分数,W0表示被学习的参数;式(12)为拷贝模式,表示t时刻拷贝输入文本中xj的分数,Wc是被学习的参数。
模型的优化目标是最小化生成与标签的交叉熵,即最小化式(13)损失函数。x表示输入文本,T表示生成文本长度,D表示字典大小,y(t)是一个one-hot向量表示第t时刻的词,y(t)则表示第t时刻输出的概率分布。
2.4 模型强化
2.4.1 文本简化
在编码阶段LSTM的运算效率较低且对文本长度较为敏感,文本太长可能会造成重要信息的覆盖,影响编码效果;因此本文在LSTM编码阶段进行规则匹配文本简化,保留句子的相对顺序,抽取部分关键句子。利用文本简化,在保证提高LSTM编码速度的同时能够保留关键信息。虽然可能会造成LSTM编码部分信息的丢失,但由于本文对输入文本进行两次编码,LSTM编码阶段文本简化造成的部分信息可以从CNN编码得到补充。同时,文本简化后能够得到一段信息稠密的文本,有利于文本信息的有效挖掘。
2.4.2 批量归一化
批量归一化由Sergey Loffe与Christian Szegedy提出[24]。神经网络训练过程中,模型各层参数不断更新修改,对应层输出也不断更新修改,会导致后续各层输入的概率分布发生变化,因此每层的参数需要不断适应新的输入分布。为了减少训练时各层参数和输入概率分布的剧烈变化,必须降低学习率、同时优化初始参数;在深层神经网络中,在做非线性变换前输入的分布会发生偏移或变动,一般处于非线性变换函数取值区间两端,对于如sig⁃moid、tanh等非线性函数,这些地方函数的导数非常小,在反向传播时可能导致梯度消失,对于ReLU非线性函数,又会造成梯度爆炸。因此,深度神经网络很难训练,收敛很慢。
批量归一化的思想是,保持每层网络输入概率分布的相对稳定(0均值、单位方差分布),使得非线性函数导数处于一个合理状态,固定输入,使得对应层的网络参数训练得更快,达到加快训练速度的效果。本文在CNN编码阶段增加了批量归一化,对每个卷积核卷积结果增加批量归一化,使得每个卷积核卷积结果是一个0均值、单位方差的分布,能够加快训练效率。
2.4.3 计划采样
语言模型中,RNN的目标是最大化输出序列的似然概率。然而,在神经网络实际训练中,通常是在给定隐藏状态与前一时刻真实输出字符下,最大化当前字符的概率;而在测试过程中,由于没有输出标签,导致前一时刻字符不一定是正确的字符。若前一时刻字符预测错误,那么错误可能随RNN不断向后传播。因此,本文在解码阶段引入了计划采样方法[25],解决原本RNN训练与测试阶段行为不一致导致的测试时错误传播问题,增强模型自我纠错的能力。
计划采样解决了序列生成任务中由于训练与测试阶段行为不一致可能导致的测试错误传播问题。其主要思想是在训练时按概率提供前一时刻真实字符或者是RNN前一时刻输出,当RNN预测错误时,迫使RNN自己纠正错误避免错误不断向后传播,其原理如图4所示。
图4 计划采样
3 实验与评价
3.1 数据集
本文使用的中国裁判文书网法律文书数据集,包含200万的案例,每个案例中包含参加人、调查、审理过程、意见等全部或部分信息及判决结果,本文将样本分成三部分,150万样本的训练集,20万样本的验证集以及30万样本的测试集。
3.2 评估方法
本 文 采 用BLEU(Bilingual Evaluation under⁃study)评估方法,同时利用了CNN-LSTM、2CNNLSTM、CNN&LSTM-LSTM、Attention-based CNN&LSTM-LSTM等方法进行对比。BLEU方法由IBM提出,最初用于评估机器翻译质量。机器译文与人工译文越接近,其质量越高。因此,评估关键在于如何定义机器译文与人工译文的相似度。BLEU中采用的是比较并统计两个文本共现n元词(n-gram)的个数,即统计同时出现在机器译文与参考译文中n元词个数,最后把匹配到的n元词数目除以机器译文n元词数目,得到评估结果。
3.3 实验参数设置
本文将输入文本长度上限设置为1000,对于超过长度上限的输入文本,截取到长度上限,将文本长度上限设置为150,对于超长的文本,截取到文本长度上限。设置最大输出长度为200。本文设置的其他参数如表1所示。
表1 实验参数选择
4 实验结果及分析
4.1 实验结果
测试集的生成结果如图5~6所示,分别是寻衅滋事罪案例和非法拘禁罪案例,BLEU值如表2所示。
图5 寻衅滋事罪案例
表2 测试集BLEU值
4.2 验结果分析
由于本文实验数据集是法律判决,每个案例都只有一个判决结果,让专业的法律人士重新进行判决得到多个标准答案也不具可行性,因此本文在BLEU的评估中,每个样本都只有一个对比标准,这对本文实验方法的BLEU值有一定的影响,但本文提出的方法仍然取得0.71的BLEU值。
如图5、6所示,2CNN-LSTM比CNN-LSTM具有更高的BLEU值,CNN-LSTM在该非法拘禁罪案例中无法生成判决,而是生成一段重复无意义的话。CNN-LSTM与2CNN-LSTM对人名与罪名等关键信息的学习主要依赖于CNN的特征匹配能力,模型能够学习到人名、罪名,主要是因为在训练中匹配到相同或相似的特征,这种基于特征匹配的方法要求训练集中存在较多的样本,才能基于匹配关键信息学习到。CNN&LSTM-LSTM模型解码阶段的LSTM网络只能利用编码阶段提供最终的状态信息,模型对关键信息的学习主要还是基于CNN编码。因此CNN&LSTM-LSTM存在着与前两个模型相同的问题。从图6可以看出,该模型将非法拘禁罪案件认定成故意伤害罪,并且模型不断生成重复的语句,模型已经失去约束,LSTM编码信息只在解码第一阶段提供,可能到最后LSTM编码的信息已经被遗忘。因此,在解码阶段不能很好地约束生成。Attention-based CNN&LSTM-LSTM模型在寻衅滋事罪与非法拘禁罪两个案例上的表现不错,但BLEU评估值较低,由于模型生成阶段是完全自主生成,自主生成对于模型的记忆、理解能力提出很高的要求,在多被告人的情况下表现并不好,同时与上面几种模型相似,模型需要很多次训练之后才能较好地生成人名等信息。
图6 非法拘禁罪案例
从图5与图6的判决生成和表2BLEU值看,本文方法生成的判决与真实判决语义相似度比较高,特别是被告人、罪名认定等法律判决重要的关键信息,大部分能够正确生成,表明模型具有较强的自主判决能力与推理能力。本文模型生成关键信息主要是通过拷贝机制基于对语义的理解而决定是否复制而实现的。在训练中,本文模型只需要不到200个样本的样本就能很好地生成名字。同时,在测试中,由于解码阶段提供输入文本的整体语义理解与注意力机制下重点侧重信息,使得在输出某些特定信息时全局信息能够提供语义上的约束,不会生成偏离整体的判决。因此,本文模型出现误判的案例比较少,即使与真实判决有一些区别,也是细节信息如刑期、罚金等的不同,但在整体语义上保持大体一致。
5 结语
本文提出的基于注意力机制与拷贝机制的编码-解码抽象式文本摘要模型,与之前其他文本摘要方法相比,在编码阶段,提供了全局语义向量与注意力机制下的侧重性局部语义向量,保证了摘要生成在全局语义向量的约束下,既能表达输入文本的完整语义,又能利用注意力机制侧重关注和保留细节信息;同时本文将拷贝机制运用到了文本摘要中,模仿了人类的思维方式,降低了模型对语义记忆、理解的要求,通过实验中也验证了拷贝机制对于实体信息抽取的有效性。
本文也初步讨论、验证抽象式文本摘要在法律自动判决上的应用,从实验结果看出,自动判决系统能够为法官等法律人员提供客观性建议,减轻法官工作量,提供法院工作效率,也能为人们提供法律领域的预见性策略,指导人们在法治社会的行为。