陳 璽,楊雅婷,董 瑞
(1.中國(guó)科學(xué)院新疆理化技術(shù)研究所,烏魯木齊 830011;2.中國(guó)科學(xué)院大學(xué),北京 100049;3.新疆民族語(yǔ)音語(yǔ)言信息處理實(shí)驗(yàn)室,烏魯木齊 830011)
近年來(lái),基于深度學(xué)習(xí)的神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT)技術(shù)取得了較大的進(jìn)展,網(wǎng)絡(luò)結(jié)構(gòu)從循環(huán)神經(jīng)網(wǎng)絡(luò)[1-3]發(fā)展到卷積神經(jīng)網(wǎng)絡(luò)[4],再到完全基于自注意力機(jī)制的網(wǎng)絡(luò)[5]。在這些不同的網(wǎng)絡(luò)結(jié)構(gòu)中,基于自注意力機(jī)制而又高度并行化的Transformer[5]取得了非常好的效果。
目前的神經(jīng)機(jī)器翻譯模型在面對(duì)英法、英中等擁有大規(guī)模平行語(yǔ)料資源豐富的語(yǔ)言對(duì)時(shí),取得了較好的翻譯效果。但是由于漢語(yǔ)-維吾爾語(yǔ)平行語(yǔ)料的缺乏且2 種語(yǔ)言的差異性較大,其在漢維翻譯方面效果并不如維吾爾語(yǔ)-漢語(yǔ)上翻譯[6]。本文主要研究如何提升漢維神經(jīng)機(jī)器翻譯模型的翻譯效果。
BERT[7]、Roberta[8]、GPT[9]等預(yù)訓(xùn)練語(yǔ)言模型在大規(guī)模的無(wú)標(biāo)簽單語(yǔ)語(yǔ)料上訓(xùn)練得來(lái),在一系列自然語(yǔ)言理解任務(wù)(如文本分類(lèi)[10]、閱讀理解[11]等)上都取得了非常好的效果。BERT 是一種多層的基于Transformers 的雙向編碼表示模型,通過(guò)在大量的單語(yǔ)語(yǔ)料上以屏蔽語(yǔ)言模型建模任務(wù)(Masked Language Model,MLM)和下一句預(yù)測(cè)任務(wù)(Next Sentence Prediction,NSP)為訓(xùn)練目標(biāo)得到。
盡管BERT 在一系列自然語(yǔ)言理解任務(wù)上取得了不錯(cuò)的效果,但其在自然語(yǔ)言生成任務(wù)(如機(jī)器翻譯、摘要生成[12]等)上的應(yīng)用卻鮮有人探索。文獻(xiàn)[13]比較了在機(jī)器翻譯翻譯模型當(dāng)中應(yīng)用BERT的幾種方式,包括將BERT 作為NMT 模型的輸入嵌入層、利用BERT 的參數(shù)初始化NMT 模型的編碼器層然后微調(diào)BERT、利用BERT 的參數(shù)初始化NMT模型的編碼器層然后凍結(jié)BERT 參數(shù)。文獻(xiàn)[14]將BERT 應(yīng)用于篇章級(jí)別的機(jī)器翻譯,在法語(yǔ)-英語(yǔ)、漢語(yǔ)-英語(yǔ)、西班牙語(yǔ)-英語(yǔ)上取得了較好的翻譯效果。文獻(xiàn)[15]將BERT 和機(jī)器翻譯模型中的編碼器模塊和解碼器模塊分別進(jìn)行注意力機(jī)制交互,然后進(jìn)行特征融合來(lái)提升機(jī)器翻譯的效果,在WMT 語(yǔ)料和IWSLT 語(yǔ)料上均取得了較好的效果。
本文借鑒文獻(xiàn)[15]方法,設(shè)計(jì)一系列實(shí)驗(yàn)來(lái)探究如何在漢維機(jī)器翻譯中更好地應(yīng)用BERT。通過(guò)設(shè)計(jì)兩段式微調(diào)BERT 的方法,將BERT 中的先驗(yàn)知識(shí)遷移到NMT 模型中,同時(shí)根據(jù)對(duì)比實(shí)驗(yàn)總結(jié)出在漢維機(jī)器翻譯中應(yīng)用預(yù)訓(xùn)練BERT 模型的最佳方法。
本文采用文獻(xiàn)[15]提出的基于注意力機(jī)制的BERT-fused 模型,將源語(yǔ)言漢語(yǔ)輸入BERT 中,并固定BERT 的參數(shù),提取源語(yǔ)言經(jīng)過(guò)BERT 編碼的預(yù)訓(xùn)練表示,然后借助于BERT 編碼器部分和BERT 解碼器部分的注意力機(jī)制模塊,將得到的預(yù)訓(xùn)練表示分別與NMT 模型編碼器模塊和解碼器模塊的每一層進(jìn)行注意力交互,再將交互得到的結(jié)果與編碼器模塊和解碼器模塊每一層自身的自注意力特征進(jìn)行融合。通過(guò)這樣的方法,可以將BERT 編碼源語(yǔ)言的預(yù)訓(xùn)練特征表示融入到編碼器模塊和解碼器模塊的每一層當(dāng)中,以充分利用預(yù)訓(xùn)練語(yǔ)言模型BERT,同時(shí)避免BERT模型和機(jī)器翻譯模型在詞切分技術(shù)上不同的問(wèn)題。該模型結(jié)構(gòu)如圖1 所示。

圖1 基于BERT 的機(jī)器翻譯模型架構(gòu)Fig.1 Architecture of machine translation model based on BERT
在圖1 中,從左至右依次分別為BERT 模塊、編碼器模塊和解碼器模塊,虛線代表殘差連接,HB和分別代表BERT 模塊和編碼器模塊最后一層的輸出。與標(biāo)準(zhǔn)的基于Transformer 的NMT 模型相比,除了模型原有結(jié)構(gòu),還有2 個(gè)額外的注意力機(jī)制模塊,即BERT 編碼器注意力機(jī)制模塊和BERT 解碼器注意力機(jī)制模塊。源語(yǔ)言經(jīng)過(guò)BERT 模型的輸出與NMT 模塊每一層的輸入計(jì)算BERT 編碼器注意力、BERT 解碼器注意力,再與NMT 模型自身的自注意力機(jī)制相融合。BERT 編碼器注意力機(jī)制模塊與編碼器的自注意力機(jī)制模塊融合后的輸出如式(1)所示:

給定源語(yǔ)言輸入,BERT 將語(yǔ)言輸入編碼為HB。在式(1)中代x表編碼器模塊第l隱藏層的輸出表示為源語(yǔ)言序列的詞向量表示,lx代表源語(yǔ)言句子中的第個(gè)子詞,記中的第i個(gè)子詞為attns和attnB為T(mén)ransformer 中的縮放點(diǎn)積注意力,它們擁有不同的參數(shù)。然后,得到的每個(gè)被輸入前饋層,得到第l層的輸出,如式(2)所示:


編碼器-解碼器注意力模塊的輸出進(jìn)行融合后通 過(guò)前向傳 播網(wǎng)絡(luò)。在式(3)和式(4)中,attnS、attnB、attnE分別代表解碼器的自注意力模塊、BERT-解碼器注意力模塊和編碼器-解碼器注意力模塊。將式(3)和式(4)應(yīng)用在解碼器每一層中,最后一層解碼器可以得到對(duì)通過(guò)線性變換和softmax 分類(lèi)函數(shù)得到第t個(gè)被預(yù)測(cè)的單詞解碼器一直進(jìn)行解碼直到輸出句子結(jié)束符。
模型通過(guò)DropNet 方法來(lái)將BERT-編碼器注意力、BERT 解碼器注意力與NMT 模型自身的自注意力機(jī)制相融合,從而將BERT 的輸出特征表示嵌入到NMT 模型中。DropNet 比率PNet取值范圍在[0,1]之間,在每次訓(xùn)練迭代的過(guò)程中,對(duì)于每一層l,在均勻分布[0,1]上采樣得到Ul,每一層的計(jì)算公式如式(5)所示:

