李 北,王 強(qiáng),肖 桐,姜雨帆,張哲旸,劉繼強(qiáng),張 俐,于 清
(1. 東北大學(xué) 自然語言處理實驗室,遼寧 沈陽 110819;2. 新疆大學(xué) 信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830046)
集成學(xué)習(xí)(ensemble learning)是一種聯(lián)合多個學(xué)習(xí)器進(jìn)行協(xié)同決策的機(jī)器學(xué)習(xí)方法[1]。集成學(xué)習(xí)方法通過整合多個學(xué)習(xí)器的決策結(jié)果可以有效減小預(yù)測結(jié)果的方差與偏置[2-4],顯著提升模型的泛化能力,達(dá)到比單學(xué)習(xí)器更好的效果。因此,集成學(xué)習(xí)方法得到了研究人員的廣泛認(rèn)可,被應(yīng)用于各種實際任務(wù),如規(guī)則提取[5]、手寫識別[6]等分類回歸任務(wù)中。
近年來集成學(xué)習(xí)方法在機(jī)器翻譯領(lǐng)域也取得了杰出的效果[7]。常見的手段包括平均單模型在訓(xùn)練過程中不同時刻保存的模型參數(shù);在預(yù)測過程中整合不同模型的預(yù)測結(jié)果等。通過在大規(guī)模數(shù)據(jù)的機(jī)器翻譯評測比賽中進(jìn)行實驗,使用集成學(xué)習(xí)的手段能大幅度提升翻譯的性能,在CWMT、WMT[8-11]等評測比賽中得到了廣泛的驗證。影響集成學(xué)習(xí)效果的主要因素是模型之間的多樣性,因此如何增大模型之間的多樣性是提升翻譯性能的關(guān)鍵。但大部分研究人員只是在比賽中通過使用集成學(xué)習(xí)方法達(dá)到提升翻譯性能的目的,很少去系統(tǒng)地總結(jié)如何才能增大模型間的多樣性,缺乏經(jīng)驗性的對比分析與完備性的結(jié)論。譬如如何選取具有差異性的子模型,集成多少個模型效果最優(yōu)等問題并沒有得到回答。
針對以上問題,本文基于Transformer[12]系統(tǒng)分別從模型的參數(shù)與解碼預(yù)測過程兩個角度,詳細(xì)總結(jié)了更高效的Ensemble方法。從模型的參數(shù)角度,我們將不同時刻保存的模型進(jìn)行參數(shù)平均,從而得到更具魯棒性的單模型;對解碼預(yù)測過程我們從模型多樣性、數(shù)據(jù)多樣性層面,闡述如何才能增加模型間的多樣性來提升翻譯的性能。在模型多樣性層面,本文主要對比簡單的隨機(jī)初始化種子、復(fù)雜種子以及混合不同模型結(jié)構(gòu)的Ensemble系統(tǒng)之間的優(yōu)劣。在數(shù)據(jù)層面,本文提出分別使用fine-tuning[13]與bagging[14]的方式生成子模型,在增加數(shù)據(jù)多樣性的同時提升模型間的差異性?;谝陨蟽煞矫娴挠懻?,我們又探索了是否使用更多的模型參與融合能在翻譯性能上帶來正向作用。
本文通過在WMT17中英任務(wù)的大規(guī)模數(shù)據(jù)集上進(jìn)行實驗,我們發(fā)現(xiàn)增大模型差異性與數(shù)據(jù)差異性均能提高模型的翻譯性能。此外,隨著融合模型的數(shù)量增加,翻譯質(zhì)量也會顯著地提升。本文最好結(jié)果在Transformer單模型基礎(chǔ)上取得3.19個BLEU值的提升,并針對模型間多樣性與解碼復(fù)雜度進(jìn)行了分析。
神經(jīng)機(jī)器翻譯系統(tǒng)根據(jù)給定的源語句子,x1,…,xn,和目標(biāo)語句子y1,…,ym構(gòu)建模型,建立從源語到目標(biāo)語的映射函數(shù)。這個映射函數(shù)通常表示成條件概率p(y|x)的形式,翻譯得越準(zhǔn)確,概率值越高,表示成對數(shù)形式,如式(1)所示。
(1)
在Transformer提出之前,大多數(shù)神經(jīng)機(jī)器翻譯系統(tǒng)都是基于注意力機(jī)制[15]的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),這些系統(tǒng)雖然取得了不錯的效果,但是復(fù)雜、循環(huán)的計算導(dǎo)致整個訓(xùn)練過程十分漫長,這也是研究者們一直想要改進(jìn)的地方。隨著Transformer的提出,它放棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),采用完全基于自注意機(jī)制的結(jié)構(gòu),提高了模型的并行程度,大幅提升了訓(xùn)練速度。同時Transformer具有很強(qiáng)的模型表示能力,在翻譯的準(zhǔn)確性上也有一定的提升。下面來介紹Transformer的結(jié)構(gòu)。
Transformer基于Encoder-Decoder結(jié)構(gòu)[16],采用了一種全新的注意力機(jī)制,包含Encoder端、Decoder端的自注意機(jī)制和Encoder-Decoder的聯(lián)合注意力機(jī)制,其結(jié)構(gòu)如圖1所示。在機(jī)器翻譯中編碼器負(fù)責(zé)將輸入的源語轉(zhuǎn)換成帶有語義信息的向量,解碼器負(fù)責(zé)根據(jù)語義信息產(chǎn)生目標(biāo)語句。由于模型沒有任何循環(huán)或者卷積,為了使用序列的順序信息,需要將相對以及絕對位置信息注入到模型中去。
圖1 Transformer模型架構(gòu)圖
編碼器由N個相同的層堆疊而成,每層都有兩個子層,第一個子層是多頭自注意力機(jī)制,第二個子層是一個簡單的(位置敏感的)前饋神經(jīng)網(wǎng)絡(luò)。解碼器同編碼器類似,在編碼器的基礎(chǔ)上多了一個子層,負(fù)責(zé)處理編碼器輸出的多頭注意力機(jī)制。為了更易于梯度的傳遞與加速模型收斂,在編碼器和解碼器中每一個子層后都會有殘差連接和層正則化操作[17]。Transformer使用的多頭注意力機(jī)制(mulit-head attention)的基本單元是縮放的點積注意力模型(scaled dot-product attention),這種注意力的輸入是dk維的query,dv維的key和value。具體的計算如式(2)所示。
(2)
其中,Q中的每一行對應(yīng)一個query;使用每個query與KT相乘并進(jìn)行歸一化之后,即可得到一個n維的權(quán)值向量,然后,再將這個權(quán)值向量與V相乘,即可得到一個dv維的加權(quán)求和的結(jié)果。多頭注意力機(jī)制就是將query、key和value映射為h組維度為dq、dk、dv的向量,分別進(jìn)行按比例的點積注意力,最后將得到h個向量連接起來作為輸出。表示如下:
本節(jié)介紹Ensemble在神經(jīng)機(jī)器翻譯中的兩種應(yīng)用手段: 模型參數(shù)平均與預(yù)測結(jié)果融合。本節(jié)首先介紹如何通過不同時刻保存的模型得到更具魯棒性的單模型,之后講述如何利用參數(shù)平均后的各個模型進(jìn)行預(yù)測結(jié)果融合。在討論預(yù)測結(jié)果融合方面分別從模型差異性角度與數(shù)據(jù)差異性角度,來對比分析不同策略帶來的增益效果。在此基礎(chǔ)上進(jìn)一步分析通過更多的模型,來進(jìn)行預(yù)測結(jié)果融合能否帶來更大的增益。
參數(shù)平均是指將單一模型的最近保存的N個模型的參數(shù)矩陣進(jìn)行平均。正如圖2給出4個檢查點的部分參數(shù)矩陣,通過將對應(yīng)位置數(shù)值進(jìn)行平均得到新的參數(shù)矩陣。如模型1中的A11=0.26,模型2中的B11=0.22,不同檢查點(checkpoint)矩陣的對應(yīng)數(shù)值會有差異性,最終經(jīng)過參數(shù)平均后的模型的E11=0.25。Sennrich[8]等在WMT16比賽首次使用模型保存的最新4個模型進(jìn)行模型參數(shù)平均的方法,性能得到了顯著提升。這是由于模型在訓(xùn)練過程中要更新一定的輪數(shù)才能收斂,并且模型的損失值在收斂后仍處于小范圍的上下波動。為了得到更具有魯棒性的模型,Vaswani[12]等建議每隔10分鐘保存一次模型,并平均最新保存的20個檢查點模型用來作為最終的模型,沒給出經(jīng)驗性的結(jié)論。本文將要探索如何設(shè)置合理的模型保存間隔與參數(shù)平均的模型數(shù)量獲得更強(qiáng)的翻譯性能。
圖2 參數(shù)平均結(jié)構(gòu)圖
預(yù)測結(jié)果融合是一種在解碼過程中實施的手段,通過整合不同模型得到的概率分布從而獲得新的解,進(jìn)而預(yù)測下一個目標(biāo)端詞語。常見的融合手段有算術(shù)平均、幾何平均、加權(quán)平均以及投票等。機(jī)器翻譯任務(wù)是一種序列生成問題,解碼的每一個時序都會依賴于前一時序預(yù)測的結(jié)果,模型會根據(jù)當(dāng)前的語義信息計算出一個維度大小是詞表大小的概率分布向量,經(jīng)過softmax操作得到歸一化的向量表示。向量中每一個元素指代預(yù)測下一個詞的概率。如圖3在輸入源語“今天 天氣 晴朗 ?!鼻疤嵯拢獯a第一步將4個不同模型預(yù)測的概率進(jìn)行算數(shù)平均從而得到新的概率分布,其中“today”是當(dāng)前預(yù)測概率最大的詞。通過這種方式Ensemble模型可以綜合不同模型的決策結(jié)果來得到更正確的解。本節(jié)主要分別從模型多樣性與數(shù)據(jù)多樣性的角度來對比分析不同融合手段帶來的性能增益。
2.2.1 模型多樣性
模型間的差異性很大程度上決定了模型融合后的效果。對于模型層面,我們將從以下兩種策略來構(gòu)造子模型。
圖3 模型融合示意圖
(1) 使用相同的模型結(jié)構(gòu)、不同的參數(shù)初始化分布或者不同的隨機(jī)初始化種子。由于神經(jīng)網(wǎng)絡(luò)的擬合訓(xùn)練容易陷入局部最優(yōu)解,最終單模型的翻譯結(jié)果可能不是全局最優(yōu)解。通過Ensemble的方式,融合多個不同隨機(jī)種子即多個局部最優(yōu)解,進(jìn)而避免這類問題,獲得更好的結(jié)果。
(2) 使用不同的模型結(jié)構(gòu)、不同的隨機(jī)初始化種子。由于僅改變模型的初始化參數(shù),融合相似的網(wǎng)絡(luò)模型結(jié)構(gòu)差異性過小,為了增大模型間的差異性,本文訓(xùn)練N個不同網(wǎng)絡(luò)結(jié)構(gòu)且不同的隨機(jī)初始化種子的模型。
2.2.2 數(shù)據(jù)多樣性
在數(shù)據(jù)層面,為了增加多樣性,我們通過fine-tuning與bagging兩種策略來構(gòu)造子模型。
(1) 通過fine-tuning的方式在訓(xùn)練好的模型基礎(chǔ)上,用分割成不同份數(shù)的訓(xùn)練語料繼續(xù)訓(xùn)練5輪,保證詞表不變。通過這種方式讓微調(diào)后的子模型對不同的數(shù)據(jù)敏感,從而增加了多樣性。由于微調(diào)的代價很小,不需要完全重新訓(xùn)練模型,節(jié)約了很多時間上與設(shè)備上的開銷。
圖4 bagging示意圖
(2) 通過bagging的方式對訓(xùn)練樣本進(jìn)行重采樣,如圖4所示分別使用重采樣后的子樣本訓(xùn)練相應(yīng)的模型,在預(yù)測過程中對不同模型的輸出結(jié)果通過取平均的方式得到Ensemble的模型輸出。bagging是最早出現(xiàn)在集成學(xué)習(xí)任務(wù)中的有效手段,在早期的分類任務(wù)中,通過bagging方式構(gòu)建多個決策樹共同對測試數(shù)據(jù)進(jìn)行決策,最后采用投票或者取平均的方式得到集成結(jié)果。在本任務(wù)中通過對訓(xùn)練數(shù)據(jù)做了N次Bootstrap采樣得到的N個訓(xùn)練集近似服從同一分布,同時有效地降低了方差。由于不同子模型之間數(shù)據(jù)量相同但內(nèi)容略有差別,從而增加了訓(xùn)練數(shù)據(jù)的多樣性。
2.2.3 更多模型
通過融合更多的模型聯(lián)合決策來提高翻譯性能。大部分研究人員在進(jìn)行集成方面的研究都只使用了4個或5個模型進(jìn)行融合,并沒有進(jìn)一步探究融合更多模型是否有效。本節(jié)主要探索參與預(yù)測結(jié)果平均的模型數(shù)量對性能的影響,驗證參與融合的模型數(shù)量與Ensemble模型的翻譯性能之間的正相關(guān)性。
本文實驗基于2018年WMT(Workshop on Machine Translation)中英比賽發(fā)放的訓(xùn)練數(shù)據(jù),其中中英雙語平行語料16M(M表示百萬句對),英文單語數(shù)據(jù)24M。除此之外同時使用了2018 CWMT(China Workshop on Machine Translation)的雙語平行語料,共9M句。我們通過以下幾個策略對訓(xùn)練語料進(jìn)行了過濾選擇。
(1) 對雙語平行語料進(jìn)行亂碼過濾,剔除混有亂碼的語料如控制字符、UTF-8轉(zhuǎn)碼生成的單字節(jié)亂碼等。
(2) 對雙語平行語料進(jìn)行NiuTrans[18]分詞處理,保留目標(biāo)語英文單詞的大小寫敏感,對中文端的標(biāo)點符號進(jìn)行全角轉(zhuǎn)半角操作。
(3) 對雙語語料進(jìn)行長度比過濾,過濾源語端與目標(biāo)語端超過100個詞的句子,同時保證源語與目標(biāo)語長度比在0.4~3.0范圍內(nèi)。
(4) 應(yīng)用fast-align腳本對大規(guī)模雙語語料做詞對齊學(xué)習(xí),在此基礎(chǔ)上生成中英互譯詞典。清除源語與目標(biāo)語端詞典覆蓋率小于0.3的雙語語料。
(5) 使用過濾后的雙語語料的英文單語訓(xùn)練語言模型[19],根據(jù)語言模型篩選提供的英文單語語料。通過back-translation方式生成偽數(shù)據(jù)[20],用作數(shù)據(jù)增強(qiáng)。
(6) 混合篩選的雙語平行語料與生成的偽數(shù)據(jù),做去重操作。
經(jīng)過以上幾個過濾步驟我們保留了將近12M雙語平行語料與4M的偽數(shù)據(jù)作為模型的訓(xùn)練數(shù)據(jù)。我們通過BLEU來衡量翻譯質(zhì)量,采用Moses提供的multibleu.perl[21]腳本來計算BLEU。我們對訓(xùn)練數(shù)據(jù)進(jìn)行BPE處理[22],有效減少UNK的出現(xiàn)頻次,BPE的詞表大小為32K,我們的源語端訓(xùn)練詞表大小為48K,目標(biāo)端訓(xùn)練詞表大小為33K。
本文實驗基于Transformer模型框架,在Tensorflow版的tensor2tensor開源工具基礎(chǔ)上進(jìn)行改進(jìn)。實驗的基線設(shè)置采用了論文中的transformer_base參數(shù)設(shè)置,編碼端與解碼端分別是6層,隱藏層維度為512,采用8頭設(shè)置,前饋神經(jīng)網(wǎng)絡(luò)的filter_size大小為2 048,batch-size大小為4 096,采用8gpu訓(xùn)練,初始學(xué)習(xí)率為0.001,warmup_steps大小為4 000,采用Adam優(yōu)化器[23]進(jìn)行參數(shù)優(yōu)化,訓(xùn)練的輪數(shù)為10輪,共140K更新次數(shù)。在解碼階段我們采用beam-search[1]策略來進(jìn)行解碼端的預(yù)測,beam-size大小為12,同時解碼時的長度懲罰alpha[12]大小為1.2。基于該參數(shù)的單模型在測試集上的BLEU值為25.40,是一個很強(qiáng)的基線設(shè)置。
本實驗基于Baseline模型的參數(shù)設(shè)置,每隔5min保存一次模型。基于模型的最新的20個checkpoint,通過對比單模型與averaging5、averaging10、averaging15、averaging20之間的性能差異(圖5),我們發(fā)現(xiàn)基于保存的20個checkpoint點進(jìn)行參數(shù)平均均有一定的正向作用,其中取最新的15個模型效果最佳,比最后保存的單一模型高0.82 BLEU值。基于本次實驗結(jié)果,之后的實驗均采用參數(shù)平均15個checkpoint后的模型。
圖5 不同checkpoint進(jìn)行參數(shù)平均結(jié)果
本節(jié)我們將分別在模型多樣性與數(shù)據(jù)多樣性層面討論預(yù)測結(jié)果融合的效果。在模型多樣性方面,我們主要對比分析在集成的模型數(shù)量固定的條件下,相同結(jié)構(gòu)與不同結(jié)構(gòu)兩種融合方式的優(yōu)劣;在數(shù)據(jù)多樣性方面,我們主要探索fine-tuning與bagging兩種手段是否適用于神經(jīng)機(jī)器翻譯任務(wù)。之后我們會基于以上兩類實驗結(jié)果進(jìn)一步分析融合數(shù)量更多、模型結(jié)構(gòu)差異更大的模型對翻譯性能的影響。
3.4.1 模型多樣性實驗結(jié)果
相同模型結(jié)構(gòu),不同初始化種子本實驗分別采用三種不同的模型設(shè)置進(jìn)行隨機(jī)種子的實驗,每個模型在WMT17中英測試集上的BLEU表現(xiàn)如圖6所示,我們發(fā)現(xiàn)在Baseline參數(shù)設(shè)置的基礎(chǔ)上增大filter_size至4 096與加入dropout都會明顯提高單模型的BLEU分?jǐn)?shù)。通過對相同模型結(jié)構(gòu)的4個不同隨機(jī)初始化種子進(jìn)行融合,結(jié)果如表1中的前4行數(shù)據(jù)所示,我們發(fā)現(xiàn)三組實驗對比于基線在性能方面都有至少+1.48 BLEU的提升。其中增大filter_size的Combo-2與增加dropout的Combo-3結(jié)果要比Combo-1有更好的翻譯效果,表明參與集成的基模型性能越強(qiáng),模型融合后的性能也會上升。另一方面,根據(jù)Combo-3實驗結(jié)果,增加dropout的單模型性能比filter4096平均高0.23 BLEU,但模型融合的結(jié)果反而要略低于Combo-2。這里我們猜想是由于dropout本身蘊(yùn)含著集成學(xué)習(xí)的思想,因此融合4個dropout模型的性能上升的幅度會有所下降。
不同模型結(jié)構(gòu),不同初始化種子本實驗主要為了對比更多樣化的模型結(jié)構(gòu)能否帶來更大的性能提升。為了增加模型間的差異性,我們在transformer_base參數(shù)設(shè)置的基礎(chǔ)上:
圖6 組間是不同的模型結(jié)構(gòu),組內(nèi)是不同的隨機(jī)初始化種子
(1) 加入注意力模型與前向網(wǎng)絡(luò)的dropout;
(2) 調(diào)整dropout大小至0.2;
(3) 將filter_size由2 048增大至4 096;
(4) 使用transformer_big參數(shù)設(shè)置,由8頭增加至16頭、隱層大小由512增加至1 024、filter_size由2 048增加至4 096、residual_dropout由0.1增大至0.3;
(5) 引入相對位置表示。
根據(jù)表2的實驗結(jié)果我們發(fā)現(xiàn)增加注意力和激活函數(shù)的dropout與增大前饋網(wǎng)絡(luò)的filter_size以及使用相對位置均會提高模型的翻譯性能。如表1中Combo-4與Combo-5的BLEU值比基于Base模型結(jié)構(gòu)的Combo-1的BLEU分別高0.40與0.47 BLEU。此外,考慮到參與模型融合的各個單模型之間的性能差異,觀察實驗Combo-5比Combo-2仍高0.18 BLEU,從而驗證了“模型間的差異性越大,模型融合的結(jié)果會越強(qiáng)”的結(jié)論。
表1 不同策略模型融合實驗在WMT17-test測試集結(jié)果
表2 WMT 17-test不同參數(shù)的單模型結(jié)果
3.4.2 數(shù)據(jù)多樣性實驗結(jié)果
使用fine-tuning構(gòu)建子模型本實驗主要在保持源語端與目標(biāo)語端詞表前后一致的前提下,從訓(xùn)練語料中采樣出4份不同的訓(xùn)練數(shù)據(jù),每份約4MB句子,分別在Baseline模型的基礎(chǔ)上,對其進(jìn)行繼續(xù)訓(xùn)練。由于Baseline模型已經(jīng)在原有的16M訓(xùn)練集上達(dá)到收斂效果,我們從最新的模型保存點繼續(xù)訓(xùn)練5輪左右,讓Baseline模型對不同的訓(xùn)練數(shù)據(jù)保持敏感,從而增加了Ensemble模型之間的差異性。如圖6所示,在原有Baseline模型基礎(chǔ)上進(jìn)行微調(diào),大部分模型會在測試集上略有下降,但Finetune4模型比Baseline高近0.30 BLEU。造成這種現(xiàn)象的原因是由于fine-tuning過程中數(shù)據(jù)是隨機(jī)從原始訓(xùn)練數(shù)據(jù)中采樣的,與測試集句子相近的訓(xùn)練集會直接導(dǎo)致模型的性能上升。根據(jù)這一實驗現(xiàn)象我們使用測試集的源語端數(shù)據(jù)訓(xùn)練語言模型,在訓(xùn)練數(shù)據(jù)中挑選與測試集相近的訓(xùn)練集,每個模型的BLEU都在0.1~0.2上升區(qū)間內(nèi)。在fine-tuning后的模型基礎(chǔ)上進(jìn)行模型融合實驗發(fā)現(xiàn)BLEU值上升了0.20。這一實驗現(xiàn)象驗證了隨著Ensemble子模型性能的提升,模型融合后的性能也會有一定的提升??紤]到訓(xùn)練周期與硬件代價問題,通過fine-tuning方式構(gòu)造子模型是一個高效的手段。
使用bagging構(gòu)建子模型本實驗主要在16MB訓(xùn)練數(shù)據(jù)的基礎(chǔ)上,重采樣(無放回)出4份總數(shù)據(jù)量80%的子樣本?;诿總€樣本使用Baseline參數(shù)設(shè)置訓(xùn)練出4個模型,每個模型在WMT17測試集上的表現(xiàn)如圖6所示,從實驗結(jié)果觀測到各個子模型的翻譯性能與基線系統(tǒng)相近,沒有明顯的下降現(xiàn)象。通過模型融合之后的結(jié)果見表1中的Combo-7,比基線提升1.18 BELU。對比Combo-1實驗結(jié)果,使用bagging手段進(jìn)行模型融合的結(jié)果提升幅度要略小一些,這是由于機(jī)器翻譯任務(wù)本身數(shù)據(jù)量比較大,少量數(shù)據(jù)的變化對性能影響不大。
3.4.3 更多樣的模型
結(jié)合模型與數(shù)據(jù)多樣性的模型融合結(jié)論,在本節(jié)驗證使用更多、差異性更大的模型,是否會在翻譯性能上帶來正向效果。我們分別融合了4個、8個、12個、16個模型進(jìn)行相應(yīng)的對比實驗。圖7實驗結(jié)果表明,參與模型融合的子模型數(shù)量與其翻譯性能是正相關(guān)的。在增大參與預(yù)測結(jié)果融合的子模型數(shù)量的同時,翻譯性能整體也會保持上升的趨勢。值得注意的是當(dāng)模型數(shù)量上升到一定臨界值時,上升的幅度會變小,甚至?xí)晕⑾陆?。?dǎo)致這種現(xiàn)象的原因是伴隨著模型融合的數(shù)量上升,子模型間的差異性越來越小,因此在增加模型數(shù)量的同時也要兼顧模型之間的多樣性,我們將在3.5節(jié)介紹多樣性的評價指標(biāo)。為了解決這個問題,我們通過調(diào)整網(wǎng)絡(luò)的超參數(shù),同時調(diào)整fine-tuning的手段來進(jìn)一步增加模型間的多樣性,最終融合12個子模型取得了最好的翻譯結(jié)果,如表2中Combo-11所示,在測試集上的BLEU值為28.59,對比Combo-1高出0.89個BLEU值。同時,觀察集成8個模型的3組不同實驗我們發(fā)現(xiàn),模型之間的差異性越大,融合后提升的效果越顯著。
圖7 模型融合數(shù)量與性能之間的關(guān)系
本節(jié)我們將介紹模型之間多樣性的評價標(biāo)準(zhǔn)與Ensemble系統(tǒng)的時間復(fù)雜度開銷。
多樣性模型間的多樣性決定了多個模型進(jìn)行融合后翻譯性能的漲幅。本文通過計算不同模型預(yù)測出的譯文與參考譯文之間的N-gram分?jǐn)?shù)來評估多樣性的大小。我們使用multi-bleu.perl腳本,將多個模型的譯文作為參考答案,并使用參考譯文作為假設(shè),計算模型間的N-gram相似度。如表3所示,我們混合不同單模型在測試集上的預(yù)測集合,發(fā)現(xiàn)當(dāng)模型數(shù)量一定時,模型之間結(jié)構(gòu)差異性越大,模型之間的多樣性越高;此外,伴隨著模型數(shù)量的增加,模型間的多樣性增大,但增大的幅度越來越小。通過對比模型數(shù)量為4時的不同模型結(jié)構(gòu)的前3組實驗,我們發(fā)現(xiàn)使用dropout的多樣性指標(biāo)略低于其他兩組,因此使用該設(shè)置進(jìn)行預(yù)測結(jié)果融合后,模型性能的漲幅也低于其他兩組,與3.4.1實驗現(xiàn)象相吻合。
表3 多樣性分析
復(fù)雜度Ensemble模型進(jìn)行預(yù)測的時間復(fù)雜度在不考慮卡間參數(shù)傳遞損失的前提下,與單模型相近。但在真正的推斷過程中,我們在預(yù)測每個詞時都采用同步的方式來整合不同卡上模型計算出的概率分布向量,因此卡間的信息傳遞占用了很大的時間開銷。此外,由于不同模型結(jié)構(gòu)的計算量不同,會導(dǎo)致解碼速度不統(tǒng)一,容易造成木桶效應(yīng)。根據(jù)對不同數(shù)量的模型進(jìn)行Ensemble實驗,伴隨著數(shù)量的增加,解碼所需的時間也變長。因此提高卡間的傳輸速率會大幅度提升集成學(xué)習(xí)在實際應(yīng)用中的效率。
表4中我們展示了模型參數(shù)平均與預(yù)測結(jié)果融合的最好結(jié)果,實驗結(jié)果表明: 對比Transformer_base單模型,參數(shù)平均的方法提升了0.82個BLEU值,在參數(shù)平均的基礎(chǔ)上融合12個模型得到3.19個BLEU值提升。
表4 WMT17中英測試集結(jié)果
最近神經(jīng)機(jī)器翻譯越來越受到外界關(guān)注,現(xiàn)有的大多數(shù)工作都是針對模型結(jié)構(gòu)的改進(jìn)與經(jīng)驗性方法的集成。近年來出現(xiàn)很多在解碼端融入不同手段來啟發(fā)式地改進(jìn)翻譯性能的工作,常見的手段有將集成學(xué)習(xí)的思想融入翻譯推斷過程[8-11]、融合最小貝葉斯風(fēng)險到NMT[24]、使用不同系統(tǒng)得到有差異性的翻譯結(jié)果、通過系統(tǒng)融合的方式利用混淆網(wǎng)絡(luò)來重構(gòu)翻譯結(jié)果[25]等。
本文重點關(guān)注集成學(xué)習(xí)在神經(jīng)機(jī)器翻譯中的應(yīng)用,致力于探索一種更有效的融合方式。近期Vaswani等提出了基于自注意機(jī)制的Transformer模型,顛覆了研究人員的認(rèn)知,更快的模型訓(xùn)練收斂時間與更顯著的性能優(yōu)勢讓Transformer代替了循環(huán)神經(jīng)網(wǎng)絡(luò)成為了最受歡迎的端對端翻譯模型。文章中,Vaswani提出了對最后N個模型保存點進(jìn)行參數(shù)平均可以得到方差更小、性能更強(qiáng)的單模型,但并沒有詳細(xì)地介紹如何設(shè)置模型的保存間隔與參數(shù)平均模型的個數(shù)。Sennrich等在WMT16比賽[8]中第一次提出對單一模型的最后4個保存的模型進(jìn)行參數(shù)平均,并且在WMT17比賽[9]中嘗試用不同的超參數(shù)訓(xùn)練了4個不同結(jié)構(gòu)模型,在中英任務(wù)上比基線有+1.5 BLEU的提升。但他們并沒有詳細(xì)介紹修改超參數(shù)的策略從而獲得差異性更大的模型。另一方面,他們只采用了4個模型進(jìn)行融合,沒有嘗試更多的模型是否能進(jìn)一步提升翻譯的性能。搜狗[10]與廈門大學(xué)[11]均在WMT17的中英與英中比賽使用了預(yù)測結(jié)果融合的手段取得了性能的提升,但同樣也沒有給出融合更多樣模型的實驗結(jié)論。除此之外,F(xiàn)reitag M[26]等使用老師—學(xué)生(teacher-student)框架讓網(wǎng)絡(luò)結(jié)構(gòu)更簡單的單模型去逼近Ensemble模型的性能,同樣并沒詳細(xì)介紹選取模型的策略。
本文通過大量的實驗對比分析集成學(xué)習(xí)在NMT中的應(yīng)用方法,針對模型與數(shù)據(jù)多樣性,特別在更多模型融合方面給出了經(jīng)驗性結(jié)論,翻譯性能得到顯著地提升。
本文的主要貢獻(xiàn)在于結(jié)合模型參數(shù)平均與預(yù)測結(jié)果融合兩種集成學(xué)習(xí)在NMT中的應(yīng)用手段,在大規(guī)模語料上進(jìn)行實驗,總結(jié)了一種更高效的集成方法。一方面我們發(fā)現(xiàn)經(jīng)過參數(shù)平均后的模型有更強(qiáng)的表示能力;另一方面實驗結(jié)果表明在融合模型數(shù)量相同的情況下,更加多樣性的模型組合會在性能上帶來更大的提升,尤其在融合更多模型的角度進(jìn)一步實驗,發(fā)現(xiàn)仍然有較大的提升空間。本文在WMT17中英測試集上,選用12個經(jīng)過參數(shù)平均15后的多樣性子模型,對比于基線提高了近+3.19 BLEU。我們的方式證實了用更多更具差異性的模型進(jìn)行融合能顯著提升翻譯性能,同時對模型多樣性與解碼復(fù)雜度進(jìn)行了系統(tǒng)的分析。
未來我們會在更多的語種方向上來驗證Ensemble實驗結(jié)論的有效性;另一方面模型融合系統(tǒng)對于超參數(shù)長度懲罰alpha非常敏感,我們將從句子級BLEU的角度分析不同alpha對翻譯結(jié)果的影響,并在解碼每一句之前用額外的系統(tǒng)去預(yù)測alpha值,進(jìn)而提升翻譯的性能。