陳 璽,楊雅婷,董 瑞
(1.中國科學(xué)院新疆理化技術(shù)研究所,烏魯木齊 830011;2.中國科學(xué)院大學(xué),北京 100049;3.新疆民族語音語言信息處理實驗室,烏魯木齊 830011)
近年來,基于深度學(xué)習(xí)的神經(jīng)機器翻譯(Neural Machine Translation,NMT)技術(shù)取得了較大的進展,網(wǎng)絡(luò)結(jié)構(gòu)從循環(huán)神經(jīng)網(wǎng)絡(luò)[1-3]發(fā)展到卷積神經(jīng)網(wǎng)絡(luò)[4],再到完全基于自注意力機制的網(wǎng)絡(luò)[5]。在這些不同的網(wǎng)絡(luò)結(jié)構(gòu)中,基于自注意力機制而又高度并行化的Transformer[5]取得了非常好的效果。
目前的神經(jīng)機器翻譯模型在面對英法、英中等擁有大規(guī)模平行語料資源豐富的語言對時,取得了較好的翻譯效果。但是由于漢語-維吾爾語平行語料的缺乏且2 種語言的差異性較大,其在漢維翻譯方面效果并不如維吾爾語-漢語上翻譯[6]。本文主要研究如何提升漢維神經(jīng)機器翻譯模型的翻譯效果。
BERT[7]、Roberta[8]、GPT[9]等預(yù)訓(xùn)練語言模型在大規(guī)模的無標(biāo)簽單語語料上訓(xùn)練得來,在一系列自然語言理解任務(wù)(如文本分類[10]、閱讀理解[11]等)上都取得了非常好的效果。BERT 是一種多層的基于Transformers 的雙向編碼表示模型,通過在大量的單語語料上以屏蔽語言模型建模任務(wù)(Masked Language Model,MLM)和下一句預(yù)測任務(wù)(Next Sentence Prediction,NSP)為訓(xùn)練目標(biāo)得到。
盡管BERT 在一系列自然語言理解任務(wù)上取得了不錯的效果,但其在自然語言生成任務(wù)(如機器翻譯、摘要生成[12]等)上的應(yīng)用卻鮮有人探索。文獻[13]比較了在機器翻譯翻譯模型當(dāng)中應(yīng)用BERT的幾種方式,包括將BERT 作為NMT 模型的輸入嵌入層、利用BERT 的參數(shù)初始化NMT 模型的編碼器層然后微調(diào)BERT、利用BERT 的參數(shù)初始化NMT模型的編碼器層然后凍結(jié)BERT 參數(shù)。文獻[14]將BERT 應(yīng)用于篇章級別的機器翻譯,在法語-英語、漢語-英語、西班牙語-英語上取得了較好的翻譯效果。文獻[15]將BERT 和機器翻譯模型中的編碼器模塊和解碼器模塊分別進行注意力機制交互,然后進行特征融合來提升機器翻譯的效果,在WMT 語料和IWSLT 語料上均取得了較好的效果。
本文借鑒文獻[15]方法,設(shè)計一系列實驗來探究如何在漢維機器翻譯中更好地應(yīng)用BERT。通過設(shè)計兩段式微調(diào)BERT 的方法,將BERT 中的先驗知識遷移到NMT 模型中,同時根據(jù)對比實驗總結(jié)出在漢維機器翻譯中應(yīng)用預(yù)訓(xùn)練BERT 模型的最佳方法。
本文采用文獻[15]提出的基于注意力機制的BERT-fused 模型,將源語言漢語輸入BERT 中,并固定BERT 的參數(shù),提取源語言經(jīng)過BERT 編碼的預(yù)訓(xùn)練表示,然后借助于BERT 編碼器部分和BERT 解碼器部分的注意力機制模塊,將得到的預(yù)訓(xùn)練表示分別與NMT 模型編碼器模塊和解碼器模塊的每一層進行注意力交互,再將交互得到的結(jié)果與編碼器模塊和解碼器模塊每一層自身的自注意力特征進行融合。通過這樣的方法,可以將BERT 編碼源語言的預(yù)訓(xùn)練特征表示融入到編碼器模塊和解碼器模塊的每一層當(dāng)中,以充分利用預(yù)訓(xùn)練語言模型BERT,同時避免BERT模型和機器翻譯模型在詞切分技術(shù)上不同的問題。該模型結(jié)構(gòu)如圖1 所示。
圖1 基于BERT 的機器翻譯模型架構(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 個額外的注意力機制模塊,即BERT 編碼器注意力機制模塊和BERT 解碼器注意力機制模塊。源語言經(jīng)過BERT 模型的輸出與NMT 模塊每一層的輸入計算BERT 編碼器注意力、BERT 解碼器注意力,再與NMT 模型自身的自注意力機制相融合。BERT 編碼器注意力機制模塊與編碼器的自注意力機制模塊融合后的輸出如式(1)所示:
給定源語言輸入,BERT 將語言輸入編碼為HB。在式(1)中代x表編碼器模塊第l隱藏層的輸出表示為源語言序列的詞向量表示,lx代表源語言句子中的第個子詞,記中的第i個子詞為attns和attnB為Transformer 中的縮放點積注意力,它們擁有不同的參數(shù)。然后,得到的每個被輸入前饋層,得到第l層的輸出,如式(2)所示:
編碼器-解碼器注意力模塊的輸出進行融合后通 過前向傳 播網(wǎng)絡(luò)。在式(3)和式(4)中,attnS、attnB、attnE分別代表解碼器的自注意力模塊、BERT-解碼器注意力模塊和編碼器-解碼器注意力模塊。將式(3)和式(4)應(yīng)用在解碼器每一層中,最后一層解碼器可以得到對通過線性變換和softmax 分類函數(shù)得到第t個被預(yù)測的單詞解碼器一直進行解碼直到輸出句子結(jié)束符。
模型通過DropNet 方法來將BERT-編碼器注意力、BERT 解碼器注意力與NMT 模型自身的自注意力機制相融合,從而將BERT 的輸出特征表示嵌入到NMT 模型中。DropNet 比率PNet取值范圍在[0,1]之間,在每次訓(xùn)練迭代的過程中,對于每一層l,在均勻分布[0,1]上采樣得到Ul,每一層的計算公式如式(5)所示:
其中,I(?)是指示函數(shù)。對于任意一層編碼器模塊,以pNet/2 概率去選擇BERT 編碼器注意力或自注意力,每次只選擇其中一種。在推理階段,每種注意力機制都會被用到,如式(1)所示,即推理時有:
在推理階段,BERT 解碼器注意力和編碼器-解碼器注意力都會被用到。
本文采用的BERT 模型具體情況如表1 所示,其中包括以下6 種漢語BERT 模型:
表1 不同BERT 模型的比較Table 1 Comparison of different BERT models
1)BERT-base-multilingual-uncased模型[16],由12層Transformer 組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個頭,共包含110M 參數(shù)。該模型是在102 種語言的維基百科語料上訓(xùn)練得來的,其中包含漢語,但不包含維吾爾語,預(yù)訓(xùn)練時中文按字進行切分。
2)BERT-base-Chinese模型[17],由12層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個頭,共包含110M 參數(shù)。該模型是在中文維基百科語料上訓(xùn)練得來的,在預(yù)訓(xùn)練的過程中按字進行切分。
3)BERT-wwm-ext模型[18],由12 層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個頭,共包含110M 參數(shù)。該模型是在中文維基百科語料和通用數(shù)據(jù)上訓(xùn)練得來的。同時,在預(yù)訓(xùn)練的過程中按詞進行切分,使用了全詞遮罩技術(shù)。Google 發(fā)布的BERT-base-Chinese模型中文是以字為粒度進行切分,沒有考慮到中文自然語言處理中的中文分詞問題。文獻[19]提出了基于全詞遮罩(Whole Word Masking,WMM)技術(shù)的中文預(yù)訓(xùn)練模型BERT-wwm,將全詞遮罩的方法應(yīng)用在了中文中。將該模型在中文維基百科語料上進行訓(xùn)練,在許多任務(wù)上都取得了非常好的效果。本研究將基于全詞遮罩的BERT 模型應(yīng)用到模型之中。
4)RoBERTa-wwm-large-ext 模型[20]。RoBERTa[8]是BERT 通用語義表示模型的一個優(yōu)化版,它在BERT 模型的基礎(chǔ)上提出了動態(tài)遮罩方法,去除了下一個句子預(yù)測預(yù)訓(xùn)練目標(biāo),同時在更多的數(shù)據(jù)上采用更大的批處理大小訓(xùn)練更長的時間,在多個任務(wù)中取得了很好的效果。該模型由24 層Transformer 組成,隱藏層的特征維數(shù)是1 024 維,Transformer模塊的多頭注意力包含16 個頭,共包含330M 參數(shù)。該模型是在中文維基百科語料和通用數(shù)據(jù)上訓(xùn)練得來的。同時,在預(yù)訓(xùn)練的過程中按詞進行切分,使用了全詞遮罩技術(shù)。
5)RoBERTa-wwm-ext模型[21],由12層Transformer組成,隱藏層的特征維數(shù)是768 維,Transformer 模塊的多頭注意力包含12 個頭,共包含110M 參數(shù)。該模型是在中文維基百科語料和通用數(shù)據(jù)上訓(xùn)練得來的。同時,在預(yù)訓(xùn)練的過程中按詞進行切分,使用了全詞遮罩技術(shù)。
6)RBTL3模型[22]。該模型以RoBERTa-wwm-largeext 模型參數(shù)初始化前3 層Transformer 以及詞向量層并在此基礎(chǔ)上繼續(xù)訓(xùn)練了1M 步,在僅損失少量效果的情況下大幅減少參數(shù)量,得到了更輕量的模型。同時在預(yù)訓(xùn)練的過程中按詞進行切分,使用了全詞遮罩技術(shù)。
在模型中,BERT 的輸出作為一個額外的源語言序列表示,使用額外的注意力機制來將其引入到NMT 模型當(dāng)中。將BERT 最后一層輸出作為模型中額外注意力機制的輸入,預(yù)訓(xùn)練模型的輸出特征被引入到NMT 模塊的所有層中,以確保預(yù)訓(xùn)練模型的特征能夠被完全利用。本文使用注意力機制將NMT 模塊和BERT 預(yù)訓(xùn)練特征相結(jié)合,使NMT 模塊能夠動態(tài)地決定從BERT 中得到哪些特征。
文獻[23]提出的BERT 預(yù)訓(xùn)練語言模型學(xué)習(xí)到了一些結(jié)構(gòu)化的語言信息,例如BERT 的底層網(wǎng)絡(luò)學(xué)習(xí)到了短語級別的信息表征,中層網(wǎng)絡(luò)學(xué)習(xí)到了豐富的語言學(xué)特征,而高層網(wǎng)絡(luò)則學(xué)習(xí)到了豐富的語義信息特征,將源語言用BERT 編碼后,底層、中層、高層分別有不同的語言信息表征。本文探索使用不同層次的BERT 特征對于模型的翻譯效果的影響。因為神經(jīng)機器翻譯模型是用編碼器將源語言編碼成語義特征,再送入解碼器進行解碼,所以猜想將BERT 高層的語義特征引入到模型當(dāng)中應(yīng)該會取得較好的效果。單獨將BERT 的1、3、5、7、9、11 隱藏層輸出分別引入到模型當(dāng)中,觀察得到的模型翻譯效果。同時,將BERT 的1、3、5、7、9、11 層編碼的特征分別引入到編碼器和解碼器的1~6 層中進行對比實驗。
災(zāi)難性遺忘是遷移學(xué)習(xí)中經(jīng)常出現(xiàn)的一個問題,指模型在學(xué)習(xí)新知識的過程當(dāng)中將原有預(yù)訓(xùn)練的知識遺忘[24]。當(dāng)以較大的學(xué)習(xí)率微調(diào)BERT 時會導(dǎo)致模型發(fā)生災(zāi)難性遺忘問題,而且直接微調(diào)BERT和整個模型的參數(shù)會使得模型的效果變差。本文探索如何微調(diào)BERT,提出一種兩段式微調(diào)BERT 的方法。首先固定BERT 的參數(shù),將BERT 模型作為一個特征提取器,將提取到的預(yù)訓(xùn)練表示融入到NMT 模型當(dāng)中,只訓(xùn)練模型剩余部分的參數(shù)直到模型收斂,即訓(xùn)練BERT-fused 模型BERT 以外的部分直至收斂。然后微調(diào)模型中包括BERT 在內(nèi)的整個模型的參數(shù)。在微調(diào)的過程中,不改變其他訓(xùn)練參數(shù),只改變學(xué)習(xí)率和預(yù)熱更新步數(shù)(warmup updates)。在此基礎(chǔ)上,通過實驗對比不同的學(xué)習(xí)率和預(yù)熱更新步數(shù)對模型翻譯效果的影響。
本文采用2017 年全國機器翻譯研討會(CWMT)公開的維吾爾語-漢語語料數(shù)據(jù)集進行實驗。其中,訓(xùn)練集的數(shù)量為336 397,開發(fā)集的數(shù)量為700,測試集的數(shù)量為1 000。對維語語料按照詞進行切分,對漢語語料按照字進行切分。所有的維吾爾語句子都通過字節(jié)對編碼(Byte-Pair Encoding,BPE)技術(shù)[25]進行預(yù)處理,BPE 融合數(shù)設(shè)置為10 000。實驗評測指標(biāo)為機器雙語互譯評估值(BLEU)。
本文實驗基于fairseq[26],fairseq 是Facebook 開源的自然語言處理框架,基于pytorch 開發(fā),具有多卡訓(xùn)練性能好、支持混合精度訓(xùn)練等優(yōu)點。在fairseq 實現(xiàn)Transformer 模型的基礎(chǔ)上引入BERT 編碼器注意力和BERT 解碼器注意力,然后進行2 種注意力的融合。模型使用6 層Transformer 作為編碼器模塊,使用6 層Transformer 作為解碼器模塊,詞嵌入維度為512 維,全連接層維度為1 024 維,失活(dropout)率設(shè)置為0.3。drop-net比率pNet設(shè)置為1.0。使用BLEU[27]值來評估翻譯質(zhì)量,值越大翻譯質(zhì)量越好。
首先訓(xùn)練一個和BERT-fused 模型中NMT 部分同樣架構(gòu)同樣參數(shù)的NMT 模型直到收斂,然后利用這個已經(jīng)得到的模型初始化圖1 所示模型的編碼器和解碼器,BERT 和編碼器之間的注意力模塊參數(shù)與BERT 和解碼器之間的注意力參數(shù)隨機進行初始化。使用的分批訓(xùn)練數(shù)據(jù)大?。╩ax tokens)為8 000,使用Adam 優(yōu)化算法進行模型參數(shù)優(yōu)化,初始學(xué)習(xí)率是0.000 5。在生成翻譯結(jié)果的過程中,設(shè)置分批訓(xùn)練數(shù)據(jù)大小為128,設(shè)置集束搜索(beam search)的大小為5,懲罰長度因子設(shè)置為1.0。
不同漢語BERT 的實驗結(jié)果的對比如表2 所示,其中基線是指完全基于6 層Transformer 不引入BERT 特征的模型,加粗表示最優(yōu)數(shù)據(jù)。對于所有的BERT 模型,都將最后一層的輸出特征融入到NMT模型中。由表2 的實驗結(jié)果可以看出,在所有BERT模型當(dāng)中效果最好的是BERT-base-Chinese 模型,相較于基線不引入BERT 的模型BLEU 值提高了1.02;擁有同樣參數(shù)的基于全詞遮罩的模型BERT-wwmext 并沒有表現(xiàn)出更好的效果,BLEU 值僅提高了0.56;擁有同樣參數(shù)的RoBERTa-wwm-ext 全詞遮罩模型并沒有BERT-wwm-ext 模型效果好,使BLEU提高了0.30;模型網(wǎng)絡(luò)層數(shù)更深,參數(shù)更多的RoBERTa-wwm-large-ext 模型效果較 RoBERTawwm-ext 要好,較基線BLEU 值提高了0.93,但仍不及BERT-base-Chinese 模型;更輕量的RBTL3 模型和多語言版本BERT-base-multilingual-uncased 模型得到的翻譯效果甚至都沒有完全基于6 層Transformer不引入BERT 的翻譯效果好。
表2 不同漢語BERT 模型的實驗結(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 層中進行融合,實驗使用bert-base-chinese 模型,加粗表示最優(yōu)數(shù)據(jù)。由表3 的實驗結(jié)果可以看出,將BERT 的1、3 層特征信息的引入對于模型起到了負面的影響,使模型的翻譯效果出現(xiàn)了下降,而5、7、9、11 層特征信息的引入讓模型的翻譯效果逐步上升。最后一層特征的引入效果最好,相較于基線提高了1.02 BLEU 值,這驗證了文獻[23]得到的關(guān)于BERT 的高層網(wǎng)絡(luò)學(xué)習(xí)到了豐富的語義信息特征的結(jié)論。將BERT 的1、3、5、7、9、11 層依次融入到NMT 的編碼器和解碼器1~6 層當(dāng)中效果并沒有只融入最后一層的效果好。
表3 BERT 不同隱藏層的實驗結(jié)果Table 3 Experimental results of different hidden layers of BERT
不同微調(diào)BERT 參數(shù)策略的實驗結(jié)果如表4 所示,其中不微調(diào)BERT是指訓(xùn)練BERT-fused模型,固定BERT參數(shù)不微調(diào),加粗表示最優(yōu)數(shù)據(jù)。直接微調(diào)BERT 是指在訓(xùn)練BERT-fused 模型的過程中直接微調(diào)BERT 的參數(shù)。由表4 的實驗結(jié)果可以看出,在訓(xùn)練BERT-fused模型的過程中直接微調(diào)BERT 的效果與不微調(diào)相比翻譯效果會明顯變差。在兩段式微調(diào)的過程中,學(xué)習(xí)率過大會導(dǎo)致模型無法收斂;當(dāng)預(yù)熱更新步數(shù)為15 000時,模型取得了最高BLEU值32.41,相較于不微調(diào)BLEU值提高了0.62;當(dāng)學(xué)習(xí)率固定為8e-5 時,預(yù)熱更新步數(shù)為15 000 時模型的翻譯效果最好。
表4 不同微調(diào)BERT 策略的實驗結(jié)果Table 4 Experimental results of different fine-tuning strategies of BERT
本文針對漢語-維吾爾語平行語料資源匱乏的問題,將BERT-fused 模型應(yīng)用于漢維機器翻譯,通過一系列對比實驗總結(jié)得到在漢維機器翻譯中應(yīng)用預(yù)訓(xùn)練語言模型BERT 的最佳方法。將本文提出的兩段式微調(diào)BERT 的方法在CMWT 2017 評測語料上進行實驗,結(jié)果表明,該方法能夠顯著提高漢維機器翻譯的性能。后續(xù)將研究如何把預(yù)訓(xùn)練語言模型應(yīng)用到維吾爾語-漢語的機器翻譯任務(wù)中,進一步提高維漢機器翻譯的效果。