CN113033189B - 一种基于注意力分散的长短期记忆网络的语义编码方法 - Google Patents
一种基于注意力分散的长短期记忆网络的语义编码方法 Download PDFInfo
- Publication number
- CN113033189B CN113033189B CN202110375326.2A CN202110375326A CN113033189B CN 113033189 B CN113033189 B CN 113033189B CN 202110375326 A CN202110375326 A CN 202110375326A CN 113033189 B CN113033189 B CN 113033189B
- Authority
- CN
- China
- Prior art keywords
- formula
- lstm
- output
- parameter
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/258—Heading extraction; Automatic titling; Numbering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本发明公开的一种基于注意力分散的长短期记忆网络的语义编码方法,属于自然语言处理生成领域。针对现有技术中存在的语义偏差、梯度消失、梯度爆炸、融合上下文信息不完善等问题,本发明使用的神经网络在BiLSTM基础上添加了一个参数共享单元,增强了模型获取和融合双向特征信息的能力;采用改进了的深度学习模型中的激活函数,减小了梯度问题出现的概率;对输入和隐藏层,采用交互空间和扩展LSTM的方式构建模型,增强了模型融合上下文信息的能力;引入了语句结构信息变量的注意力分散机制,对语义的生成进行了限制从而提了高语义准确性。本发明适用于自动写新闻或标题、机器人客服、会议或诊断报告生成等自然语言生成的应用。
Description
技术领域
本发明涉及一种基于注意力分散的长短期记忆网络的语义编码方法,属于自然语言处理生成领域。
背景技术
自然语言生成主要应用在人机对话以及摘要、图片视频描述等领域,是自动写新闻或标题、机器人客服、会议或诊断报告生成等应用的核心技术。而其中语义的正确性是生成语言的关键所在。
自然语言生成多采用编码到解码的序列转换形式,将一序列信息转换成另一对应的序列文本。层级编码的过程分为句子语义编码、篇章信息编码、解码、句子概率计算4个步骤。文本生成步骤中,句子语义编码是自然语言生成的底层的基础步骤,其目的是为得到句子的特征向量。句子语义编码时,语义的获取能力和正确性,对自然语言的生成有着重要的作用。
自然语言中最重要的信息是语义信息,语义包含着近义词,同义词,句子的结构主题等信息,语义的正确性决定着自然语言处理效果的好坏。目前随着计算机技术的发展以及语言数据库的完善,利用机器学习和神经网络可以生成语义较为准确的自然语言。但是由于训练神经网络的资源贫乏和训练学习机制的不完善,所以生成的自然语言在语义上仍存在错误和偏差。
目前技术中主要采用编码-解码框架解决语言的生成任务。编码-解码框架中的编码器主要为长短神经网络(LSTM),由于其改善了长序列信息中梯度消失和梯度爆炸的问题,在自然语言的处理上有着广泛的应用。双向长短时记忆神经网络(BiLSTM)主要是由两层LSTM层组成,分别为前向LSTM和后向LSTM,这种结构可以对语句中的上下文信息进行捕获。对前向和后向的神经网络进行训练,可以做到同时处理并保留未来和过去的信息,因此可以得到较为丰富和深入的信息。虽然BiLSTM改善了梯度爆炸和梯度消失的问题,但是在序列信息过长时仍存在上述两种问题,同时尽管BiLSTM可以获取序列的双向特征信息,但是仅仅将双向的输出进行连接,而未建立完善的融合上下文信息的链接机制。
发明内容
本发明公开的一种基于注意力分散的长短期记忆网络的语义编码方法,属于自然语言处理生成领域。针对现有技术中存在的语义偏差、梯度消失、梯度爆炸、融合上下文信息不完善等问题,本发明使用的神经网络在BiLSTM基础上添加了一个参数共享单元,增强了模型获取和融合双向特征信息的能力;采用改进了的深度学习模型中的激活函数,减小了梯度问题出现的概率;对输入和隐藏层,采用交互空间和扩展LSTM的方式构建模型,增强了模型融合上下文信息的能力;引入了语句结构信息变量的注意力分散机制,对语义的生成进行了限制从而提了高语义准确性。本发明适用于自动写新闻或标题、机器人客服、会议或诊断报告生成等自然语言生成的应用。
为达到以上的目的,本发明采用以下技术方案。
本发明采用参数共享单元与BiLSTM相结合的自然语言生成编码模型,结合BiLSTM的双向网络结构,利用上下文关系来增强生成语句的语义效果。目前语言生成技术多采用LSTM,但LSTM由于梯度问题使其在处理长序列的自然语言任务存在语义偏差的问题。对此问题,编码模型相较于传统的BiLSTM编码添加了一个参数共享单元。参数共享单元对LSTM网络中的激活函数进行改进,使神经网络更适应语义编码任务,同时将语言输入记录为语义表示信息,并将此信息传达给修改后的LSTM单元。BiLSTM结合注意力分散力机制去规划语句之间的关联性从而在确保全局信息的前提下完成自然语言生成的编码。采用以上方法提高自然语言生成的准确性和稳定性,具有更好效果的语义完整性和流畅性。
一种基于注意力分散的长短期记忆网络的语义编码方法,本发明步骤如下:
步骤1:搭建参数共享单元,通过参数共享模块接受神经网络的输入,再通过参数共享单元输出与LSTM的输入连接。以此增强LSTM控制上下文语义的能力。
参数共享单元使用的函数δ是改进的线性整流函数的ReLU函数,具体为δ(x)=2max(eαx-1,αx)-1,其中α>1,α为训练学习的参数。改进后的ReLU函数使均值输出趋于平缓,负值区域接近饱和,同时运用负值非零的特性避免神经元死亡。
参数共享模块分为控制门运算、共享单元运算、输出运算三部分。对于参数共享单元,rt是控制门运算,dt是共享单元运算,W表示各个门的权重,为待训练的参数。δ是改进的线性整流函数的ReLU函数。it是参数共享单元的输出,同时也是LSTM的输入。Wrx是对话参数共享单元对于输入xt的权重,Wrh是对话参数共享单元对于隐藏层ht-1的权重,Wrx,Wrh均为待训练参数;
控制门运算将前项隐藏层的输出和前项输入一起进行运算,使控制门计算包含前一时刻的输入和隐藏信息,参数共享单元的控制门运算公式为式(1):
rt=δ(Wrx[xt,xt-1]+Wrh[ht-1,ht-2]) (1)
式(1)中的δ对矩阵中的所有元素进行改进后的ReLU函数计算,通过式(1)输入门计算后得到rt。接下来需要进行共享单元运算得到dt,dt也是对话参数共享单元的共享参数。对话参数共享单元除了与LSTM连接,与其它对话参数共享单元也进行连接从而将dt共享,加强语义信息上的控制能力。共享单元运算为式(2):
dt=rtdt-1 (2)
对话参数共享单元的最终输出采用改进的双曲正切激活函数tanh,函数具体为其中1≤λ<2,为待学习的参数。改进后的tanh函数通过设限的方式使训练神经网络更加快速收敛,减少模型训练时间。参数共享单元输出的运算公式为式(3):
式(3)中的xt是输入,ht-1是隐藏层,ft是遗忘门,ct是记忆单元,rt是控制门运算,dt是共享单元输出,Wrx、Wrh是待训练的权重参数,it是参数共享单元的输出,同时也是LSTM的输入。tanh为改进的双曲正切激活函数,对矩阵中的所有元素进行tanh函数计算。
步骤2:将参数共享单元嵌入LSTM,从而组成嵌入参数共享单元后的LSTM神经单元。
本发明神经网络在采取双向长短期记忆网络(BiLSTM)的结构形式基础上,增添了对话参数共享单元以及隐藏共享层,以此改善传统BiLSTM的语义上的缺陷。一方面可以增强获取语义信息的能力,另一方面在输入及其上下文之间的交互提供了更丰富的空间建模信息。
隐藏共享层关系式为式(4)
Qt,Rt为待训练的参数;ht-1、ht-2为前一个、前两个时刻的隐藏层输出;it-1、it-2为步骤1中式(3)得到的前一个、前两个时刻参数共享单元的输出。
对于记忆单元,采用将BiLSTM的另一层记忆单元输出与输入相加计算本层的LSTM神经元的记忆单元,因此LSTM神经元的关系式为式(5):
表示在BiLSTM的另一层的记忆单元前一时刻的输出,其中xt是输入,ht-1是隐藏层,ft是遗忘门,c′t当前输入的单元状态,ct是记忆单元,Wfh Wfi Wih Wix Woh Wch Wcx是各个门的权重,是式(4)得到隐藏共享层的输出,同时也是LSTM的输入。σ(·)、tanh(·)为步骤1中改进的激活函数。
softmax为输出层函数,其中λ根据xi对应的遗忘门的输出得到,λ计算公式为λ=sigmoid(fi),fi为与hi对应的遗忘门输出,以此双激活的形式定义该激活函数,以此防止溢出值得出现,同时使输出更具鲁棒性。
双向LSTM可以捕获前向后向的语义。添加参数共享单元后的BiLSTM模型有两层LSTM,分别为前向LSTM,后向LSTM,对于每个标记,前向LSTM从头开始处理用于计算前向上下文向量表示的向量反之亦然,后向LSTM,从中进行处理句末,计算后向上下文向量表示的向量前向向量和后向向量的连接采取语义表示连接层进行连接形成最终词向量ot。
语义表示连接层的计算公式为式(6),va表示通过连接层后得到的双向上下文向量。
利用积累上下文信息及未加惩罚项上下文信息计算下一个上下文信息,上下文语义信息包含语句中的隐藏语义信息,因此需利用神经网络中的隐藏层和记忆单元的结果。计算上下文语义信息ct的公式为式(7)
hi为隐藏层的输出,cj是第j个位置的记忆单元输出的累计求和,Wc、Uc设定为对角矩阵,为待学习的参数,αt,i是解码时施加在第t时刻的注意力权重。tanh为双曲函数。
利用未加历史注意力权重的原始注意力α′t,i求取施加在语义上的历史权重为αi,j,求取语义历史权重αi,j,计算公式为式(8)
va为步骤3中式(6)中通过连接层后得到的双向上下文向量,Ci-1,k为步骤4中式(9)得到的表示一个词有多少语句结构信息生成的信息。
步骤4:对于在式(8)引入一个变量Ci,k完成注意力机制的分散。与其他注意力机制不同在于此变量的分散作用,用Ci,k表示一个词有多少语句结构信息生成,有多少语句结构信息没有生成。而此变量值对attention系数进行优化使attention机制既可包含语义信息,又可防止过拟合化。Ci,k的迭代公式为式(9)
at为随机丢弃系数,服从伯努利分布,将ai,k除以一个φk值,使得信息量大的话题词每次减少的数值更小一些,这样就保证了最后生成的信息能更多一些。n为输入到神经网络的文本长度,为输入到神经网络中每个词的输入,Uf为待训练的参数,δ是ReLU函数,φk的计算公式为式(10):
步骤5:计算训练目标函数,当训练目标函数达到最优时,得到模型的训练参数,同时停止对于Ci的更新迭代。
每个词的概率分布P,ct为步骤4计算得到的上下文语义信息,P计算公式为式(12):
上式子中的g()表示隐藏信息和输出信息的关系成度,其计算公式为式(13)
g(h,yt-1,ct)=W0 tanh(Nyt-1+C0ct+Uhht) (13)
训练目标函数为式(15):
θ,η为上述步骤中待训练参数的集合,θ={Wrx,Wrh,Wfh,Wih,Wft,Wix,Wcx,Wch,Wc,Wa}、η={Uc,Ua,ba,Uf,W0,C0,Uh}。在通过以上步骤搭建好神经网络模型和确定好目标函数后,通过优化算法进行训练。
通过步骤1到步骤5后,得到词语编码。词语编码是自然语言生成的第一部分,还需要解码器对编码进行解码,将词语编码输入到解码器得到最终生成的文本,由于编码阶段通过对LSTM的改进加强了对语义信息的捕获能力,进而改善了最终语言生成的语义正确性。
有益效果
一种基于注意力分散的长短期记忆网络的语义编码方法相比于现有技术,本方法有如下有益效果:
1、本方法采取参数共享单元与BiLSTM相结合的神经网络对输入到本神经网络的词语进行编码,相对于单一的BiLSTM,更加有效地保留了原语句中的语义信息,在语义的完整性和流畅性上有更好的效果。
2、本方法通过注意力分散机制得到对神经网络生成的每个词向量的注意力权重,可以在译码时有效提高词向量的序列表现,提高译码后生成的自然语言的准确性和语句相互关联性。
3、本方法主要注重编码过程中的语义信息,提高了语义信息的完整程度,在生成自然语言语言过程语句生成效果更加稳定。
附图说明
图1为本发明“一种基于注意力分散的长短期记忆网络的语义编码方法”中的本方法及实施例中的神经网络搭建的流程示意图;
图2为本发明“一种基于注意力分散的长短期记忆网络的语义编码方法”中的本方法及实施例中的神经网络注意力机制和神经网络训练的流程示意图。
图3为本发明“一种基于注意力分散的长短期记忆网络的语义编码方法”中的本方法及实施例中的神经网络结构模型;
具体实施方式
下面根据附图和实例对本发明进行详细说明,但本发明的具体实施方式不仅于此。
本实施例阐述了将本发明“一种基于注意力分散的长短期记忆网络的语义编码方法”应用于自然语言生成处理场景下的流程。
本发明在一个公开数据集cMedQA和cMedQA1中进行对模型的训练和测试。cMedQA和cMedQA1为一个中文问诊的问答匹配数据集,该数据集被广泛应用在一些医疗中文问答的评测中。cMedQA的数据来源于医学在线论坛,其中包括5.4万个问题,以及对应的10万个回答。cMedQA1为cMedQA的扩展,包含10万个医学问题以及对应的约20万个回答。
本实施例所提供的方法为一种程序的写入,以作为硬件系统中的一种处理逻辑,也可以作为一种短语推荐装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该自然语言生成通过将短语样本集输入目标神经网络,以得到问题或一段文本对应的摘要。
本实施例采用python语言,其深度框架采用pytorch,并利用由复旦大学邱锡鹏教授领导开发的基于深度学习的fastNLP自然语言处理框架,fastNLP也是采用的pytorch的框架。其编程环境如下表所示:
在训练之前,将数据集分为训练集和测试集。将数据集中的70%作为训练集,剩余30%作为测试集;两大评判指标分别是:ACCURACY、F1-SCORE。
神经网络模型的建立参考图1和图3。图1为神经网络的搭建流程,图3为神经网络的结构。
在构建参数共享单元上,采取面向对象的编程方法,先要建立改进的激活函数,这里采用在python的对象中建立一个子函数,在构建参数共享单元时在参数共享单元的类(类命名为SC-Cell)中调用激活函数的子函数即可。搭建参数共享单元时,在利用前向传导forward中实现式式(1)、式(2)、式(3)的运算,即控制门运算、共享单元运算、输出运算。
(1)控制门运算:通过式(1)输入门计算后得到rt,在控制门运算搭建时,将输入两个一对作为一个输入,即当前的输入与前一个输入进行级联得到[xt,xt-1]。[ht-1,ht-2]同理,将当前时刻的隐藏层输出与前一个时刻的隐藏层输出级联。
rt=δ(Wrx[xt,xt-1]+Wrh[ht-1,ht-2]) (1)
对于式(1)中,对于改进的线性整流函数的ReLU函数,具体为δ(x)=2max(0,x)-1。下文关系式中的出现的δ是指对矩阵或张量中的所有元素进行ReLU函数计算。
(2)共享单元运算。通过式(1)输入门计算后得到rt,接下来需要进行共享单元运算得到dt,dt也是对话参数共享单元的共享的参数,利用rt、dt-1得到dt,从而使输入的包含的序列的信息更丰富。共享单元运算为式(2)。
dt=rtdt-1 (2)
其中二者的相乘为元素相乘;rt、dt-1均为向量,通过设计神经网络的尺寸使得二者可以相乘。二者维数若不相同,通过将维数较少的进行补零完成相乘。
(3)输出运算:通过参数共享单元的最终输出it,参数共享单元输出的运算公式为式(3)。参数共享单元的输出,再使用搭建的隐藏共享层,对it进行上下文空间交互,同时也是隐藏共享层的输入。
式3中,改进的双曲正切激活函数tanh,函数具体为其中1≤λ<2,为待学习的参数。改进后的tanh函数通过设限的方式使训练神经网络更加快速收敛,减少模型训练时间。下文式中出现的tanh是指对矩阵或张量中的所有元素进行tanh函数计算。
在SC-Cell搭建完成,即SC-Cell的类完成后,建立SC-LSTM的神经元,依旧采取面向对象的编程方法,其类名为SCLSTM-Cell,在该类中包含输入输出大小、隐藏层大小,可调用线性层并设计层的大小。在前向函数forward的输入为词的嵌入的向量化,隐藏层状态;在SCLSTM-Cell的前向函数forward实现步骤2的隐藏共享层关系式(4)、以及LSTM神经元关系式(5),利用隐藏共享层关系式(4)将参数共享单元和LSTM结合。
式(3)中,改进softmax输出层函数,其中λ根据xi对应的遗忘门的输出得到,λ计算公式为λ=sigmoid(fi),fi为与hi对应的遗忘门输出,以此双激活的形式定义该激活函数,以此防止溢出值的出现,同时使输出更具鲁棒性。下文式中出现的softmax是指对矩阵或张量中的所有元素进行上述softmax函数计算。
在搭建整个BiLSTM时,在命名为SC-BiLSTM的类中进行,将搭建好的添加参数共享单元的LSTM神经元按双向双层的结构进行排列搭建。最后在前向函数forword的类的函数中,利用语义表示连接层的式(6),将BiLSTM双向的输出结果进行连接得到最终词向量。
对于注意分散机制,在SC-BiLSTM类中定义子函数,函数命名为attention_mechanism,利用pytorch的张量运算命令实现式(8)、式(9)、式(10)。
式(8)8va表示步骤3的式(6)中通过连接层后得到的双向上下文向量,其中Ci-1,k为步骤4中的式(9)得到的,表示一个词有多少语句结构信息生成。Ci-1,k根据式(6)得到。在训练神经网络时,αt,i、α′t,i经过多次迭代中趋于使目标函数最优,每当αt,i、α′t,i更新时,Ci,k也进行更新,更新后得到的Ci+1,k再利用式(8)在下一次更新时对αt,i进行更新。
对于注意力分散机制,该分散机制与神经网络的训练是同步进行的,在搭建神经网络模型时,该机制也在神经网络搭建时进行设计。在编程搭建时就将注意力分散机制融入其中。除此之外,注意力分散机制中的变量包括矩阵、张量和标量。利用未加历史注意力权重的原始注意力α′t,i求取施加在语义上的历史权重为αi,j,未加历史注意力权重的原始注意力α′t,i是指:网络结构中的注意力模块负责自动学习注意力权重α′t,i,它可以自动捕获编码器隐藏状态(上述式(5)中的)和解码器隐藏状态之间的相关性。然后,这些注意力权重用于构建内容向量,该向量作为输入传递给解码器。在每个解码位置内容向量是编码器所有隐藏状态及其相应注意权重的加权和。
在式(8)引入一个变量Ci,k完成注意力机制的分散。与其他注意力机制的不同在于此变量的分散作用。模型的超参数Ci,k,在训练过程中根据模型效果趋近最优值,因此,这样训练出的模型,可以得到更精细、准确和快速的语义表述。用Ci,k表示一个词有多少语句结构信息生成,有多少语句结构信息没有生成。而此变量值对attention系数进行优化使attention机制既可包含语义信息,又可防止过拟合化。Ci,k的迭代公式为式(9)
at为随机丢弃系数,服从伯努利分布。将ai,k除以一个φk值,使得信息量大的话题词每次减少的数值相应较小一些,这样就保证了最后生成的信息能更多一些。n为输入到神经网络的文本长度,为输入到神经网络中每个词的输入,Uf为待训练的参数,δ是ReLU函数,φk的计算公式为式(10):
注意力权重是通过在体系结构中加入一个额外的前馈神经网络来学习的。该前馈神经网络学习一个特殊的注意权重α′t,i,作为编码器隐藏状态和解码器隐藏状态两种状态的函数。简单地说,就是用这两种状态作为神经网络的输入,进而学习α′t,i。
在解码器的选择上,可以搭建LSTM、GRU、RNN等神经网络作为解码器,对上述步骤得到的编码进行解码。解码器的训练和编码器的训练是同时进行的。由于解码器不是本专利的创新之处,因此只在这里进行介绍。到此模型搭建完成。
在训练神经网络模型前,需要将文本型的训练数据转化为数据输入到神经网络。汉语是以字为单位的,然而汉语中,通常词是表达完整意义的单位。一个字在不同语境下会有不同含义,因此这里可以使用词嵌入的方式。由于中文存在分词的难题,可以进行人工分词,再将得到的分词进行词嵌入。例如“准确把握新发展阶段、深入贯彻新发展理念”变为“准确-把握-新发展阶段-、-深入-贯彻-新-发展理念-”。也可以利用jieba的软件工具进行分词。
在分词之后,将文本中的词转换成数字向量,可以选择One-hot编码、skip-gram、CBOW、Glove等嵌入技术。将文本转化为向量数值后就可以利用转化后的数值对神经网络进行训练。
故本实施例中采用低维密集表示的嵌入技术;由于维度低,可以比较两个低维密集表示的相似度,如one-hot嵌入会导致高维稀疏表示,“腹泻”[1,0,0,…],“闹肚子”[0,1,0,…],这种情况下“腹泻”和“闹肚子”的相似度是0.001,且维数极高,导致模型泛化能力差。但是采用CBOW低维密集表示时,其相似度可能是0.17,保证了模型的泛化能力。
模型的训练可以理解为训练过程中经过前向计算所得到的模型参数,即待训练参数,在得到目标函数之前,需利用积累上下文信息及未加惩罚项上下文信息计算下一个上下文信息,上下文语义信息包含语句中的隐藏语义信息,因此需利用神经网络中的隐藏层和记忆单元的结果。计算上下文语义信息ct的公式为式(7)
ct是随着模型训练时得到,是不断变化迭代的。hi为隐藏层的输出,ci是记忆单元输出,二者均来源于Wc、Uc设定为对角矩阵,为待学习的参数,αt,i是施加在上的解码第t时刻的注意力权重。tanh为双曲函数。ct用于目标函数计算,将语义信息引入目标函数从而在模型训练时增强语义控制能力。向量集合Ti由式(11)得到。向量集合和上下文语义信息得到后,目标函数就可以确定了。
每个词的概率分布P,ct为步骤4计算得到的上下文语义信息,P计算公式为式(12):
上式子中的g()表示隐藏信息和输出信息的关系成度,其计算公式为式(13)
g(h,yt-1,ct)=W0 tanh(Nyt-1+C0ct+Uhht) (13)
训练目标函数为式(15):
θ,η为上述步骤中待训练参数的集合,θ={Wrx,Wrh,Wfh,Wih,Wft,Wix,Wcx,Wch,Wc,Wa}、η={Uc,Ua,ba,Uf,W0,C0,Uh}。在通过以上步骤搭建好神经网络模型和确定好目标函数后,接下来通过优化算法进行训练。
通过式(15),对整个模型中的网络参数进行不断修正,使得式(15)最优。在训练完成后,可以保存网络参数,训练完成的模型可以应用于信息编码以及交互学习过程。
此外,训练神经网络前,要先初始化神经网络模型的待训练参数,可使用Xavier初始化;使用反向传播算法;选择找到优化函数的最优解,这里使用的优化算法为Adam优化算法。同时要确定batch、epoch、iteration,即预设优化器用于指示目标步长,目标步长用于指示目标神经网络的训练过程,从而提高训练过程的准确性。
在将分好的训练集数据利用嵌入技术转换为数值向量后,再将数值向量输入到神经网络模型中。在训练之前,还可以采用线性层(linear)进行降维处理,如由768维降低到128维。具体的,首先确定目标维度;然后将训练的词语向量输入线性层,以基于目标维度对训练向量的表示维度进行更新,该更新过程可以通过m=nn.Linear(inputsize,outputsize)的代码实现。此降维操作为非必须项。
在训练时将得到的双向上下文向量输入到解码器,编码器和解码器同时训练。模型训练完成后,保存模型。利用测试集测试,输入问题,模型预测得到答案。在使用时,调用该深度学习模型,对该目标样本文本进行处理,得到多个处理结果的概率,选取概率最高的处理结果作为该目标样本文本对应的预测处理结果。
将本次实例与传统BiLSTM的自然语言生成方法进行对比,对比结果如下:
模型 | 准确率 | 召回率 | F1 |
注意力分散的长短期记忆网络+CBOW | 97.33% | 97.32% | 0.96% |
BiLSTM+注意力机制+CBOW | 94.12% | 96.15% | 0.96% |
根据以上数据可以看出,本实施例的效果优于传统BiLSTM。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
Claims (2)
1.一种基于注意力分散的长短期记忆网络的语义编码方法,其特征在于:包括如下步骤,
步骤1:搭建参数共享单元,通过参数共享模块接受神经网络的输入,再通过参数共享单元输出与LSTM的输入连接;以此增强LSTM控制上下文语义的能力;
步骤1的实现方法为,
参数共享单元使用的函数δ是改进的线性整流函数的ReLU函数,具体为δ(x)=2max(eαx-1,αx)-1,其中α>1,α为训练学习的参数;改进后的ReLU函数使均值输出趋于平缓,负值区域接近饱和,同时运用负值非零的特性避免神经元死亡;
参数共享模块分为控制门运算、共享单元运算、输出运算三部分;对于参数共享单元,rt是控制门运算,dt是共享单元运算,W表示各个门的权重,为待训练的参数;δ是改进的线性整流函数的ReLU函数;it是参数共享单元的输出,同时也是LSTM的输入;Wrx是对话参数共享单元对于输入xt的权重,Wrh是对话参数共享单元对于隐藏层ht-1的权重,Wrx,Wrh均为待训练参数;
控制门运算将前项隐藏层的输出和前项输入一起进行运算,使控制门计算包含前一时刻的输入和隐藏信息,参数共享单元的控制门运算公式为式(1):
rt=δ(Wrx[xt,xt-1]+Wrh[ht-1,ht-2]) (1)
式(1)中的δ对矩阵中的所有元素进行改进后的ReLU函数计算,通过式(1)输入门计算后得到rt;接下来需要进行共享单元运算得到dt,dt也是对话参数共享单元的共享参数;对话参数共享单元除了与LSTM连接,与其它对话参数共享单元也进行连接从而将dt共享,加强语义信息上的控制能力;共享单元运算为式(2):
dt=rtdt-1 (2)
对话参数共享单元的最终输出采用改进的双曲正切激活函数tanh,函数具体为其中1≤λ<2,为待学习的参数;改进后的tanh函数通过设限的方式使训练神经网络更加快速收敛,减少模型训练时间;参数共享单元输出的运算公式为式(3):
式(3)中的xt是输入,ht-1是隐藏层,ft是遗忘门,ct是记忆单元,rt是控制门运算,dt是共享单元输出,Wrx、Wrh是待训练的权重参数,it是参数共享单元的输出,同时也是LSTM的输入;tanh为改进的双曲正切激活函数,对矩阵中的所有元素进行tanh函数计算;
步骤2:将参数共享单元嵌入LSTM,从而组成嵌入参数共享单元后的LSTM神经单元;
步骤2的实现方式为,
隐藏共享层关系式为式(4)
Qt,Rt为待训练的参数;ht-1、ht-2为前一个、前两个时刻的隐藏层输出;it-1、it-2为步骤1中式(3)得到的前一个、前两个时刻参数共享单元的输出;
对于记忆单元,采用将BiLSTM的另一层记忆单元输出与输入相加计算本层的LSTM神经元的记忆单元,因此LSTM神经元的关系式为式(5):
表示在BiLSTM的另一层的记忆单元前一时刻的输出,其中xt是输入,ht-1是隐藏层,ft是遗忘门,c′t当前输入的单元状态,ct是记忆单元,Wfh Wfi Wih Wix Woh Wch Wcx是各个门的权重,是式(4)得到隐藏共享层的输出,同时也是LSTM的输入;σ(·)、tanh(·)为步骤1中改进的激活函数;
softmax为输出层函数,其中λ根据xi对应的遗忘门的输出得到,λ计算公式为λ=sigmoid(fi),fi为与hi对应的遗忘门输出,以此双激活的形式定义该激活函数,以此防止溢出值得出现,同时使输出更具鲁棒性;
步骤3的实现方式为,
双向LSTM可以捕获前向后向的语义;添加参数共享单元后的BiLSTM模型有两层LSTM,分别为前向LSTM,后向LSTM,对于每个标记,前向LSTM从头开始处理用于计算前向上下文向量表示的向量反之亦然,后向LSTM,从中进行处理句末,计算后向上下文向量表示的向量前向向量和后向向量的连接采取语义表示连接层进行连接形成最终词向量ot;
语义表示连接层的计算公式为式(6),va表示通过连接层后得到的双向上下文向量;
利用积累上下文信息及未加惩罚项上下文信息计算下一个上下文信息,上下文语义信息包含语句中的隐藏语义信息,因此需利用神经网络中的隐藏层和记忆单元的结果;计算上下文语义信息ct的公式为式(7)
hi为隐藏层的输出,cj是第j个位置的记忆单元输出的累计求和,Wc、Uc设定为对角矩阵,为待学习的参数,αt,i是解码时施加在第t时刻的注意力权重;tanh为双曲函数;
利用未加历史注意力权重的原始注意力α′t,i求取施加在语义上的历史权重为αi,j,求取语义历史权重αi,j,计算公式为式(8)
va为步骤3中式(6)中通过连接层后得到的双向上下文向量,Ci-1,k为步骤4中式(9)得到的表示一个词有多少语句结构信息生成的信息;
步骤4:引入一个变量Ci,k完成注意力机制的分散;
步骤4的实现方式为,
对于在式(8)引入一个变量Ci,k完成注意力机制的分散,与其他注意力机制不同在于此变量的分散作用,用Ci,k表示一个词有多少语句结构信息生成,有多少语句结构信息没有生成;而此变量值对attention系数进行优化使attention机制既可包含语义信息,又可防止过拟合化;Ci,k的迭代公式为式(9)
at为随机丢弃系数,服从伯努利分布,将ai,k除以一个φk值,使得信息量大的话题词每次减少的数值更小一些,这样就保证了最后生成的信息能更多一些;n为输入到神经网络的文本长度,为输入到神经网络中每个词的输入,Uf为待训练的参数,δ是ReLU函数,φk的计算公式为式(10):
步骤5:计算训练目标函数,当训练目标函数达到最优时,得到模型的训练参数,同时停止对于Ci的更新迭代;
步骤5的实现方法为,
每个词的概率分布P,ct为步骤4计算得到的上下文语义信息,P计算公式为式(12):
上式子中的g()表示隐藏信息和输出信息的关系程度,其计算公式为式(13)
yt为LSTM的t时刻的输出,f(·)为隐藏层公式,在式(5)有定义,计算公式为式(14)
训练目标函数为式(15):
θ,η为上述步骤中待训练参数的集合,θ={Wrx,Wrh,Wfh,Wih,Wft,Wix,Wcx,Wch,Wc,Wa}、η={Uc,Ua,ba,Uf,W0,C0,Uh};在通过以上步骤搭建好神经网络模型和确定好目标函数后,通过优化算法进行训练;
2.如权利要求1所述的一种基于注意力分散的长短期记忆网络的语义编码方法,其特征在于:
通过步骤1到步骤5后,得到词语编码;词语编码是自然语言生成的第一部分,还需要解码器对编码进行解码,将词语编码输入到解码器得到最终生成的文本,由于编码阶段通过对LSTM的改进加强了对语义信息的捕获能力,进而改善了最终语言生成的语义正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110375326.2A CN113033189B (zh) | 2021-04-08 | 2021-04-08 | 一种基于注意力分散的长短期记忆网络的语义编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110375326.2A CN113033189B (zh) | 2021-04-08 | 2021-04-08 | 一种基于注意力分散的长短期记忆网络的语义编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113033189A CN113033189A (zh) | 2021-06-25 |
CN113033189B true CN113033189B (zh) | 2022-07-12 |
Family
ID=76454142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110375326.2A Active CN113033189B (zh) | 2021-04-08 | 2021-04-08 | 一种基于注意力分散的长短期记忆网络的语义编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113033189B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779310B (zh) * | 2021-09-10 | 2023-06-02 | 电子科技大学 | 一种基于层级表征网络的视频理解文本生成方法 |
CN114860914B (zh) * | 2022-05-26 | 2023-06-16 | 南京信息工程大学 | 一种基于知识库增强的端到端多领域任务型对话生成方法 |
CN117093783A (zh) * | 2023-04-12 | 2023-11-21 | 浙江卡赢信息科技有限公司 | 结合用户社交数据的积分兑换智能推荐系统及其方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11600194B2 (en) * | 2018-05-18 | 2023-03-07 | Salesforce.Com, Inc. | Multitask learning as question answering |
CN109408812A (zh) * | 2018-09-30 | 2019-03-01 | 北京工业大学 | 一种基于注意力机制的序列标注联合抽取实体关系的方法 |
CN110609897B (zh) * | 2019-08-12 | 2023-08-04 | 北京化工大学 | 一种融合全局和局部特征的多类别中文文本分类方法 |
CN112163426B (zh) * | 2020-09-30 | 2022-05-27 | 中国矿业大学 | 一种基于注意力机制与图长短时记忆神经网络结合的关系抽取方法 |
-
2021
- 2021-04-08 CN CN202110375326.2A patent/CN113033189B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113033189A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113033189B (zh) | 一种基于注意力分散的长短期记忆网络的语义编码方法 | |
CN110188176B (zh) | 深度学习神经网络及训练、预测方法、系统、设备、介质 | |
CN111858931B (zh) | 一种基于深度学习的文本生成方法 | |
CN109359294B (zh) | 一种基于神经机器翻译的古汉语翻译方法 | |
WO2022041294A1 (zh) | 一种结合知识库中的三元组和实体类型的生成问题方法 | |
CN111241807B (zh) | 一种基于知识引导注意力的机器阅读理解方法 | |
CN110390397A (zh) | 一种文本蕴含识别方法及装置 | |
CN111125333B (zh) | 一种基于表示学习与多层覆盖机制的生成式知识问答方法 | |
Yang et al. | Towards bidirectional hierarchical representations for attention-based neural machine translation | |
CN113408430B (zh) | 基于多级策略和深度强化学习框架的图像中文描述系统及方法 | |
CN110807069B (zh) | 一种基于强化学习算法的实体关系联合抽取模型构建方法 | |
CN114492441A (zh) | 基于机器阅读理解的BiLSTM-BiDAF命名实体识别方法 | |
Zhang et al. | Named entity recognition method in health preserving field based on BERT | |
CN110807335A (zh) | 基于机器学习的翻译方法、装置、设备及存储介质 | |
CN112069827B (zh) | 一种基于细粒度主题建模的数据到文本生成方法 | |
CN114510576A (zh) | 一种基于BERT和BiGRU融合注意力机制的实体关系抽取方法 | |
CN113239678B (zh) | 一种面向答案选择的多角度注意力特征匹配方法及系统 | |
CN111813907A (zh) | 一种自然语言问答技术中的问句意图识别方法 | |
Xu et al. | Generating emotional controllable response based on multi-task and dual attention framework | |
CN114861627B (zh) | 一种基于深度学习的选择题干扰项自动化生成方法及装置 | |
CN116432637A (zh) | 一种基于强化学习的多粒度抽取-生成混合式文摘方法 | |
CN116150334A (zh) | 基于UniLM模型和Copy机制的中文共情语句训练方法及系统 | |
CN115964475A (zh) | 一种用于医疗问诊的对话摘要生成方法 | |
CN115510230A (zh) | 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法 | |
Shen | Deep latent-variable models for text generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |