薛擎天,李軍輝,貢正仙,徐東欽
(蘇州大學自然語言處理實驗室,江蘇 蘇州 215006)
機器翻譯研究如何利用計算機將源語言所表達的語義信息轉(zhuǎn)換為目標語言的相同語義信息,是人工智能和自然語言處理領域的重要研究內(nèi)容[1]。基于序列到序列S2S(Sequence-to-Sequence)模型的神經(jīng)機器翻譯NMT(Neural Machine Translation) 完全采用神經(jīng)網(wǎng)絡完成源語言到目標語言的翻譯過程,在近幾年取得了極大的成功[2 - 4],成為了一種極具潛力的機器翻譯方法。2017年,Vaswani等[5]提出一種新的S2S模型結(jié)構Transformer,它放棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡RNN(Recurrent Neural Network)[6]和卷積神經(jīng)網(wǎng)絡CNN(Convolutional Neural Network)[7],而完全依賴于自注意力(Self-Attention)機制,將機器翻譯的性能推向了一個新的高峰。
神經(jīng)機器翻譯在大規(guī)模平行語料條件下取得了顯著的效果,但在一些資源稀缺語言或領域限定的翻譯任務上,平行語料規(guī)模相對較小,翻譯效果會嚴重降低[8]。為了解決大規(guī)模高質(zhì)量的平行語料庫難以獲取的問題,Artetxe等[9 - 11]分別使用無監(jiān)督的方法實現(xiàn)跨語言詞嵌入,并通過降噪自編碼器和反向翻譯[12]2種方法初步實現(xiàn)了無監(jiān)督神經(jīng)機器翻譯UNMT(Unsupervised Neural Machine Translation)[9,10]。
隨后,Lample等[11]又結(jié)合之前的工作,概括了UNMT的3大步驟:(1)初始化一個良好的跨語言詞嵌入模型。(2)利用給定的單語語料,使用降噪自編碼器分別訓練源語言和目標語言的語言模型。(3)使用反向翻譯方法,將無監(jiān)督翻譯的問題轉(zhuǎn)換為有監(jiān)督翻譯的問題,并多次迭代步驟(2)和步驟(3)。其中,反向翻譯的過程首先是利用當前的source→target翻譯模型將源語言句子x翻譯成目標語言句子y;再利用target→source翻譯模型將目標語言句子y翻譯成源語言句子x*;然后將(y,x)當作平行句對訓練,計算x和x*之間的損失,以此來優(yōu)化target→source翻譯模型,反之也可以用相同的方式來優(yōu)化source→target翻譯模型。同時,Lample等將雙語句子混合訓練,用一個生成對抗網(wǎng)絡[13,14]鑒別當前編碼的語言,并將UNMT任務遷移到Transformer模型上,獲得了非常顯著的進步。
2018年,基于雙向Transformer架構構建的語言模型BERT(Bidirectional Encoder Representations from Transformers)[15]掀起了預訓練研究的熱潮,在經(jīng)歷相應微調(diào)后打破了眾多NLP(Natural Language Processing)任務的記錄。隨后,Lample等[16]在BERT的基礎上,提出并總結(jié)了因果語言模型CLM(Causal Language Model)、掩碼語言模型MLM(Masked Language Model)和翻譯語言模型TLM(Translation Language Model)3個預訓練任務,在自然語言推理NLI(Natural Language Inference)和UNMT任務上實現(xiàn)了跨語言模型的預訓練,再一次顯著提高了UNMT的翻譯性能。
受此啟發(fā),本文進一步探究跨語言預訓練在機器翻譯中的應用及優(yōu)化。本文注意到在翻譯語言模型中,Lample等[16]的跨語言模型XLM(Cross-lingual Language Model)預訓練實驗過多地重視了編碼器和解碼器中的Self-Attention機制,而忽略了解碼器端的上下文注意力(Cross-Attention)機制對神經(jīng)機器翻譯的重要性,這導致在翻譯任務中模型的不同模塊之間參數(shù)優(yōu)劣性的不匹配,限制了模型的性能。本文在Lample等研究的基礎上使用了3種不同的方法訓練UNMT模型,嘗試使用優(yōu)化解碼器中的Cross-Attention參數(shù)改進模型的訓練過程,旨在消除Lample等研究實驗中存在的不同模塊間參數(shù)質(zhì)量失衡的問題,并在英語-德語、英語-法語和英語-羅馬尼亞語這3個語言對上測試了實驗效果。
Transformer[5]的主要特點是它既不依賴于RNN也不依賴于CNN,而僅使用自注意力機制(Self-Attention)實現(xiàn)端到端的NMT。自注意力機制是對一句話中的每個詞和該句子中的所有詞進行注意力計算,目的是為了學習句子內(nèi)部的依賴關系,捕獲句子的內(nèi)部結(jié)構。
Transformer的編碼器和解碼器的結(jié)構都是多層網(wǎng)絡結(jié)構,如圖1b所示,其中編碼器由N個相同的層組成,每一層有2個子層,第1個子層是Self-Attention層,第2個子層是一個前饋神經(jīng)網(wǎng)絡FFN(Feed-Forward Network)。
Figure 1 Transformer model structure and the initialization process of XLM
解碼器同樣是由N個相同的層組成,每一層都有3個子層,第1個子層是掩碼多頭自注意力機制,第2個子層是一個對解碼器輸出的跨語言注意力(Cross-Attention)層,最后1個子層是一個前饋神經(jīng)網(wǎng)絡。編碼器和解碼器的子層之間均使用殘差連接[17],殘差連接的公式如式(1)所示:
hl=hl-1+fsl(hl-1)
(1)
其中,hl表示第l個子層的輸出,fsl(·)表示該層的功能函數(shù)。
Figure 2 Mask language model training of BERT
BERT是一種強大的自然語言處理、無監(jiān)督預訓練方法,該方法在通過簡單的微調(diào)后打破了眾多的自然語言處理NLP任務的記錄。BERT的核心思想是預先訓練一個深度雙向Transformer編碼器,這意味著它在處理一個詞的時候,能考慮到它前面和后面單詞的信息,從而獲取上下文的語義。BERT的預訓練有2項訓練任務:(1)掩碼語言模型MLM訓練[18],它隨機掩藏掉一定比例的輸入句子token,并根據(jù)上下文來預測這些被掩藏掉的單詞。如圖2所示,其訓練任務是預測這些隨機掩藏掉的詞語,如“vine”“into”和“hearts”。(2)預測下文句子,這項任務是根據(jù)現(xiàn)有句子預測其后文內(nèi)容,例如NLP中的問答QA(Question Answering)任務和自然語言推理NLI任務。
Lample等[11]在BERT的基礎上提出了跨語言模型的預訓練,在UNMT等跨語言任務上達到了當時最高的性能。XLM的訓練主要基于2點:一是使用2門語言的字節(jié)對編碼BPE(Byte Pair Encoding)共享詞匯表[19],Lample等[11]曾采用同樣的方法獲取共享詞表,取得了很不錯的實驗結(jié)果。不同的是,在跨語言預訓練實驗中,不同語言句子的采樣概率{qi}i=1,…,M服從式(2)所示的多項式分布,然后再進行BPE處理。這樣采樣的目的是對大語種語料和小語種語料進行平滑處理,防止小語種語料的單詞在BPE處理時被從字符級別分割,以平衡共享詞表中不同語言的單詞數(shù)量。
(2)
其中,α取0.5,pi表示語料庫中第i門語言的句子數(shù)占全部句子數(shù)的比例,M表示語言的種類數(shù),ni表示第i門語言的句子數(shù)。
二是提出了翻譯語言模型(TLM),其實質(zhì)是將MLM任務擴展到雙語中,通過將2門語言的平行句對連接在一起,形成一個連續(xù)文本流,一同作為MLM的輸入。這樣模型就可以利用平行語句提供的跨語言信息來預測被掩藏掉的詞匯,同時鼓勵模型從雙語上下文中學習到對齊信息,以此預訓練語言模型的詞向量和參數(shù)。
對于UNMT任務而言,Lample等[16]使用預訓練的MLM分別初始化Transfomer的編碼器與解碼器;再利用多門語言的單語語料作為預訓練模型的訓練語料,使用降噪自編碼器訓練語言模型;再通過反向翻譯得到的偽平行語料訓練翻譯模型;最后通過若干次地迭代降噪自編碼器訓練語言模型和反向翻譯訓練翻譯模型這2個步驟來訓練UNMT系統(tǒng)。
盡管Lample等[16]的XLM預訓練實驗取得了巨大的成功,但仍存在一些缺陷,例如在實驗中過多地重視了編碼器和解碼器中的Self-Attention模塊和前饋神經(jīng)網(wǎng)絡模塊,而忽略了解碼器端的Cross-Attention模塊對神經(jīng)機器翻譯的重要性。本文認為,在UNMT任務中,如果初始化的時候Cross-Attention能夠包含一定的目標端語義信息,將能很好地改善實驗性能。如圖1所示,在UNMT的預訓練任務中,XLM僅使用一個Transformer模型的編碼器作為預訓練模型,將2門語言的單語語料混合作為預訓練模型的輸入,訓練模型中的Self-Attention層、前饋神經(jīng)網(wǎng)絡層以及它們之后的殘差連接和Layer Normalization模塊。在隨后的翻譯任務中用它們初始化Transformer模型的編碼器和解碼器中的部分層。然而對于解碼器端的包含源端信息的Cross-Attention層卻選擇隨機初始化,這導致了在同一個Transformer模型中不同模塊間的參數(shù)質(zhì)量不匹配。
本文認為,在預訓練模型時應該包括Cross-Attention模塊,并根據(jù)情況優(yōu)化調(diào)整。本文嘗試了幾種方法訓練或初始化Cross-Attention中的參數(shù),以優(yōu)化其參數(shù)質(zhì)量。另外,本文嘗試將Teacher-Student框架[20]融入到UNMT任務中指導其訓練。
本文認為,由于Lample等[16]的預訓練模型無法訓練到同時包含源端和目標端信息的Cross- Attention模塊,在UNMT任務正式開始時,模型中的參數(shù)所包含的跨語言信息并不豐富,雖然隨后會在每2步反向翻譯之間插入語言模型的訓練,但是由于開始的時候并不具備一個良好的語言模型指導,這可能導致其在反向翻譯時,參數(shù)可能會向一個錯誤的方向更新。所以,本文嘗試在UNMT任務之前預先訓練語言模型,即在原有預訓練模型的基礎上,再次預訓練帶有編碼器-解碼器結(jié)構的語言模型一定時長之后,再進行普通的無監(jiān)督訓練。訓練方法為固定編碼器和解碼器中的自注意力機制層和前饋神經(jīng)網(wǎng)絡層的參數(shù),經(jīng)過一定的訓練時長后,再同時訓練整個模型。簡單來說,就是將原本的預訓練+UNMT的任務流程更改為預訓練+二次訓練語言模型+UNMT的任務流程。這樣做的用意是在反向翻譯之前對解碼器端的Cross- Attention模塊進行一定程度的訓練,使它能夠?qū)W習到一定的源端信息,以此緩解UNMT任務開始時不同模塊參數(shù)質(zhì)量不匹配問題,有助于矯正模型參數(shù)的更新迭代方向。
本文認為,Lample等[16]的UNMT實驗中存在2個缺點,一是預訓練模型中部分參數(shù)隨機初始化導致的不同模塊參數(shù)質(zhì)量失衡;二是由于缺乏平行句對導致沒有一個好的訓練指導方向。
針對Lample等[16]實驗中存在的編碼器和解碼器參數(shù)質(zhì)量不匹配的問題,本文嘗試的第2種方法是抽取預訓練模型中的Self-Attention參數(shù)初始化解碼器中的Cross-Attention參數(shù),再通過訓練語言模型和反向翻譯微調(diào)。盡管2個注意力機制的作用有所不同,但是本文認為預訓練模型中的Self-Attention參數(shù)是由雙語混合并長時間通過MLM訓練而得的,其參數(shù)中包含的跨語言信息依然遠遠優(yōu)于隨機初始化的參數(shù),加載預訓練模型中的Self-Attention的參數(shù)并利用其中可能包含的跨語言信息是一種可行方案。
為了提高模型參數(shù)的魯棒性,在使用無監(jiān)督預訓練模型中的Self-Attention層初始化無監(jiān)督神經(jīng)機器翻譯模型中的Cross-Attention層參數(shù)方法的基礎上,本文又為Cross-Attention的參數(shù)添加高斯噪聲[21],即以帶有高斯噪聲的預訓練模型Self-Attention參數(shù)初始化UNMT模型的Cross-Attention參數(shù)。
在預訓練任務完成后,常規(guī)的UNMT任務需要分別通過降噪自編碼器和制造偽平行語料迭代語言模型訓練和反向翻譯訓練。受Teacher-Student框架[20]的啟發(fā),在訓練任務中,如果作為Student的翻譯任務有一個好的Teacher任務指導,對翻譯任務的參數(shù)學習有著很大的幫助。
如圖3a所示,Chen等[20]的實驗中X、Y和Z分別為源語言、目標語言和軸語言的語料庫,x,y和z分別表示源語言、目標語言和軸語言的句子。虛線表示雙語之間有平行數(shù)據(jù)。在這樣的情況下對于X-Z語料庫中的一個平行句對,概率分布P(y|x;θx→y)應該與P(y|z;θz→y)相似,因此z→y翻譯模型作為Teacher可以指導作為Student的翻譯模型x→y。
Figure 3 Teacher-Student translation method
本文嘗試使用降噪自編碼器進行指導。如圖3b所示,Z′表示添加了噪聲的目標語言語料庫,x是由y反向翻譯而來的句子,與y構成偽平行句對,z′是添加了噪聲的目標語言句子y,即C(Y′)。虛線表示構成的偽平行數(shù)據(jù)。該方法嘗試以z′→y為Teacher,x→y為Student,讓降噪自編碼器指導反向翻譯任務,以它們的概率分布之間的KL散度作為損失。
本文建立英語?德語(en?de)、英語?法語(en?fr)、英語?羅馬尼亞語(en?ro)的UNMT任務進行實驗,實驗的翻譯性能采用評測標準雙語互譯評估BLEU(BiLingual Evaluation Understudy)值[22]進行評估。
本文實驗訓練集的選擇與Lample等[16]的實驗相同,抽取WMT2007~WMT2010中德語、英語和法語各500萬行單語句子和WMT2015中230萬行羅馬尼亞語句子作為訓練集,開發(fā)集選用數(shù)據(jù)集newstest2014en-de、newstest2014en-fr和newstest2016en-ro,測試集分別為newstest2016en- de、newstest2014en-fr和newstest2016en-ro。
實驗選用Adam[23]作為優(yōu)化器,GELU[24]為激活函數(shù)。失活率(dropout)設為0.1,詞嵌入的維度為1 024,最大句子長度為100,超過100個單詞的句子會將超長部分截去,每個batch以token為單位,總數(shù)不超過1 000,并設定20萬個句子為一輪(epoch),共享2門語言的詞表并設置BPE操作數(shù)為60 000。其余超參數(shù)設置與Transformer模型的默認超參數(shù)一致[4]。本文的幾組實驗在2塊NVIDIA TITAN Xp GPU上訓練10 epoch進行比較。
作為對比實驗,基準系統(tǒng)的超參數(shù)設置與上述實驗設置相同。而Lample等[16]的實驗使用8塊GPU并行計算,每個batch的最大token數(shù)為2 000,其余實驗設置與上述實驗一致。
表1展示了Lample等[16]的實驗結(jié)果,并以本文復現(xiàn)其工作的實驗結(jié)果為基準系統(tǒng)(Baseline),同時統(tǒng)計了本文嘗試的3種方法的實驗結(jié)果。
Table 1 Comparison of BLEU of each method
表1中,LM-pretrain表示3.1節(jié)中介紹的原有預訓練基礎上二階段訓練語言模型的方法;Cross-Attention表示3.2節(jié)中使用預訓練模型中的Self-Attention模塊參數(shù)初始化翻譯模型的Cross-Attention模塊參數(shù)再微調(diào)的方法;Noise CA是3.2節(jié)中在Cross-Attention中添加高斯噪聲的方法;而TS frame指的是3.3節(jié)中以降噪自編碼器和反向翻譯模型建立的Teacher-Student框架指導UNMT訓練的方法。
從表1可以看出,相比于Baseline,LM- pretrain方法在en→fr、fr→en、de→en和en→de這4項翻譯任務上的BLEU有0.4 ~ 0.6個百分點的提升,而在en→ro和ro→en這2項翻譯任務上提升不明顯。用Self-Attention初始化Cross- Attention的方法效果最為明顯,最高在en→ro任務中BLEU值提高了2.08個百分點,即使是對比Lample的實驗結(jié)果,其BLEU值依然提高了1.52個百分點。該方法在其余5項翻譯任務上的BLEU值也分別取得了0.8~1.9個百分點的提升。而Noise CA的實驗結(jié)果在此基礎上略有降低。TS frame方法則只在en→fr和fr→en翻譯任務上有0.5個百分點的BLEU值提升,在其余4項翻譯任務上效果都不太明顯。
在顯著性測試(p=0.01)中,LM-pretrain方法在en→fr、fr→en、en→de和de→en 這4項翻譯任務上具有更好的性能,Cross-Attention方法和Noise CA方法則在6項翻譯任務上都具有更好的性能,TS frame方法則只在en→fr和fr→en 2項翻譯任務上效果比較顯著。
實驗表明,UNMT任務中Cross-Attention模塊的不同初始化方式對實驗結(jié)果影響明顯,其中使用預訓練模型中Self-Attention模塊初始化的方法效果最為顯著,且通過添加高斯噪聲的方法證明了其魯棒性較好。這說明了預訓練模型的Self-Attention模塊的參數(shù)包含了豐富的目標端語義信息。本文分析,這些語義信息主要來自2個方面:(1)本文在預訓練任務和UNMT任務中共享BPE詞表,使得詞義信息開始融合,這得益于德語、英語和法語3門語言屬于同一語系。(2)在預訓練任務中,混合打亂了雙語句子。使用同一個詞表初始化句子的詞向量。混合訓練的同時使用語言ID和對抗網(wǎng)絡鑒別語種。
根據(jù)以上實驗,本文嘗試回答以下2個問題:(1)本文提出的幾種實驗方法與基準系統(tǒng)的收斂情況對比。(2)在有平行語料支撐的情況下,基于跨語言預訓練模型的神經(jīng)機器翻譯中Cross- Attention層是否也存在如UNMT同樣的問題。
(1)幾種方法收斂情況對比。
在神經(jīng)機器翻譯NMT中,要對訓練語料整體訓練多次,通常需要經(jīng)過多個epoch的訓練才能獲得一個穩(wěn)定的模型。由于UNMT實驗中僅具有大規(guī)模的單語數(shù)據(jù),使用全部訓練集迭代訓練多個epoch需要花費的時間代價過于巨大,所以本文選擇從訓練集中抽取20萬個句子為1個epoch。因為缺乏平行數(shù)據(jù),常規(guī)的訓練時長可能并不能得到穩(wěn)定的結(jié)果,所以本文以de→en翻譯任務為例,探究訓練的epoch數(shù)對翻譯結(jié)果的影響,結(jié)果如圖4所示。
Figure 4 Relationship between epoch and BLEU
可以看出,使用Self-Attention初始化Cross-Attention的方法迅速收斂到擬合狀態(tài)且性能明顯優(yōu)于基準系統(tǒng)的,而在預訓練基礎上二次訓練語言模型的方法雖然開始的時候性能優(yōu)于基準系統(tǒng),但是隨著訓練輪數(shù)的增加,翻譯性能的提升不再明顯。使用Teacher-Student框架指導UNMT模型訓練的方法,性能也僅有微弱的提升。
為防止模型過擬合,本文最終選擇訓練了10個epoch的模型為比較模型。
(2)初始化Cross-Attention層的方法應用在NMT的情況分析。
為了驗證Cross-Attention參數(shù)質(zhì)量在跨語言預訓練模型中的重要性,本文另外設計了一組對比實驗,對比在預訓練的基礎上常規(guī)的有監(jiān)督NMT中隨機初始化Cross-Attention方法和本文3.1節(jié)中使用預訓練模型中Self-Attention初始化Cross-Attention的方法。本實驗使用WMT2014 de-en和WMT2016 en-ro訓練集訓練了一個粗糙的預訓練模型,并從語料庫中抽取40萬行的平行句對作為神經(jīng)機器翻譯任務的訓練集,將對比實驗應用到了常規(guī)的監(jiān)督NMT任務中。實驗結(jié)果如表2所示。
由表2可以看出,在4項翻譯任務上,使用Self-Attention初始化Cross-Attention的訓練方法的BLEU都獲得了提高,其中在en→ro和ro→en翻譯任務上提升較大,分別取得了2.24和1.58個百分點的BLEU值提升,而在de→en和en→de 2項翻譯任務上分別取得了0.61和0.78個百分點的提升。
這表明本文發(fā)現(xiàn)的XLM跨語言預訓練實驗的缺陷是正確的且具有改進空間。
Table 2 Comparison of experimental results in NMT
本文分析了XLM實驗在UNMT任務中跨語言預訓練的一些不足,并嘗試使用3種方法改進UNMT模型的訓練。其中抽取預訓練Self- Attention初始化Cross-Attention再微調(diào)的方法在一定程度上緩解了UNMT模型不同模塊參數(shù)質(zhì)量不匹配的問題,模型收斂最快且在多個語言對上獲得了最顯著的效果。本文同樣在NMT任務中驗證了該方法的有效性。而在預訓練基礎上二階段訓練語言模型的方法,雖然開始時優(yōu)于原本的UNMT系統(tǒng),但是隨著訓練時長的增加,提升效果漸漸不明顯,僅在部分翻譯任務上有較為明顯的效果。本文同樣嘗試了將Teacher-Student框架融入到UNMT的任務中,但是隨著訓練時長的增加,提升效果也不明顯。
接下來的工作將考慮直接修改預訓練模型,提出一個更加有效的訓練Cross-Attention層的方法,讓模型在預訓練階段就可以直接考慮到翻譯模型全部模塊的參數(shù)訓練,這樣更有利于Cross- Attention層學習到目標端的語義信息。本文認為,新的模型經(jīng)歷長時間的訓練,能夠更好地獲得跨語言信息,會取得一定效果。