通过门控机制将翻译记忆融入神经机器翻译的方法与流程

文档序号:16784987发布日期:2019-02-01 19:22阅读:580来源:国知局
通过门控机制将翻译记忆融入神经机器翻译的方法与流程

本发明涉及神经机器翻译,特别是涉及通过门控机制将翻译记忆融入神经机器翻译的方法。



背景技术:

随着计算机计算能力的提高以及大数据的应用,深度学习取得进一步的应用。基于深度学习的neuralmachinetranslation越来越受到人们的关注。在nmt领域中,最常用的一种翻译模型是带有注意力机制(attention-based)的encoder-decoder模型。其主要思想是将待翻译的语句(在下文中统称为‘源语句’)经过编码器(encoder)编码成为一个向量表示,然后利用解码器(decoder)对源语句的向量表示进行解码,翻译成为其对应的译文(在下文中统称为‘目标语句’)。

在一些特定领域的专业翻译应用场景中,往往存在严重的重复翻译现象,为了避免重复翻译,提高人工翻译的效率,且保持翻译的一致性,人们提出翻译记忆(tm)技术。在那些易出现重复翻译现象的领域,人们将平行的翻译句对保留下来并存入翻译记忆库中,在之后的翻译任务到来时,首先去翻译记忆库寻找相同的句子,并将其对应的翻译返回给翻译者,以供翻译者修改。在统计机器翻译(smt)时期,有工作将翻译记忆与统计机器翻译相结合,但在神经机器翻译中,目前还少有工作涉及。

现有的将smt与tm结合的工作有:convergenceoftranslationmemoryandstatisticalmachinetranslation。文章从tm库中找到相同的片段,通过词对齐找到对应的翻译并取出,在之后的smt的翻译过程中,强制系统仅翻译那些不匹配的部分,匹配的部分则用tm库中取出的翻译替代。

将nmt与tm结合的工作有:searchengineguidednon-parametricneuralmachinetranslation。文章通过搜索引擎在tm库中检索相同的句对或片段对,将这些句对强制解码得到中间的隐层状态,并将这些隐层状态以键值对的形式保存,并在后面的翻译过程中使用。

smt与tm结合的方法涉及翻译时的干预,而nmt是一个seq2seq的结构,因此目前干预在nmt中还是一个没有完全得到解决的问题,因此smt中的方法并不适用nmt。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种通过门控机制将翻译记忆融入神经机器翻译的方法。

一种通过门控机制将翻译记忆融入神经机器翻译的方法,应用在基于注意力机制且采用encoder-decoder框架的nmt模型,包括:

数据前处理阶段:

训练得到每句话的句向量,包括待翻译的源语句与翻译记忆库中的句子;对于源语句,通过计算其与翻译记忆库中句子的句向量的余弦相似度得到相似性,随后选出其中概率最高的那一句对与源语句互相匹配,把它们记为(sa,sb),其中sa表示源语句,sb表示翻译记忆库中计算句向量余弦相似度与源语句最接近的句子,对应的翻译记做(ta,tb),计算sa与sb的模糊匹配得分,相关公式如下所示:

其中levenshtein(sa,sb)是计算sa与sb之间基于词的编辑距离大小;

模型训练阶段:

在上面的步骤执行完之后,获得了互相匹配的句对(sa/ta,sb/tb),以及sa与sb的模糊匹配得分,将sa与tb作为模型的输入;

使用了一对编码器来分别编码sa与tb,并得到它们对应的表示,记为ca与cb,两个编码器之间彼此相互独立;

在已经获得了ca与cb的情况下,门控翻译记忆网络公式如下所示:

gtm=f(st-1,yt-1,ca,cb)

其中st-1代表前一个隐层状态,yt-1代表前一个预测的目标端词,而f则代表一个logisticsigmoidfunction;

将门控机制下的翻译记忆信息结合到解码的过程中去,并通过源语句与翻译记忆的上下文信息去预测解码端的隐层状态st,公式如下:

st=gru(st-1,yt-1,ca*(1-gtm),cb*gtm),gru是门控循环单元函数;

