一种提升多语言神经机器翻译模型零样本翻译能力的方法与流程

专利2022-05-10  31



1.本发明属于机器翻译技术领域,尤其涉及一种提升多语言神经机器翻译模型零样本翻译能力的方法。


背景技术:

2.目前:机器翻译研究如何通过计算机将一种语言的文本转换具有相同语义的另一种语言的文本,和人工翻译相比,机器翻译不仅翻译速度更快,而且费用更低廉。鉴于机器翻译巨大的应用前景,学术界和工业界都在机器翻译领域投入了巨大的人力、物力和财力,机器翻译也一直都是学术界和工业界的研究热点之一。经过多年的研究,机器翻译的研究成果已经得到了实际的应用,很多公司例如谷歌、微软、百度等都构建了自己的翻译引擎并对外提供了在线翻译服务。根据谷歌发布的消息,谷歌旗下的翻译服务平台每天提供的翻译服务多达10亿次,每天翻译的词汇量超过了1000亿。在各种语言交流碰撞的今天,机器翻译已经成为了生活中不可或缺的工具。
3.神经机器翻译是基于神经网络的机器翻译方法的统称,它研究的是通过神经网络实现文本在两种语言之间等价的语义转换。得益于大规模平行语料库的产生和计算机硬件运算能力的提升,基于神经网络的机器翻译方法表现了更优异的翻译效果,它逐渐取代了基于统计的机器翻译方法成为当前机器翻译的主流方法。现有的主流神经机器翻译模型都是编码器

解码器框架(sutskever et al.,2014),其中编码器将源语言的句子编码为一个高维的向量,然后解码器根据这个向量生成目标语言的句子。可以把神经机器翻译模型的翻译过程视为求解一个概率问题,设x=(x1,x2,x3,

,x
n
)表示含有n个单词的源语言句子,设y=(y1,y2,y3,

,y
m
)表示含有m个单词的目标语言句子,其中x,y含有相同的语义,神经机器翻译模型在翻译时可以视为在已知序列x的情况下求解使得概率p(y/x)最大的y。由于编码器在获得源语言的句子x后会将它编码为一个高维的向量e,设e=(e1,e2,e3,

,e
n
),则有:
4.(e1,e2,e3,

,e
n
)=encoder(x1,x2,x3,

,x
n
)
5.当要生成目标语言词语y
i
时,解码器会根据源语言句子的编码e和在前i

1个时刻的目标词语(y1,y2,y3,

,y
i
‑1)生成目标语言词y
i
,如下式所示:
[0006][0007]
在神经机器翻译模型诞生之初,编码器和解码器一般都由循环神经网络组成,然而循环神经网络在当前时刻的输入依赖于上一个时刻的输出,这使得模型中的计算过程无法高效的利用gpu的并行处理能力,故模型的训练和推理速度无法达到令人满意的效果。除此以外,基于循环神经网络的神经机器翻译模型不能有效的对句子中的长距离依赖建模,这导致模型对长句的翻译效果也不尽人意。针对基于循环神经网络的神经机器翻译模型的弊端,现有技术1提出了transformer结构,transformer抛弃了传统的循环神经网络和卷积神经网络的结构,仅仅依靠注意力机制和前馈神经网络就能取得很好的翻译效果,不仅如
此,由于transformer中的计算过程适合用gpu并行处理,它还具有更快的训练和推理速度。transformer的诸多优势让它逐渐取代了传统的循环神经网络和卷积神经网络结构成为当前主流的神经机器翻译模型结构。
[0008]
多语言神经机器翻译研究的是如何使用一个神经机器翻译模型实现同时对多个语言对的翻译。根据模型的源端和目标端涉及的语言数量的不同,多语言神经机器翻译可以分为多对一的翻译、一对多的翻译和多对多的翻译。为了支持多个语言对的翻译,早期的多语言神经机器翻译模型通常会在模型中为每种源语言添加独立的编码器,为每种目标语言添加独立的解码器,如果想让不同的语言共享模型中的参数,可以让部分源语言共享编码器或让部分目标语言共享解码器或让部分语言对共享注意力机制,然而这些方案都会使模型的参数总量随着涉及的语言数量的增加而呈现较大规模的增长。与上诉方案不同,现有技术2只使用一个编码器和解码器就实现了多个语言对的翻译。在只使用一个解码器的情况下,如果不对训练数据或训练方式进行修改,解码器会因为缺少需要生成的目标语言信息生成错误的目标语言句子。为了在模型中添加需要生成的目标语言信息指导解码器进行翻译,现有技术3在每个源语言的句子开头添加了可以唯一标识目标语言的标识符,例如一个需要被翻译为英文的中文句子为“多语言神经机器翻译”,它会被修改为“<en>多语言神经机器翻译”。
[0009]
零样本翻译(zero

shot translation)指机器翻译模型在训练期间没有经过特定的语言对的平行语料的训练也具有处理该语言对的能力。由于没有学习过相关的语言的训练样本,单个语言对的神经机器翻译模型几乎不具备零样本翻译(zero

shot translation)的能力。而多语言神经机器翻译模型通常采用联合训练的方式,尽管训练集中没有特定的语言对的平行语料,模型在训练期间可以学习相关的源语言或目标语言的训练样本,这会使模型具有一定的零样本翻译(zero

shot translation)能力。例如一个经过德语

