一种基于预训练的稀缺资源神经机器翻译训练方法
技术领域
本发明涉及一种神经机器翻译训练方法,具体为一种基于预训练的稀缺资源神经机器翻译训练方法。
背景技术
现如今,神经机器翻译技术已经取得了巨大的提升,相比之前基于规则和基于统计的机器翻译模型,神经机器翻译可以实现更好的翻译质量,翻译结果更加流利通顺。然而,神经机器翻译存在的一个问题是对数据的依赖性极强,如果有足够的训练数据,即源语和目标语的双语语料,那么翻译模型就可以达到更好的翻译质量,但在训练数据稀缺的情况下,翻译模型便无法达到理想的效果。稀缺资源场景一般可以分为语种数据稀缺和领域数据稀缺。对于双语训练数据十分充分的语种,一般称之为富资源语种,比如汉语-英语、英语-德语、英语-法语等,但是相比现在世界上数千种语言,富资源语种只占其中的很小一部分,其他语种大都是只有少量双语语料甚至没有双语语料的稀缺资源语种。比如对应汉语-英语,可用句对的数量可能有几亿句,而对于汉语-古吉拉特语,可用句对的数量可能只有几千句或几万句,无法充分训练神经机器翻译模型。而不同领域的数据量也存在着很大区别,比如新闻、口语等领域的数据一般较为容易获得,而一些专业领域,比如航空、考古学等,则很难获取到丰富的训练数据。
针对稀缺资源场景,想要提升翻译质量的一个有效方法是提高训练数据的数据量,但是由于该方法所需的人力和时间成本都很高,需要专业的翻译人员进行人工翻译,所以该方法实际上很难直接实现。因此,研究人员主要从技术角度,尝试多种方法来提高稀缺资源的机器翻译质量。
在统计机器翻译时代,使用海量的单语语料来训练语言模型可以有效提高翻译结果的流畅性。而现如今普遍使用的神经机器翻译模型基于端到端的结构,对于一个输入句子,模型输出一个输出句子,神经机器翻译模型不需要统计机器翻译模型繁琐的流程,不需要人工设计特征,也就没有了显式的语言模型。研究人员尝试将语言模型集成到神经机器翻译模型的预测模块,但并未取得理想的性能。目前,单语数据比较有效的使用方法是进行数据增强,通过生成伪数据来增加训练数据的数量,其中最常用的数据增强技术是回译(back translation)。回译首先使用真实的双语数据训练得到反向翻译模型,通过该模型将目标语的单语数据翻译为源语,通过这种方式生成的源语句子中会包含一些噪声,但目标语句子可以保持通顺流畅,将生成的源语句子和原始的目标语句子组合成为伪数据,混合伪数据和真实的平行语料进行训练可以得到更好的翻译模型。通过对上述方法进行不断迭代,每次都可以生成质量更好的伪数据,因此可以有效提高模型的翻译性能。但这种方法存在的问题是流程比较复杂,对单语数据的质量要求较高,并且需要多次迭代。因此探究基于预训练的稀缺资源神经机器翻译方法成为当前十分必要的工作。
以往的神经网络预训练方法主要是针对网络的输入层,通过大量的单语数据预训练词嵌入,这种方法在很多数据量较少的任务上也取得了一定的成功。但词嵌入本身具有一些局限性,最主要的缺点是无法解决一词多义问题,不同的词在不同的上下文中会有不同的意思,而词嵌入对模型中的每个词都分配了一个固定的表示。预训练语言模型能够根据每个词所在的上下文进行编码,可以提供更丰富确切的信息,从而对下游任务带来更大的提升。
预训练的语言模型在自然语言处理领域已经取得了巨大的进展,在诸多任务上都取得了最优的成绩,包括命名实体识别、文本蕴含、问答、语义角色标注、指代消解和情感分析等,然而这些任务和神经机器翻译有着一个重大的区别,即这些任务属于自然语言理解任务,仅仅需要一个编码器就可以提取输入句子中的信息,而机器翻译属于自然语言生成任务,基于编码器-解码器框架,编码器读取一个源语句子,提取其中的信息,并将其编码为一个向量表示,解码器对编码器提供的向量表示进行解码,将其生成目标语句子。神经机器翻译模型仅仅依赖一个编码器不足以获取跨语言之间的信息并生成目标语句子,因此预训练模型无法直接有效地应用于机器翻译任务中。
虽然基于语言模型的预训练模型和神经机器翻译模型的网络结构无法完全匹配,但是预训练模型可以看作是神经机器翻译模型结构的一部分,如果可以利用使用大量单语数据预训练的语言模型,那么神经机器翻译模型便能够拥有更充分的信息以及经过加工处理后的特征,对翻译任务可能很有帮助,尤其是对稀缺资源场景,少量的训练数据很可能无法将模型训练充分,很容易产生过拟合问题。因此,如果能够基于预训练的模型作为翻译模型的起点,或是通过预训练模型为翻译模型提供一些信息,对于稀缺资源场景的机器翻译来说是很有帮助的。
发明内容
针对现有技术中机器翻译系统在很多实际场景中没有充分的双语语料导致神经机器翻译模型的翻译效果不佳等不足,本发明要解决的技术问题是提供一种基于预训练的稀缺资源神经机器翻译训练方法,能够在双语语料不足的情况下,充分利用单语语料预训练屏蔽语言模型等任务,然后将预训练模型提取到的信息集成到神经机器翻译模型中,显著提高模型的翻译质量。
为解决上述技术问题,本发明采用的技术方案是:
本发明一种基于预训练的稀缺资源神经机器翻译训练方法,包括以下步骤:
1)构建海量的单语语料,进行分词和子词切分预处理流程,基于屏蔽语言模型和下一句预测任务使用单语语料预训练语言模型得到收敛后的模型参数;
2)构建平行语料,和预训练阶段的单语语料使用同样的预处理流程和相同的词表,随机初始化神经机器翻译模型的参数,神经机器翻译模型的词嵌入层和隐藏层的大小和预训练语言模型相同;
3)将预训练模型集成到神经机器翻译模型中;
4)神经机器翻译模型通过平行语料进行训练,编码器对源语句子进行编码,提取源语句子中的信息,解码器根据提取的信息解码生成目标语句子,不断更新模型参数,使得生成目标语句子和真实的翻译结果更加相似,完成神经机器翻译模型训练过程;
5)将用户输入的源语句子送入到神经机器翻译模型中,神经机器翻译模型通过贪婪搜索或束搜索生成翻译结果。
在步骤3)中,将预训练模型集成到神经机器翻译模型中,集成预训练模型的词嵌入层参数到神经机器翻译模型的词嵌入层,具体为:
301)将神经机器翻译模型的词嵌入表示为E={e
1,...,
et},将预训练模型的词嵌入表示为H={h
1,...,h
t},模型最后使用的词嵌入表示为
通过以下不同的方式之一将预训练模型的词嵌入集成到神经机器翻译模型中:
基于词嵌入替换的集成方法,使用预训练模型的词嵌入替换神经机器翻译模型的词嵌入,公式为:
基于词嵌入平均的集成方法,使用预训练模型的词嵌入和神经机器翻译模型的词嵌入求均值,公式为:
基于词嵌入融合的集成方法,使用预训练模型的词嵌入和神经机器翻译模型的词嵌入加权融合,公式为:
其中,g是一个门控单元,计算方法为:
g=σ(W1H+W2E+b)
其中,W1、W2和b都是可学习的参数,σ是sigmoid函数,将计算结果缩放到(0,1)之间,通过对两个词嵌入进行加权求和,来加强模型的输入,提供更丰富的信息。
在步骤3)中,将预训练模型集成到神经机器翻译模型中,使用预训练模型提取源语句子中的信息并集成到词嵌入层,具体为:
302)使用预训练语言模型对神经机器翻译模型输入的源语句子进行动态编码,提取句子中的语法和语义信息;预训练模型的每个隐藏层均提取到不同层面的特征,对这些特征进行加权求和,得到更丰富的语言信息,并乘以一个缩放系数,使预训练模型的特征和神经机器翻译模型的特征在一个相同的量级上,计算公式为:
其中,h′
t,j是预训练模型的隐藏层特征,L是隐藏层的层数,
是归一化的概率分布,用来对多个隐藏层的特征进行加权求和,γ
MT是缩放系数,用于将提取到的特征缩放到翻译任务的特征范围内;
将神经机器翻译模型的词嵌入表示为E={e
1,...,e
t},将预训练模型提取到的特征表示为H={h
1,...,h
t},模型最后使用的词嵌入表示为
对于提取到的特征,分别通过替换、平均和融合的方法将特征融合到神经机器翻译模型的词嵌入层,为机器翻译提供了更充分的信息;
基于替换的集成方法,使用预训练模型提取到的特征替换神经机器翻译模型的词嵌入,公式为:
基于平均的集成方法,使用预训练模型提取到的特征和神经机器翻译模型的词嵌入求均值,公式为:
基于融合的集成方法,使用预训练模型提取到的特征和神经机器翻译模型的词嵌入加权融合,公式为:
其中,g是一个门控单元,计算方法为:
g=σ(W1H+W2E+b)
其中,W1、W2和b都是可学习的参数,σ是sigmoid函数,将计算结果缩放到(0,1)之间,通过对词嵌入和预训练模型提取的特征进行加权求和,来加强模型的输入,提供更丰富的信息。
在步骤3)中,将预训练模型集成到神经机器翻译模型中,使用预训练模型的参数初始化编码器,具体为:
303)使用预训练模型的参数初始化编码器;对于一个源语句子,编码器对句子中的信息进行提取,得到该句子对应的表示,然后解码器根据该表示进行解码,生成目标语的句子;使用预训练模型的参数初始化编码器,解码器仍然随机初始化,拥有增强的编码器。
步骤4)中,神经机器翻译模型通过平行语料进行训练,编码器对源语句子进行编码,提取句子中的信息,当使用预训练模型提取源语句子中的信息并集成到词嵌入层中的方法时,训练过程使用预训练模型提取源语句子中的信息,进而集成到神经机器翻译模型中,辅助训练过程。
步骤5)中,将用户输入的源语句子送入到模型中,神经机器翻译模型通过贪婪搜索或束搜索生成翻译结果,当使用预训练模型提取源语句子中的信息并集成到词嵌入层中的方法时,解码过程和训练过程保持一致,使用预训练模型提取源语句子中的信息,进而集成到神经机器翻译模型中,辅助解码过程。
本发明具有以下有益效果及优点:
1.本发明提出了基于预训练的稀缺资源神经机器翻译训练方法,通过海量的单语数据预训练语言模型,然后将预训练模型集成到神经机器翻译模型的编码器中,简化了训练流程。同时,预训练语言模型通过学习上下文信息进行训练,因此有效避免了传统的预训练词嵌入无法解决的一词多义问题。
2本发明应用于稀缺资源机器翻译任务中,减少了神经机器翻译模型对于双语训练数据的依赖,不仅可以显著提高翻译质量,还可以加快训练速度,提高模型的鲁棒性。
附图说明
图1为本发明中预训练语言模型和神经机器翻译模型图示;
图2为本发明中集成预训练模型的词嵌入层参数到神经机器翻译模型的词嵌入层图示;
图3为本发明中使用预训练模型提取源语句子中的信息并集成到神经机器翻译模型的词嵌入层图示;
图4为本发明中使用预训练模型的参数初始化神经机器翻译模型的编码器图示。
具体实施方式
下面结合说明书附图对本发明作进一步阐述。
本发明方法将从集成预训练模型中的知识对稀缺资源机器翻译的训练过程进行优化。本方法在不增加双语数据的条件下,利用海量的单语数据预训练语言模型,并将预训练模型的信息融入到神经机器翻译模型中,旨在减少机器翻译对双语语料的依赖,并能够在稀缺资源场景达到高质量的翻译性能。
本发明提出了一种基于预训练的稀缺资源机器翻译训练方法,包括以下步骤:
1)构建海量的单语语料,进行分词和子词切分预处理流程,基于屏蔽语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)任务使用单语语料预训练语言模型得到收敛后的模型参数;
2)构建平行语料,和预训练阶段的单语语料使用同样的预处理流程和相同的词表,随机初始化神经机器翻译模型的参数,神经机器翻译模型的词嵌入层和隐藏层的大小和预训练语言模型相同;
3)将预训练模型集成到神经机器翻译模型中;
4)神经机器翻译模型通过平行语料进行训练,编码器对源语句子进行编码,提取源语句子中的信息,解码器根据提取的信息解码生成目标语句子,不断更新模型参数,使得生成目标语句子和真实的翻译结果更加相似,完成神经机器翻译模型训练过程;
5)将用户输入的源语句子送入到神经机器翻译模型中,神经机器翻译模型通过贪婪搜索或束搜索生成翻译结果。
步骤1)中,预训练语言模型基于两个任务从单语语料中学习知识,模型结构类似于神经机器翻译模型的编码器,如图1所示,包括:
101)屏蔽语言模型,屏蔽语言模型任务是将输入句子中的部分词随机屏蔽,在模型的输出层对屏蔽词进行预测。具体做法为首先随机选择15%的词,80%的概率将选中词替换为[MASK]标记,10%的概率将选中词替换为随机词,剩余10%的概率不改变,模型在输出层预测选中位置的词,最终通过最小化预测词和真实词之间的损失实现训练过程。屏蔽语言模型任务相比普通的语言模型,允许模型进行双向编码,可以对来自过去和未来的信息进行建模,从而对屏蔽的词进行预测,因此模型能够提取更丰富的信息。
102)下一句预测,下一句预测任务是指对于输入的两个句子,判断第二个句子是否是第一个句子的下一句。下一句预测任务可以学习到句子之间的联系,对于长句子的编码可能更有帮助。
步骤2)中,为了减小预训练阶段和机器翻译阶段之间的差异,需要采用相同的预处理流程,比如相同的分词工具,相同的子词表,相同的词表和相同的模型结构等。
步骤3)中,通过三种不同的方法将预训练模型集成到神经机器翻译模型中,分别为集成预训练模型的词嵌入层参数到神经机器翻译模型的词嵌入层,使用预训练模型提取源语句子中的信息并集成到词嵌入层,使用预训练模型的参数初始化编码器,其中采用集成预训练模型的词嵌入层参数到神经机器翻译模型的词嵌入层的方法具体为:
301)将神经机器翻译模型的词嵌入表示为E={e
1,...,
et},将预训练模型的词嵌入表示为H={h
1,...,h
t},模型最后使用的词嵌入表示为
通过三种不同的方法将预训练模型的词嵌入集成到神经机器翻译模型中,如图2所示;
基于词嵌入替换的集成方法,使用预训练模型的词嵌入替换神经机器翻译模型的词嵌入,公式为:
基于词嵌入平均的集成方法,使用预训练模型的词嵌入和神经机器翻译模型的词嵌入求均值,公式为:
基于词嵌入融合的集成方法,使用预训练模型的词嵌入和神经机器翻译模型的词嵌入加权融合,公式为:
其中,g是一个门控单元,计算方法为:
g=σ(W1H+W2E+b)
其中,W1、W2和b都是可学习的参数,σ是sigmoid函数,将计算结果缩放到(0,1)之间;通过对两个词嵌入进行加权求和,来加强模型的输入,提供更丰富的信息。
步骤302)为使用预训练模型提取源语句子中的信息并集成到词嵌入层,具体为:使用预训练语言模型对神经机器翻译模型输入的源语句子进行动态地编码,提取句子中的语法和语义信息。预训练模型的每个隐藏层均提取到了不同层面的特征,对这些特征进行加权求和,得到更丰富的语言信息,并乘以一个缩放系数,使预训练模型的特征和神经机器翻译模型的特征在一个相同的量级上,如图3所示。计算公式为:
其中,h′
t,j是预训练模型的隐藏层特征,L是隐藏层的层数,
是归一化的概率分布,用来对多个隐藏层的特征进行加权求和,γ
MT是缩放系数,用于将提取到的特征缩放到翻译任务的特征范围内。
将神经机器翻译模型的词嵌入表示为E={e
1,...,e
t},将预训练模型提取到的特征表示为H={h
1,...,h
t},模型最后使用的词嵌入表示为
对于提取到的特征,分别通过替换、平均和融合的方法将特征融合到神经机器翻译模型的词嵌入层,为机器翻译提供了更充分的信息;
基于替换的集成方法,使用预训练模型提取到的特征替换神经机器翻译模型的词嵌入,公式为:
基于平均的集成方法,使用预训练模型提取到的特征和神经机器翻译模型的词嵌入求均值,公式为:
基于融合的集成方法,使用预训练模型提取到的特征和神经机器翻译模型的词嵌入加权融合,公式为:
其中,g是一个门控单元,计算方法为:
g=σ(W1H+W2E+b)
其中,W1、W2和b都是可学习的参数,σ是sigmoid函数,将计算结果缩放到(0,1)之间,通过对词嵌入和预训练模型提取的特征进行加权求和,来加强模型的输入,提供更丰富的信息。
当使用预训练模型的参数初始化编码器时,具体为:
303)使用预训练模型的参数初始化编码器。在神经机器翻译模型中,有一些工作已经证明,编码器的作用相比解码器更为重要。对于一个源语句子,编码器会对句子中的信息进行提取,得到该句子对应的表示,然后解码器根据该表示进行解码,生成目标语的句子。如果编码器提取的信息不准确,或者是不够充分,那么解码器也无法生成高质量的翻译结果。因此,使用预训练模型的参数初始化神经机器翻译模型的编码器,解码器仍然随机初始化,如图4所示。这种方法相当于拥有了一个增强的编码器,该编码器拥有更强的提取能力,对于稀缺资源任务的帮助更加明显。
步骤4)中,神经机器翻译模型通过平行语料进行训练,编码器对源语句子进行编码,提取句子中的信息,步骤为:
401)如采用步骤301)或303)中的方法,训练过程和普通的神经机器翻译相比并不需要额外的处理;
402)如采用步骤302)中的方法,训练过程需要使用预训练模型提取源语句子中的信息,进而集成到神经机器翻译模型中,辅助训练过程。
步骤5中,模型训练完成后,将用户输入的源语句子送入到模型中,模型通过贪婪搜索或束搜索生成翻译结果,步骤为:
501)如采用步骤301)或303)中的方法,解码过程和普通的神经机器翻译相比并不需要额外的处理。
502)如采用步骤302)中的方法,解码过程需要和训练过程保持一致,使用预训练模型提取源语句子中的信息,进而集成到神经机器翻译模型中,辅助解码过程。
通过开放的预训练模型BERT来验证该方法。BERT使用屏蔽语言模型和下一句预测任务在海量的多语言单语语料上训练,是目前最常用的预训练模型;因为真实的稀缺资源语种缺乏准确的测试集,因此本发明使用目前比较常用的数据集iwslt14德英口语数据集进行模拟验证,该数据集的训练集大小为16万,通过和BERT相同的分词和wordpiece子词切分方式,得到处理后的双语语料训练数据。
本发明使用机器翻译任务中常用的双语评价指标BLEU作为评价标准。采用本发明提出的第一种方法,将BERT的词嵌入集成到神经机器翻译模型的词嵌入层中,替换、平均和融合的方式可以将BLEU值从32.76提高到36.36、36.42和36.42;采用本发明提出的第二种方法,将BERT提取到的隐藏层特征集成到神经机器翻译模型的词嵌入层中,替换、平均和融合的方式可以将BLEU值从34.76提高到36.17、36.16和36.03;采用本发明提出的第三种方法,使用BERT的参数来初始化神经机器翻译模型的编码器,可以将基线模型从BLEU值34.15到提高到35.91,神经机器翻译模型的收敛速度显著加快,并且翻译质量有了显著提高。
三种集成方法各自适用于不同的情况。使用集成预训练模型的词嵌入层参数到神经机器翻译模型的词嵌入层的方法代价较小,并不会降低训练速度,但是带来的性能提升比较有限;在神经机器翻译模型的层数较少时,使用预训练模型提取源语句子中的信息并集成到词嵌入层可以充分融合预训练模型所有隐藏层的信息,相比另外两种方法可以带来更大的提升;而在神经机器翻译模型的编码器层数较多时,使用预训练模型的参数初始化编码器可以提高模型的鲁棒性,减轻模型训练的压力,提升效果更明显。
机器翻译任务在稀缺资源场景下只能够获取到少量的双语数据,但一般可以获取到丰富且高质量的单语数据,因此现有的方法一般是采用数据增强技术,通过单语数据生成伪双语数据用于模型训练,从而提高模型性能。然而数据增强技术流程较为复杂,对单语数据的质量要求较高,并且需要多次迭代。本发明从另外一个角度出发,将使用单语数据预训练的语言模型集成到神经机器翻译模型的编码器中。预训练模型能够强化模型的能力。在稀缺资源数据集上的实验结果表明,三种集成方法均显著提升了模型性能,并加快了收敛速度,提高了模型的鲁棒性。