CN110913229A - 基于rnn的解码器隐状态确定方法、设备和存储介质 - Google Patents
基于rnn的解码器隐状态确定方法、设备和存储介质 Download PDFInfo
- Publication number
- CN110913229A CN110913229A CN201811087560.XA CN201811087560A CN110913229A CN 110913229 A CN110913229 A CN 110913229A CN 201811087560 A CN201811087560 A CN 201811087560A CN 110913229 A CN110913229 A CN 110913229A
- Authority
- CN
- China
- Prior art keywords
- decoder
- time step
- current time
- hidden state
- decoder hidden
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了一种基于RNN的解码器隐状态确定方法、设备和存储介质。该隐状态确定方法包括:获取解码器的当前时间步的解码端输入;获取当前时间步之前每个时间步的解码器隐状态;根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。通过本公开实施例,可以更有效地利用目标端的解码历史信息,得到上下文更连贯的目标内容。
Description
技术领域
本公开涉及神经网络技术领域,具体涉及一种基于循环神经网络的解码器、解码器隐状态确定方法与装置、机器设备和计算机可读存储介质。
背景技术
RNN(Recurrent Neuron Network,循环神经网络)是一种非常适用于对序列数据建模的神经网络,即一个序列当前的输出与前面的输出也有关。具体的表现形式为,神经网络会对前面的信息进行记忆,并应用于当前输出的计算中,即神经网络的隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的隐状态输出。
目前,循环神经网络已经由基本RNN发展出多种变形结构,例如,长短时记忆(LongShort-Term Memory,LSTM)网络、门控循环单元(Gated Recurrent Unit,GRU)等。
循环神经网络在诸如机器翻译领域、机器阅读领域、语音识别领域、图像识别领域等涉及序列到序列(seq2seq)的数据处理领域具有广泛的应用。在序列到序列的数据处理领域中,数据处理设备将表示待转换源内容的源数据序列转换成表示目标内容的目标数据序列,例如,将以一种语言(例如中文)表示的源语言内容翻译成以另一种语言(例如英文)表示的目标语言内容,将以一种表示方式表示的源内容转换成以另一种表示方式表示的目标内容,例如,从文字转换成语音或相反,从图像转换成文字,等等。
一般地,序列到序列的数据处理设备可以包括编码器和解码器。编码器基于神经网络技术对源内容进行编码处理,解码器基于神经网络技术对编码后的源内容进行解码以得到目标内容。其中,解码器在解码处理中利用解码器的隐藏层状态(即隐状态)来确定目标内容。由此可见,确定解码器的隐状态输出以将该隐状态运用到序列数据处理中至关重要。因此,如何确定隐状态输出是神经网络技术发展的一个重要方面。
发明内容
本公开的目的之一在于提供一种基于循环神经网络的解码器、解码器隐状态确定方法与装置、机器设备和计算机可读存储介质。
根据本公开实施例的第一方面,公开了一种确定基于循环神经网络的解码器的隐状态的方法,其包括:
获取解码器的当前时间步的解码端输入;
获取当前时间步之前每个时间步的解码器隐状态;
根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
根据本公开实施例的第二方面,公开了一种确定基于循环神经网络的解码器的隐状态的装置,其包括:
解码端输入获取模块,其被配置为:获取解码器的当前时间步的解码端输入;
历史隐状态获取模块,其被配置为:获取当前时间步之前每个时间步的解码器隐状态;
解码器隐状态计算模块,其被配置为:根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
根据本公开实施例的第三方面,公开了一种基于循环神经网络的解码器,其中,所述解码器用于对待转换源数据进行解码处理,以得到与所述待转换源数据相对应的目标数据,
其中,所述解码器包括一个或多个循环神经网络单元,所述一个或多个循环神经网络单元中的每个循环神经网络单元将其当前时间步的解码器隐状态传输给在时间步上位于该循环神经网络单元后面的每个循环神经网络单元,使得所述一个或多个循环神经网络单元中的每个循环神经网络单元能够获得其当前时间步之前每个时间步的解码器隐状态。
根据本公开实施例的第四方面,公开了一种机器设备,其包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述各实施例的方法。
根据本公开实施例的第五方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述各实施例的方法。
本公开的实施例提供的技术方案可以具有以下有益效果:
在本公开各实施例的一个或多个中,在确定基于循环神经网络的解码器的隐状态时,不仅根据上一时间步的隐状态,而是将之前所有时间步的隐状态应用到当前时间步的隐状态计算中,从而可以充分利用解码历史信息,生成更高质量的目标内容。在一些实施例中,使用之前所有时间步的隐状态计算得到隐状态历史向量(例如求加权和),其中通过对每个时间步的隐状态使用不同的权重值,可以动态地侧重选择与当前时间步相关性大的历史隐状态,缓解了由于之前所有时间步的隐状态都被序列化地压缩到上一时间步的隐状态中所带来的问题。另外,由于将之前所有时间步的隐状态都直接输入到当前时间步,实现了跨时间步的线性直连边,使得梯度消失的问题得以缓解。此外,通过将之前所有时间步的隐状态分别直接传输到当前时间步,建立了各时间步之间的树状连接结构,使得相隔很远的目标内容之间也能建立直接联系,可以捕捉内容的结构化信息。
本公开的以上以及其他特性和优点将通过下面的详细描述变得清楚,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图对本公开示例性实施例的详细描述,本公开的上述和其它目标、特征及优点将变得清楚。本公开的附图被并入说明书中并构成本说明书的一部分。附图示例性地示出了适合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1示出根据本公开一示例性实施例的基于循环神经网络的机器翻译系统的示意架构图。
图2示出根据本公开一示例性实施例的基于循环神经网络的解码器的隐状态确定方法的示意流程图。
图3示出图2对应的实施例中步骤S230的一示例性具体实施方式的示意流程图。
图4示出图3对应的实施例中步骤S320的一示例性具体实施方式的示意流程图。
图5示出图3对应的实施例中步骤S320的另一示例性具体实施方式的示意流程图。
图6示出图3对应的实施例中步骤S320的又一示例性具体实施方式的示意流程图。
图7示出根据本公开一示例性实施例的编码器的LSTM单元的模型示意图。
图8示出根据本公开一示例性实施例的基于循环神经网络的翻译方法的示意流程图。
图9示出根据本公开一示例性实施例的翻译示例的示意图。
图10示出根据本公开一示例性实施例的基于循环神经网络的解码器的示意组成框图。
图11示出根据本公开一示例性实施例示出的机器设备的示意组成框图。
具体实施方式
现在将参考附图更全面地描述本公开的示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式目的是使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面以基于循环神经网络的机器翻译系统为例来说明现有技术的序列到序列的数据处理设备。应当理解的是,如下机器翻译实施例所具有的缺陷不仅仅存在于机器翻译领域,也存在于诸如机器阅读领域、语音识别领域、图像识别领域等的其他序列到序列数据处理领域。
机器翻译技术由于神经网络技术的出现而发生了很大的进步。基于神经网络的机器翻译(NMT)相比基于词的统计机器翻译(SMT)具有准确率更高、翻译结果更流畅的特点,近几年已经逐步替代了统计机器翻译,成为商用机器翻译系统的主力系统。主流的NMT系统通过基于神经网络的编码器将源语言内容编码为实数向量的形式,再通过基于神经网络的解码器一步一步解码生成目标语言翻译内容。
在下面的说明中,以LSTM网络为例来表示循环神经网络,但应当理解,机器翻译系统也可以基于其他类型的循环神经网络,例如RNN、GRU等。一般地,机器翻译系统包括基于循环神经网络的编码器和基于循环神经网络的解码器。编码器将离散的源语言输入单词映射为离散的实数向量表示形式[x1,x2,……,xn],并经过循环神经网络的处理而输出一组向量表示[h1,h2,…,hn],解码器对编码器输出的向量表示[h1,h2,…,hn]进行解码处理,以得到一组相应的目标语言词向量表示[y1,y2,……,ym],即与源语言内容相对应的目标语言内容。
在现有技术中,机器翻译系统使用解码端输入zt与上一时间步的解码器隐状态st-1来计算当前时间步t的解码器隐状态st,即st=LSTM(zt,st-1)。
本申请的发明人意识到,如上所述的机器翻译系统实施例及其确定解码器隐状态st的方式可能有如下潜在的问题:
1、在确定当前时间步的解码器隐状态st时,对于解码端的解码历史信息,仅使用了上一时间步的解码器隐状态st-1。由解码器隐状态向量的计算方式可知,每一解码器隐状态向量至少存储了两种类型的信息:源语言相关的信息片段和解码端的语言模型信息。虽然上一时间步的解码器隐状态向量st-1由于其计算方式而逐步压缩地以隐含了之前所有时间步的解码历史信息,但是,只用一个向量存储所有这些信息导致的信息压缩可能会引起解码历史信息的损失。因此,在确定解码器隐状态时,该机器翻译系统实施例实际上没有有效利用解码历史信息。
2、诸如基本RNN、LSTM、GRU的循环神经网络将解码器隐状态向量逐步往下传递,其在时间维度的深度导致了梯度传递过程中信号越来越弱,也就是所谓的梯度消失问题,这使得网络优化会变得很难。虽然LSTM提出了一些机制去缓解这个问题,但是依然是不够的。
3、解码端的目标内容的生成依赖于序列模型,在从左到右生成的过程中,解码历史信息从左到右被传递压缩到一个固定向量st-1,导致网络模型很难获取到解码历史的非序列的结构化信息。
为解决如上问题中的一个或多个,本公开提出了基于解码历史增强的循环神经网络,可以有效利用解码历史信息,增强模型对结构性信息的建模能力,生成上下更连贯的高质量目标内容。
在下面的各实施例中,将以机器翻译系统的基于循环神经网络的解码器为例来说明本公开的原理。但应当理解的是,本公开的原理不仅仅适用于机器翻译领域,而是适用于序列到序列数据处理的所有领域及相似领域。
图1示出了根据本公开一示例性实施例的基于循环神经网络的机器翻译系统的示意架构图。同样,在该实施例中,以LSTM网络为例来表示循环神经网络,但应当理解,根据本公开的机器翻译系统也可以基于其他类型的循环神经网络,例如基本RNN、GRU等。
如图1所示,根据该实施例的机器翻译系统包括基于循环神经网络的编码器110和基于循环神经网络的解码器120。编码器110被配置为将待转换源内容[x1,x2,……,xn]经过编码处理形成注解向量序列[h1,h2,…,hn],输入到解码器120。解码器120被配置为对注解向量序列[h1,h2,…,hn]进行解码处理,以得到相对应的目标向量序列[y1,y2,……,ym],其中m可以等于n,也可以不等于n。
编码器110可以包括一层或多层LSTM层,每个LSTM层可以包括双向LSTM网络,即正向LSTM模块111和反向LSTM模块112。每个正向或反向LSTM模块可以包括一个或多个LSTM单元。编码器110将由源语言单词组成的原始输入内容转化为一组实数向量,每一个向量对应一个源语言单词,这样,每个单词都被映射为一个实数向量表示xi(其中i=1,2,……,n,n为单词个数),组成向量序列[x1,x2,……,xn]。向量序列[x1,x2,……,xn]经过编码器110的LSTM层的处理,得到编码器隐状态hi,这样就得到了一组实数向量[h1,h2,…,hn]。其中hi=LSTM(xi,hi-1),即,编码器110在当前时间步i根据输入xi和上一时间步i-1的编码器隐状态hi-1计算得到hi。其中,正向LSTM模块111正向读取输入序列(从x1到xn),并计算正向隐状态而反向LSTM模块112从反向读取输入序列(从从xn到x1),并计算反向隐状态对于每个单词的向量表示xi,把它对应的正向隐状态向量和反向隐状态向量拼接起来来表示对xi的注解(annotation),由此得到hi,例如编码器110将向量序列[h1,h2,…,hn]输入解码器120,以供其进行解码处理。
解码器120可以是单向的循环神经网络,例如其可以包括一层或多层LSTM层121,每个LSTM层121将自己的隐状态输出传输给上一层LSTM层,作为上一层LSTM层的解码端输入,并以最上一层LSTM层的隐状态输出作为解码器隐状态输出。每个LSTM层121可以包括一个或多个LSTM单元。在图1的实施例中,LSTM层121被示出为包括4个LSTM单元121a、121b、121c和121d。解码器120通过多个时间步的解码处理,得到由多个目标语言词向量组成的输出向量序列[y1,y2,……,ym],其中在每个时间步通过所述一个或多个LSTM单元中的一个进行解码处理,得到一个对应的目标语言词向量yt(t=1,2,……,m,m为组成译文内容的目标语言单词个数)。在每一时间步t,将上一时间步t-1的解码器输出yt-1作为解码器120的当前时间步t的解码端输入zt。
图1的解码器120与现有技术的解码器的不同之一在于:在现有技术中,解码器的LSTM层的每个LSTM单元都将自己的隐状态输出st传递给在时间步上相邻的下一个LSTM单元,但不会直接传输给在时间步上与其不相邻的后面的LSTM单元;而在图1的机器翻译系统实施例中,解码器120的LSTM层121的每个LSTM单元除了将自己的隐状态输出st传递给在时间步上相邻的下一个LSTM单元,还将st输出至后面在时间步上不相邻的LSTM单元(如图中的虚线箭头所示),即,LSTM层121的每个LSTM单元的输出st被传递给在时间步上位于其后面的每个LSTM单元。在一个实施例中,每个LSTM单元的输出st被实时地传输给在时间步上位于其后面的每个LSTM单元,后面的LSTM单元将其存储以供后续使用。在另一实施例中,每个LSTM单元将其输出st存储到预定存储位置(例如,每个LSTM单元自己的专用存储空间,或解码器的专用或共用存储空间),以供在时间步上位于后面的LSTM单元在需要时去获取。
通过以上方式,使得每个LSTM单元都能方便地获得之前所有时间步的独立的解码器隐状态,而非仅仅上一时间步的解码器隐状态,由此使得解码器120可以更好地利用解码历史信息来确定解码器隐状态输出。
与现有技术中使用解码历史信息中的仅上一时间步的解码器隐状态来计算当前时间步的解码器隐状态不同,图1的实施例中的解码器120使用当前时间步之前所有时间步的解码器隐状态来计算当前时间步的解码器隐状态输出。具体地,在只有一层LSTM层的情况下,解码器120的LSTM层获取上一时间步的解码器输出yt-1,作为当前时间步t的解码端输入zt,并获取当前时间步t之前所有时间步的解码器隐状态si(i=1,2,……,t-1),来确定当前时间步t的解码器隐状态st。在t=1的时间步、即第一时间步中,LSTM层仅根据来自编码器110的注解向量序列[h1,h2,…,hn]计算出当前时间步的解码器隐状态s1,并将其作为下一时间步的解码端输入。
在具有多个LSTM层的情况下,每层LSTM层输出的隐状态自下往上传递,即每层LSTM接收其下一层LSTM层的解码器隐状态作为本层的解码端输入(最下面的LSTM层使用上一时间步的解码器输出作为当前时间步的解码端输入),并以如上所述的相同方式计算本层的隐状态,最终由最上层的LSTM层输出当前时间步t的解码器隐状态st。
然后,解码器120在每一时间步t根据最上层的LSTM层输出的解码器隐状态st确定目标词汇表中各目标词汇的概率(例如通过图1中所示的softmax函数来实现),并选择概率最大的目标词汇作为解码器输出yt。解码器120在每一时间步生成一个目标语言单词,然后再基于已经生成的单词递归地预测下一个单词,逐步生成整个译文句子。
虽然在图1中以示例的方式将解码器120示出为包括多个LSTM层,但应当理解的是,解码器120可以包括一个LSTM层。虽然在图1中以示例的方式将LSTM层示出为包括多个LSTM单元121a、121b、121c和121d,但应当理解的是,LSTM层可以包括更多或更少的LSTM单元,例如包括一个LSTM单元,在这种情况下,在每个时间步都是由该LSTM单元来进行解码处理,因此在时间步上位于其之后或之前的LSTM单元都是该LSTM单元本身。
另外,在图1中示出的基于循环神经网络的编码器110和解码器120仅仅为示例,应当理解的是,编码器110与解码器120可以基于不同类型的神经网络,例如,编码器110可以基于卷积神经网络或其他类型的神经网络。在序列到序列数据处理领域中,可以根据需要为编码器和解码器选择不同类型的神经网络。
此外,虽然在图1中将机器翻译系统示出为包括编码器和解码器两者,但应当理解的是,它们两者可以是分别独立存在的模块,在一些实施例中,机器翻译系统可以仅包括解码器,从外部接收已被编码处理的待转换向量序列。
图1的机器翻译系统实施例与现有技术的另一不同之处在于,图1的解码器120的循环神经网络单元的模型发生了变化,从而使得解码器隐状态的确定过程发生了变化。有关该机器翻译系统实施例如何确定解码器隐状态,将在后面参考图2-8进行详细说明。在下面的实施例中,以一个LSTM层的LSTM单元隐状态(称为解码器隐状态或解码器的隐状态)为例进行说明,应当理解,其原理可以扩展到多个LSTM层。
图2示出了根据本公开一示例性实施例的基于循环神经网络的解码器的隐状态确定方法的示意流程图。在一个实施例中,该方法实施例的执行主体可以是图1中所述的机器翻译系统或其他序列到序列数据处理设备或数据转换设备,或者是它们的组成部件。在一个实施例中,由解码器(例如图1中的解码器120)或其组成模块来执行该方法实施例。在另一实施例中,该方法实施例由与机器翻译系统、其他序列到序列数据处理设备或它们的解码器相连接的外部装置来执行。如图2所示,该方法实施例包括步骤:
S210,获取解码器的当前时间步的解码端输入。
在一个示例中,可以获取上一时间步的解码器输出,作为解码器的当前时间步的解码端输入。
如上面针对图1的描述所述,解码器针对经过编码处理的待转换向量序列[h1,h2,…,hn]进行解码处理,以得到相对应的目标向量序列[y1,y2,……,ym],其中,在每一时间步,解码器得到一个相应的目标向量作为该时间步的解码器输出。该解码器输出被作为下一时间步的解码端输入。因此,在该示例中,在当前时间步t,获取之前的上一时间步t-1的解码器输出yt-1,作为当前时间步t的解码端输入zt,即,zt=yt-1。
S220,获取当前时间步之前每个时间步的解码器隐状态。
步骤S220为获取解码历史信息的步骤,即获取之前时间步的解码器隐状态。如在对图1的说明中所述,之前每个时间步的解码器隐状态可以由之前的LSTM单元实时传输过来并被存储在接收LSTM单元中,也可以被存储在预定存储位置以供后面的LSTM单元在需要时去取。
S230,根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
如前所述,在现有技术中,在确定解码器隐状态时,仅考虑上一时间步的解码器隐状态,从而无法有效利用解码历史信息。在步骤S230中,根据当前时间步之前所有时间步的解码器隐状态来计算当前时间步的解码器隐状态。之前每个时间步的解码器隐状态的集合相比于上一时间步的仅仅一个解码器隐状态来说,所保存的解码历史信息更完整。
因此,通过上述方法实施例,可以更有效地利用解码历史信息。另外,由于在当前时间步可以直接获取之前每个时间步的隐状态,实现了跨时间步的线性直连,使得梯度消失的问题得以缓解。此外,通过将之前所有时间步的隐状态分别直接传输到当前时间步的神经元,建立了各时间步之间的树状连接结构,使得相隔很远的目标内容之间也能建立直接联系,可以捕捉内容的结构化信息。
图3示出了图2对应的实施例中步骤S230的一示例性具体实施方式的示意流程图。如图3所示,在该示例中,步骤S230可以具体包括步骤:
S310,根据所获取的当前时间步之前每个时间步的解码器隐状态,计算得到当前时间步的解码器隐状态历史向量。
在获取了之前每个时间步的解码器隐状态的情况下,可以有多种方式使用之前时间步的解码器隐状态来确定当前时间步的解码器隐状态。在图3的实施例中,在步骤S310中根据之前时间步的这些解码器隐状态计算得到一个向量,由于该向量是由历史解码器隐状态计算得到的,因此将它叫做解码器隐状态历史向量,它表示的是解码历史信息。虽然是以一个向量来表示解码历史信息,但是与上一时间步的解码器隐状态相比,由于该历史向量仅包含解码器隐状态历史信息,因此其所包含的解码历史信息更完整。
在另一实施例中,可以在确定当前时间步的解码器隐状态时单独地或组合地直接使用之前时间步的解码器隐状态中的一个或多个,无需计算解码器隐状态历史向量。
另外,可以通过多种方式根据之前时间步的解码器隐状态计算得到解码器隐状态历史向量。在一个示例中,可以计算当前时间步之前所有时间步的解码器隐状态的加权和,作为当前时间步的解码器隐状态历史向量。例如,可以根据以下公式计算当前时间步之前所有时间步的解码器隐状态的加权和,作为当前时间步的解码器隐状态历史向量
其中,t表示当前时间步,t-1表示当前时间步之前的上一时间步,sj表示时间步j的解码器隐状态,αtj为sj的权重值并且是根据上一时间步t-1的解码器隐状态st-1与sj计算出的。
在一个示例中,可以根据以下公式计算αtj:
在另一示例中,可以根据以下公式计算αtj:
αtj=sigmoid(st-1VT+sjKT),
即,对st-1VT+sjKT应用sigmoid函数,其中,V和K为解码器所基于的循环神经网络的训练参数,可以通过训练而得到,VT为V的转置向量,KT是K的转置向量。
在又一示例中,可以根据以下公式计算αtj:
其中,exp表示exp函数,etj=VT(Ust-1+Wsj),etk=VT(Ust-1+Wsk),U和W为解码器所基于的循环神经网络的训练参数,可以通过训练而得到。
还可以根据其他方式来确定权重值αtj,例如通过机器学习获得,通过经验确定等等。
通过以如上方式确定sj的权重值αtj,可以通过为每个时间步的解码器隐状态选择不同的权重值,来动态地侧重选择与当前时间步较相关的历史隐状态,例如,使得与当前时间步较为相关的解码器隐状态的权重值较大,而使得与当前时间步较不相关的解码器隐状态的权重值较小。
S320,根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态。
在步骤S320中,使用与当前时间步相对应的解码端输入和解码器隐状态历史向量一起来确定当前时间步的解码器隐状态。
步骤S320的具体实施方式可以有多种,图4-6分别示出了步骤S320的具体实施方式的示例。
在图4的示例中,步骤S320可以具体包括步骤:
S410,将所述解码端输入和所述解码器隐状态历史向量相加,作为所述解码器在当前时间步的第一输入量。
S420,根据第一输入量和在当前时间步之前的上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
即,st=LSTM(z′t,st-1),这里,LSTM表示LSTM单元模型的算法。在此以LSTM为例表示循环神经网络,应当理解的是,图4中的实施例也适用于诸如基本RNN、GRU的其他循环神经网络。
在图4的实施例中,将解码器隐状态历史向量附加到解码端输入zt,与上一时间步的解码器隐状态st-1一起用来确定当前时间步t的解码器隐状态st。应当理解的是,也可以不将隐状态历史向量附加到解码端输入zt,而是在计算st的过程中独立使用它作为参数。
图5示出了步骤S320的另一实施例,在该实施例中,将注意力机制引入解码器,从而引入了源上下文向量。
为了扩展神经翻译模型的表示能力,在机器翻译系统中可以引入注意力(attention)机制。在解码器解码过程中,通过引入“注意力”机制可以使解码处理聚焦于源语言(注解向量序列)与当前解码步骤最相关的片段。基于注意力机制的神经机器翻译系统已经取得了优异的性能。然而,当前对神经机器翻译的改进工作都主要集中于更好地聚焦于源语言片段,很少关注目标端(即解码端)上下文信息对解码性能的影响。
如图5所示,步骤S320可以具体包括步骤:
S510,获取当前时间步的源上下文向量。
在注意力机制下,不是使用一个固定向量(例如hi)表示源语言,而是使用一组向量表示源语言,在每一时间步动态地选择源语言与当前翻译步骤最相关的片段,将不同向量表示(h1,……hi,……)加权求和,作为当前源语言的上下文信息,即源上下文向量,传入解码器。在解码器引入了注意力机制的情况下,可以根据在当前时间步t的上一时间步t-1的解码器隐状态st-1,得到在当前时间步t的源上下文向量其计算方式为: 其中n为组成待转换源内容的源语言单词的个数。可以通过获取每个编码器隐状态hi并根据解码器隐状态st-1计算相应的权重值βti,来计算源上下文向量
在一个实施例中,可以根据如下公式由解码器隐状态st-1和编码器隐状态hi计算得到βti:
其中,eti=VT(Uhi+Wst-1),etj=VT(Uhj+Wst-1),其中,U、V、W为解码器所基于的循环神经网络的训练参数,可以通过训练而得到,hj为在时间步j的编码器隐状态。
S520,将所述解码端输入、所述解码器隐状态历史向量和所述源上下文向量相加,作为所述解码器在当前时间步的第二输入量。
S530,根据第二输入量和在当前时间步之前的上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
在步骤S530中,将步骤S520中得到的输入量与上一时间步的解码器隐状态st-1一起用来计算当前时间步的解码器隐状态st。即,st=LSTM(z″t,st-1),这里,LSTM表示LSTM单元模型的算法。在此以LSTM为例表示循环神经网络,应当理解的是,图5中的实施例也适用于诸如基本RNN、GRU的其他循环神经网络。
虽然在图4和图5中列举了步骤S320的两个具体实施例,但应当理解,还可以以其他方式来实施步骤S320。例如,在不同的循环神经网络中,除了解码端输入、解码器隐状态历史向量、源上下文向量,还可以根据需要引入其他向量用以计算当前时间步的解码器隐状态st。例如,在一个示例中,还可以获取上一时间步的解码器单元状态(例如,对应于LSTM网络的记忆单元状态),并根据如前所述的第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。图6示出了这样的一个示例。在该示例中,除了计算当前时间步的解码器隐状态,还可以根据如前所述的第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,计算当前时间步的解码器单元状态,以供后续时间步的处理使用。
如图6所示,在图6的实施例中,步骤S320可以包括步骤:
S610,获取当前时间步的源上下文向量;
S620,将所述解码端输入、所述解码器隐状态历史向量和所述源上下文向量相加,作为所述解码器在当前时间步的第二输入量;
S630,获取上一时间步的解码器单元状态;
S640,根据第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
图6的实施例与图5的实施例相比,增加了步骤S630,并且在计算当前时间步的解码器隐状态的步骤S640中将步骤S630中获取的上一时间步的解码器单元状态考虑了进去。
即,st=LSTM(z″t,st-1,ct-1),ct-1为上一时间步的解码器单元状态。在每一时间步t,可以根据如前所述的第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,来计算该时间步t的解码器单元状态,以供后续时间步的处理使用。这里,LSTM表示LSTM单元模型的算法。在此以LSTM为例表示循环神经网络,应当理解的是,图5中的实施例也适用于诸如基本RNN、GRU的其他循环神经网络。
在图6中,虽然将步骤S610-S640示出为是顺序,但应当理解的是,步骤S630也可以在步骤S620或步骤S610之前被执行。
下面将根据图7中的具体的循环神经网络模型来进一步详细说明本公开的原理。在图7中以LSTM网络模型为例示出了根据本公开原理的循环神经网络模型。应当理解,本公开原理还适用于其他任何合适的循环神经网络。
LSTM单元可以包含记忆单元、输入门、忘记门和输出门。其中,记忆单元储存LSTM单元的历史信息,通过输入门仔细地控制当前输入有哪部分可以被存储进来,通过忘记门控制历史信息有多少应该被忘记。最后,输出门被用来对有多少信息可以被输出进行决策。图7示出了LSTM单元的示例模型。
一般地,LSTM模型的输入包括上一时间步的解码器端LSTM单元状态(如前所述的解码器单元状态)Ct-1、上一时间步的解码器端LSTM单元隐状态(如前所述的解码器隐状态)st-1、当前时间步的解码端输入zt以及附加到zt的源上下文向量在图7的示例中,除了以上输入,当前时间步t之前的隐状态s1、s2、……、st-2也被引入了LSTM单元。由图7可以看出,当前时间步t之前所有时间步的解码器隐状态s1、s2、……、st-1被求加权和以得到解码器隐状态历史向量与的计算方式如前所述,此处不再赘述。在图7中,zt、和被相加到一起形成一个输入量
如图7中所示,遗忘门710是以上一时间步的输出st-1以及如上所述得到的输入量z″t为输入的sigmoid函数,其为Ct-1中的每一项产生一个在[0,1]内的值,来控制上一时间步的解码器单元状态被遗忘的程度,其中遗忘门710的输出ft为:
ft=σ(Wzfz″t+Wsfst-1),
其中,σ表示sigmoid函数,Wzf和Wsf为LSTM网络的训练参数,可以通过训练得到。
输入门720和一个tanh函数配合控制有哪些新信息被加入。tanh函数产生一个新的候选向量输入门720为中的每一项产生一个在[0,1]内的值,控制新信息被加入的多少。至此,可以得到解码器单元状态ct:
ct=ft·ct-1+it·tanh(Wzcz″t+Wscst-1),
其中,it=σ(Wziz″t+wsist-1)。其中,tanh表示tanh函数,Wzc、Wsc、Wzi、wsi为LSTM网络的训练参数,可以通过训练得到。
输出门730用来控制当前时间步的解码器单元状态ct有多少被过滤掉,以形成输出st。输出门730先将解码器单元状态ct激活,即输出门730为ct中的每一项产生一个在[0,1]内的值,以控制ct被过滤的程度。通过输出门730,可以得到当前时间步的解码器隐状态st:
st=ot·tanh(ct)
其中,ot=σ(Wzoz″t+Ws0st-1)。其中,Wzo、Ws0为LSTM网络的训练参数,可以通过训练得到。
综上,可以确定出当前时间步t的解码器隐状态st。
根据本公开的另一方面,还提供一种基于循环神经网络的机器翻译系统的翻译方法,机器翻译系统包括基于循环神经网络的解码器,该翻译方法在如前所述的确定解码器隐状态的方法步骤的基础上使用解码器隐状态确定相应的目标内容。图8示出了根据本公开一示例性实施例的基于循环神经网络的翻译方法的示意流程图。如图8所示,该示例翻译方法可以包括步骤:
S810,获取解码器的当前时间步的解码端输入;
S820,获取当前时间步之前每个时间步的解码器隐状态;
S830,根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态;
S840,根据当前时间步的解码器隐状态,确定相对应的目标向量,作为当前时间步的解码器输出。
可以看出,步骤S810-830与步骤S210-230相同,在此不再赘述。在步骤S840中,根据步骤S830中计算的解码器隐状态确定相对应的目标向量,即转换后目标内容的向量表示。在机器翻译领域,机器翻译系统将由源语言单词组成的源内容翻译成由目标语言单词组成的目标内容,解码器在每一时间步的输出为表示目标语言单词的目标向量。
具体地,在步骤S840中,解码器根据当前时间步的解码器隐状态计算目标向量表中每个目标向量的概率,并选择概率最大的目标向量作为当前时间步的解码器输出。例如,在机器翻译领域,目标向量表为目标词汇表,目标向量是目标词汇的向量表示。
在一个示例中,可以通过softmax函数(如图1中所示)根据当前时间步的解码器隐状态来实现所述概率计算。在另一示例中,也可以将当前时间步的解码器隐状态作为参数经过非线性变换来实现所述概率计算,在非线性变换时,可以单独使用解码器隐状态作为参数,也可以将其与其他量(例如源上下文向量)一起作为参数。
解码器以如上所述的方式在每一时间步预测出一个目标语言单词,直到得到完整的目标语言内容。
图9示出了根据本公开一示例性实施例的翻译示例的示意图。在图9的示例中,待翻译源内容为“猫坐在垫子上”,在之前的时间步中,解码器已经解码/预测出目标内容“catsat on the”,在当前时间步将要预测出的单词为“mat”。在传统的翻译方法中,根据注意力机制,聚焦于源端上下文信息“猫坐在垫子上”来生成下一目标词。而在根据本公开的方案中,充分挖掘了目标端的信息,将翻译历史信息(“cat sat on the”)引入当前时间步的解码处理。例如,在图9中,在预测当前时间步的目标词时(或者说在确定当前时间步的解码器隐状态时),除了考虑源上下文信息“猫坐在垫子上”(源上下文向量),还考虑目标端的翻译历史信息“cat sat on the”(解码器隐状态历史向量)。将这两部分的信息通过加权组合起来。这样目标语言单词之间的长距离依赖关系就可以被捕捉到。在图9中,“猫坐在垫子上”中每个词上方的数字表示该词在当前时间步的解码处理中的权重(βti),同样,“cat sat onthe”中每个词上方的数字也表示该词在当前时间步的解码处理中的权重(αtj)。
根据本公开的又一方面,还提供一种确定基于循环神经网络的解码器的隐状态的装置。该装置可以执行如上所述的各方法实施例,其可以被实现在如图1中所示的解码器120中,或者可以被实现为与解码器120相连接的其他装置中。图10示出了根据本公开一示例性实施例的这样的装置的示意组成框图。如图10的实施例所示,该示例装置1001可以包括:
解码端输入获取模块1010,其被配置为:获取解码器的当前时间步的解码端输入;
历史隐状态获取模块1020,其被配置为:获取当前时间步之前每个时间步的解码器隐状态;
解码器隐状态计算模块1030,其被配置为:根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
在图10的实施例中,所述解码器隐状态计算模块1030可以进一步包括:
隐状态历史向量计算单元1031,其被配置为:根据所获取的当前时间步之前每个时间步的解码器隐状态,计算得到当前时间步的解码器隐状态历史向量;
解码器隐状态计算单元1032,其被配置为:根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态。
在图10的实施例中,所述解码器隐状态计算模块1030还可以包括:
输入量计算单元1033,其被配置为:将所述解码端输入和所述解码器隐状态历史向量相加,作为所述解码器在当前时间步的第一输入量;
其中,解码器隐状态计算单元1032被配置为:根据第一输入量和上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
在图10的实施例中,该示例装置0101还可以包括:
源上下文获取模块1034,其被配置为:获取当前时间步的源上下文向量;
其中,所述输入量计算单元1033被配置为:将所述解码端输入、所述解码器隐状态历史向量和所述源上下文向量相加,作为所述解码器在当前时间步的第二输入量;
解码器隐状态计算单元1032被配置为:根据第二输入量和上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
在图10的实施例中,该示例装置1001还可以包括:
解码器单元状态获取模块1035,其被配置为:获取上一时间步的解码器单元状态;
其中,解码器隐状态计算单元1032被配置为:根据第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
上述装置中各个单元/模块的功能和作用的实现过程以及相关细节具体详见上述方法实施例中对应步骤的实现过程,在此不再赘述。
以上各实施例中的装置实施例可以通过硬件、软件、固件或其组合的方式来实现,并且其可以被实现为一个单独的装置,也可以被实现为各组成单元/模块分散在一个或多个计算设备中并分别执行相应功能的逻辑集成系统。
以上各实施例中组成该装置的各单元/模块是根据逻辑功能而划分的,它们可以根据逻辑功能被重新划分,例如可以通过更多或更少的单元/模块来实现该装置。这些组成单元/模块分别可以通过硬件、软件、固件或其组合的方式来实现,它们可以是分别的独立部件,也可以是多个组件组合起来执行相应的逻辑功能的集成单元/模块。所述硬件、软件、固件或其组合的方式可以包括:分离的硬件组件,通过编程方式实现的功能模块、通过可编程逻辑器件实现的功能模块,等等,或者以上方式的组合。
根据一个示例性实施例,该装置可被实现为一种机器设备,该机器设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时,使得所述机器设备执行如上所述的各方法实施例中的任一个,或者,所述计算机程序在被所述处理器执行时使得该机器设备实现如上所述的各装置实施例的组成单元/模块所实现的功能。
上面的实施例中所述的处理器可以指单个的处理单元,如中央处理单元CPU,也可以是包括多个分散的处理单元/处理器的分布式处理器系统。
上面的实施例中所述的存储器可以包括一个或多个存储器,其可以是计算设备的内部存储器,例如暂态或非暂态的各种存储器,也可以是通过存储器接口连接到计算设备的外部存储装置。
图11示出了这样的机器设备1101的一个示例性实施例的示意组成框图。如图11所示,该机器设备可以包括但不限于:至少一个处理单元1110、至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述示例性方法的描述部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图2-6和图8中所示的各个步骤。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
该机器设备也可以与一个或多个外部设备1170(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该机器设备交互的设备通信,和/或与使得该机器设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,该机器设备还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与该机器设备的其它模块通信。应当明白,尽管图中未示出,但该机器设备可以使用其它硬件和/或软件模块来实现,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (15)
1.一种确定基于循环神经网络的解码器的隐状态的方法,其特征在于,包括:
获取解码器的当前时间步的解码端输入;
获取当前时间步之前每个时间步的解码器隐状态;
根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
2.根据权利要求1所述的方法,其特征在于,所述根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态包括:
根据所获取的当前时间步之前每个时间步的解码器隐状态,计算得到当前时间步的解码器隐状态历史向量;
根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态包括:
将所述解码端输入和所述解码器隐状态历史向量相加,作为所述解码器在当前时间步的第一输入量;
根据第一输入量和上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
4.根据权利要求2所述的方法,其特征在于,所述根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态包括:
获取当前时间步的源上下文向量;
将所述解码端输入、所述解码器隐状态历史向量和所述源上下文向量相加,作为所述解码器在当前时间步的第二输入量;
根据第二输入量和在当前时间步之前的上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
5.根据权利要求2所述的方法,其特征在于,所述根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态包括:
获取当前时间步的源上下文向量;
将所述解码端输入、所述解码器隐状态历史向量和所述源上下文向量相加,作为所述解码器在当前时间步的第二输入量;
获取上一时间步的解码器单元状态;
根据第二输入量、上一时间步的解码器单元状态、上一时间步的解码器隐状态,计算当前时间步的解码器隐状态。
6.根据权利要求5所述的方法,其特征在于,还包括:
根据当前时间步的第二输入量、上一时间步的解码器单元状态和上一时间步的解码器隐状态,计算得到当前时间步的解码器单元状态。
7.根据权利要求2-6中任一项所述的方法,其特征在于,所述根据所获取的当前时间步之前每个时间步的解码器隐状态,计算得到当前时间步的解码器隐状态历史向量包括:
计算当前时间步之前所有时间步的解码器隐状态的加权和,作为当前时间步的解码器隐状态历史向量。
10.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态包括:
根据以下公式计算当前时间步的解码器隐状态st:
zt表示当前时间步的解码端输入,
st-1表示当前时间步之前的上一时间步的解码器隐状态,
其中,σ表示sigmoid函数,tanh表示tanh函数,Wzo、Ws0、Wzc、Wsc、Wzf、Wsf、Wzi、Wsi为解码器所基于的所述循环神经网络的训练参数。
11.一种确定基于循环神经网络的解码器的隐状态的装置,其特征在于,包括:
解码端输入获取模块,其被配置为:获取解码器的当前时间步的解码端输入;
历史隐状态获取模块,其被配置为:获取当前时间步之前每个时间步的解码器隐状态;
解码器隐状态计算模块,其被配置为:根据所述解码端输入和当前时间步之前所有时间步的解码器隐状态,计算当前时间步的解码器隐状态。
12.根据权利要求11所述的装置,其特征在于,所述解码器隐状态计算模块包括:
隐状态历史向量计算单元,其被配置为:根据所获取的当前时间步之前每个时间步的解码器隐状态,计算得到当前时间步的解码器隐状态历史向量;
解码器隐状态计算单元,其被配置为:根据所述解码端输入和所述解码器隐状态历史向量,计算当前时间步的解码器隐状态。
13.一种基于循环神经网络的解码器,其特征在于,所述解码器用于对待转换源数据进行解码处理,以得到与所述待转换源数据相对应的目标数据,
其中,所述解码器包括一个或多个循环神经网络单元,所述一个或多个循环神经网络单元中的每个循环神经网络单元将其当前时间步的解码器隐状态传输给在时间步上位于该循环神经网络单元后面的每个循环神经网络单元,使得所述一个或多个循环神经网络单元中的每个循环神经网络单元能够获得其当前时间步之前每个时间步的解码器隐状态。
14.一种机器设备,其特征在于,包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至10中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811087560.XA CN110913229B (zh) | 2018-09-18 | 2018-09-18 | 基于rnn的解码器隐状态确定方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811087560.XA CN110913229B (zh) | 2018-09-18 | 2018-09-18 | 基于rnn的解码器隐状态确定方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110913229A true CN110913229A (zh) | 2020-03-24 |
CN110913229B CN110913229B (zh) | 2021-10-15 |
Family
ID=69812732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811087560.XA Active CN110913229B (zh) | 2018-09-18 | 2018-09-18 | 基于rnn的解码器隐状态确定方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110913229B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640440A (zh) * | 2020-04-30 | 2020-09-08 | 华为技术有限公司 | 一种音频流解码方法、装置、存储介质及设备 |
CN112036546A (zh) * | 2020-08-24 | 2020-12-04 | 上海交通大学 | 序列处理方法及相关设备 |
CN112863180A (zh) * | 2021-01-11 | 2021-05-28 | 腾讯大地通途(北京)科技有限公司 | 交通速度预测方法、装置、电子设备及计算机可读介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1378855B1 (en) * | 2002-07-05 | 2007-10-17 | Honda Research Institute Europe GmbH | Exploiting ensemble diversity for automatic feature extraction |
US20150170020A1 (en) * | 2013-12-13 | 2015-06-18 | Amazon Technologies, Inc. | Reducing dynamic range of low-rank decomposition matrices |
CN105868829A (zh) * | 2015-02-06 | 2016-08-17 | 谷歌公司 | 用于数据项生成的循环神经网络 |
CN106126507A (zh) * | 2016-06-22 | 2016-11-16 | 哈尔滨工业大学深圳研究生院 | 一种基于字符编码的深度神经翻译方法及系统 |
US9799327B1 (en) * | 2016-02-26 | 2017-10-24 | Google Inc. | Speech recognition with attention-based recurrent neural networks |
CN107680580A (zh) * | 2017-09-28 | 2018-02-09 | 百度在线网络技术(北京)有限公司 | 文本转换模型训练方法和装置、文本转换方法和装置 |
CN108171198A (zh) * | 2018-01-11 | 2018-06-15 | 合肥工业大学 | 基于非对称多层lstm的连续手语视频自动翻译方法 |
-
2018
- 2018-09-18 CN CN201811087560.XA patent/CN110913229B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1378855B1 (en) * | 2002-07-05 | 2007-10-17 | Honda Research Institute Europe GmbH | Exploiting ensemble diversity for automatic feature extraction |
US20150170020A1 (en) * | 2013-12-13 | 2015-06-18 | Amazon Technologies, Inc. | Reducing dynamic range of low-rank decomposition matrices |
CN105868829A (zh) * | 2015-02-06 | 2016-08-17 | 谷歌公司 | 用于数据项生成的循环神经网络 |
US9799327B1 (en) * | 2016-02-26 | 2017-10-24 | Google Inc. | Speech recognition with attention-based recurrent neural networks |
CN106126507A (zh) * | 2016-06-22 | 2016-11-16 | 哈尔滨工业大学深圳研究生院 | 一种基于字符编码的深度神经翻译方法及系统 |
CN107680580A (zh) * | 2017-09-28 | 2018-02-09 | 百度在线网络技术(北京)有限公司 | 文本转换模型训练方法和装置、文本转换方法和装置 |
CN108171198A (zh) * | 2018-01-11 | 2018-06-15 | 合肥工业大学 | 基于非对称多层lstm的连续手语视频自动翻译方法 |
Non-Patent Citations (2)
Title |
---|
MINGXUANWANG, JUN XIE, ZHIXING TAN, JINSONG SU, DEYI XIONG, CH: "Neural Machine Translation with Decoding-History Enhanced Attention", 《PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL LINGUISTICS》 * |
张冲: "基于Attention-Based LSTM模型的文本分类技术的研究", 《中国优秀硕士论文全文数据库(电子期刊)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640440A (zh) * | 2020-04-30 | 2020-09-08 | 华为技术有限公司 | 一种音频流解码方法、装置、存储介质及设备 |
WO2021218240A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种音频流解码方法、装置、存储介质及设备 |
CN111640440B (zh) * | 2020-04-30 | 2022-12-30 | 华为技术有限公司 | 一种音频流解码方法、装置、存储介质及设备 |
CN112036546A (zh) * | 2020-08-24 | 2020-12-04 | 上海交通大学 | 序列处理方法及相关设备 |
CN112036546B (zh) * | 2020-08-24 | 2023-11-17 | 上海交通大学 | 序列处理方法及相关设备 |
CN112863180A (zh) * | 2021-01-11 | 2021-05-28 | 腾讯大地通途(北京)科技有限公司 | 交通速度预测方法、装置、电子设备及计算机可读介质 |
CN112863180B (zh) * | 2021-01-11 | 2022-05-06 | 腾讯大地通途(北京)科技有限公司 | 交通速度预测方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110913229B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314946B2 (en) | Text translation method, device, and storage medium | |
JP2022177220A (ja) | テキスト認識モデルの訓練方法、テキスト認識方法及び装置 | |
KR20190039817A (ko) | 신경 기계 번역 시스템 | |
US10810993B2 (en) | Sample-efficient adaptive text-to-speech | |
CN110913229B (zh) | 基于rnn的解码器隐状态确定方法、设备和存储介质 | |
US20220300718A1 (en) | Method, system, electronic device and storage medium for clarification question generation | |
CN107729329A (zh) | 一种基于词向量连接技术的神经机器翻译方法及装置 | |
CN109635197B (zh) | 搜索方法、装置、电子设备及存储介质 | |
CN108897852B (zh) | 对话内容连贯性的判断方法、装置以及设备 | |
CN111816169B (zh) | 中英语种混杂语音识别模型训练方法和装置 | |
CN111401079A (zh) | 神经网络机器翻译模型的训练方法、装置及存储介质 | |
CN114676234A (zh) | 一种模型训练方法及相关设备 | |
CN111401037B (zh) | 自然语言的生成方法、装置、电子设备及存储介质 | |
CN113609284A (zh) | 一种融合多元语义的文本摘要自动生成方法及装置 | |
JP2021033995A (ja) | テキスト処理装置、方法、デバイス及びコンピューター読み取り可能な記憶媒体 | |
CN108763230B (zh) | 利用外部信息的神经机器翻译方法 | |
US20230178067A1 (en) | Method of training speech synthesis model and method of synthesizing speech | |
CN110020440B (zh) | 一种机器翻译方法、装置、服务器及存储介质 | |
CN115359314A (zh) | 模型训练方法、图像编辑方法、装置、介质与电子设备 | |
CN112836040B (zh) | 多语言摘要的生成方法、装置、电子设备及计算机可读介质 | |
CN112926344B (zh) | 基于词向量替换数据增强的机器翻译模型训练方法、装置、电子设备及存储介质 | |
CN111832699A (zh) | 用于神经网络的计算高效富于表达的输出层 | |
CN113593534B (zh) | 针对多口音语音识别的方法和装置 | |
CN115270719A (zh) | 基于多模态信息的文本摘要生成方法、训练方法及其装置 | |
CN113901841A (zh) | 翻译方法、装置以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021596 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |