APP下载

面向汉维机器翻译的BERT 嵌入研究

2021-12-20杨雅婷

计算机工程 2021年12期
关键词:微调解码器编码器

陈 玺,杨雅婷,董 瑞

(1.中国科学院新疆理化技术研究所,乌鲁木齐 830011;2.中国科学院大学,北京 100049;3.新疆民族语音语言信息处理实验室,乌鲁木齐 830011)

0 概述

近年来,基于深度学习的神经机器翻译(Neural Machine Translation,NMT)技术取得了较大的进展,网络结构从循环神经网络[1-3]发展到卷积神经网络[4],再到完全基于自注意力机制的网络[5]。在这些不同的网络结构中,基于自注意力机制而又高度并行化的Transformer[5]取得了非常好的效果。

目前的神经机器翻译模型在面对英法、英中等拥有大规模平行语料资源丰富的语言对时,取得了较好的翻译效果。但是由于汉语-维吾尔语平行语料的缺乏且2 种语言的差异性较大,其在汉维翻译方面效果并不如维吾尔语-汉语上翻译[6]。本文主要研究如何提升汉维神经机器翻译模型的翻译效果。

BERT[7]、Roberta[8]、GPT[9]等预训练语言模型在大规模的无标签单语语料上训练得来,在一系列自然语言理解任务(如文本分类[10]、阅读理解[11]等)上都取得了非常好的效果。BERT 是一种多层的基于Transformers 的双向编码表示模型,通过在大量的单语语料上以屏蔽语言模型建模任务(Masked Language Model,MLM)和下一句预测任务(Next Sentence Prediction,NSP)为训练目标得到。

尽管BERT 在一系列自然语言理解任务上取得了不错的效果,但其在自然语言生成任务(如机器翻译、摘要生成[12]等)上的应用却鲜有人探索。文献[13]比较了在机器翻译翻译模型当中应用BERT的几种方式,包括将BERT 作为NMT 模型的输入嵌入层、利用BERT 的参数初始化NMT 模型的编码器层然后微调BERT、利用BERT 的参数初始化NMT模型的编码器层然后冻结BERT 参数。文献[14]将BERT 应用于篇章级别的机器翻译,在法语-英语、汉语-英语、西班牙语-英语上取得了较好的翻译效果。文献[15]将BERT 和机器翻译模型中的编码器模块和解码器模块分别进行注意力机制交互,然后进行特征融合来提升机器翻译的效果,在WMT 语料和IWSLT 语料上均取得了较好的效果。

本文借鉴文献[15]方法,设计一系列实验来探究如何在汉维机器翻译中更好地应用BERT。通过设计两段式微调BERT 的方法,将BERT 中的先验知识迁移到NMT 模型中,同时根据对比实验总结出在汉维机器翻译中应用预训练BERT 模型的最佳方法。

1 模型架构与嵌入策略

1.1 基于BERT 嵌入的汉维神经机器翻译模型

本文采用文献[15]提出的基于注意力机制的BERT-fused 模型,将源语言汉语输入BERT 中,并固定BERT 的参数,提取源语言经过BERT 编码的预训练表示,然后借助于BERT 编码器部分和BERT 解码器部分的注意力机制模块,将得到的预训练表示分别与NMT 模型编码器模块和解码器模块的每一层进行注意力交互,再将交互得到的结果与编码器模块和解码器模块每一层自身的自注意力特征进行融合。通过这样的方法,可以将BERT 编码源语言的预训练特征表示融入到编码器模块和解码器模块的每一层当中,以充分利用预训练语言模型BERT,同时避免BERT模型和机器翻译模型在词切分技术上不同的问题。该模型结构如图1 所示。

图1 基于BERT 的机器翻译模型架构Fig.1 Architecture of machine translation model based on BERT

在图1 中,从左至右依次分别为BERT 模块、编码器模块和解码器模块,虚线代表残差连接,HB和分别代表BERT 模块和编码器模块最后一层的输出。与标准的基于Transformer 的NMT 模型相比,除了模型原有结构,还有2 个额外的注意力机制模块,即BERT 编码器注意力机制模块和BERT 解码器注意力机制模块。源语言经过BERT 模型的输出与NMT 模块每一层的输入计算BERT 编码器注意力、BERT 解码器注意力,再与NMT 模型自身的自注意力机制相融合。BERT 编码器注意力机制模块与编码器的自注意力机制模块融合后的输出如式(1)所示:

给定源语言输入,BERT 将语言输入编码为HB。在式(1)中代x表编码器模块第l隐藏层的输出表示为源语言序列的词向量表示,lx代表源语言句子中的第个子词,记中的第i个子词为attns和attnB为Transformer 中的缩放点积注意力,它们拥有不同的参数。然后,得到的每个被输入前馈层,得到第l层的输出,如式(2)所示:

编码器-解码器注意力模块的输出进行融合后通 过前向传 播网络。在式(3)和式(4)中,attnS、attnB、attnE分别代表解码器的自注意力模块、BERT-解码器注意力模块和编码器-解码器注意力模块。将式(3)和式(4)应用在解码器每一层中,最后一层解码器可以得到对通过线性变换和softmax 分类函数得到第t个被预测的单词解码器一直进行解码直到输出句子结束符。

模型通过DropNet 方法来将BERT-编码器注意力、BERT 解码器注意力与NMT 模型自身的自注意力机制相融合,从而将BERT 的输出特征表示嵌入到NMT 模型中。DropNet 比率PNet取值范围在[0,1]之间,在每次训练迭代的过程中,对于每一层l,在均匀分布[0,1]上采样得到Ul,每一层的计算公式如式(5)所示:

其中,I(•)是指示函数。对于任意一层编码器模块,以pNet/2 概率去选择BERT 编码器注意力或自注意力,每次只选择其中一种。在推理阶段,每种注意力机制都会被用到,如式(1)所示,即推理时有:

在推理阶段,BERT 解码器注意力和编码器-解码器注意力都会被用到。

1.2 不同汉语BERT 对于翻译结果的影响

本文采用的BERT 模型具体情况如表1 所示,其中包括以下6 种汉语BERT 模型:

表1 不同BERT 模型的比较Table 1 Comparison of different BERT models

1)BERT-base-multilingual-uncased模型[16],由12层Transformer 组成,隐藏层的特征维数是768 维,Transformer 模块的多头注意力包含12 个头,共包含110M 参数。该模型是在102 种语言的维基百科语料上训练得来的,其中包含汉语,但不包含维吾尔语,预训练时中文按字进行切分。

2)BERT-base-Chinese模型[17],由12层Transformer组成,隐藏层的特征维数是768 维,Transformer 模块的多头注意力包含12 个头,共包含110M 参数。该模型是在中文维基百科语料上训练得来的,在预训练的过程中按字进行切分。

3)BERT-wwm-ext模型[18],由12 层Transformer组成,隐藏层的特征维数是768 维,Transformer 模块的多头注意力包含12 个头,共包含110M 参数。该模型是在中文维基百科语料和通用数据上训练得来的。同时,在预训练的过程中按词进行切分,使用了全词遮罩技术。Google 发布的BERT-base-Chinese模型中文是以字为粒度进行切分,没有考虑到中文自然语言处理中的中文分词问题。文献[19]提出了基于全词遮罩(Whole Word Masking,WMM)技术的中文预训练模型BERT-wwm,将全词遮罩的方法应用在了中文中。将该模型在中文维基百科语料上进行训练,在许多任务上都取得了非常好的效果。本研究将基于全词遮罩的BERT 模型应用到模型之中。

4)RoBERTa-wwm-large-ext 模型[20]。RoBERTa[8]是BERT 通用语义表示模型的一个优化版,它在BERT 模型的基础上提出了动态遮罩方法,去除了下一个句子预测预训练目标,同时在更多的数据上采用更大的批处理大小训练更长的时间,在多个任务中取得了很好的效果。该模型由24 层Transformer 组成,隐藏层的特征维数是1 024 维,Transformer模块的多头注意力包含16 个头,共包含330M 参数。该模型是在中文维基百科语料和通用数据上训练得来的。同时,在预训练的过程中按词进行切分,使用了全词遮罩技术。

5)RoBERTa-wwm-ext模型[21],由12层Transformer组成,隐藏层的特征维数是768 维,Transformer 模块的多头注意力包含12 个头,共包含110M 参数。该模型是在中文维基百科语料和通用数据上训练得来的。同时,在预训练的过程中按词进行切分,使用了全词遮罩技术。

