一种基于动态配置解码的神经机器翻译方法与流程

文档序号:18010341发布日期:2019-06-25 23:57阅读:174来源:国知局
一种基于动态配置解码的神经机器翻译方法与流程

本发明属于机器翻译技术领域,涉及一种基于动态配置解码的神经机器翻译方法。



背景技术:

神经机器翻译技术目前采用基于编码器-解码器框架的神经网络来进行建模。首先,输入的源语句使用网络的编码器来得到一个固定维度的向量,然后网络的解码器使用这个向量逐词地生成对应的翻译结果。这种方法已经在许多不同语种的互译中达到了最佳翻译性能。

在神经网络的解码器生成翻译结果的时候,通常有许多参数来控制解码器的行为。比如解码器会产生多个可能的翻译结果以及相应的分数。一般我们会挑选其中得分最高的翻译结果,但是很多情况下网络性能不够好,我们需要利用长度比这个参数来对这些得分进行一些调整,以防止太短或者太长的翻译结果被挑选到。一个使用长度比进行得分调整的示例如下:

正确答案:她有许多漂亮的衣服

翻译结果1:她有许多漂亮的衣服

结果1得分:-0.1-0.2-0.15-0.13-0.1

翻译结果2:有许多衣服

结果2得分:-0.12-0.15-0.1

对于翻译结果1来说,它的总得分是(-0.1+-0.2+-0.15+-0.13+-0.1)/5=-0.68/5=-0.136,其中5是翻译结果1的长度,而翻译结果2的总得分是(-0.12+-0.15+-0.1)/3=-0.37/3=-0.123。因为翻译结果2的得分比翻译结果1高,解码器会挑选翻译结果2作为最终的输出。显然,翻译结果1更接近正确答案,而翻译结果2相比起来太短了。长度比这个参数则在总得分的基础上把翻译结果的长度考虑进去。在长度比等于1.5的情况下,翻译结果1的得分现在是-0.68/51.5=-0.06,其中分母5是翻译结果1的长度,即词数。相应的翻译结果2的得分变为-0.37/31.5=-0.07。在这个得分的基础上挑选,解码器将会选择翻译结果1作为最终的输出。

除了长度比以外,解码器还有许多其他的参数来控制其不同的行为,比如束大小控制了解码器搜索的范围,解码长度限制了最终翻译结果的词数,等等。在实际应用中,解码器通常使用一个全局统一的参数配置来进行生成翻译结果,即不论什么样的源语句被输入进来,它所使用的参数配置都是不变的。而实际上不同的源语句它对应的最优的参数配置是各不相同的,比如有的句子需要倾向于生成短的翻译,而另外一些句子则倾向生成长的翻译。一个对不同源语句使用不同长度比设置的示例如下:

源语言1:关心

目标语1:takecareof

源语言2:更容易

目标语2:easier

对于源语言1来说,它只有一个词,而它的正确翻译有三个词,因此生成翻译的时候解码器应该倾向生成长翻译,即更大的长度比。而对于源语言2来说,它有两个词,而正确翻译只有一个词,因此解码器应该倾向生成短翻译,即更小的长度比。

因此,目前亟需一种决策方法,可根据不同的源语句选取对应的最优的参数配置。



技术实现要素:

本发明的目的是提供一种基于动态配置解码的神经机器翻译方法,以解决现有技术中神经机器翻译的解码技术中未能对不同的输入源语句设定不同的参数配置,而导致网络产生错误的翻译结果的问题。

本发明提供一种基于动态配置解码的神经机器翻译方法,包括如下步骤:

步骤1:在自注意力机制的transformer模型的编码器和解码器之间增加决策模型,构成改进的自注意力机制模型,所述决策模型基于卷积神经网络建立;

步骤2:输入双语句子级平行数据,分别对源语和目标语进行分词处理,获得分词后的双语平行句对,对改进的自注意力机制模型的编码器和解码器进行训练;

步骤3:用训练好的编码器对分词后的双语平行句对的源语句子按时序进行编码,获取隐藏层上每个时序的状态,即每个时序下不同层的编码信息;