英文、英文

中文的平行语料训练的多语言神经机器翻译模型可以将德语直接翻译为中文。
[0010]
多语言神经机器翻译模型的零样本翻译(zero

shot translation)现象意味着可以借助一种枢纽语言,通过其它n种语言

枢纽语言和枢纽语言

其它n种语言的平行语料训练得到的多对多的神经机器翻译模型就可以实现n种语言中的任意两种语言之间的翻译,这等价于训练了n
×
(n

1)个单个语言对的神经机器翻译模型,不仅可以极大减少在生产环境中实际部署的神经机器翻译模型的数量,还可以简化模型实际的部署流程。除此以外,在有些语言对的平行语料匮乏时,依然可以通过这种方法得到具有该语言对的翻译能力的模型。
[0011]
尽管多语言神经机器翻译模型的零样本翻译(zero

shot translation)能力有着诸多优点,但由于模型在训练的过程中没有学习过该语言对的样本,模型的零样本翻译(zero

shot translation)效果通常特别差,在实际翻译时,模型会更倾向于产生枢纽语言的词而不是给定的目标语言的词,这也进一步导致模型最终生成的是枢纽语言的句子而不是给定的目标语言的句子。例如当使用英语作为枢纽语言时,如果让多语言神经机器翻译模型将法语直接翻译为中文,那模型生成的句子中会混有英文词,如表1所示。
[0012]
表1
[0013][0014]
通过上述分析,现有技术存在的问题及缺陷为:现有的机器翻译模型在进行零样本翻译时,会生成错误的目标语言词,翻译准确率不高,且会影响模型对经过有监督训练的语言对的翻译效果。
[0015]
解决以上问题及缺陷的难度为:神经机器翻译模型中的基本结构是神经网络,尽管近年来基于神经网络的自然语言处理模型在许多自然语言处理任务中都取得了突破性的进展,但现有的科学理论还无法对模型的决策逻辑进行直接解释,神经网络对于本发明来说更像是一个黑盒模型。因此,多语言神经机器翻译模型为何会具有零样本翻译能力?多语言神经机器翻译模型的翻译效果为何总是不理想?如何在不降低模型对其它经过训练的语言对的翻译能力的情况下提升模型的零样本翻译能力?等问题无论在学术界还是工业界都还未被完全解决,它们都还有待进一步的研究。不仅如此,由于缺乏相关的理论指导,在从事多语言神经机器翻译模型的零样本翻译研究时,本发明无法根据具体的理论推导出提升模型的零样本翻译能力的有效方法,只能通过自己已有的知识积累和大量实验探索可能会影响模型的零样本翻译能力的因素,然后总结实验结果并得出相关的规律,最后根据这些规律设计更优的模型结构、训练方法以及训练数据的采样方法等。然而多语言神经机器翻译模型的训练数据通常会包含多个语言对的平行语料,它的训练集的规模往往很大,因此模型在训练时会消耗大量的计算资源,如果没有强大的算力作为支撑,那将很难进行相关的实验,也就无法通过实验验证某个提升模型的零样本翻译能力的方案的优劣。
[0016]
解决以上问题及缺陷的意义为:多语言神经机器翻译模型的零样本翻译能力表明本发明可以借助一种枢纽语言,只需要其它n种语言和枢纽语言之间的平行语料就可以实现n种语言中任意两种语言之间的互译。在实际的生产环境中,机器翻译系统需要支持尽可能多的语言对的翻译以满足不同的需求,当本发明需要一个可以进行n种语言中任意两种语言之间互译的机器翻译系统时,如果模型不具有零样本翻译能力或模型的零样本翻译效果不尽人意,本发明需要个语言对的平行语料,尽管现在有很多公开的大规模的平行语料库,高质量的大规模平行语料库仍然属于稀缺资源,且这些平行语料库只覆盖了世界上的少部分语言,对于低资源的语言,本发明仍然难以获取足够的语料训练模型,而一个具有良好的零样本翻译能力的模型可以有效缓这一问题。在模型的零样本翻译能力良好的情况下,本发明只需要训练2n个翻译方向就可以满足n
×
(n

1)个方向的翻译需求,这可以减少实际训练的模型数量,简化系统的部署流程。在两种语言之间的平行语料不足的
情况下,为了实现这两种语言之间的互译,通常也会借助某个与这两种语言有着较多的平行语料的枢纽语言,先将一种语言的文本翻译为枢纽语言,然后再将枢纽语言的文本翻译为另一种语言,由于进行了两个阶段的翻译,这种方式的翻译时延是普通方式的两倍,且错误可能会在翻译过程中累积从而影响最终的翻译效果。与这种方式相比,模型的零样本翻译能力可以让模型在没有学习过相关语言对的训练样本的情况下完成整个翻译过程,即直接从一种语言翻译为另一种语言,即能保证翻译速度,还可以避免两个阶段的翻译的错误累积。


技术实现要素:

[0017]
针对现有技术存在的问题,本发明提供了一种提升多语言神经机器翻译模型零样本翻译能力的方法。
[0018]
本发明是这样实现的,一种提升多语言神经机器翻译模型零样本翻译能力的方法,所述提升多语言神经机器翻译模型零样本翻译能力的方法包括:
[0019]
通过构建神经机器翻译模型,设计所述翻译模型的损失函数、优化模型结构、调整采样方法提升多语言神经机器翻译模型零样本翻译能力。
[0020]
进一步,所述提升多语言神经机器翻译模型零样本翻译能力的方法包括以下步骤:
[0021]
步骤一,设计损失函数:计算训练样本中的源语言句子和目标语言句子对应的encoder输出之间的相似度,并相应相似度添加到原有的loss中,用所述loss优化模型的参数,指导encoder将具有相似语义的句子映射到语义空间中相近位置;多语言神经机器翻译可以分解为领域自适应问题和多任务学习问题,其中各种源语言句子可以视为来自不同的领域的数据,而翻译为不同的目标语言可以视为不同的任务。如果从领域自适应的角度看待模型的零样本翻译(zero

shot translation)现象,本发明可以理解为模型从不同的源语言中学习到了共同的特征,即使模型在训练时并没有见过相关的语言对,encoder依然可以输出带有源语言句子的语义信息的向量表示,这也是模型可以进行零样本翻译(zero

shot translation)的原因之一,但是实际上模型的零样本翻译(zero

shot translation)效果并不好。本发明推测影响模型的零样本翻译(zero

shot translation)能力的原因之一是原有的模型的训练方法让encoder学习到的语义编码中带有了源语言信息,即encoder输出的源语言句子的语义编码是和源语言相关的,而这种信息会和decoder中含有的目标语言信息相互作用导致模型在处理未见过的语言对时翻译效果变差。假设多语言神经机器翻译模型经过法语