其中,I(?)是指示函數(shù)。對(duì)于任意一層編碼器模塊,以pNet/2 概率去選擇BERT 編碼器注意力或自注意力,每次只選擇其中一種。在推理階段,每種注意力機(jī)制都會(huì)被用到,如式(1)所示,即推理時(shí)有:

在推理階段,BERT 解碼器注意力和編碼器-解碼器注意力都會(huì)被用到。
本文采用的BERT 模型具體情況如表1 所示,其中包括以下6 種漢語(yǔ)BERT 模型:

表1 不同BERT 模型的比較Table 1 Comparison of different BERT models
1)BERT-base-multilingual-uncased模型[16],由12層Transformer 組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個(gè)頭,共包含110M 參數(shù)。該模型是在102 種語(yǔ)言的維基百科語(yǔ)料上訓(xùn)練得來(lái)的,其中包含漢語(yǔ),但不包含維吾爾語(yǔ),預(yù)訓(xùn)練時(shí)中文按字進(jìn)行切分。
2)BERT-base-Chinese模型[17],由12層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個(gè)頭,共包含110M 參數(shù)。該模型是在中文維基百科語(yǔ)料上訓(xùn)練得來(lái)的,在預(yù)訓(xùn)練的過(guò)程中按字進(jìn)行切分。
3)BERT-wwm-ext模型[18],由12 層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個(gè)頭,共包含110M 參數(shù)。該模型是在中文維基百科語(yǔ)料和通用數(shù)據(jù)上訓(xùn)練得來(lái)的。同時(shí),在預(yù)訓(xùn)練的過(guò)程中按詞進(jìn)行切分,使用了全詞遮罩技術(shù)。Google 發(fā)布的BERT-base-Chinese模型中文是以字為粒度進(jìn)行切分,沒(méi)有考慮到中文自然語(yǔ)言處理中的中文分詞問(wèn)題。文獻(xiàn)[19]提出了基于全詞遮罩(Whole Word Masking,WMM)技術(shù)的中文預(yù)訓(xùn)練模型BERT-wwm,將全詞遮罩的方法應(yīng)用在了中文中。將該模型在中文維基百科語(yǔ)料上進(jìn)行訓(xùn)練,在許多任務(wù)上都取得了非常好的效果。本研究將基于全詞遮罩的BERT 模型應(yīng)用到模型之中。
4)RoBERTa-wwm-large-ext 模型[20]。RoBERTa[8]是BERT 通用語(yǔ)義表示模型的一個(gè)優(yōu)化版,它在BERT 模型的基礎(chǔ)上提出了動(dòng)態(tài)遮罩方法,去除了下一個(gè)句子預(yù)測(cè)預(yù)訓(xùn)練目標(biāo),同時(shí)在更多的數(shù)據(jù)上采用更大的批處理大小訓(xùn)練更長(zhǎng)的時(shí)間,在多個(gè)任務(wù)中取得了很好的效果。該模型由24 層Transformer 組成,隱藏層的特征維數(shù)是1 024 維,Transformer模塊的多頭注意力包含16 個(gè)頭,共包含330M 參數(shù)。該模型是在中文維基百科語(yǔ)料和通用數(shù)據(jù)上訓(xùn)練得來(lái)的。同時(shí),在預(yù)訓(xùn)練的過(guò)程中按詞進(jìn)行切分,使用了全詞遮罩技術(shù)。
5)RoBERTa-wwm-ext模型[21],由12層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個(gè)頭,共包含110M 參數(shù)。該模型是在中文維基百科語(yǔ)料和通用數(shù)據(jù)上訓(xùn)練得來(lái)的。同時(shí),在預(yù)訓(xùn)練的過(guò)程中按詞進(jìn)行切分,使用了全詞遮罩技術(shù)。
6)RBTL3模型[22]。該模型以RoBERTa-wwm-largeext 模型參數(shù)初始化前3 層Transformer 以及詞向量層并在此基礎(chǔ)上繼續(xù)訓(xùn)練了1M 步,在僅損失少量效果的情況下大幅減少參數(shù)量,得到了更輕量的模型。同時(shí)在預(yù)訓(xùn)練的過(guò)程中按詞進(jìn)行切分,使用了全詞遮罩技術(shù)。
在模型中,BERT 的輸出作為一個(gè)額外的源語(yǔ)言序列表示,使用額外的注意力機(jī)制來(lái)將其引入到NMT 模型當(dāng)中。將BERT 最后一層輸出作為模型中額外注意力機(jī)制的輸入,預(yù)訓(xùn)練模型的輸出特征被引入到NMT 模塊的所有層中,以確保預(yù)訓(xùn)練模型的特征能夠被完全利用。本文使用注意力機(jī)制將NMT 模塊和BERT 預(yù)訓(xùn)練特征相結(jié)合,使NMT 模塊能夠動(dòng)態(tài)地決定從BERT 中得到哪些特征。
文獻(xiàn)[23]提出的BERT 預(yù)訓(xùn)練語(yǔ)言模型學(xué)習(xí)到了一些結(jié)構(gòu)化的語(yǔ)言信息,例如BERT 的底層網(wǎng)絡(luò)學(xué)習(xí)到了短語(yǔ)級(jí)別的信息表征,中層網(wǎng)絡(luò)學(xué)習(xí)到了豐富的語(yǔ)言學(xué)特征,而高層網(wǎng)絡(luò)則學(xué)習(xí)到了豐富的語(yǔ)義信息特征,將源語(yǔ)言用BERT 編碼后,底層、中層、高層分別有不同的語(yǔ)言信息表征。本文探索使用不同層次的BERT 特征對(duì)于模型的翻譯效果的影響。因?yàn)樯窠?jīng)機(jī)器翻譯模型是用編碼器將源語(yǔ)言編碼成語(yǔ)義特征,再送入解碼器進(jìn)行解碼,所以猜想將BERT 高層的語(yǔ)義特征引入到模型當(dāng)中應(yīng)該會(huì)取得較好的效果。單獨(dú)將BERT 的1、3、5、7、9、11 隱藏層輸出分別引入到模型當(dāng)中,觀察得到的模型翻譯效果。同時(shí),將BERT 的1、3、5、7、9、11 層編碼的特征分別引入到編碼器和解碼器的1~6 層中進(jìn)行對(duì)比實(shí)驗(yàn)。
災(zāi)難性遺忘是遷移學(xué)習(xí)中經(jīng)常出現(xiàn)的一個(gè)問(wèn)題,指模型在學(xué)習(xí)新知識(shí)的過(guò)程當(dāng)中將原有預(yù)訓(xùn)練的知識(shí)遺忘[24]。當(dāng)以較大的學(xué)習(xí)率微調(diào)BERT 時(shí)會(huì)導(dǎo)致模型發(fā)生災(zāi)難性遺忘問(wèn)題,而且直接微調(diào)BERT和整個(gè)模型的參數(shù)會(huì)使得模型的效果變差。本文探索如何微調(diào)BERT,提出一種兩段式微調(diào)BERT 的方法。首先固定BERT 的參數(shù),將BERT 模型作為一個(gè)特征提取器,將提取到的預(yù)訓(xùn)練表示融入到NMT 模型當(dāng)中,只訓(xùn)練模型剩余部分的參數(shù)直到模型收斂,即訓(xùn)練BERT-fused 模型BERT 以外的部分直至收斂。然后微調(diào)模型中包括BERT 在內(nèi)的整個(gè)模型的參數(shù)。在微調(diào)的過(guò)程中,不改變其他訓(xùn)練參數(shù),只改變學(xué)習(xí)率和預(yù)熱更新步數(shù)(warmup updates)。在此基礎(chǔ)上,通過(guò)實(shí)驗(yàn)對(duì)比不同的學(xué)習(xí)率和預(yù)熱更新步數(shù)對(duì)模型翻譯效果的影響。
本文采用2017 年全國(guó)機(jī)器翻譯研討會(huì)(CWMT)公開(kāi)的維吾爾語(yǔ)-漢語(yǔ)語(yǔ)料數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。其中,訓(xùn)練集的數(shù)量為336 397,開(kāi)發(fā)集的數(shù)量為700,測(cè)試集的數(shù)量為1 000。對(duì)維語(yǔ)語(yǔ)料按照詞進(jìn)行切分,對(duì)漢語(yǔ)語(yǔ)料按照字進(jìn)行切分。所有的維吾爾語(yǔ)句子都通過(guò)字節(jié)對(duì)編碼(Byte-Pair Encoding,BPE)技術(shù)[25]進(jìn)行預(yù)處理,BPE 融合數(shù)設(shè)置為10 000。實(shí)驗(yàn)評(píng)測(cè)指標(biāo)為機(jī)器雙語(yǔ)互譯評(píng)估值(BLEU)。
本文實(shí)驗(yàn)基于fairseq[26],fairseq 是Facebook 開(kāi)源的自然語(yǔ)言處理框架,基于pytorch 開(kāi)發(fā),具有多卡訓(xùn)練性能好、支持混合精度訓(xùn)練等優(yōu)點(diǎn)。在fairseq 實(shí)現(xiàn)Transformer 模型的基礎(chǔ)上引入BERT 編碼器注意力和BERT 解碼器注意力,然后進(jìn)行2 種注意力的融合。模型使用6 層Transformer 作為編碼器模塊,使用6 層Transformer 作為解碼器模塊,詞嵌入維度為512 維,全連接層維度為1 024 維,失活(dropout)率設(shè)置為0.3。drop-net比率pNet設(shè)置為1.0。使用BLEU[27]值來(lái)評(píng)估翻譯質(zhì)量,值越大翻譯質(zhì)量越好。
首先訓(xùn)練一個(gè)和BERT-fused 模型中NMT 部分同樣架構(gòu)同樣參數(shù)的NMT 模型直到收斂,然后利用這個(gè)已經(jīng)得到的模型初始化圖1 所示模型的編碼器和解碼器,BERT 和編碼器之間的注意力模塊參數(shù)與BERT 和解碼器之間的注意力參數(shù)隨機(jī)進(jìn)行初始化。使用的分批訓(xùn)練數(shù)據(jù)大?。╩ax tokens)為8 000,使用Adam 優(yōu)化算法進(jìn)行模型參數(shù)優(yōu)化,初始學(xué)習(xí)率是0.000 5。在生成翻譯結(jié)果的過(guò)程中,設(shè)置分批訓(xùn)練數(shù)據(jù)大小為128,設(shè)置集束搜索(beam search)的大小為5,懲罰長(zhǎng)度因子設(shè)置為1.0。
不同漢語(yǔ)BERT 的實(shí)驗(yàn)結(jié)果的對(duì)比如表2 所示,其中基線是指完全基于6 層Transformer 不引入BERT 特征的模型,加粗表示最優(yōu)數(shù)據(jù)。對(duì)于所有的BERT 模型,都將最后一層的輸出特征融入到NMT模型中。由表2 的實(shí)驗(yàn)結(jié)果可以看出,在所有BERT模型當(dāng)中效果最好的是BERT-base-Chinese 模型,相較于基線不引入BERT 的模型BLEU 值提高了1.02;擁有同樣參數(shù)的基于全詞遮罩的模型BERT-wwmext 并沒(méi)有表現(xiàn)出更好的效果,BLEU 值僅提高了0.56;擁有同樣參數(shù)的RoBERTa-wwm-ext 全詞遮罩模型并沒(méi)有BERT-wwm-ext 模型效果好,使BLEU提高了0.30;模型網(wǎng)絡(luò)層數(shù)更深,參數(shù)更多的RoBERTa-wwm-large-ext 模型效果較 RoBERTawwm-ext 要好,較基線BLEU 值提高了0.93,但仍不及BERT-base-Chinese 模型;更輕量的RBTL3 模型和多語(yǔ)言版本BERT-base-multilingual-uncased 模型得到的翻譯效果甚至都沒(méi)有完全基于6 層Transformer不引入BERT 的翻譯效果好。

表2 不同漢語(yǔ)BERT 模型的實(shí)驗(yàn)結(jié)果Table 2 Experimental results of different Chinese BERT models
表3 中的基線為完全基于Transformer,不引入BERT 特征的模型,基線右側(cè)分別為BERT-fused 模型融入BERT 模型的1、3、5、7、9、11 層輸出的特征,奇數(shù)層指將BERT 的1、3、5、7、9、11 層編碼的特征分別引入到編碼器和解碼器的1~6 層中進(jìn)行融合,實(shí)驗(yàn)使用bert-base-chinese 模型,加粗表示最優(yōu)數(shù)據(jù)。由表3 的實(shí)驗(yàn)結(jié)果可以看出,將BERT 的1、3 層特征信息的引入對(duì)于模型起到了負(fù)面的影響,使模型的翻譯效果出現(xiàn)了下降,而5、7、9、11 層特征信息的引入讓模型的翻譯效果逐步上升。最后一層特征的引入效果最好,相較于基線提高了1.02 BLEU 值,這驗(yàn)證了文獻(xiàn)[23]得到的關(guān)于BERT 的高層網(wǎng)絡(luò)學(xué)習(xí)到了豐富的語(yǔ)義信息特征的結(jié)論。將BERT 的1、3、5、7、9、11 層依次融入到NMT 的編碼器和解碼器1~6 層當(dāng)中效果并沒(méi)有只融入最后一層的效果好。