在得到了解码端的隐层状态后,计算下一个词的条件概率:

p(yt|y<t,sa)=g(f(st,yt-1,ca)),g是非线性激活函数,f则代表一个logisticsigmoidfunction;

使用上述训练好的模型进行翻译。

上述通过门控机制将翻译记忆融入神经机器翻译的方法,通过句向量获得源语句与翻译记忆库中语义最相似的句子,不仅仅可以匹配相同的句子或片段,也可以匹配到那些语义相同但单词不同的句子;利用门控机制有效的使用了翻译记忆中那些有用的部分,而其他无用的可能对源语句翻译造成干扰的信息则被我们屏蔽。

在另外的一个实施例中,使用fasttext(https://github.com/aiweiw/fasttext-pvdm)工具来训练得到每句话的句向量。

在另外的一个实施例中,“使用了一对编码器来分别编码sa与tb,并得到它们对应的表示,记为ca与cb,两个编码器之间彼此相互独立”中,两个编码器采用了双向的gru实现。

在另外的一个实施例中,g是采用softmax函数。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述方法的步骤。

一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一项所述的方法。

附图说明

图1为本申请实施例提供的一种通过门控机制将翻译记忆融入神经机器翻译的方法的框架结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

一种通过门控机制将翻译记忆融入神经机器翻译的方法,应用在基于注意力机制且采用encoder-decoder框架的nmt模型,包括:

数据前处理阶段:

训练得到每句话的句向量,包括待翻译的源语句与翻译记忆库中的句子;对于源语句,通过计算其与翻译记忆库中句子的句向量的余弦相似度得到相似性,随后选出其中概率最高的那一句对与源语句互相匹配,把它们记为(sa,sb),其中sa表示源语句,sb表示翻译记忆库中计算句向量余弦相似度与源语句最接近的句子,对应的翻译记做(ta,tb),计算sa与sb的模糊匹配得分,相关公式如下所示:

其中levenshtein(sa,sb)是计算sa与sb之间基于词的编辑距离大小;

模型训练阶段:

在上面的步骤执行完之后,获得了互相匹配的句对(sa/ta,sb/tb),以及sa与sb的模糊匹配得分,将sa与tb作为模型的输入;

使用了一对编码器来分别编码sa与tb,并得到它们对应的表示,记为ca与cb,两个编码器之间彼此相互独立;

在已经获得了ca与cb的情况下,门控翻译记忆网络公式如下所示:

gtm=f(st-1,yt-1,ca,cb)

其中st-1代表前一个隐层状态,yt-1代表前一个预测的目标端词,而f则代表一个logisticsigmoidfunction;

将门控机制下的翻译记忆信息结合到解码的过程中去,并通过源语句与翻译记忆的上下文信息去预测解码端的隐层状态st,公式如下:

st=gru(st-1,yt-1,ca*(1-gtm),cb*gtm),gru是门控循环单元函数;

在得到了解码端的隐层状态后,计算下一个词的条件概率:

p(yt|y<t,sa)=g(f(st,yt-1,ca)),g是非线性激活函数,f则代表一个logisticsigmoidfunction;

使用上述训练好的模型进行翻译。

上述通过门控机制将翻译记忆融入神经机器翻译的方法,通过句向量获得源语句与翻译记忆库中语义最相似的句子,不仅仅可以匹配相同的句子或片段,也可以匹配到那些语义相同但单词不同的句子;利用门控机制有效的使用了翻译记忆中那些有用的部分,而其他无用的可能对源语句翻译造成干扰的信息则被我们屏蔽。

在另外的一个实施例中,使用fasttext(https://github.com/aiweiw/fasttext-pvdm)工具来训练得到每句话的句向量。

在另外的一个实施例中,“使用了一对编码器来分别编码sa与tb,并得到它们对应的表示,记为ca与cb,两个编码器之间彼此相互独立”中,两个编码器采用了双向的gru实现。

在另外的一个实施例中,g是采用softmax函数。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述方法的步骤。

一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一项所述的方法。

下面介绍本发明的一个具体应用场景:

背景:基于注意力机制(attention)的nmt模型

在神经机器翻译系统中,一般采用encoder-decoder框架来实现翻译。对训练语料中的每一个词,我们都为其初始化一个词向量,所有词的词向量构成了词向量词典。词向量,一般是一个多维的向量,向量中每一维都是一个实数,维度的大小一般根据实验过程中的结果来最终确定。例如,对于单词“咱们”,它的词向量可能是<0.12,-0.23,...,0.99>。

encoder是由双向rnn(recurentneuralnetwork)网络构成。在encoder阶段,encoder读入一个句子,将句子编码成一系列的向量。具体过程如下,首先将一个句子表示为词向量的序列,即x=<x1,x2,...,xt>,其中x为输入的句子,xj为句子中第i个词的词向量,即一个m维的向量。前向rnn根据公式我们可以获得一个由隐层向量组成的前向向量序列反向rnn依据同样的原理,可以得到由隐层向量组层的反向向量序列我们连接作为单词xj经过encoder编码后的含有上下文信息的向量表示由隐层向量序列<h1,h2,...,ht>,我们可以获得context向量ct=q({h1,h2,...,ht})。其中,其中是时序t时的隐藏状态,f和q是非线性的激活函数,其中f一般采用gru或者lstm,q一般采用attention网络。

在经典的神经机器翻译系统中,context向量ct一般利用attention网络来获得,ct可以通过下面公式运算获得:etj=a(st-1,hj)。其中,a是一个一层的前向网络,αtj是encoder是每一个隐藏状态hj的权重。

decoder也是由rnn网络构成。在decoder阶段,给定向量ct,以及所有已经预测得到词{y1,y2,...,yt′-1},可以继续预测yt,通过如下定义可以逐步实现:其中另外,p(yt|{y1,y2,...,yt-1},ct)=g(yt-1,st,ct),其中g是非线性激活函数,一般采用softmax函数。st为rnn中的隐层状态,st=f(yt-1,st-1,ct)。

encoder和decoder都采用rnn网络,主要是因为其特点,rnn网络的特点在于,隐层状态由当前的输入和上一个隐层状态共同决定。如在本神经机器翻译过程中,encoder阶段隐层状态由源语端当前词的词向量和上一个隐层状态共同决定。decoder阶段的隐层状态由前一步骤中计算得到的目标语端词向量和上一个隐层状态共同决定。

模型的训练一般采用最小化负对数似然为损失函数,采用随机梯度下降为训练方法来进行迭代训练。在训练集上,其中xn,yn为平行语句对,模型训练目标函数如下:

在通过门控机制将tm融入nmt的方法中,我们类比人类译者在翻译源语句时,可以通过一个与源语句相似的句子的翻译来辅助源语句翻译,我们通过句向量来从翻译记忆库中找到与源语句相似的翻译记忆句对,并将这个句对中的目标端翻译作为额外的输入,通过门控机制来控制翻译记忆信息的流入,以此来帮助源语句的翻译。

在数据处理部分,我们使用fasttext(https://github.com/aiweiw/fasttext-pvdm)工具来训练得到每句话的句向量,包括待翻译的源语句与翻译记忆库中的句子,之后对于源语句,我们通过计算其与翻译记忆库中句子的句向量的余弦相似度得到相似性,随后选出其中概率最高的那一句对与源语句互相匹配,我们把它们记为(sa,sb),其中sa表示源语句,sb表示翻译记忆库中计算句向量余弦相似度与源语句最接近的句子,对应的翻译我们记做(ta,tb),之后我们计算sa与sb的模糊匹配得分,相关公式如下所示:

其中levenshtein(sa,sb)是计算sa与sb之间基于词的编辑距离大小,这可以帮助我们更加直观的理解sa与sb两句之间的相似程度。

在上面的步骤执行完之后,我们就获得了互相匹配的句对(sa/ta,sb/tb),以及sa与sb的模糊匹配得分,在之后的过程中,我们将sa与tb作为模型的输入。

之后的模型实现,我们主要从以下三个部分来阐述:

第一部分:成对的编码器。

我们使用了一对编码器来分别编码sa与tb,并得到他们对应的表示,记为ca与cb,两个编码器之间彼此相互独立且都采用了双向的gru实现。

第二部分:门控翻译记忆网络。

当我们翻译源语句时,我们还额外输入了翻译记忆句对的目标端翻译,以此作为额外的辅助信息,我们希望这个额外的信息可以在翻译的时候起到一个榜样的作用,正向的指导源语句的翻译,因此我们提出了门控翻译记忆网络,来控制额外信息的流入。在已经获得了ca与cb的情况下,门控翻译记忆网络公式如下所示:

gtm=f(st-1,yt-1,ca,cb)

其中st-1代表前一个隐层状态,yt-1代表前一个预测的目标端词,而f则代表一个logisticsigmoidfunction。

第三部分:翻译记忆指导的解码器。

在这一部分,我们将门控机制下的翻译记忆信息结合到解码的过程中去,并通过源语句与翻译记忆的context信息去预测解码端的隐层状态st,详细公式如下:

st=gru(st-1,yt-1,ca*(1-gtm),cb*gtm)

在得到了解码端的隐层状态后,我们就可以去计算下一个词的条件概率了,如下:

p(yt|y<t,sa)=g(f(st,yt-1,ca))

在这里需要注意的一点是,我们仅仅将门控翻译记忆信息用在生成隐层状态st上,而在预测下一个词时,我们并没有使用这个信息。这是因为,我们的目的是为了翻译源语句,而额外输入的翻译记忆句子只是在其中起到了一个辅助的作用,我们并不希望翻译记忆中有太多的信息去干预源语句的翻译,而仅仅是那些与源语句相匹配的部分去指导源语句的翻译就已经足够。因此,门控翻译记忆仅仅能直接影响隐层状态,这样可以避免翻译记忆中与源语句无关的信息干扰正常的翻译。我们之后的实验也表明,当翻译记忆句子与源语句的差别仅仅体现在日期或数字等很小的改动时,源语句可以正确的把这些信息翻译出来,而不会受到翻译记忆的影响。

整个模型的结构如图1所示。

图中的coupledencoder对应上文提到的第一部分,源语句与翻译记忆的信息各自通过一个encoder得到对应的语义表示,tmgatingnetwork对应上文提到的第二部分,我们依靠两个语义信息以及解码端上一个词的隐层状态和前一个词的信息得到gate信息,在tmguideddecoder部分即上文中的第三部分,我们利用第二步得到的gate信息去权衡两个语义表示,并得到当前词的隐层状态,并最终利用当前词的隐层状态与源语句的表示以及前一个词的信息去生成下一个词的预测。

我们提出通过门控机制将翻译记忆融入神经机器翻译的方法,具有以下优势,

1.通过句向量获得源语句与翻译记忆库中语义最相似的句子,不仅仅可以匹配相同的句子或片段,也可以匹配到那些语义相同但单词不同的句子。

2.利用门控机制有效的使用了翻译记忆中那些有用的部分,而其他无用的可能对源语句翻译造成干扰的信息则被我们屏蔽。

3.我们在中英数据上进行了实验,实验表明当模糊匹配得分高于50%时,融合了门控翻译记忆信息的神经网络系统较baseline有大幅的提高,实验结果如下表:

其中rnnsearch是我们的baseline(基础模型)系统,nmt-gtm是我们提出的模型,tm代表翻译记忆。

同时,我们也比较了当额外输入的翻译记忆的模糊匹配得分不同时,门控网络的值的变化情况,表明网络确实会随着额外输入的翻译记忆的信息的不同而变化,详细信息如下所示:

其中ref_as_tm表示我们将正确答案作为额外的翻译记忆信息输入网络得到的结果,比较他们的平均门控值发现当额外给的翻译记忆信息与源语句的相似度越高,那么网络能使用的翻译记忆信息就越多。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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