中文和中文

英文的平行语料训练,对于中文

英文这个方向,由于模型学习过相应的平行语料,故模型可以生成较好的翻译结果,如果encoder可以将具有相同语义的法语句子和中文句子编码为相似的向量表示,那模型也可以较好的处理法语

英文这个方向。因此需要改进原有的模型训练方法让encoder将具有相同语义的句子编码为相似的向量表示,且encoder输出的语义编码中不含有源语言信息。
[0022]
步骤二,优化模型结构:在decoder的最后一层的输出和用于生成目标语言词表上的概率分布的线性层之间为每种目标语言都添加了一个独立的线性层;在decoder中额外添加目标语言信息;并调整采样方法以缓解不同语言之间的数据不平衡的问题。多语言神经机器翻译模型在进行零样本翻译(zero

shot translation)时总是会生成错误的目标语
言句子,本发明推测产生这个问题的原因主要有两个:1.在多语言神经机器翻译模型中,encoder只需要关注源语言句子的语义信息,decoder不仅要关注源语言句子的语义,还需要同时关注目标语言句子的语义和词序等信息,而不同的目标语言之间有明显的差异,因此让所有的目标语言共享decoder中所有的参数不一定是最优的方法。2.decoder收到的目标语言信息不足导致decoder最后无法生成特定的目标语言句子。在多语言神经机器翻译模型训练时,为了指导decoder生成特定的目标语言句子,通常会在源语言句子的开头或目标语言句子的开头添加一个可以唯一标识目标语言的标识符,例如一个需要被翻译为英文的中为句子为“多语言神经机器翻译”,它会被修改为“<en>多语言神经机器翻译”,但是这种方法只对原始的语料进行了修改,为了进一步指导decoder进行翻译,还需要对模型的结构做出一定的修改。
[0023]
进一步,步骤一中,所述计算训练样本中的源语言句子和目标语言句子对应的encoder输出之间的相似度,并相应相似度添加到原有的loss中包括:
[0024]
采用两种方法进行相似度计算,并进行相应的相似度添加;
[0025]
(1)利用下式计算相似度:
[0026][0027]
将所述相似度的值域平移到[

2,0]区间,并取相反数再添加到原有的loss中,如下:
[0028][0029][0030]
(2)通过计算两个向量之间的差异进行相似度计算,并将计算结果直接添加到原有的loss中,如下:
[0031][0032][0033][0034]
其中,λ表示用于控制添加的loss和原有的loss之间的比例的超参数。
[0035]
进一步,所述提升多语言神经机器翻译模型零样本翻译能力的方法还包括:
[0036]
在目标语言句子的开头添加可唯一表示目标语言的标识符,并在目标语言句子输入encoder之前,删除添加的标识符。
[0037]
进一步,步骤二中,所述调整采样方法包括:
[0038]
d
l
为第l个语言对的训练集的大小,则所述语言对的训练集占原始总的训练集的比例为:
[0039]
[0040]
调整后第l个语言对的训练样本被采样的概率为:
[0041][0042]
其中,t表示可控制的超参数,当t=1时,每个语言对的训练样本被采样的概率就是它的训练集占原始总的训练集的比例;当t= ∞时,每个语言对的训练样本被采样的概率都是相等的,表示对低资源语言的训练集进行过采样。
[0043]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明可以显著提升多语言神经机器翻译模型的零样本翻译(zero

shot translation)能力,并缓解模型在进行零样本翻译(zero

shot translation)时会生成错误的目标语言词的问题,且不会影响模型对经过有监督训练的语言对的翻译效果。
附图说明
[0044]
图1是本发明实施例提供的提升多语言神经机器翻译模型零样本翻译能力的方法流程图。
[0045]
图2是本发明实施例提供的改进后的多语言神经机器翻译模型训练方法示意图。
[0046]
图3是本发明实施例提供的每种目标语言额外添加一个线性变换层后的模型图。
[0047]
图4是本发明实施例提供的在decoder中额外添加目标语言信息后的结构图。
[0048]
图5是本发明实施例提供的当t分别为1,5,100时调整后的采样方法对不同的训练集规模的语言对的采样概率对比图。
具体实施方式
[0049]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0050]
针对现有技术存在的问题,本发明提供了一种提升多语言神经机器翻译模型零样本翻译能力的方法,下面结合附图对本发明作详细的描述。
[0051]
本发明实施例提供的提升多语言神经机器翻译模型零样本翻译能力的方法包括:
[0052]
通过构建神经机器翻译模型,设计所述翻译模型的损失函数、优化模型结构、调整采样方法提升多语言神经机器翻译模型零样本翻译能力。
[0053]
如图1所示,本发明实施例提供的提升多语言神经机器翻译模型零样本翻译能力的方法包括以下步骤:
[0054]
s101,设计损失函数:计算训练样本中的源语言句子和目标语言句子对应的encoder输出之间的相似度,并相应相似度添加到原有的loss中,用所述loss优化模型的参数,指导encoder将具有相似语义的句子映射到语义空间中相近位置;
[0055]
s102,优化模型结构:在decoder的最后一层的输出和用于生成目标语言词表上的概率分布的线性层之间为每种目标语言都添加了一个独立的线性层;在decoder中额外添加目标语言信息;并调整采样方法。
[0056]
本发明实施例提供的计算训练样本中的源语言句子和目标语言句子对应的encoder输出之间的相似度,并相应相似度添加到原有的loss中包括:
[0057]
采用两种方法进行相似度计算,并进行相应的相似度添加;
[0058]
(1)利用下式计算相似度:
[0059][0060]
将所述相似度的值域平移到[

2,0]区间,并取相反数再添加到原有的loss中,如下:
[0061][0062][0063]
(2)通过计算两个向量之间的差异进行相似度计算,并将计算结果直接添加到原有的loss中,如下:
[0064][0065][0066][0067]
其中,λ表示用于控制添加的loss和原有的loss之间的比例的超参数。
[0068]
本发明实施例提供的提升多语言神经机器翻译模型零样本翻译能力的方法还包括:
[0069]
在目标语言句子的开头添加可唯一表示目标语言的标识符,并在目标语言句子输入encoder之前,删除添加的标识符。
[0070]
本发明实施例提供的调整采样方法包括:
[0071]
d
l
为第l个语言对的训练集的大小,则所述语言对的训练集占原始总的训练集的比例为:
[0072][0073]
调整后第l个语言对的训练样本被采样的概率为:
[0074][0075]
其中,t表示可控制的超参数,当t=1时,每个语言对的训练样本被采样的概率就是它的训练集占原始总的训练集的比例;当t= ∞时,每个语言对的训练样本被采样的概率都是相等的,表示对低资源语言的训练集进行过采样。
[0076]
下面结合具体实施例对本发明的技术方案作进一步说明。
[0077]
实施例1:
[0078]
多语言神经机器翻译可以分解为领域自适应问题和多任务学习问题,其中各种源语言句子可以视为来自不同的领域的数据,而翻译为不同的目标语言可以视为不同的任务。如果从领域自适应的角度看待模型的零样本翻译(zero

shot translation)现象,本发明可以理解为模型从不同的源语言中学习到了共同的特征,即使模型在训练时并没有见过相关的语言对,encoder依然可以输出带有源语言句子的语义信息的向量表示,这也是模型可以进行零样本翻译(zero

shot translation)的原因之一,但是实际上模型的零样本翻译(zero

shot translation)效果并不好。本发明推测影响模型的零样本翻译(zero

shot translation)能力的原因之一是原有的模型的训练方法让encoder学习到的语义编码中带有了源语言信息,即encoder输出的源语言句子的语义编码是和源语言相关的,而这种信息会和decoder中含有的目标语言信息相互作用导致模型在处理未见过的语言对时翻译效果变差。假设多语言神经机器翻译模型经过法语

