一种基于蒸馏BERT与改进Transformer相结合的蒙汉神经机器翻译方法与流程

文档序号:23902981发布日期:2021-02-09 14:10阅读:296来源:国知局
一种基于蒸馏BERT与改进Transformer相结合的蒙汉神经机器翻译方法与流程
一种基于蒸馏bert与改进transformer相结合的蒙汉神经机器翻译方法
技术领域
[0001]
本发明属于自然语言处理(nlp)中的机器翻译技术领域,特别涉及一种基于蒸馏bert(bidirectional encoder representations from transformers,伯特)与改进transformer相结合的蒙汉神经机器翻译方法。


背景技术:

[0002]
机器翻译首先要将源语言转换成计算机能够理解的向量或者矩阵,即将词映射为实数域向量,这就是词嵌入(word embedding)技术。2013年,mikolov提出了word2vec词嵌入方法。2014年,jeffrey pennington等人提出了一种新的glo ve方法。这些方法都是静态的,与上下文无关的。2018年谷歌提出了bert方法,这一方法是动态的,与上下文相关的。作为2018年自然语言处理领域的新秀,bert做到了过去几年nlp重大进展的集大成,刷新了11项nlp测试的最高纪录,甚至超越了人类的表现。
[0003]
针对翻译过程,2014年基于神经网络的机器翻译方法开始兴起。采用端到端的神经机器翻译(neural machine translation,nmt)获得了迅速发展。相较于传统的基于规则和统计的机器翻译方法而言,nmt能够借助编码器-解码器直接实现源语言文本到目标语言文本的映射,不需要再进行词对齐、短语切分等步骤,使句子翻译更为简单、高效。2017年,谷歌的机器翻译团队在《attention is all you need》一文中首次提出了transformer框架,transformer在机器翻译任务上的表现远超其他神经网络翻译模型,成为了机器翻译领域最先进的技术架构。
[0004]
当下基于语境化的bert已经成为纳入下游nlp任务的预训练表征的事实起点,基于静态嵌入的前辈(word2vec和glo ve)成为了过去式。但是bert模型也有一定的缺点,预训练过程时间开销大,收敛得比left-to-right模型要慢。针对这一方面,静态嵌入确实有其优点,使它们易于理解和使用。此外,静态嵌入的嵌入分析方法也比动态嵌入的嵌入分析方法更加多样和成熟。
[0005]
针对transformer框架,虽然其在神经机器翻译领域的表现良好,但是由于其引入了多头注意力机制,所以在训练过程中会产生超参数化问题。不仅如此,训练一个transformer模型通常需要一个精心设计的学习率预热阶段,实证研究均表明,由于输出层附近的参数期望梯度较大,在这些梯度上使用大的学习率会使训练变得不稳定。学习率预热阶段实际上有助于避免这个问题。在优化的初始化阶段,学习率必须设置为一个非常小的值,然后在给定的迭代次数中逐渐增加。这一阶段被证明是至关重要的一个步骤。然而此种模型的最终性能对最大学习速率和预热迭代次数非常敏感。在训练大型模型时,调整此类敏感超参数的成本很高,时间代价很大。
[0006]
我国是多民族国家,为了更好地促进蒙古族与汉族经济文化交融,蒙汉翻译技术显得尤为重要。然而小语种由于语料库缺乏,平行语料稀缺,所以更需要从技术层面进一步提高翻译质量。


技术实现要素:

[0007]
为了克服上述现有技术的缺点,本发明的目的在于提供一种基于蒸馏bert与改进transformer相结合的蒙汉神经机器翻译方法,从基于语境化的词向量预训练模型bert中提取静态嵌入以达到蒸馏bert的目的,同时尝试将蒸馏bert的输出表征作为改进transformer机器翻译模型的词嵌入。该方法主要针对bert预训练词向量模型难训练、训练时间开销过大,以及transformer机器翻译模型超参数化、需预热等问题,试图将动静态嵌入相融合的预训练模型与改进的transformer机器翻译模型结合在一起,以达到提高蒙汉机器翻译效率、提升蒙汉机器翻译质量的目的。
[0008]
为了实现上述目的,本发明采用的技术方案是:
[0009]
一种基于蒸馏bert与改进transformer相结合的蒙汉神经机器翻译方法,从基于语境化的词向量预训练模型中提取静态的词向量表征,并将其输入到改进transformer机器翻译模型的所有层进行蒙汉机器翻译。
[0010]
优选地,所述从基于语境化的词向量预训练模型中提取静态的词向量表征,是通过蒸馏的方法,将得到的上下文相关的词向量表征转化为静态的词向量表征。
[0011]
优选地,所述蒸馏的方法为如下之一:
[0012]
方法一,子词组池法
[0013]
首先把句子中出现的词组标注出来,然后再将一个词组分解为多个子词组进行标注,表示为:表示词组t
s
的子词组,k为子词组的个数;
[0014]
方法二,上下文结合法
[0015]
从大的中文语料库c中随机抽取n个句子,每个句子都包含词组t,计算向量然后产生聚合n个句子中词组t的唯一表示,即,将多个上下文进行组合来表示词组t,从而将基于语境的动态表征转化为静态表示。
[0016]
优选地,所述方法一中,采用四种潜在的池策略机制表示t
s
,公式为min(
·
)和max(
·
)是元素的最大词池和最小词池,mean(
·
)表示平均池,last(
·
)表示选择最后一个向量所述方法二中,应用池策略机制产生聚合n个句子中词组t的唯一表示,公式为
[0017]
优选地,所述transformer机器翻译模型由编码器和解码器两部分组成,编码器包含一个自注意力机制和一个前馈神经网络,解码器包含一个自注意力机制、一个编码器-解码器注意力机制和一个前馈神经网络,编码器将输入序列映射为隐形表征,再由解码器将隐形表征翻译成句子,其中编码器和解码器的每个子层的周围均有一个残差连接。
[0018]
优选地,所述改进transformer机器翻译模型中,每个残差连接内设置有一个层归一化单元,提前进行归一化,并将其置于前馈神经网络所有非线性变换(relu)之前,以此获得更好的归一化梯度。
[0019]
优选地,所述改进transformer机器翻译模型中,最后一个前馈神经网络层的梯度函数为:
[0020][0021]
其中表示损失函数,l表示层数,d表示隐层表征的维数,w表示w
q
,w
k
,w
v
参数,o代表梯度范数,||
·
||
f
表示f-范数。
[0022]
即,改进transformer机器翻译模型不包含学习率预热阶段,输入到最后一层的层归一化的梯度下降范围随l线性增长,最终所有的参数梯度将会被归一化。
[0023]
优选地,所述词向量预训练模型的输出的表征输入到改进transformer机器翻译模型编解码器的各个层,其中,在改进transformer机器翻译模型编码器和解码器的每一层均加入一个bert注意力机制,分别为bert-编码器注意力机制和bert-解码器注意力机制;
[0024]
首先,源语言的词嵌入作为编码器的输入,输入到自注意力机制中,同时输入序列被转换成由词向量预训练模型处理得到的词向量表征,然后输入到bert-编码器注意力机制,编码器的每一层与获得的表征进行交互:1/2(bert-编码器注意力机制+自注意力机制),即:bert-编码器注意力机制的输出与自注意力机制的输出求和取平均,再将其得到的结果输入到改进的层归一化架构中,最终输出融合表征。
[0025]
其次,目标语言词向量作为输入,输入到解码器端的自注意力机制中、经由词向量预训练模型得到的词向量表征输入到bert-解码器注意力机制,解码器的每一层均与获得的表征进行交互:1/2(bert-编码器注意力机制+自注意力机制+编码器-解码器注意力机制),即:bert-编码器注意力机制的输出、自注意力机制的输出和编码器-解码器注意力机制的输出求和再取平均。将其得到的结果输入到改进的层归一化架构中,再经线性变换、softmax函数最终输出预测的目标语言直到预测到终止符停止。
[0026]
与现有技术相比,本发明的有益效果是:
[0027]
首先,静态词向量表征确有其优势,从动态的bert预训练模型中提取静态的词向量表征蒸馏方法能更直接的理解和更快速的使用这些表征。此外,静态词向量表征的嵌入分析方法比那些可用于动态的同类方法更加多样化和成熟。效果也要比单纯的静态词向量表征方法要好,同时也比动态词向量表征方法更简单、直接。其次,将transformer的层归一化架构放到残差连接中,transformer机器翻译模型将可以不再需要进行耗时过长的预热阶段,提升了transformer的机器翻译效率。最后,与传统的基于transformer的翻译模型相比,结合蒸馏bert的机器翻译模型将经由bert得到的强大的词向量表征与经由transformer多头注意力机制得到的向量表征相结合。通过这些表征的交互,进一步提升了机器翻译质量。
附图说明
[0028]
图1是词向量预训练模型示意图。
[0029]
图2是transformer机器翻译模型“层归一化”架构示意图。
[0030]
图3是改进transformer机器翻译模型“层归一化”架构示意图。
[0031]
图4是将蒸馏bert与改进transformer模型相结合的示意图。
具体实施方式
[0032]
下面结合附图和实施例详细说明本发明的实施方式。
[0033]
本发明为一种基于蒸馏bert与改进transformer相结合的蒙汉神经机器翻译方法,其采用bert模型和改进的transformer机器翻译模型,其中bert模型包含了编码器结构,改进的transformer端则由编码器和解码器组成。
[0034]
本发明的步骤包括:
[0035]
1、从基于语境化的词向量预训练模型中提取静态的词向量表征。
[0036]
2、将提取的词向量表征输入到改进的transformer机器翻译模型的所有层进行蒙汉机器翻译。
[0037]
步骤1和步骤2分别在bert模型和改进的transformer机器翻译模型具体实现,下面分别详细说明。
[0038]
一、bert模型
[0039]
图1所示为bert模型的结构,它是一个多层双向transformer编码器。bert模型之前有三个向量用来将输入的文本转化成原始词向量:分别是字向量、文本向量、位置向量。首先本发明将大量未标注的蒙汉平行语料做分词处理。其次,bert模型通过查询字向量表将切分后的蒙汉平行语料中的每个字转换为一维向量。接着在训练的过程中自学习获取刻画文本的全局语义信息,并与单字(词)语义相融合。由于很多词汇存在一词多义的现象,出现在不同文本的位置所表示的含义不同。例如:“我的手机是苹果”和“我今天吃了一个苹果”所以bert模型会对不同位置出现的相同字(词)附加一个位置向量以作区分。最后,bert模型将字向量、文本向量和位置向量的加和作为模型输入。输出的则是是输入各字(词)对应的融合全文语义信息后的向量表征。
[0040]
bert内部包含了多头注意力机制和前馈神经网络两部分。注意力机制的作用是将神经网络把注意力放在一部分重要的信息上,从而达到增强字(词)语义的目的。
[0041]
注意力机制主要涉及到三个概念:query、key和value。目标字(词)及其上下文的字词都有各自的原始value,注意力机制将目标字(词)作为query、其上下文的各个字(词)作为key,并将query与各个key的相似性作为权重,把上下文各个字(词)的value融入目标字(词)的原始value中。自注意力机制则是在此基础上将每个字(词)都作为query,在与文本中所有的语义信息加权融合。多头自注意力机制则是进一步利用不同的自注意力机制获得蒙汉平行语料文本中每个字在不同语义空间下的增强语义向量,并将每个字的多个增强语义向量进行线性组合,从而获得一个最终的与原始字向量长度相同的增强语义向量。
[0042]
多头注意力机制定义为:
[0043][0044]
multi-head(q,k,v)=contact(head1,

,head
h
)w
o
[0045][0046]
其中,q(quary)、k(key)和v(value)被指定为前一层的隐藏表示,h是多头注意力机制的头数,d是隐藏层的维度。
[0047]
前馈神经网络的每一个结点都与上一层的所有结点相连,用来把前边提取到的特
征综合起来,从而起到分类的目的。
[0048]
基于上述架构,bert模型用“掩藏语言模型”和“下一个句子预测”方法联合训练。使模型输出的每个字(词)的向量表征都能尽可能全面、准确地刻画输入的蒙汉平行语料文本。然后进行重要的蒸馏静态嵌入环节,通过蒸馏的方法,将动态的蒙汉平行语料词向量(即上下文相关的词向量表征)转化为静态的词向量表征。
[0049]
本发明将词向量预训练模型(bert)得到的上下文相关的词向量表征转化为静态的词向量表征的机制,打破了预训练模型一分为二的现状。这样即保留了原来高质量的向量表征,又可简单直接地使用。
[0050]
本发明提出了两种蒸馏方法。
[0051]
方法一,子词组池法
[0052]
首先把句子中出现的词组标注出来,然后再将一个词组分解为多个子词组进行标注,表示为:表示词组t
s
的子词组,k为子词组的个数。例如:用s表示上下文句子“我的学校是内蒙古工业大学”,t表示“内蒙古工业大学”这个词组,“内蒙古工业大学”又可以切分为“t1=内蒙古”、“t2=工业”、“t3=大学”三个子词组。在中文中跨语境将一个词组分解成多个子词组的切分方法相同,并且子词组可以明确的与源词组相关联。因此,词向量预训练模型的任何给定层都可以输出向量本发明考虑了四种潜在的池策略机制来表示t
s
,公式为min(
·
)和max(
·
)是元素的最大词池和最小词池,mean(
·
)表示平均池,例如:last(
·
)表示选择最后一个向量
[0053]
方法二,上下文结合法
[0054]
为了将基于语境的动态表征转化为静态表示,本发明考虑将多个上下文进行组合来表示词组t。本发明从大的中文语料库c中随机抽取n个句子,每个句子都包含词组t,计算向量然后应用池策略机制产生聚合n个句子中词组t的唯一表示,公式为
[0055]
二、改进的transformer机器翻译模型
[0056]
transformer机器翻译模型旨在将输入序列由源语言(汉语)翻译成目标语言(蒙语),它由编码器解码器两部分组成。解码器包含两层,一个自注意力机制和一个前馈神经网络,自注意力机制能帮助当前节点不仅只关注当前的词,还能获取到上下文的语义。解码器也包含编码器提到的两层网络,但是在这两层中间还有一个编码器-解码器注意力机制,帮助当前节点获取到当前需要关注的重点内容。即,解码器包含一个自注意力机制、一个编码器-解码器注意力机制和一个前馈神经网络。编码器将输入序列映射为隐形表征,再由解码器将隐形表征翻译成句子。
[0057]
在每个编码器和解码器的每个子层的周围均有一个残差连接,并且都跟随着一个“层归一化”步骤。transformer机器翻译模型的“层归一化”是在残差连接之间进行,必须需要学习率预热阶段。由于“层归一化”的位置上在控制梯度尺度中起着至关重要的作用,本
发明重新定位了“层归一化”的位置。将“层归一化”放在残差连接内,每个残差连接内设置有一个层归一化单元,提前进行归一化,并将其置于所有其他非线性变换(relu)之前,以此获得更好的归一化梯度。
[0058]
此外,本发明认为改进transformer机器翻译模型并不依赖学习率预热阶段,可以将其去掉,理由如下:
[0059]
由xavier高斯分布可知:
[0060]
transformer机器翻译模型最后一个前馈神经网络层的梯度函数:
[0061][0062]
改进的transformer机器翻译模型最后一个前馈神经网络层的梯度函数:
[0063][0064]
其中表示损失函数,l表示层数,d表示隐层表征的维数,w表示w
q
,w
k
,w
v
参数,o代表梯度范数,||
·
||
f
表示f-范数。
[0065]
从上述公式可以看出层归一化的确会标准化梯度。在transformer机器翻译模型中,输入到“层归一化”的比例与层数l无关,因此最后一层的参数梯度也是与l无关的;而在改进的transformer机器翻译模型中,不包含学习率预热阶段,输入到最后一层的“层归一化”的梯度下降范围是随l线性增长的,因此所有的参数梯度将会被归一化。
[0066]
如果扩展到每一层,就可以得出结论transformer的梯度范数在输出层附近很大,因此有可能随着梯度指数l的减小而衰退,相反改进transformer模型在每一层l的梯度范数都可以保持不变。所以学习率预热阶段对于改进transformer机器翻译模型作用不大,完全可以取消。
[0067]
现有的transformer机器翻译模型“层归一化”架构如图2所示,可以清楚地看出最常用的transformer架构遵循着前馈神经网络(子层)

