一种基于卷积神经网络的蒙汉神经翻译方法转让专利

申请号 : CN201810470998.X

文献号 : CN108681539B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏依拉张振王宇飞孙晓骞高芬赵亚平牛向华

申请人 : 内蒙古工业大学

摘要 :

一种基于卷积神经网络的蒙汉神经翻译方法,采用编码‑解码结构,编码器和解码器均采用多层的深度卷积神经网络,翻译过程中:首先,在编码器和解码器卷积神经网络的输入端加入位置向量使二者均具备循环神经网络捕捉输入序列中词的位置信息的功能;其次,利用层叠的卷积神经网络构成层次表示,通过层次化的结构,实现捕捉长度在20个词以上的序列的依赖关系的功能;最后,为解码器卷积神经网络的每一层都配备一个注意力机制,通过注意力机制决定哪些信息是重要的,并逐步往下传递;本发明对卷积神经网络各个结构进行细节改进,利用卷积神经网络具有并行处理的特征,在卷积神经网络架构数据处理速度较快的基础上,优化了蒙汉神经翻译的翻译准确率。

权利要求 :

1.一种基于卷积神经网络的蒙汉神经翻译方法,采用编码-解码结构,其特征在于,编码器和解码器均采用多层的深度卷积神经网络,翻译过程中:首先,在编码器和解码器卷积神经网络的输入端加入位置向量使二者均具备循环神经网络捕捉输入序列中词的位置信息的功能;

其次,利用层叠的卷积神经网络构成层次表示,通过层次化的结构,实现捕捉长度在20个词以上的序列的依赖关系的功能;

最后,为解码器卷积神经网络的每一层都配备一个注意力机制,通过注意力机制决定哪些信息是重要的,并逐步往下传递,从而使目标句子中的每个单词都学会其对应的源语句子中单词的注意力分配概率信息,即在生成每个单词yi的时候,由固定的中间语义表示C换成了根据当前输出单词来调整成加入注意力模型的变化的Ci;

其中:

所述编码器和解码器使用相同的卷积层结构,每一层均由一个一维的卷积网络加一个非线性层组合而成,表达如下:l

其中v表示非线性层, 表示逐元素相乘, 表示第l层第i个输出,W表示第l层的卷积核矩阵, 表示第l层的卷积核矩阵的偏置, 表示第l-1层第i个输出,A和B均为向量集,A作为输入,是卷积的第一个参数,B是卷积神经网络的核函数,σ(B)表示过程参数的平均值的分布或离散程度,k表示卷积核的个数,使用100种卷积核,每个卷积核的参数都不一样,提取出来的特征也就不一样,即,输出100种特征矩阵;

所述为解码器卷积神经网络每一层都配备一个注意力机制,包括三个阶段,分别用公式表达如下:在第一阶段,引入不同的函数和计算机制,根据输入源语言句子矩阵A和标签B,计算两者的相似性或相关性,标签B为目标语句向量;

第一阶段产生的分值根据具体产生的方法不同其数值取值范围也不一样,第二阶段引入计算方式对第一阶段的得分进行数值转换;

第二阶段的计算结果ai即为Valuei对应的权重系数,然后进行加权求和即可得到Attention数值;

其中,Lx=||Source||代表Source的长度,通过如上三个阶段的计算,即可求出针对B的Attention数值;

所述编码器和解码器的卷积神经网络中,输入是以矩阵表示的句子或者文档,矩阵的每一行表示一个词向量,在卷积层,通过和卷积模板做卷积运算,然后加上偏置值,再经过sigmoid激活函数,得到输出图像,在下采样层,对输出图像做下采样,再加偏置,再通过激活函数,得到尺寸减小了的输出词向量矩阵,再经过更多的卷积层和下采样层,将最终输出拉成一个词向量。

2.根据权利要求1所述基于卷积神经网络的蒙汉神经翻译方法,其特征在于,所述位置向量为词在句子中的绝对位置向量,卷积神经网络输入由词向量与位置向量相加形成,表达如下:x=(x1,...,xm)

w=(w1,...,wm)

p=(p1,...,pm)

e=(w1+p1,...,wm+pm)