中文和中文

英文的平行语料训练,对于中文

英文这个方向,由于模型学习过相应的平行语料,故模型可以生成较好的翻译结果,如果encoder可以将具有相同语义的法语句子和中文句子编码为相似的向量表示,那模型也可以较好的处理法语

英文这个方向。因此需要改进原有的模型训练方法让encoder将具有相同语义的句子编码为相似的向量表示,且encoder输出的语义编码中不含有源语言信息。
[0079]
多语言神经机器翻译模型在进行零样本翻译(zero

shot translation)时总是会生成错误的目标语言句子,本发明推测产生这个问题的原因主要有两个:1.在多语言神经机器翻译模型中,encoder只需要关注源语言句子的语义信息,decoder不仅要关注源语言句子的语义,还需要同时关注目标语言句子的语义和词序等信息,而不同的目标语言之间有明显的差异,因此让所有的目标语言共享decoder中所有的参数不一定是最优的方法。2.decoder收到的目标语言信息不足导致decoder最后无法生成特定的目标语言句子。在多语言神经机器翻译模型训练时,为了指导decoder生成特定的目标语言句子,通常会在源语言句子的开头或目标语言句子的开头添加一个可以唯一标识目标语言的标识符,例如一个需要被翻译为英文的中为句子为“多语言神经机器翻译”,它会被修改为“<en>多语言神经机器翻译”,但是这种方法只对原始的语料进行了修改,为了进一步指导decoder进行翻译,还需要对模型的结构做出一定的修改。
[0080]
设计损失函数
[0081]
神经机器翻译模型常用的训练方法是将源语言句子输入encoder,然后将encoder的输出和目标语言句子都输入decoder,再将decoder生成的目标语言词表上的概率分布和目标语言句子中的词之间的交叉熵作为loss,最后根据得到的loss优化模型的参数。尽管采用这种训练方法可以得到一个较好的模型,但是模型的零样本翻译(zero

shot translation)效果通常不理想。
[0082]
本发明推测当encoder可以将所有语言中具有相似语义的句子映射到语义空间中相近位置时,encoder可以更好的处理不同的源语言之间的差异,而这可以让模型的零样本翻译(zero

shot translation)能力得到提升。encoder的输出可以视为源语言句子语义的向量表示,因此,对于具有相似语义的句子,本发明希望这些句子对应的encoder输出的向量表示的差异尽可能小。在训练时,由于训练样本中的源语言句子和目标语言句子已经具
有相同的语义,故本发明可以将源语言句子和目标语言句子分别输入encoder,然后最小化它们对应的encoder输出之间的差异。在具体实现时,本发明计算了训练样本中的源语言句子和目标语言句子对应的encoder输出之间的相似度,并将该相似度添加到原有的loss中(如图2所示),然后用该loss优化模型的参数,从而指导encoder将具有相似语义的句子映射到语义空间中相近位置。
[0083]
在计算相似度时,本发明采用了两种方法,其中方法一如式3.1所示,方法二如式3.2所示。方法一计算得到的相似度的值域在[

1,1]区间,得到的结果越靠近1代表两个向量越相似,为了最大化相似度,本发明将该相似度的值域平移到了[

2,0]区间,然后取相反数再添加到原有的loss中,如式3.3和式3.5所示。方法二计算是两个向量之间的差异,得到的结果越靠近0代表两个向量越相似,故该方法计算得到的结果可以直接添加到原有的loss中,如式3.4和式3.5所示。式3.5中的λ是用于控制本发明添加的loss和原有的loss之间的比例的超参数。为了让encoder输出的语义编码中不带有源语言的信息,在具体实现时,本发明没有修改源语言句子,只在目标语言句子的开头添加了可以唯一表示目标语言的标识符,在目标语言句子输入encoder之前,本发明删除了添加的标识符。
[0084][0085][0086][0087][0088][0089]
优化模型结构
[0090]
当前主流的多语言神经机器翻译模型采用的都是完全参数共享方案,即所有的语言对共享模型中的所有参数,仅仅只依靠可以唯一标识目标语言的标识符指导decoder的翻译过程,而不同的语言有不同的构词方法、不同的语序、不同的发音等差异,这些差异会对decoder生成符合目标语言的语言规范的句子构成挑战,本发明推测这也是造成模型在进行零样本翻译(zero

shot translation)时无法生成正确的目标语言词的原因之一。为了对不同语言之间的共性进行建模的同时也对不同语言之间的差异进行建模,可以让所有源语言共享encoder,每种目标语言使用独立的decoder,但是这种方法产生的模型的参数数量会随着源语言和目标语言数量的增加而呈现较快的增长。
[0091]
本发明在decoder的最后一层的输出和用于生成目标语言词表上的概率分布的线性层之间为每种目标语言都添加了一个独立的线性层,在模型训练和预测时每种目标语言句子都经过独立的线性层,这样即可以对不同语言之间的差异进行建模,也不会使模型的参数总量急剧增长。为了缓解多语言神经机器翻译模型在进行零样本翻译(zero

shot translation)时会生成错误的目标语言句子的问题,本发明在decoder中额外添加了目标
语言信息从而指导decoder生成正确的词。优化后的模型结构如图3