步骤4:把获得的编码信息作为输入送入决策模型,决策模型对编码信息进行卷积、池化和归一化处理,输出相应的解码配置;

步骤5:根据决策模型输出的解码配置使用已经训练好的解码器进行解码,并对选取的解码配置进行打分;

步骤6:根据评价标准给出的分数,采用增强学习的方法来改善决策模型,获得训练好的决策模型;

步骤7:向改进的自注意力机制的模型的编码器输入源语句,将获得的编码信息送入决策模型,解码器根据决策模型输出的解码配置进行翻译。

在本发明的基于动态配置解码的神经机器翻译方法中,步骤2中输入的双语句子级平行数据为双语互译的句对集合,每个句对由源语句子和目标语句子组成。

在本发明的基于动态配置解码的神经机器翻译方法中,步骤2中采用极大似然方法对改进的自注意力机制模型的编码器和解码器进行训练。

在本发明的基于动态配置解码的神经机器翻译方法中,所述步骤3具体为:

给定一个源语句,编码器采用n个非线性变换层进行编码,最终获得如下编码信息:

其中,n是编码器包含的非线性变换层的层数,t是输入源语句的长度,h的每个元素是一个长度为c的词向量。

在本发明的基于动态配置解码的神经机器翻译方法中,所述步骤4具体为:

步骤4.1:对输入的编码信息h进行卷积操作;

步骤4.2:对卷积的输出进行池化操作;

步骤4.3:重复多次卷积和池化操作,输出三维张量其中t1<t,n1<n,使用max-over-timepooling方法在三维张量u的t1维度进行降维处理,获得二维矩阵

步骤4.4:重构u1为一维向量其中l=n1×c1,然后将u2输入到全连接层处理,进行如下计算:

z=w2·f(w1·u2+b1)+b2

其中w1是形状为(d,l)的实数矩阵,b1是长度为d的实数向量,w2是形状为(o,d)的实数矩阵,b2是长度为o的实数向量,z是长度为o的实数向量,同时o也是所有可选配置的数目,f是非线性激活函数;

步骤4.5:将z代入softmax函数,获得长度为o的实数向量p,p的每个元素代表待挑选的对应配置的概率,选择概率最高的配置作为解码配置输出。

在本发明的基于动态配置解码的神经机器翻译方法中,所述步骤5具体为:

步骤5.1:采用束搜索的方法来进行解码;

步骤5.2:采用bleu评价指标对翻译结果进行打分。

在本发明的基于动态配置解码的神经机器翻译方法中,所述步骤6具体采用策略梯度法或q学习法来改善决策模型。

本发明的一种基于动态配置解码的神经机器翻译方法,至少具有以下有益效果:

1.本发明方法在机器翻译模型中引入了一个新的决策模型,能够根据不同的源语言输入自动生成合适的解码配置。

2.本发明使用的决策模型小,训练代价低,其通过在已经训练好的机器翻译模型上以端到端的方式训练得到,而无需重新训练整个机器翻译模型。

附图说明

图1是本发明的一种基于动态配置解码的神经机器翻译方法的流程图;

图2是本发明的改进的自注意力机制模型的结构示意图;

图3是本发明的决策模型的结构图。

具体实施方式

如图1所示本发明的一种基于动态配置解码的神经机器翻译方法,包括如下步骤:

步骤1:在自注意力机制的transformer模型的编码器和解码器之间增加决策模型,构成改进的自注意力机制模型,所述决策模型基于卷积神经网络建立。

图2是本发明的改进的自注意力机制模型的结构示意图,在transformer模型的基础上增加了决策模型,通过决策模型根据不同的源语言输入自动生成合适的解码配置,解码器再根据解码配置进行解码操作,可提高翻译的准确度。

步骤2:输入双语句子级平行数据,分别对源语和目标语进行分词处理,获得分词后的双语平行句对,对改进的自注意力机制模型的编码器和解码器进行训练;

其中,输入的双语句子级平行数据为双语互译的句对集合,每个句对由源语句子和目标语句子组成。

