基于依存信息监督的神经网络机器翻译方法及装置
技术领域
本发明涉及机器翻译技术领域,尤其是涉及一种基于依存信息监督的神经网络机器翻译方法及装置。
背景技术
机器翻译是人工智能和自然语言处理研究领域的重要组成部分,机器翻译研究的目标是如何利用计算机强大的计算功能自动地实现不同语言之间的相互转换。在日常生活中,机器翻译也是目前互联网使用频率比较高的服务之一。虽然机器翻译的译文质量与专业翻译员所译相比差距仍然较大,但在迎合翻译需求方面与翻译速度上,机器翻译具有不可替代性,学术界与产业界都把该领域作为重点研究方向。
早期的机器翻译有基于规则的机器翻译、基于实例的机器翻译、以及统计机器翻译。从20世纪90年代以来,随着计算能力的提高和规模化的语料库的出现,统计机器翻译有了长足的进步,成为了这个时期机器翻译的主流方法。
1957年,Rosenblatt提出了感知机,即,最初的神经网络。经过一段时间的发展,特别是在Hinton、LeCun、Bengio等人的推动下,神经网络方法逐渐发展起来。2006年,Hinton等人通过逐层训练方法解决了神经网络训练难题,同时随着并行计算、图形处理器的广泛应用,神经网络在图像识别、语音识别等领域取得了巨大的成功,与此同时,此项技术也应用在了机器翻译上,即神经网络机器翻译。
目前,主流的神经网络机器翻译的实现是以循环神经网络为基础,采用了结合注意力机制的序列到序列模型。其中,注意力机制是对经典的序列到序列神经机器翻译模型的重大改进。基于注意力机制的神经机器翻译模型将源语言句子编码为对应当前翻译时刻的向量序列,而不是在任何翻译时刻都不变的固定向量,在生成目标语言时,注意力机制使得翻译模型能够利用与当前翻译时刻相关的源语言信息。
注意力机制是主流神经网络机器翻译模型中的重要组成部分。但注意力机制是一种无监督的模型,不同时刻的注意力机制之间没有明显的约束条件,且在应用中,由于需要回顾全部的源语言信息而使得计算任务繁重。针对注意力机制存在计算量较大的问题,有人提出了局部注意力机制,在当前翻译时刻回顾部分源语言信息而不是回顾全部的源语言信息,这种方法相对于全局注意力机制减轻了计算压力,并提升了神经机器翻译模型在长句子翻译任务上的表现。
为了改进注意力机制而提出的局部注意力机制,为了缓解计算压力在计算当前翻译时选择只关注设置窗口大小的源语言信息。但是,这样做是有风险的,虽然上下文信息对当前翻译词是重要的,但是很可能丢失了与当前翻译词有关的、但却处于远距离的源语言信息。局部注意力机制的提出,虽然在一定程度上减轻了计算压力,但却可能会丢失远距离有用的词汇信息,因此,现有的神经网络机器翻译模型的翻译效果较差。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于依存信息监督的神经网络机器翻译方法及装置,使得翻译模型在减轻计算压力的同时能够捕获远距离语义信息,从而优化翻译模型的翻译效果。
为了解决上述技术问题,本发明提供了一种基于依存信息监督的神经网络机器翻译方法,包括:
获取待翻译的源语句并拆分为语言单位,将每一语言单位转换为输入向量后由编码器编码为隐状态向量;
对所述源语句进行依存分析,并根据分析所得的依存信息以及所述隐状态向量生成每一语言单位的依存信息块;
利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;
根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。
进一步地,所述对所述源语句进行依存分析,并根据分析所得的依存信息以及所述隐状态向量生成每一语言单位的依存信息块,具体包括:
对所述源语句进行依存分析,得到每一语言单位的依存信息;
为每一语言单位组织一组与该语言单位的依存信息相对应的编码器端隐状态向量,得到每一语言单位的依存信息块。
进一步地,所述利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息,具体的:
利用基于所述依存信息块监督的注意力机制回顾与当前翻译时刻相关的输入向量信息,得到当前翻译时刻的注意力向量,以所述当前翻译时刻的注意力向量作为当前翻译时刻解码器端的回顾信息。
进一步地,所述根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果,具体的:
结合当前翻译时刻的注意力向量、上一翻译时刻的解码器端隐状态向量以及上一翻译时刻的目标词向量,利用非线性函数计算得到当前翻译时刻的解码器端隐状态向量;
结合所述当前翻译时刻的注意力向量、上一翻译时刻的目标词向量以及所述当前翻译时刻的解码器端隐状态向量计算得到当前时刻的翻译结果。
进一步地,所述将每一语言单位转换为输入向量后由编码器编码为隐状态向量,具体为:
将每一语言单位转换为输入向量,利用循环神经网络将所述输入向量编码为编码器端隐状态向量。
优选地,其特征在于,所述依存分析的方法包括依存句法分析法。
为了解决相同的技术问题,本发明还提供了一种基于依存信息监督的神经网络机器翻译装置,包括语句编码模块、依存信息分析模块、注意力向量计算模块和翻译生成模块;
所述语句编码模块,用于获取待翻译的源语句并拆分为语言单位,将每一语言单位转换为输入向量后由编码器编码为隐状态向量;
依存信息分析模块,用于对所述源语句进行依存分析,并根据分析所得的依存信息以及所述隐状态向量生成每一语言单位的依存信息块;
注意力向量计算模块,用于利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;
翻译生成模块,用于根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。
进一步地,所述依存信息分析模块,具体用于对所述源语句进行依存分析,得到每一语言单位的依存信息,为每一语言单位组织一组与该语言单位的依存信息相对应的编码器端隐状态向量,得到每一语言单位的依存信息块。
进一步地,所述注意力向量计算模块,具体用于利用基于所述依存信息块监督的注意力机制回顾与当前翻译时刻相关的输入向量信息,得到当前翻译时刻的注意力向量,以所述当前翻译时刻的注意力向量作为当前翻译时刻解码器端的回顾信息。
进一步地,所述翻译生成模块,具体用于结合当前翻译时刻的注意力向量、上一翻译时刻的解码器端隐状态向量以及上一翻译时刻的目标词向量,利用非线性函数计算得到当前翻译时刻的解码器端隐状态向量;并结合所述当前翻译时刻的注意力向量、上一翻译时刻的目标词向量以及所述当前翻译时刻的解码器端隐状态向量计算得到当前时刻的翻译结果。
本发明公开了一种基于依存信息监督的神经网络机器翻译方法及装置,所述方法包括:获取待翻译的源语句,将所述源语句拆分为语言单位,并将每一语言单位转换为输入向量并编码为隐状态向量;对所述源语句进行依存分析,并根据分析所得的依存信息生成每一语言单位的依存信息块;利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。本发明通过分析语句的依存信息为注意力机制提供了监督,使注意力翻译模型不再是关注窗口内固定范围的语义信息,而是关注与当前翻译时刻存在语义结构的依存词信息,这样不仅减少了翻译模型的计算量,而且使得翻译模型具有捕获远距离语义信息的能力,从而有效优化了翻译模型的翻译效果。
附图说明
图1是本发明实施例一提供的基于依存信息监督的神经网络机器翻译方法的流程示意图;
图2是本发明实施例一提供的现有技术中结合注意力机制的神经网络机器翻译模型示意图;
图3是本发明实施例一提供的现有技术中结合局部注意力机制的神经网络机器翻译模型示意图;
图4是本发明实施例一提供的语句依存关系分析示意图;
图5是本发明实施例一提供的有依存信息监督的注意力神经网络机器翻译模型示意图;
图6是本发明实施例一提供的基于依存信息监督的神经网络机器翻译装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明实施例提供了一种基于依存信息监督的神经网络机器翻译方法,包括:
步骤S1、获取待翻译的源语句并拆分为语言单位,将每一语言单位转换为输入向量后由编码器编码为隐状态向量;
在本发明实施例中,在步骤S1中,首先,神经网络机器翻译模型中的编码器端读入划分为语言单位(可以是字、词、常用短语等)的源语言句子,经向量化后由RNN(RecurrentNeural Network,循环神经网络)网络循环读入为输入隐状态序列。需要说明的是,在本发明中为通过word embedding技术将源语句进行向量化。
步骤S2、对所述源语句进行依存分析,并根据分析所得的依存信息以及所述隐状态向量生成每一语言单位的依存信息块;
进一步地,步骤S2具体包括:
对所述源语句进行依存分析,得到每一语言单位的依存信息;
为每一语言单位组织一组与该语言单位的依存信息相对应的编码器端隐状态向量,得到每一语言单位的依存信息块。
在本发明实施例中,步骤S2首先利用独立于神经网络的依存分析工具对所述源语句进行依存分析,并将源语句中第j个词的依存信息组织为:
其中,xj是源语句中的一个词,分别表示在依存语法树中xj的父、子、兄弟词;表示xj在其句子中的位置,同理,分别表示其父、子、兄弟词在这句话中的位置,如图5所示,x5的依存信息L5组织为:L5=<5,7,1,3,6,8>,5是x5在源语句中的位置,7为x5的父节点在源语句中的位置,1、3是x5孩子节点在源语句中的位置,6、8是x5兄弟节点在源语句中的位置。
在对所述源语句进行依存分析,得到每一语言单位的依存信息后,根据分析所得的依存信息生成每一语言单位的依存信息块。如图5所示,编码器端除了读入源语句,还将读入此语句中每个词的依存信息,在源语句经过RNN读入成为隐状态序列后,利用每个词的依存信息,生成xj的依存信息块:
其中,是xj的隐状态向量,是xj的父、子、兄弟的隐状态向量。例如,如图5所示,
可以理解的是,依存句法是在将句子分析成一棵二叉依存语法树的基础上,描绘各个词语之间存在的依存关系。依存关系通常由箭头线段表示,从中心词出发,指向其下级词,一个句子中的中心词通常由动词担任,其他词或直接、或间接的与中心词相关。如图4所示,一句话中存在两个相同词语“苹果”,第一个指水果中的苹果,第二个指的是电子产品。经依存分析后可以看到,“手机”与第二个“苹果”之间存在直接依存关系,说明“手机”和第二个“苹果”为名词组合形式。因此,在机器进行翻译的过程中,例如,汉译英任务,带有名词组合依存信息的第二个汉语词“苹果”翻译成正确结果“iPhone”(美国苹果公司生产的手机名称)的概率要大于错误翻译“apple”(苹果)的概率。由此可见依存关系能加强语义关系,并且可捕捉到远距离词的依存信息,从而帮助得到正确的翻译结果。
步骤S3、利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;
进一步地,步骤S3具体包括:
利用基于所述依存信息块监督的注意力机制回顾与当前翻译时刻相关的输入向量信息,得到当前翻译时刻的注意力向量,以所述当前翻译时刻的注意力向量作为当前翻译时刻解码器端的回顾信息。
在本发明实施例中,需要说明的是,在生成每一语言单位的依存信息块后,利用局部注意力机制选择位置的方法,选择一个位置pt:
上述pt的学习公式为现有技术中局部注意力机制常用的公式,在此不再赘述。
请参见图5,需要说明的是,本发明提供的有依存信息监督的注意力神经网络机器翻译方法,相比于现有技术,注意力机制中的对齐模型计算过程改变为:仅将编码器端的在依存信息块中的隐状态向量与上一时刻(或当前时刻)的解码器端的隐状态向量(输出向量序列)进行相关程度的计算。因此,此时注意力向量仅为依存信息块中的隐状态向量乘以其权重的和:
其中,ct为t时刻注意力机制产生的向量,DBj为根据上述pt选择的位置词语xj的依存信息块,αtj为解码器端各隐状态向量的对齐权重:
其中,etj为由神经网络学习得到的对齐模型(匹配度),上述αtj的计算公式为现有技术中局部注意力机制神经网络机器翻译模型中的常用的公式,在此不再赘述。
请参见图2,需要说明的是,现有技术在经典的注意力机制神经网络机器翻译模型中,对齐模型计算了每一时刻的编码器端的隐状态向量和上一时刻(也可为当前时刻)的解码器端的隐状态向量的相关程度;因此,现有的全局注意力机制产生的向量c’t为编码器端各隐状态向量乘以其对齐权重的和:
其中J为源语句的长度。
请参见图3,而局部注意力机制在全局注意力机制的基础上,为了减少计算量,仅计算和对比了上一时刻(或当前时刻)解码器端的隐状态向量和窗口大小的部分编码器端的隐状态向量的相关程度;此时,注意力机制产生的向量c”t为:
其中,半个窗口大小D根据经验设置,pt为模型学习的位置选择(如上述公式),以这个位置的词为中心,考察窗口内的编码器端隐状态向量与解码器端隐状态向量的相关程度。
可以理解的是,对齐模型通过注意力机制和神经网络的学习训练,将源语言中的有用信息提供给当前翻译时刻。
在本发明实施例中,可以理解的是,现有技术中注意力机制是一种无监督的模型,不同时刻的注意力之间仅通过神经网络模型学习,在样本语料库少或者模型训练不充分的情况下效果可能不好。而且计算当前时刻的注意力向量时,需要和源语言中的每一个隐状态向量进行对比,计算量较大。而即使有人提出了局部注意力机制,这样做仅仅是获取了当前翻译词的上下文信息,但是丢失了与当前翻译词有关的、处于远距离的源语言信息。因此,本发明通过对依存信息的组织和利用,并将依存信息分析与注意力机制的融合,设计更加完善的注意力机制神经网络机器翻译模型。
步骤S4、根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。
进一步地,步骤S4具体包括:
结合当前翻译时刻的注意力向量、上一翻译时刻的解码器端隐状态向量以及上一翻译时刻的目标词向量,利用非线性函数计算得到当前翻译时刻的解码器端隐状态向量;
结合所述当前翻译时刻的注意力向量、上一翻译时刻的目标词向量以及所述当前翻译时刻的解码器端隐状态向量计算得到当前时刻的翻译结果。
在本发明实施例中,需要说明的是,翻译模型的解码器端根据生成的隐状态向量使用softmax(逻辑回归函数)层来计算下一个目标语言(翻译词)的条件概率:
其中,yt-1是上一时刻产生的目标词的向量化表示,是t时刻解码器端的RNN网络产生的目标词的隐状态向量,ct是同一时刻注意力机制产生的向量(注意力向量),q(x)为softmax函数。而又由上一时刻的解码器端隐状态向量注意力向量和上一时刻的目标词的向量共同经非线性计算得出,其计算公式如下:
其中,g(x)可以是一个非线性的多层神经网络,其表达了解码器端隐藏层的变换,通过上述变换得到每一个解码器端的目标词向量。并以将所述条件概率最大化为目标,生成作为翻译结果的目标语句。
可以理解的是,神经网络机器翻译的本质是求解概率问题,即给定源语言,求目标语言的条件概率问题。选定好神经网络翻译模型后,从双语平行预料中学习并训练模型的参数,可用的模型参数能最大化上述条件概率来获得最优翻译结果。
所述将每一语言单位转换为输入向量后由编码器编码为隐状态向量,具体为:
将每一语言单位转换为输入向量,利用循环神经网络将所述输入向量编码为编码器端隐状态向量。
需要说明的是,本发明实施例通过word embedding技术将源语句进行向量化,得到每一语言单位的输入向量,然后通过RNN(Recurrent Neural Network,循环神经网络)将所述输入向量转换为编码器端的隐状态向量。
进一步地,所述依存分析的方法包括依存句法分析法。
需要说明的是,优选地,本发明实施例为对源语句进行依存句法分析得到依存信息。
请参见图6,为了解决相同的技术问题,本发明还提供了一种基于依存信息监督的神经网络机器翻译装置,包括语句编码模块、依存信息分析模块、注意力向量计算模块和翻译生成模块;
所述语句编码模块,用于获取待翻译的源语句并拆分为语言单位,将每一语言单位转换为输入向量后由编码器编码为隐状态向量;
依存信息分析模块,用于对所述源语句进行依存分析,并根据分析所得的依存信息以及所述隐状态向量生成每一语言单位的依存信息块;
注意力向量计算模块,用于利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;
翻译生成模块,用于根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。
进一步地,所述依存信息分析模块,具体用于对所述源语句进行依存分析,得到每一语言单位的依存信息,为每一语言单位组织一组与该语言单位的依存信息相对应的编码器端隐状态向量,得到每一语言单位的依存信息块。
进一步地,所述注意力向量计算模块,具体用于利用基于所述依存信息块监督的注意力机制回顾与当前翻译时刻相关的输入向量信息,得到当前翻译时刻的注意力向量,以所述当前翻译时刻的注意力向量作为当前翻译时刻解码器端的回顾信息。
进一步地,所述翻译生成模块,具体用于结合当前翻译时刻的注意力向量、上一翻译时刻的解码器端隐状态向量以及上一翻译时刻的目标词向量,利用非线性函数计算得到当前翻译时刻的解码器端隐状态向量;并结合所述当前翻译时刻的注意力向量、上一翻译时刻的目标词向量以及所述当前翻译时刻的解码器端隐状态向量计算得到当前时刻的翻译结果。
综上,实施本发明实施例,具有如下有益效果:
本发明公开了一种基于依存信息监督的神经网络机器翻译方法及装置,所述方法包括:获取待翻译的源语句,将所述源语句拆分为语言单位,并将每一语言单位转换为输入向量并编码为隐状态向量;对所述源语句进行依存分析,并根据分析所得的依存信息生成每一语言单位的依存信息块;利用基于所述依存信息块监督的注意力机制计算得到当前翻译时刻的回顾信息;根据所述当前翻译时刻的回顾信息,结合上一翻译时刻的翻译结果以及当前翻译时刻的解码器端隐状态向量生成当前时刻的翻译结果。本发明通过分析语句的依存信息为注意力机制提供了监督,使注意力翻译模型不再是关注窗口内固定范围的语义信息,而是关注与当前翻译时刻存在语义结构的依存词信息,这样不仅减少了翻译模型的计算量,而且使得翻译模型具有捕获远距离语义信息的能力,从而有效优化了翻译模型的翻译效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。