图4所示。
[0092]
调整采样方法
[0093]
多语言神经机器翻译模型的训练集一般由所有语言对的训练集混合而成,然而不同的语言对的训练集的规模也不相同,高资源语言对和低资源语言对的训练集的规模往往会有几个数量级的差异,将所有语言对的训练集简单的混合的方法会导致在训练时模型学习低资源语言对的样本的频率过低,造成模型对低资源语言的翻译效果不理想。为了缓解这个问题,本发明调整了训练时的采样方法,设d
l
为第l个语言对的训练集的大小,该语言对的训练集占原始总的训练集的比例为:
[0094][0095]
调整后第l个语言对的训练样本被采样的概率为:
[0096][0097]
式3.7中的t是可以控制的超参数,当t=1时,每个语言对的训练样本被采样的概率就是它的训练集占原始总的训练集的比例。当t= ∞时,每个语言对的训练样本被采样的概率都是相等的,这相当于本发明对低资源语言的训练集进行了过采样。
[0098]
下面结合具体实验对本发明的技术效果做进一步说明。
[0099]
为了验证本发明提出的方案的有效性,本发明用公开的数据集ted

58进行了多项多对多的多语言机器翻译实验。由于ted

58中不含有零样本翻译(zero

shot translation)的测试集,本发明使用另一个公开的数据集opus