具体实施时,采用极大似然方法对改进的自注意力机制模型的编码器和解码器进行训练。

步骤3:用训练好的编码器对分词后的双语平行句对的源语句子按时序进行编码,获取隐藏层上每个时序的状态,即每个时序下不同层的编码信息;

给定一个源语句,编码器采用n个非线性变换层进行编码,最终获得编码信息

其中h是一个形状为(n,t)的矩阵,n是编码器包含的非线性变换层数,t是输入源语句的长度,h的每个元素是一个长度为c的词向量。

步骤4:把获得的编码信息作为输入送入决策模型,决策模型对编码信息进行卷积、池化和归一化处理,输出相应的解码配置。图3是本发明的决策模型的结构图,该决策模型基于卷积神经网络建立,包括多个卷积层和池化层。决策模型被建模成一个多分类判别器,每个类别对应不同的解码配置。下面是决策模型生成解码配置的例子:

束大小:5,10

长度比:0.9,1,1.1

可能解码配置/类别:(5,0.9)、(5,1)、(5,1.1)、(10,0.9)、(10,1)、(10,1.1)

在这个例子里,解码配置有两个参数,束大小和长度比,每个参数有不同的取值,如束大小为5或者10,长度比则为0.9、1和1.1。对于决策模型而言,它所能挑选的解码配置一共有2×3=6个,即6个类别。当决策模型选择了其中一个类别,等同于挑选了一组特定的解码配置。

对于决策模型,给定编码器的输出h作为模型的输入,模型进行分类并输出挑选不同类别的概率p,o是类别的数目。因为解码器只能接受一组配置来进行解码,决策模型将挑选概率最高的类别对应的配置作为最终的输出。

本发明为决策模型设计了特殊的网络结构。对于决策模型的输入h,它的形状是(n,t,c),其中t是源语句子长度,n是编码器的层数,c是每一层每个词对应的连续向量的长度。h可以看作是一个图像,其中t和n分别是图像的长和宽,c则是图像的色彩通道数。基于这个观察结果,本发明把决策模型的任务建模为一个图像分类问题,因此可以借鉴图像分类任务中通用的模型结构。本发明在lenet-5基础上进行改进。步骤4具体通过如下步骤生成解码配置:

步骤4.1:对输入的编码信息h进行卷积操作;

具体实施时,决策模型包括j个卷积核,每个卷积核具有自己的权重矩阵w和偏置b,w的形状为(3,3,c),b是长度为c实数向量。其中每个卷积核的输入都是模型输入h。卷积操作将输出形状为(t-3+1,n-3+1,j)的矩阵a,如下面公式所示:

得到卷积操作输出结果a后,模型会对其每个元素进行非线性变换,通常使用relu激活函数,如下面公式所示:

a′=max(a,0)

其中a是卷积操作是结果,a′是一个形状和a一样的实数矩阵。

步骤4.2:经过卷积操作后,决策模型会对卷积的输出a′进行池化操作。池化使用一个形状为(3,3)的窗口对a′进行滑动求最大,得到池化操作输出m,如下面公式所示:

其中m是形状为(t-6+2,n-6+2,j)的实数矩阵。之后模型重复多次卷积-池化的处理过程。

步骤4.3:重复多次卷积和池化操作,输出三维张量其中t1<t,n1<n,由于t1大小与t相关,而不同的源语句子的长度t也不同,因此决策模型使用max-over-timepooling方法在三维张量u的t1维度进行降维处理,获得固定大小的二维矩阵如下面公式所示:

步骤4.4:重构u1为一维向量其中l=n1×c1,即通过连接u1的所有行向量构成u2。然后将u2输入到全连接层处理,进行如下计算:

z=w2·f(w1·u2+b1)+b2

其中w1是形状为(d,l)的实数矩阵,b1是长度为d的实数向量,w2是形状为(o,d)的实数矩阵,b2是长度为o的实数向量,z是长度为o的实数向量,同时o也是所有可选配置的数目,f是非线性激活函数;

具体实施时,采用与卷积操作相同的激活函数relu。