其中x表示输入序列,xm表示输入序列的第m个元素,m表示输入的句子中的词的个数,w表示输入序列对应的词向量,wm表示输入序列对应的词向量的第m个元素,p表示位置向量,pm表示位置向量的第m个元素,e表示词向量和位置向量相加而成的卷积神经网络的输入向量。

3.根据权利要求1所述基于卷积神经网络的蒙汉神经翻译方法,其特征在于,底层的卷积神经网络捕捉相距较近的词之间的依赖关系,高层的卷积神经网络捕捉相距较远的词之间的依赖关系。

说明书 :

一种基于卷积神经网络的蒙汉神经翻译方法

技术领域

[0001] 本发明属于机器翻译技术领域,特别涉及一种基于卷积神经网络的蒙汉神经翻译方法。

背景技术

[0002] 传统蒙古文形态分析主要采用将蒙古文词缀和词干直接切分而仅保留词干的方法,该方法会丢掉蒙古文词缀所包含的大量语义信息。蒙古文词缀中包含大量格的附加成分,主要表征句子的结构特征,对其进行切分并不会影响词汇的语义特征,若不进行预处理则会造成严重的数据稀疏问题,从而影响翻译质量。
[0003] 机器翻译(Machine Translation),又称为自动翻译,是利用计算机把一种自然源语言转变为另一种自然目标语言的过程,一般指自然语言之间句子和全文的翻译。神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。Convolutional Neural Network卷积神经网络是基于人工神经网络提出的。人工神经网络模拟人的神经系统,由一定数量的神经元构成。在一个监督学习问题中,有一组训练数据(xi,yi),x是样本,y是label,把它们输入人工神经网络,会得到一个非线性的分类超平面hw,b(x)。
[0004] 一个神经元是神经网络中的一个运算单元,它实质上就是一个函数。图1是一个神经元的示意图。有3个输入x1 ,x2,x3,+1是一个偏置值(bias),输出f是激活函数(activation 
function),这里的激活函数用的是sigmoid函数:
[0005]
[0006] sigmoid函数图像如图2。
[0007] 激活函数是以0.5为分界,让大值更逼近1,小值更逼近0,因为人的神经元就是有分“激活”和“不激活”两种状态,刺激达到一定程度,就被激活,传播信号,达不到就不激活,不传播信号,人工神经网络中激活函数的设计,应该是为了模拟这个过程。
[0008] Nal Kalchbrenner和Edward Grefenstette在2013年提出的基于“编码-解码结构”一种新的机器翻译框架,对于源语言句子,采用一个卷积神经网络把它映射成一个连续稠密的隐向量,再使用一个递归神经网络做为解码器,把这个隐向量解码成目标语言句子。这样做的优点在于可以使用RNN来处理长短不一的输入句子,尽量捕获其全部历史信息,但因为RNN存在着“梯度消失”和“梯度爆炸”的问题,没办法捕获比较长时间的依赖关系。

发明内容

[0009] 为了克服上述现有技术的缺点,本发明的目的在于提供一种基于卷积神经网络的蒙汉神经翻译方法,对卷积神经网络(CNN)各个结构进行细节上的改进,利用卷积神经网络具有并行处理的特征,在卷积神经网络架构数据处理速度较快的基础上,优化了蒙汉神经翻译的翻译准确率。
[0010] 为了实现上述目的,本发明采用的技术方案是:
[0011] 一种基于卷积神经网络的蒙汉神经翻译方法,采用编码-解码结构,其特征在于,编码器和解码器均采用多层的深度卷积神经网络,翻译过程中:
[0012] 首先,在编码器和解码器卷积神经网络的输入端加入位置向量使二者均具备循环神经网络捕捉输入序列中词的位置信息的功能;
[0013] 其次,利用层叠的卷积神经网络构成层次表示,通过层次化的结构,实现捕捉长度在20个词以上的序列的依赖关系的功能;
[0014] 最后,为解码器卷积神经网络的每一层都配备一个注意力机制,通过注意力机制决定哪些信息是重要的,并逐步往下传递。
[0015] 所述位置向量为词在句子中的绝对位置向量,卷积神经网络输入由词向量与位置向量相加形成,表达如下:
[0016] x=(x1,…,xm)
[0017] w=(w1,…,wm)
[0018] p=(p1,…,pm)
[0019] e=(w1+p1,…,wm+pm)
[0020] 其中x表示输入序列,xm表示输入序列的第m个元素,m表示输入的句子中的词的个数,w表示输入序列对应的词向量,wm表示输入序列对应的词向量的第m个元素,p表示位置向量,pm表示位置向量的第m个元素,e表示词向量和位置向量相加而成的卷积神经网络的输入向量。
[0021] 所述编码器和解码器使用相同的卷积层结构,每一层均由一个一维的卷积网络加一个非线性层组合而成,表达如下:
[0022]
[0023]
[0024] 其中v表示非线性层, 表示逐元素相乘, 表示第l层第i个输出,Wl表示第l层的卷积核矩阵, 表示第l层的卷积核矩阵的偏置, 表示第l-1层第i个输出,A为向量集,作为输入,是卷积的第一个参数,B为向量集,是卷积神经网络的核函数,σ(B)表示过程参数的平均值的分布或离散程度,k表示卷积核(过滤器filter)的个数。
[0025] 底层的卷积神经网络捕捉相距较近的词之间的依赖关系,高层的卷积神经网络捕捉相距较远的词之间的依赖关系。
[0026] 所述为解码器卷积神经网络每一层都配备一个注意力机制,包括三个阶段,分别用公式表达如下:
[0027]
[0028]
[0029]
[0030] 在第一阶段,引入不同的函数和计算机制,根据输入源语言句子矩阵A和标签B,计算两者的相似性或相关性,标签B为目标语句向量;
[0031] 最常见的方法包括:求两者的向量点积
[0032] 第一阶段产生的分值根据具体产生的方法不同其数值取值范围也不一样,第二阶段引入类似SoftMax的计算方式对第一阶段的得分进行数值转换;,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重。即一般采用如下公式计算:
[0033]
[0034] 第二阶段的计算结果ai即为Valuei对应的权重系数,然后进行加权求和即可得到Attention数值;
[0035] 其中,Lx=||Source||代表Source的长度,通过如上三个阶段的计算,即可求出针对B的Attention数值,目前绝大多数具体的注意力机制计算方法都符合上述的三阶段抽象计算过程。
[0036] 所述编码器和解码器的卷积神经网络中,输入是以矩阵表示的句子或者文档,矩阵的每一行表示一个词向量,在卷积层,通过和卷积模板做卷积运算,然后加上偏置值,再经过sigmoid激活函数,得到输出图像,在下采样层,对输出图像做下采样,再加偏置,再通过激活函数,得到尺寸减小了的输出词向量矩阵,再经过更多的卷积层和下采样层,将最终输出拉成一个词向量。
[0037] 与现有技术相比,本发明的有益效果是:
[0038] CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
[0039] 由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;
[0040] 卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

附图说明

[0041] 图1是一个神经元的示意图。
[0042] 图2是sigmoid函数图像。
[0043] 图3是本发明的卷积神经网络(CNN)结构示意图。
[0044] 图4是池化原理模型图。
[0045] 图5是抽象的简单编码器-解码器框架。
[0046] 图6是引入注意力模型的编码器-解码器框架。
[0047] 图7是蒙汉互译实验框架图。

具体实施方式

[0048] 下面结合附图和实施例详细说明本发明的实施方式。
[0049] 本发明采用以Facebook AI Research开源系统fairseq为基础构建的蒙汉翻译系统。该系统实现序列到序列翻译,系统架构分为编码器和解码器两部分,两部分均利用CNN卷积核获取短距离依赖信息,并通过增加CNN深度来获取远距离依赖信息(底层的卷积神经网络捕捉相距较近的词之间的依赖关系,高层的卷积神经网络捕捉相距较远的词之间的依赖关系),因此编码器和解码器都为多层的深度CNN,每层解码器配备一个注意力机制。下面对该架构进行介绍。
[0050] 一、位置向量。因为CNN无法获取输入词在句子中的位置信息,所以需要在输入词时为词添加位置信息,CNN输入为词向量与位置向量相加形成,这里位置向量为词在句子中的绝对位置向量。
[0051] x=(x1,...,xm)
[0052] w=(w1,...,wm)
[0053] p=(p1,...,pm)
[0054] e=(w1+p1,...,wm+pm)
[0055] 其中x表示输入序列,xm表示输入序列的第m个元素,m表示输入的句子中的词的个数,w表示输入序列对应的词向量,wm表示输入序列对应的词向量的第m个元素,p表示位置向量,pm表示位置向量的第m个元素,e表示词向量和位置向量相加而成的卷积神经网络的输入向量。
[0056] 二、卷积层结构。编码器和解码器使用相同的卷积层结构,每一层均由一个一维的卷积网络加一个非线性层组合而成。表达式如下:
[0057]
[0058]
[0059] 其中v表示非线性层, 表示逐元素相乘, 表示第l层第i个输出,Wl表示第l层的卷积核矩阵, 表示第l层的卷积核矩阵的偏置, 表示第l-1层第i个输出,A为向量集,作为输入,是卷积的第一个参数,B为向量集,是卷积神经网络的核函数,σ(B)表示过程参数的平均值的分布或离散程度,k表示卷积核(过滤器filter)的个数。
[0060] 三、多步注意力。解码器部分为多层深度CNN结构,系统为解码器每一层都配备一个注意力机制。
[0061] 为解码器卷积神经网络每一层都配备一个注意力机制,表达如下:
[0062]
[0063]
[0064]
[0065] 在第一阶段,可以引入不同的函数和计算机制,根据输入源语言句子矩阵A和标签B(目标语句向量),计算两者的相似性或相关性,最常见的方法包括:求两者的向量点积[0066] 第一阶段产生的分值根据具体产生的方法不同其数值取值范围也不一样,第二阶段引入类似SoftMax的计算方式对第一阶段的得分进行数值转换,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重。即一般采用如下公式计算:
[0067]
[0068] 第二阶段的计算结果ai即为Valuei对应的权重系数,然后进行加权求和即可得到Attention数值:
[0069]
[0070] 其中,Lx=||Source||代表Source的长度。通过如上三个阶段的计算,即可求出针对B的Attention数值,目前绝大多数具体的注意力机制计算方法都符合上述的三阶段抽象计算过程。
[0071] 本发明卷积神经网络包括了卷积层、池化层以及全连接层,同时融入了注意力机制,编码-解码通过卷积神经网络实现,其具体应用包括:
[0072] 1、卷积
[0073] 在卷积神经网络中,输入就是以矩阵表示的句子或者文档。矩阵的每一行对应于一个分词元素,一般是一个单词,也可以是一个字符。也就是说每一行是表示一个单词的向量。通常,这些向量都是word embeddings(一种底维度表示)的形式,如word2vec和GloVe,但是也可以用one-hot向量的形式,也即根据词在词表中的索引。若是用100维的词向量表示一句10个单词的句子,将得到一个10×100维的矩阵作为输入。这个矩阵相当于是一幅“图像”。权值W就是卷积模板,一般是卷积层和下采样层交替,最后是全连接的神经网络,也就是上述经典的人工神经网络。图3表示本发明的卷积神经网络(CNN)结构示意图。
[0074] C是卷积层,S是下采样层。输入的一个词向量矩阵,在C1层,通过和3个卷积模板做卷积运算,然后加上偏置值,再经过sigmoid激活函数,得到3幅输出图像,在S2层,对C1层输出的3幅图像做下采样,假设采样因子是2,也就是图中每2*2的patch中的4个向量进行求和,再加偏置,再通过激活函数,得到3张尺寸减小了的输出词向量矩阵。同样的,再经过C3,S4。将S4的输出拉成一个词向量,输入传统的神经网络中,并得到输出。
[0075] 除了增加卷积层和采样层,在传统人工神经网络的基础上,卷积神经网络还通过感受野和权值共享大大地减少了参数,降低了训练难度,也避免了参数过多引起过拟合(overfitting)。
[0076] 如果一种卷积核(也就是滤波器)可以提取词向量矩阵的某一方面的特征,那么我们在这里使用100种卷积核,每个卷积核的参数都不一样,提取出来的特征也就不一样,这样,就可以输出100种特征矩阵。
[0077] 在图3表示的卷积神经网络(CNN)结构示意图中,对滤波器设置了三种尺寸:2、3和4行,每种尺寸各有两种滤波器。每个滤波器对句子矩阵做卷积运算,得到(不同程度的)特征字典。然后对每个特征字典做最大值池化,也就是只记录每个特征字典的最大值。这样,就由六个字典生成了一串单变量特征向量(univariate feature vector),然后这六个特征拼接形成一个特征向量,传给网络的倒数第二层。最后的softmax层以这个特征向量作为输入,用其来对句子做分类;假设这里是二分类问题,因此得到两个可能的输出状态。
[0078] 位置不变性和局部组合性对图像来说很直观,但对NLP却并非如此。相邻的像素点很有可能是相关联的(都是物体的同一部分),但单词并不总是如此。在很多种语言里,短语之间会被许多其它词所隔离。同样,组合性也不见得明显。单词显然是以某些方式组合的,比如形容词修饰名词,但若是想理解更高级特征真正要表达的含义是什么,并不像计算机视觉那么明显了。
[0079] 由此看来,卷积神经网络似乎并不适合用来处理NLP任务。递归神经网络(Recurrent Neura Network)更直观一些。它们模仿我们人类处理语言的方式(至少是我们自己所认为的方式):从左到右的顺序阅读。庆幸的是,这并不意味着CNNs没有效果。所有的模型都是错的,只是一些能被利用。实际上CNNs对NLP问题的效果非常理想。正如词袋模型(Bag of Words model),它明显是基于错误假设的过于简化模型,但这不影响它多年来一直被作为NLP的标准方法,并且取得了不错的效果。
[0080] CNNs的主要特点在于速度快。非常的快。卷积运算是计算机图像的核心部分,在GPU级别的硬件层实现。相比于n-grams,CNNs表征方式的效率也更胜一筹。由于词典庞大,任何超过3-grams的计算开销就会非常的大。即使Google也最多不超过5-grams。卷积滤波器能自动学习好的表示方式,不需要用整个词表来表征。那么用尺寸大于5行的滤波器完全合情合理了。
[0081] 卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。卷积网络执行的是有监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成的。在开始训练前,所有的权都应该用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。
[0082] 训练算法与传统的BP算法差不多。主要包括4步,这4步被分为两个阶段:
[0083] 第一阶段,向前传播阶段:
[0084] a)从样本集中取一个样本(Xp,Yp),将Xp输入网络;
[0085] b)计算相应的实际输出Op,。
[0086] 在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):
[0087] Op=Fn(...(F2(F1(XpW(1))W(2)...)W(n))
[0088] 第二阶段,向后传播阶段
[0089] a)算实际输出Op与相应的理想输出Yp的差;
[0090] b)按极小化误差的方法反向传播调整权矩阵。
[0091] 把NLP想象成有许多个通道:把不同类的词向量表征(例如word2vec和GloVe)看做是独立的通道,或是把不同语言版本的同一句话看作是一个通道。
[0092] 神经网络中的卷积,是指由多个并行卷积组成的运算。因为具有单个核的卷积只能提取一种类型的特征,尽管它作用在多个空间位置上。为了让网络的每一层能够在多个位置提取多种类型的特征(比如词缀、词干提取)。可以通过跳过核中的一些位置来降低计算的开销(相应的代价是提取特征不如以前)。
[0093] 可以把这一过程看作是对全卷积函数输出的下采样(downsampling)。如果只想在输出的每个方向上每间隔s个像素进行采样,那么可以定义一个下采样卷积函数:
[0094] Zi,j,k=c(K,V,S)i,j,k=∑[Vl,(j-1)×s+m,(k-1)×s+n,Ki,k,m,n].
[0095] 假定有一个4维的核张量K,它的每一个元素是Ki,k,m,n,表示输出中处于通道i的一个单元和输入中处于通道j中的一个单元的连接强度,并且在输出单元和输入单元之间有k行l列的偏置,s称为下采样卷积的步幅。假定我们的输入由观测数据V组成,它的每一个元素是Vi,j,k,表示处在通道i中第j行第k列的值。假定输出Z和输入V具有相同的形式。如果输出Z是通过对K和V进行卷积而不涉及翻转K得到的,那么这里对所有的l,m和n进行求和是对所有(在求和式中)有效的张量索引值进行求和。
[0096] 2、池化
[0097] 卷积神经网络的一个重要概念就是池化层,一般是在卷积层之后。池化层对输入做降采样。常用的池化做法是对每个滤波器的输出求最大值。然而并不需要对整个矩阵都做池化,可以只对某个窗口区间做池化。例如,图4所示的是2×2窗口的最大值池化(在NLP里,我们通常对整个输出做池化,每个滤波器只有一个输出值)。
[0098] 池化的特点之一就是它输出一个固定大小的矩阵,这对分类问题很有必要。例如,如果使用1000个滤波器,并对每个输出使用最大池化,那么无论滤波器的尺寸是多大,也无论输入数据的维度如何变化,都将得到一个1000维的输出。因此可以应用不同长度的句子和不同大小的滤波器,但总是得到一个相同维度的输出结果,传入下一层的分类器。
[0099] 卷积运算和池化会丢失局部区域某些单词的顺序信息,因此纯CNN的结构框架不太适用于顺序标签任务。
[0100] 输入层是一个表示句子的矩阵,每一行是word2vec词向量。接着是由若干个滤波器组成的卷积层,然后是最大池化层,最后是softmax分类器。
[0101] 3、全连接
[0102] 全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。连接所有的特征,将输出值传送给分类器(如SoftMax分类器)。
[0103] 4、引入注意力机制
[0104] 没有引入注意力的模型在输入句子比较短的时候问题不大,但是如果输入句子比较长,此时所有语义完全通过一个中间语义向量来表示,单词自身的信息已经消失,可想而知会丢失很多细节信息,这也是为何要引入注意力模型的重要原因。
[0105] 注意力机制的本质思想
[0106] 将输入句子中的构成元素想象成是由一系列的数据对构成,此时给定目标语句中的某个元素B,通过计算B和各个A的相似性或者相关性,得到每个A对应Value的权重系数,然后对Value进行加权求和,即得到了最终的注意力数值。所以本质上注意力机制是对输入句子中元素的Value值进行加权求和,而B和A用来计算对应Value的权重系数。即可以将其本质思想改写为如下公式:
[0107]
[0108] 其中,Lx=||Source||代表Source的长度,公式含义即如上所述。上文所举的机器翻译的例子里,因为在计算Attention的过程中,Source中的A和Value合二为一,指向的是同一个东西,也即输入句子中每个单词对应的语义编码。
[0109] 以下是应用本发明方法的蒙汉互译实验,参考图7,步骤如下:
[0110] 步骤1、数据预处理
[0111] 在输入端加入位置向量,表达如下:
[0112] x=(你,会,说,蒙古,语,吗)
[0113] 或者,
[0114] w=(0000,0001,0010,0011,0100,0101)
[0115] p=(1000,1001,1010,1011,1100,1101)
[0116] e=(01000,01010,01100,01110,10000,10010)
[0117] 步骤2、编码
[0118] 步骤3、解码
[0119] 引入注意力模型后,应该在翻译 的时候,体现出来蒙文单词及语法对于翻译当前中文单词不同的影响程度,比如给出类似下面一个概率分布值:
[0120] (你会说蒙古语吗,0.5),
[0121] (你蒙古语说会吗,0.3),
[0122] (你蒙古国蒙古人讲吗,0.2)。
[0123] 每个汉文句子的概率代表了翻译当前语句时,注意力分配模型分配给不同汉文句子的注意力大小。这对于正确翻译目标语句子(或者单词、短语)肯定是有帮助的,因为引入了新的信息。
[0124] 同理,目标句子中的每个单词都应该学会其对应的源语句子中单词的注意力分配概率信息。这意味着在生成每个单词yi的时候,原先都是相同的中间语义表示C(如图5)会被替换成根据当前生成单词而不断变化的Ci。理解注意力机制模型的关键就是这里,即由固定的中间语义表示C换成了根据当前输出单词来调整成加入注意力模型的变化的Ci。增加了注意力模型的编码器-解码器框架理解如图6。