6)RBTL3模型[22]。该模型以RoBERTa-wwm-largeext 模型参数初始化前3 层Transformer 以及词向量层并在此基础上继续训练了1M 步,在仅损失少量效果的情况下大幅减少参数量,得到了更轻量的模型。同时在预训练的过程中按词进行切分,使用了全词遮罩技术。

1.3 BERT 不同隐藏层对翻译结果的影响

在模型中,BERT 的输出作为一个额外的源语言序列表示,使用额外的注意力机制来将其引入到NMT 模型当中。将BERT 最后一层输出作为模型中额外注意力机制的输入,预训练模型的输出特征被引入到NMT 模块的所有层中,以确保预训练模型的特征能够被完全利用。本文使用注意力机制将NMT 模块和BERT 预训练特征相结合,使NMT 模块能够动态地决定从BERT 中得到哪些特征。

文献[23]提出的BERT 预训练语言模型学习到了一些结构化的语言信息,例如BERT 的底层网络学习到了短语级别的信息表征,中层网络学习到了丰富的语言学特征,而高层网络则学习到了丰富的语义信息特征,将源语言用BERT 编码后,底层、中层、高层分别有不同的语言信息表征。本文探索使用不同层次的BERT 特征对于模型的翻译效果的影响。因为神经机器翻译模型是用编码器将源语言编码成语义特征,再送入解码器进行解码,所以猜想将BERT 高层的语义特征引入到模型当中应该会取得较好的效果。单独将BERT 的1、3、5、7、9、11 隐藏层输出分别引入到模型当中,观察得到的模型翻译效果。同时,将BERT 的1、3、5、7、9、11 层编码的特征分别引入到编码器和解码器的1~6 层中进行对比实验。

1.4 两段式BERT 微调策略

灾难性遗忘是迁移学习中经常出现的一个问题,指模型在学习新知识的过程当中将原有预训练的知识遗忘[24]。当以较大的学习率微调BERT 时会导致模型发生灾难性遗忘问题,而且直接微调BERT和整个模型的参数会使得模型的效果变差。本文探索如何微调BERT,提出一种两段式微调BERT 的方法。首先固定BERT 的参数,将BERT 模型作为一个特征提取器,将提取到的预训练表示融入到NMT 模型当中,只训练模型剩余部分的参数直到模型收敛,即训练BERT-fused 模型BERT 以外的部分直至收敛。然后微调模型中包括BERT 在内的整个模型的参数。在微调的过程中,不改变其他训练参数,只改变学习率和预热更新步数(warmup updates)。在此基础上,通过实验对比不同的学习率和预热更新步数对模型翻译效果的影响。

2 实验与结果分析

2.1 实验数据集情况

本文采用2017 年全国机器翻译研讨会(CWMT)公开的维吾尔语-汉语语料数据集进行实验。其中,训练集的数量为336 397,开发集的数量为700,测试集的数量为1 000。对维语语料按照词进行切分,对汉语语料按照字进行切分。所有的维吾尔语句子都通过字节对编码(Byte-Pair Encoding,BPE)技术[25]进行预处理,BPE 融合数设置为10 000。实验评测指标为机器双语互译评估值(BLEU)。

2.2 训练参数设置

本文实验基于fairseq[26],fairseq 是Facebook 开源的自然语言处理框架,基于pytorch 开发,具有多卡训练性能好、支持混合精度训练等优点。在fairseq 实现Transformer 模型的基础上引入BERT 编码器注意力和BERT 解码器注意力,然后进行2 种注意力的融合。模型使用6 层Transformer 作为编码器模块,使用6 层Transformer 作为解码器模块,词嵌入维度为512 维,全连接层维度为1 024 维,失活(dropout)率设置为0.3。drop-net比率pNet设置为1.0。使用BLEU[27]值来评估翻译质量,值越大翻译质量越好。

首先训练一个和BERT-fused 模型中NMT 部分同样架构同样参数的NMT 模型直到收敛,然后利用这个已经得到的模型初始化图1 所示模型的编码器和解码器,BERT 和编码器之间的注意力模块参数与BERT 和解码器之间的注意力参数随机进行初始化。使用的分批训练数据大小(max tokens)为8 000,使用Adam 优化算法进行模型参数优化,初始学习率是0.000 5。在生成翻译结果的过程中,设置分批训练数据大小为128,设置集束搜索(beam search)的大小为5,惩罚长度因子设置为1.0。

2.3 不同汉语BERT 实验结果

不同汉语BERT 的实验结果的对比如表2 所示,其中基线是指完全基于6 层Transformer 不引入BERT 特征的模型,加粗表示最优数据。对于所有的BERT 模型,都将最后一层的输出特征融入到NMT模型中。由表2 的实验结果可以看出,在所有BERT模型当中效果最好的是BERT-base-Chinese 模型,相较于基线不引入BERT 的模型BLEU 值提高了1.02;拥有同样参数的基于全词遮罩的模型BERT-wwmext 并没有表现出更好的效果,BLEU 值仅提高了0.56;拥有同样参数的RoBERTa-wwm-ext 全词遮罩模型并没有BERT-wwm-ext 模型效果好,使BLEU提高了0.30;模型网络层数更深,参数更多的RoBERTa-wwm-large-ext 模型效果较 RoBERTawwm-ext 要好,较基线BLEU 值提高了0.93,但仍不及BERT-base-Chinese 模型;更轻量的RBTL3 模型和多语言版本BERT-base-multilingual-uncased 模型得到的翻译效果甚至都没有完全基于6 层Transformer不引入BERT 的翻译效果好。

表2 不同汉语BERT 模型的实验结果Table 2 Experimental results of different Chinese BERT models

2.4 BERT 不同隐藏层实验结果

表3 中的基线为完全基于Transformer,不引入BERT 特征的模型,基线右侧分别为BERT-fused 模型融入BERT 模型的1、3、5、7、9、11 层输出的特征,奇数层指将BERT 的1、3、5、7、9、11 层编码的特征分别引入到编码器和解码器的1~6 层中进行融合,实验使用bert-base-chinese 模型,加粗表示最优数据。由表3 的实验结果可以看出,将BERT 的1、3 层特征信息的引入对于模型起到了负面的影响,使模型的翻译效果出现了下降,而5、7、9、11 层特征信息的引入让模型的翻译效果逐步上升。最后一层特征的引入效果最好,相较于基线提高了1.02 BLEU 值,这验证了文献[23]得到的关于BERT 的高层网络学习到了丰富的语义信息特征的结论。将BERT 的1、3、5、7、9、11 层依次融入到NMT 的编码器和解码器1~6 层当中效果并没有只融入最后一层的效果好。

表3 BERT 不同隐藏层的实验结果Table 3 Experimental results of different hidden layers of BERT

2.5 两段式BERT 微调策略实验结果

不同微调BERT 参数策略的实验结果如表4 所示,其中不微调BERT是指训练BERT-fused模型,固定BERT参数不微调,加粗表示最优数据。直接微调BERT 是指在训练BERT-fused 模型的过程中直接微调BERT 的参数。由表4 的实验结果可以看出,在训练BERT-fused模型的过程中直接微调BERT 的效果与不微调相比翻译效果会明显变差。在两段式微调的过程中,学习率过大会导致模型无法收敛;当预热更新步数为15 000时,模型取得了最高BLEU值32.41,相较于不微调BLEU值提高了0.62;当学习率固定为8e-5 时,预热更新步数为15 000 时模型的翻译效果最好。

表4 不同微调BERT 策略的实验结果Table 4 Experimental results of different fine-tuning strategies of BERT

3 结束语

本文针对汉语-维吾尔语平行语料资源匮乏的问题,将BERT-fused 模型应用于汉维机器翻译,通过一系列对比实验总结得到在汉维机器翻译中应用预训练语言模型BERT 的最佳方法。将本文提出的两段式微调BERT 的方法在CMWT 2017 评测语料上进行实验,结果表明,该方法能够显著提高汉维机器翻译的性能。后续将研究如何把预训练语言模型应用到维吾尔语-汉语的机器翻译任务中,进一步提高维汉机器翻译的效果。

猜你喜欢

微调解码器编码器
科学解码器(一)
乐海乐器“微调轴”研发成功
科学解码器(二)
科学解码器(三)
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于FPGA的同步机轴角编码器
基于双增量码道的绝对式编码器设计
灵活易用,结合自动和手动微调达到好效果 StormAudio ISP 3D.16 ELITE/PA 16 ELITE
JESD204B接口协议中的8B10B编码器设计
隐显结合 听读辩证——高职高专听读模式教学方法与实践的总结、理论适用及模式微调