步骤4.5:将z代入softmax函数进行归一化处理,获得长度为o的实数向量p。p的每个元素代表待挑选的对应配置的概率,选择概率最高的配置作为解码配置输出config。

具体通过下式计算不同解码配置的概率分布:

其中,e是自然底数,pi是p第i个元素对应的概率值,zi为实数向量z中的第i个元素。

步骤5:根据决策模型输出的解码配置使用已经训练好的解码器进行解码,并用常用的评价标准对选取的解码配置进行打分,所述步骤5具体为:

步骤5.1:采用束搜索的方法来进行解码;

解码器以编码器输出的编码信息h,决策模型输出的解码配置config以及一个特殊的句子开始符<sos>(即目标语第0个词s0)作为输入,输出目标语第一个词的概率分布向量其中v是目标语的词表大小,pr1的每个元素代表选取对应目标语词汇的概率。解码器根据pr1和config指定的评分方式score对目标语所有词汇进行评分,并挑选出分数最高的前b个词汇作为目标语第一个词s1的候选集合q1={q1,1,...,q1,b},其中b是由解码配置config指定的候选数目,即束大小。q1里的每个元素分别和s0组合,产生b个句子y1={s0q1,1,...,s0q1,b},其中y1中每个元素分别作为计算目标语第二个词s2对应的概率分布向量pr2的输入,得到的b个不同的长度为v的pr2向量会被重构成形状为(b,v)的矩阵解码器根据score和进行评分并挑选出前b个分数最高的目标语词作为第二个词s2的候选集合q2={q2,1,...,q2,b},其中q2里每个元素会与计算其时所使用的输入句子y1组合,得到计算目标语第三个词的概率分布向量pr3所需要的输入句子集合y2={s0q1,1q2,1,...,s0q1,bq2,b}。以此类推,解码器不断逐词生成翻译结果直到句子结束符<eos>被选到或者输入句子集合y中句子长度达到config指定的限制,此时解码器返回y中分数最高的句子x作为最终译文并结束解码。

步骤5.2:采用bleu评价指标对翻译结果进行打分。

得到解码的结果x以及参考译文ref,通用的评价标准可以被使用来对翻译结果x的质量进行打分。常用的评价标准一般是bleu值。它计算的是翻译结果和参考答案之间不同n-gram的准确率,其中n-gram是n个词组成的短序列。下面是计算n-gram准确率的一个例子:

原文:今天天气不错

翻译结果:isisisisa

参考答案:todayisaniceday

现在计算1-gram的准确率,在翻译结果和参考答案中同时出现的1-gram有is和a,它们在翻译结果中出现的次数分别为4和1,而它们在翻译结果和参考答案中出现次数最少的一个分别为1和1,那么最终的1-gram准确率是(1+1)/(4+1)=2/5。bleu则是1-gram,2-gram,3-gram和4-gram的平均准确率。

步骤6:根据评价标准给出的分数,采用增强学习的方法来改善决策模型,获得训练好的决策模型;

具体实施时,采用策略梯度法或q学习法来改善决策模型。

得到决策模型的输出p(不同配置的概率)和config(最终选择的配置),以及评价标准给出的分数r后,决策模型将利用这些信息进行学习。在这里,决策模型的目标函数为maxep[r],它的含义是希望决策模型根据自己的输出p做出的决策得到的结果r最大化。

一般的神经网络可以直接通过端到端的方法进行学习,但是使用端到端的方法需要要求整个计算过程中所涉及的操作可导,而在决策模型里面涉及的运算不是可导的,比如从p得到config这个过程。通用的解决方案是使用策略梯度法的scorefunction方法变换决策模型的目标函数为maxr×logpconfig,其中pconfig是决策模型挑选config的概率。变换后的目标函数的含义为,如果r比较高,决策模型会调整其参数,使得下次遇到同样的输入的时候以更高的概率挑选config。如果r比较低,决策模型会在下次预测的时候让config对应的概率会更低,从而避免挑选到config。

步骤7:向改进的自注意力机制的模型的编码器输入源语句,将获得的编码信息送入决策模型,解码器根据决策模型输出的解码配置进行翻译。

以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1