残差连接

层归一化的顺序。本发明改进transformer机器翻译模型“层归一化”架构如图3所示,遵循着残差连接(包含层归一化)

前馈神经网络的顺序。
[0068]
图4是将蒸馏bert与改进的transformer机器翻译模型相结合的示意图。从左到右依次为蒸馏bert、编码器、解码器。
[0069]
即,蒸馏bert在此处为改进的transformer机器翻译模型中的一部分,即编码器端。如果想将二者融合使用,使蒸馏bert的输出表征作为改进的transformer机器翻译模型的嵌入,势必要考虑模型的实际情况。由于改进的transformer机器翻译模型的解码器端是单向的,bert要求的模型是双向的,其输出表征不可以直接作为编码器嵌入序列。所以本发明提出利用bert的输出表征将其输入到transformer编解码器的各个层,而不是仅仅作为输入嵌入。为此编码器和解码器的每一层需要再加入一个注意力机制,即bert-编码器注意力机制和bert-解码器注意力机制。输入序列首先被转换成由蒸馏词向量预训练模型处理的词向量表征。然后通过bert-编码器注意模块,每个transformer编码器层与从蒸馏bert获得的词向量表征进行交互,最终利用蒸馏bert和改进的transformer机器翻译模型的编码器输出融合表征。解码器的工作原理类似。利用注意机制可以自适应地控制每一层与词
嵌入的交互作用,并处理蒸馏bert模型和改进的transformer模型可能使用的不同分词规则,从而导致不同的序列长度问题。
[0070]
具体步骤可描述为:
[0071]
首先,源语言的词嵌入作为编码器的输入,输入到自注意力机制中,同时输入序列被转换成由词向量预训练模型处理得到的词向量表征,然后输入到bert-编码器注意力机制,编码器的每一层与获得的表征进行交互:即:bert-编码器注意力机制的输出与自注意力机制的输出求和取平均,再将其得到的结果输入到改进的层归一化架构中,最终输出融合表征。
[0072]
其次,目标语言词向量作为输入,输入到解码器端的自注意力机制中、经由词向量预训练模型得到的词向量表征输入到bert-解码器注意力机制中,解码器的每一层均与获得的表征进行交互::1/2(bert-编码器注意力机制+自注意力机制+编码器-解码器注意力机制),即:bert-编码器注意力机制的输出、自注意力机制的输出和编码器-解码器注意力机制的输出求和再取平均。将其得到的结果输入到改进的层归一化架构中,再经线性变换、softmax函数最终输出预测的目标语言直到预测到终止符停止。
[0073]
再次参考图4,本发明的完全流程如下:
[0074]
首先定义下必要的符号,分别用s表示源语言域(汉语),a表示目标语言域(蒙语),它们分别对应蒙汉平行语料库中的句子集。对于任何句子s∈s和t∈a,l
s
和l
t
表示源语言句子和目标语言句子的最小单元(汉语的字或蒙古语的词素)s
i
/a
i
表示在s/a第i个单元。本发明假设编码器和解码器都有l层,其中的注意力机制参数与前述bert模型架构相同。虚线表示残差连接,标注“1”和“2”的线分别表示静态嵌入和编码器的最后一层输出。
[0075]
蒙汉神经机器翻译的步骤:
[0076]
第一步:对于任何s∈s的输入,bert模型首先将其编码为g
b
=bert(x),再经过蒸馏g
b

