本发明涉及摘要提取技术领域,具体涉及一种基于编码器-解码器的生成式摘要提取方法。
背景技术:
如今,网络上到处都充斥着不同种类的信息,如何从海量信息中提取出最关键最有效的信息成为非常重要的研究方向。文本摘要提取能够从单篇或多篇文档中自动生成关键摘要,帮助人们快速获取需要的信息。目前,摘要提取技术已经应用在文本相关的各个领域,主要是为了处理信息过载问题。例如,摘要提取技术可以自动提炼新闻标题,帮助人们在最短的时间内了解最有价值的新闻内容。
目前主流的文本摘要提取算法大致可以分为两种类型:抽取式摘要和生成式摘要。抽取式摘要思路比较简单,即根据一定的算法,从原文本中找到与原文本中心思想最一致的一个或几个句子组成摘要。抽取式摘要方法提取出的摘要质量以及流畅度都差强人意,但技术相对比较成熟,且算法简单,成本较低,因此仍具有巨大的研究价值。生成式摘要较为复杂,即计算机根据算法对原文本进行阅读和理解,并按照自己的方式生成流畅的摘要语句。相比于抽取式摘要,生成式摘要方法更接近人写摘要的过程。2014年,由谷歌公司的谷歌大脑团队提出的seq2seq模型,开启了自然语言处理领域中端到端网络的火热研究。
近年来,深度神经网络模型的出现极大地推动了机器学习的发展。深度学习方法可以从原始数据中自动抽取内在特征,避免了繁重的人工特征抽取过程,文本摘要提取也因为结合了深度神经网络模型而取得了更优的效果。其中,编码器-解码器框架频繁地应用于摘要提取、机器翻译、推荐系统等自然语言处理任务中。该框架可以有效处理序列转换问题,先将输入序列按照顺序进行输入编码,再根据编码向量按顺序解码出目标序列,解码过程中,还可以利用各种注意力机制,使得解码过程更优。
虽然现有很多模型中都引入了注意力机制,但都不是非常充分,如果能够在模型的解码部分更多地强调注意力机制的作用,同时又不舍弃模型本身的输出状态,而是将它们同时作为输出状态的一部分,将有可能获得更好的模型性能。
技术实现要素:
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于编码器-解码器的生成式摘要提取方法,将变分自编码嵌入到解码器中,并引入了复制的思想,使得摘要提取能够充分考虑注意力机制的作用,从而获得更好的摘要提取性能。
本发明的目的可以通过采取如下技术方案达到:
一种基于编码器-解码器的生成式摘要提取方法,所述的生成式摘要提取方法包括以下步骤:
s1、对于给定的摘要数据集,首先进行预处理过程,经预处理后得到短文本特征
s2、将短文本特征x按时序输入到编码器中,所述的编码器由单层双向gru网络构成,每个时刻的单层双向gru网络的输入对应短文本特征x中的一个向量,前向gru的输入顺序为从前往后,即从x1到
rt=σ(wxrxt+whrht-1+br)(1)
zt=σ(wxzxt+whzht-1+bz)(2)
gt=tanh(wxhxt+whh(rt*ht-1)+bh)(3)
ht=zt*ht-1+(1-zt)*gt(4)
其中,xt为输入,ht-1为上一时刻的隐藏层状态,ht为t时刻输出的隐藏层状态,wxr、whr、wxz、whz、wxh、whh为权重矩阵,br、bz、bh为偏置,rt为重置门,zt为更新门,gt为需要更新的信息,*为点乘运算,σ(·)为sigmoid激活函数,tanh(·)为tanh激活函数;
将短文本特征x通过编码器输出t时刻的前向隐藏层状态
其中,te为输入序列长度;
s3、对编码向量
其中,gru1(·)表示第一层解码器基本单元为gru网络,yt-1为上一时刻的解码输出,
s4、根据编码器的输出隐藏层状态
其中,
s5、通过解码器第二层单向gru网络进行解码,t时刻第二层单向gru网络的输入包括上一时刻本层gru输出的隐藏层状态
其中,gru2(·)表示第二层解码器基本单元为gru网络,yt-1为上一时刻的解码输出,
s6、通过解码器第三层进行变分自编码过程,其中,第三层是单向变分自编码网络,t时刻的变分自编码网络输入包括解码器第一层单向gru网络上一时刻输出的隐藏层状态
zt=μt+σt*ε(14)
其中,
s7、计算解码器的生成部分输出,t时刻的生成部分包括解码器第三层的变分自编码网络在t时刻输出的潜在结构信息zt和解码器第二层单向gru网络在t时刻输出的隐藏层状态
其中,
s8、接着计算概率开关pswitch,概率开关的输入包括t时刻得到的注意力向量ct和解码器第二层单向gru网络在t时刻输出的隐藏层状态
其中,σ(·)为sigmoid激活函数,
s9、计算解码器的输出,将解码器的生成部分和复制部分用概率开关pswitch进行加权求和,得到解码器t时刻的输出隐藏层状态h,表示为:
其中,
将解码器的输出隐藏层状态h映射为解码器的输出yt,解码器t时刻的输出为:
其中,
进一步地,所述的步骤s1中预处理的过程如下:
s11、将样本的短文本和目标摘要切分成单个的字;
s12、将短文本中的词去重后构建source字典,目标摘要中的词去重后构建target字典;
s13、将source字典和target字典中的词,生成固定维度的随机向量作为某个词的词向量;
s14、将每个短文本和目标摘要分别填充到对应的最大长度。
上述对短文本进行预处理是为了将短文本转变成计算机可以识别的向量,使其能够送入网络进行训练;对目标摘要进行预处理是为了能够将目标摘要转变成计算机可以识别的向量,使其能够与网络的解码输出一起计算出网络的优化目标,进而对网络进行训练。
进一步地,所述的网络的优化目标为:
其中,dkl[·]为kl散度,n为样本个数,t为输出序列长度,x为输入短文本序列,yt为t时刻的解码输出,y<t为t时刻之前的解码输出,zt为变分自编码网络在t时刻输出的潜在结构信息,z<t为变分自编码网络在t时刻之前输出的潜在结构信息,log[p(·)]为解码输出在t时刻的似然函数,
本发明相对于现有技术具有如下的优点及效果:
(1)本发明通过变分自编码网络,将生成式方法引入到本方法中,提高了输出目标摘要的准确率;
(2)本发明通过双层gru解码器,使变分自编码网络的引入成为了可能,增强了本发明与其他网络结合的可能性;
(3)本发明通过在输出中引入复制的思想,将输出分为复制和生成两部分,增强了编码器对于解码过程的作用,使输出结果更加精确;
附图说明
图1是本发明中编码器-解码器的生成式摘要提取结构框图;
图2是变分自编码结构图;
图3是gru基本结构图;
图4是lcsts数据集各部分分布图;
图5是预处理过程图;
图6是分词结果示例图;
图7是source字典示例图;
图8是source字典词向量示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1,图2,图3,图4,图5,图6,图7以及图8所示,为了方便描述本实施例,本实施例仅以lcsts数据集为例,说明本实施例。
本实施例公开了一种基于编码器-解码器的生成式摘要提取方法,包括以下步骤:
s1、对于给定的摘要数据集,首先进行预处理过程,经预处理后得到短文本特征
s2、首先是编码过程。将短文本特征x按时序输入到编码器中,本方法的编码器由单层双向gru网络构成,每个时刻的单层双向gru网络的输入都对应短文本特征x中的一个向量。单层双向gru网络中,前向gru的输入顺序为从前往后,即从x1到
rt=σ(wxrxt+whrht-1+br)(1)
zt=σ(wxzxt+whzht-1+bz)(2)
gt=tanh(wxhxt+whh(rt*ht-1)+bh)(3)
ht=zt*ht-1+(1-zt)*gt(4)
其中,xt为输入,ht-1为上一时刻的隐藏层状态,wxr、whr、wxz、whz、wxh、whh为权重矩阵,br、bz、bh为偏置,rt为重置门,zt为更新门,*为点乘运算,σ(·)为sigmoid激活函数,tanh(·)为tanh激活函数。
短文本特征x通过编码器输出t时刻的前向隐藏层状态
其中,te为输入序列长度;
s3、编码完成后,接着是解码,首先进行解码器第一层单向gru网络的解码过程。解码器第一层是单向gru网络,t时刻的单向gru网络输入包含两部分,即上一时刻本层单向gru网络输出的隐藏层状态
其中,gru1(·)表示解码器第一层基本单元为单向gru网络,yt-1为上一时刻的解码输出,
s4、接着根据编码器的输出隐藏层状态和解码器第一层单向gru网络的输出隐藏层状态计算注意力机制。即用给定步骤s2中输出的编码器隐藏层状态
其中,
s5、接着要进行解码器第二层单向gru网络的解码过程。解码器第二层也是单向gru网络,t时刻的gru输入包含三部分,即上一时刻本层单向gru网络输出的隐藏层状态
其中,gru2(·)表示第二层解码器基本单元为单向gru网络,yt-1为上一时刻的解码输出,
s6、接着要进行解码器第三层的变分自编码过程。本层是单向变分自编码网络,t时刻的变分自编码网络输入包括三部分,即步骤s3中解码器第一层gru上一时刻输出的隐藏层状态
zt=μt+σt*ε(14)
其中,
s7、接着要计算解码器的生成部分输出。t时刻的生成部分由两部分状态组成,即步骤s6中解码器第三层的变分自编码网络在t时刻输出的潜在结构信息zt和步骤s5中解码器第二层单向gru网络在t时刻输出的隐藏层状态
其中,
s8、计算概率开关pswitch。t时刻解码器的输出包含生成部分和复制部分。生成部分为步骤s7中得到的
概率开关pswitch的输入包括两部分,即步骤s4中t时刻得到的注意力向量ct和步骤s5中解码器第二层单向gru网络在t时刻输出的隐藏层状态
其中,σ(·)为sigmoid激活函数,
s9、计算解码器的输出。将解码器的生成部分和复制部分用概率开关pswitch进行加权求和,得到解码器t时刻的输出隐藏层状态h,使用公式表示为:
其中,
其中,
s10、计算整个网络的优化目标。本方法的最终优化目标为:
其中,dkl[·]为kl散度,n为样本个数,t为输出序列长度。
其中,步骤s1中预处理实施的具体过程为:
s11、如图6所示,对lcsts数据集进行分词,将文本和目标摘要变成单个的字体;
s12、如图7所示,将所有短文本中的词去重后构建source字典,所有目标摘要中的词去重后构建target字典;
s13、如图8所示,对source里的词,生成350维的随机向量作为某个词的词向量,词向量数据范围为-1到1,target字典进行同样操作;
s14、将短文本和目标摘要分别用“<pad>”填充到对应的最大长度120和25,然后将其作为特征输入到本方法的模型中。
综上所述,该方法基于含有注意力机制的编码器-解码器框架,引入了变分自编码网络和复制的思想。方法的编码器部分与常规编码器相同,所用基本单元为gru,解码器部分共有三层,第一层和第二层是gru解码层,用于确定性部分的输出,第三层是变分自编码层,用于潜在结构变量部分的输出,而注意力机制将会被引入到第二层gru中。在网络的输出部分,将复制部分和生成部分的隐藏层状态合为一体后映射为网络的输出。同时,在变分自编码层中增加了历史依赖项,使之能够适应时序网络。该方法充分利用了编码器隐藏层状态的信息,提高了输出准确率,具有更好的性能。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。