表3 BERT 不同隱藏層的實(shí)驗(yàn)結(jié)果Table 3 Experimental results of different hidden layers of BERT
不同微調(diào)BERT 參數(shù)策略的實(shí)驗(yàn)結(jié)果如表4 所示,其中不微調(diào)BERT是指訓(xùn)練BERT-fused模型,固定BERT參數(shù)不微調(diào),加粗表示最優(yōu)數(shù)據(jù)。直接微調(diào)BERT 是指在訓(xùn)練BERT-fused 模型的過(guò)程中直接微調(diào)BERT 的參數(shù)。由表4 的實(shí)驗(yàn)結(jié)果可以看出,在訓(xùn)練BERT-fused模型的過(guò)程中直接微調(diào)BERT 的效果與不微調(diào)相比翻譯效果會(huì)明顯變差。在兩段式微調(diào)的過(guò)程中,學(xué)習(xí)率過(guò)大會(huì)導(dǎo)致模型無(wú)法收斂;當(dāng)預(yù)熱更新步數(shù)為15 000時(shí),模型取得了最高BLEU值32.41,相較于不微調(diào)BLEU值提高了0.62;當(dāng)學(xué)習(xí)率固定為8e-5 時(shí),預(yù)熱更新步數(shù)為15 000 時(shí)模型的翻譯效果最好。

表4 不同微調(diào)BERT 策略的實(shí)驗(yàn)結(jié)果Table 4 Experimental results of different fine-tuning strategies of BERT
本文針對(duì)漢語(yǔ)-維吾爾語(yǔ)平行語(yǔ)料資源匱乏的問(wèn)題,將BERT-fused 模型應(yīng)用于漢維機(jī)器翻譯,通過(guò)一系列對(duì)比實(shí)驗(yàn)總結(jié)得到在漢維機(jī)器翻譯中應(yīng)用預(yù)訓(xùn)練語(yǔ)言模型BERT 的最佳方法。將本文提出的兩段式微調(diào)BERT 的方法在CMWT 2017 評(píng)測(cè)語(yǔ)料上進(jìn)行實(shí)驗(yàn),結(jié)果表明,該方法能夠顯著提高漢維機(jī)器翻譯的性能。后續(xù)將研究如何把預(yù)訓(xùn)練語(yǔ)言模型應(yīng)用到維吾爾語(yǔ)-漢語(yǔ)的機(jī)器翻譯任務(wù)中,進(jìn)一步提高維漢機(jī)器翻譯的效果。