m
b
得到静态嵌入m
b
。其中,m
b,i
∈m
b
代表源句子s中第i字(词)元素。
[0077]
第二步:表示编码器第l层的隐藏表示,表示句子序列的词嵌入。对于任意的i∈[l
s
],l∈[l],定义为中的第l层第i切字(词)元素,
[0078][0079]
其中,w
q
,w
k
,w
v
均是本发明要学习的参数,attention代表多头注意力机制。
[0080]
本发明定义非线性变换层为:
[0081]
ffn(s)=w2max(w1s+b1,0)+b2[0082]
其中,w1,w2,b1,b2均是要学习的参数,max是元素运算符。
[0083][0084]
其中,attention
x
和attention
b
是有着不同参数的注意力模型,每一个被ffn(
·
)进一步处理,本发明可以得到l层的输出为:编码器最终将从最后一层输出
[0085]
第三步:x
l
<t表示在时间戳t之前的解码器中第l层的状态。例如:注是序列开始的特殊标记,是在时间t-1时所预测的词嵌入。在第l层可见:
[0086][0087][0088]
attention
x
,attention
b
,attention
e
分别代表了自注意力机制、bert-解码器注意力机制和编码器-解码器注意力机制。经过层层迭代,最终可以获得最后通过线性变换和softmax函数输出第t个预测词
[0089]
遇句尾标记符解码过程停止,翻译结束。
[0090]
在本发明框架中,bert的输出经过蒸馏得到的静态嵌入作为一个外部序列表示,实现了静态词嵌入和动态词嵌入模型合二为一的想法,将二者的优点相融合来提高预训练水平。同时本发明在改进的transformer的编码器-解码器端各加了一个注意力模型将其与原有的注意力机制并行,这是一种不考虑标记化的预训练模型的通用方法。同时对transformer模型“层归一化”的位置进行改进,可以去掉学习率预热阶段,来提升翻译的质量和效率。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1