100中的零样本翻译(zero

shot translation)的测试集测试模型的零样本翻译(zero

shot translation)效果。实验结果表明本发明采用的方案可以显著提升多语言神经机器翻译模型的零样本翻译(zero

shot translation)能力,并缓解模型在进行零样本翻译(zero

shot translation)时会生成错误的目标语言词的问题,且不会影响模型对经过有监督训练的语言对的翻译效果。
[0100]
数据预处理
[0101]
原始的数据集ted

58已经划分了训练集、验证集和测试集,但是训练集和验证集之间以及训练集和测试集之间都有重复的句子,为了评估模型真实的翻译效果,本发明去除了这些重复的句子。为了控制词表的大小,本发明对所有语言对混合后的语料进行了bpe分词。
[0102]
实验设置
[0103]
基本实验设置:本发明在每个目标语言句子开头添加了表示该句子所属语种的标识符,并将式3.7中的t设置为1.5。
[0104]
实验a:本发明用transformer进行此实验,在基本实验设置的基础上,本发明在每个源语言句子的开头添加了表示该句子所属语种的标识符,且模型的源端和目标端使用独立的词表。
[0105]
实验b:本发明用transformer进行此实验,在基本实验设置的基础上,本发明在每个源语言句子的开头添加了表示该句子所属语种的标识符,且让模型的源端和目标端共享
词表和embedding。
[0106]
实验c:本发明用transformer进行此实验,在基本实验设置的基础上,本发明采用了式3.3和式3.5的方法计算loss,且让模型的源端和目标端共享词表和embedding。
[0107]
实验d:本发明用图3所示的模型进行此实验,在基本实验设置的基础上,本发明让模型的源端和目标端共享词表和embedding。
[0108]
实验e:本发明用图3所示的模型进行此实验,在基本实验设置的基础上,本发明采用了式3.2和式3.4的方法计算loss,且让模型的源端和目标端共享词表和embedding。
[0109]
实验f:本发明用图3所示的模型进行此实验,在基本实验设置的基础上,本发明采用了式3.3和式3.5的方法计算loss,且让模型的源端和目标端共享词表和embedding。
[0110]
实验结果
[0111]
各组实验在58种语言

英语和英语

58种语言一共116个方向测试的翻译效果如表3.1所示。实验结果表明,本发明采用的优化方案不会影响模型对经过有监督训练的语言对的翻译效果。
[0112]
表2各组实验在58种语言

英语和英语

58种语言一共116个方向测试得到的平均的bleu值
[0113][0114]
各组实验产生的模型测试的零样本翻译(zero

shot translation)效果如表3所示,本发明还测试了模型输出的译文中生成的错误语言词的比例,如表4所示。实验结果表明,采用实验d、实验e和实验f中的实验设置可以显著提升模型的零样本翻译(zero

shot translation)能力,并引导模型生成正确的目标语言词。
[0115]
表3各组实验产生的模型进行零样本翻译(zero

shot translation)测试得到的bleu值(保留两位小数)
[0116][0117][0118]
表4各组实验产生的模型进行零样本翻译(zero

shot translation)测试得到的生成的错误语言词的比例
[0119] abcdefar

de0.0740.0910.0760.0000.0000.000ar

fr0.0480.0720.0200.0000.0000.000ar

nl0.0890.0760.0660.0000.0000.000ar

ru0.0830.1790.0860.0000.0000.000ar

zh0.1280.1950.1290.0000.0000.000de

fr0.0520.0730.0230.0000.0000.000de

nl0.0860.0900.0590.0000.0000.000de

ru0.1300.2080.1220.0000.0000.000de

zh0.1530.1890.1450.0000.0000.000fr

nl0.0800.0840.0580.0000.0000.000fr

ru0.1020.2000.0930.0000.0000.000fr

zh0.1320.2170.1370.0000.0000.000nl

ru0.1290.1920.1190.0000.0000.000nl

zh0.1390.1740.1320.0000.0000.000ru

zh0.1120.1900.1260.0000.0000.000
[0120]
本发明使用sentencepiece对语料进行bpe分词,并限制词表的大小为32k。
[0121]
在所有的实验中,本发明将模型中的encoder和decoder的层数都设置为6,d
model
设置为512,d
ff
设置为2048,head的数量设置为8,dropout设置为0.25。
[0122]
本发明选择adam作为所有模型的优化器,模型的初始学习率设置为0.0005,权重衰减率设置为0.0001。
[0123]
计算原有的loss时,本发明采用了标签平滑方法,∈
ls
设置为0.1。
[0124]
本发明采用warmup策略训练所有的模型,在整个训练过程中模型的学习率的变化规则为:
[0125][0126]
warmup_steps设置为3000。
[0127]
当采用本发明设计的损失函数时,本发明将式3.5中的λ设置为0.1。
[0128]
当采用本发明的采样方案时,本发明将式3.7中的t设置为1.5。
[0129]
在所有的实验中,本发明将5000个子词作为一个batch送入模型训练,一共训练30个epoch。
[0130]
本发明采用梯度累计策略训练所有的模型,update_freq设置为4.
[0131]
本发明用teacher

force的方式训练所有的模型。
[0132]
在解码时,本发明用束搜索(beam search)方法,束宽度(beam size)设置为5。
[0133]
所有模型的训练过程都在4块显卡上完成。
[0134]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd

rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0135]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
转载请注明原文地址:https://doc.8miu.com/read-1550253.html

最新回复(0)