朱相榮,王 磊*,楊雅婷,董 瑞,張 俊
(1.中國科學院新疆理化技術研究所,烏魯木齊 830011;2.中國科學院大學,北京 100049;3.中國科學院新疆理化技術研究所新疆民族語音語言信息處理實驗室,烏魯木齊 830011)
(*通信作者電子郵箱wanglei@ms.xjb.ac.cn)
編碼器-解碼器架構是神經機器翻譯(Neural Machine Translation,NMT)的核心思想[1]。基于神經網絡的編碼器-解碼器架構在機器翻譯中取得了很好的性能,并提出了不同的網絡結構,例 如:Sutskever 等[2]提出的循環神經網絡(Recurrent Neural Networks,RNN),Gehring 等[3]提出的卷積神經網絡(Convolutional Neural Network,CNN)以及Vaswani等[4]提出的基于注意力機制的Transformer。雖然它們都取得了不錯的翻譯性能,但由于解碼器均采用自回歸解碼影響了翻譯速度的提升。如圖1 所示,在自回歸解碼過程中目標句子根據源句子表示和目標翻譯歷史從左到右逐字翻譯生成,即第t標記yt遵循條件分布p(yt|x,y<t),其中y<t表示yt之前生成的所有標記。由于每次只執行一個步驟,根據之前生成的序列生成下一個序列,使得解碼不容易并行化。尤其對于支持并行的現代硬件來說很不友好,產生的解碼延遲嚴重阻礙了NMT 系統的翻譯速度,限制了現實場景中的應用。相反,非自回歸模型并行生成目標標記,沒有可用的目標翻譯信息使得翻譯效果不是很好,但它能顯著減少解碼時間,使得圖形處理器(Graphics Processing Unit,GPU)的計算能力得到充分發揮。因此,有效地提升模型解碼速度變得尤為重要。
近年來為了減少自回歸解碼帶來的解碼延遲,研究人員們嘗試了各種方法。Schwenk[5]提出一個連續空間翻譯模型來估計給定源短語在目標短語上的條件分布,同時丟棄目標標記之間的條件依賴性,然而僅限于不超過7 個單詞的短語對。Kaiser 等[6]研究了應用GPU 的神經機器翻譯,評估自回歸和非自回歸方法,發現非自回歸方法明顯落后于自回歸翻譯方法。Gu 等[7]提出一種非自回歸翻譯(Non-Autoregressive Translation,NAT)模型。如圖1 所示,該模型拋棄了自回歸機制,并行生成目標端所有單詞,顯著地減少了解碼延遲,但與自回歸翻譯(Autoregressive Translation,AT)模型相比,它的準確性嚴重下降。NAT模型與AT模型具有相同的編碼器-解碼器架構,只是NAT 模型的解碼器刪除了目標側句子間的順序依賴性,丟棄了自然語言句子中的內在依賴性,在很大程度上犧牲了翻譯質量。由于先后生成單詞之間的依賴關系,對于一個長為n的目標句子,自回歸模型需要O(n)次循環生成它。而非自回歸模型通過減少生成句子的循環次數來提高翻譯速度。根據循環復雜度,可將非自回歸模型分為三類:O(1)即只要一次循環,如Gu等[7]、Wang等[8]和Guo等[9]提出的非自回歸模型,在去除生成目標語句時單詞之間的依賴關系之后,通過解碼器的輸入和預測目標句子的長度來緩解重復翻譯和不完整翻譯;O(k)即需要常數次循環,如Lee 等[10]提出的基于迭代優化,Ghazvininejad 等[11]提出的基于條件遮掩語言模型的非自回歸模型;O(<n)即O(logn)和O(n/k)等循環復雜度的情況,如Stern 等[12]提出的通過插入操作靈活生成目標序列非自回歸模型和Wang 等[13]提出的半自回歸神經機器翻譯模型。因此,一方面要保證模型的翻譯質量,另一方面要提升模型的解碼速度,成為一個新的嚴峻挑戰。
本研究借鑒Lee 等[10]提出基于迭代優化的非自回歸序列模型,將解碼器輸出作為下一次迭代的輸入反饋,對翻譯結果進行迭代優化來提升翻譯效果。該模型由一個潛在變量模型和一個條件去噪自動編碼器組成,除了在解碼器中刪除目標側句子的依賴性之外,與自回歸模型Transformer 具有相同的編碼器-解碼器架構,均采用相同的Adam 方法和warm up 學習率調節策略。本文通過優化該模型的學習率策略,改變學習率調節方法,將訓練中學習率調節方法warm up 換成linear annealing;然后將模型在全國機器翻譯研討會(China Workshop on Machine Translation,CWMT)2017 維漢平行語料上采用不同的學習率調節方法進行實驗驗證;最終得到在linear annealing 上效果優于warm up,與自回歸模型Transformer 的實驗結果對比之后得到當解碼速度提升1.74倍時,翻譯性能達到自回歸翻譯模型Transformer 的95.34%。因此,本文發現使用liner annealing 學習率調節方法可以有效提升維漢機器翻譯的質量和速度。
本文提出的學習率調節方法是基于Lee 等[10]提出的基于迭代優化的非自回歸序列模型,因此下面將簡要介紹該模型。該模型采用編碼器-解碼器架構,可以看作由一個潛在變量模型和一個條件降噪自動編碼器組成。
Lee 等[10]在提出的序列模型中通過引入潛在變量(latent variable)來隱式地捕獲目標變量之間的依賴關系。可以把潛在變量看成解碼器的輸入,通過引入L個中間隨機潛在變量,然后將其邊緣化。

該求和公式內的每一個乘積項由一個神經網絡建模,該神經網絡以一個源語句為輸入,輸出每個t在目標詞匯V上的條件分布。T是指目標語句的長度,Y0,Y1,…,YL分別代表輸出序列每次迭代后的結果。如圖2所示,L個潛在變量代表輸出序列的L+1次迭代優化,則第一次迭代僅依賴源語句X生成初始翻譯結果,接著每一次迭代都根據源語句X和上一輪迭代的結果生成本輪的翻譯結果,分別為Y1,Y2,…,YL。
如圖2 所示,潛在變量L的個數,就代表輸出序列在Decoder2上的L次迭代優化和在Decoder1上的1次迭代優化,總共L+1次。

圖2 潛在變量模型Fig.2 Latent variable model
對于給定的訓練對(X,Y*),即最小化損失函數:

和自編碼器不同的是,降噪自編碼器在訓練過程中,輸入的數據中部分帶有“噪聲”。降噪自編碼器(Denoising AutoEncoder,DAE)的核心思想是,一個能夠從中恢復出原始信號的神經網絡表達未必是最好的,但能夠對帶“噪聲”的原始數據編碼、解碼,然后還能恢復真正的原始數據,這樣的特征才是最好的。Lee 等[10]提出的序列模型中,通過C(Y|Y*)引入正確輸出Y*的損壞數據。Hill 等[14]提出的加入噪聲的方法,最近在Artetxe 等[15]和Lample 等[16]中廣泛地使用,即在目標語句中加入噪聲之后再作為解碼器輸入,文中提出加入噪聲的方法比較傳統,如前后兩次調換順序、替換原詞為詞表中任意一詞等。如圖3 所示,使用加入噪聲的數據隨機地替代圖2 所示的Decoder2 的輸出結果。為了找到在給定加入噪聲數據的前提下,找到原始準確翻譯Y*的最大對數概率。即最小損失函數:


圖3 自動降噪編碼器Fig.3 Denoising autoencoder
總體上訓練模式是:除了第一次迭代,每次迭代的解碼器輸入要么是對目標語句加入潛在變量后的結果,要么是對目標語句加入噪聲后的結果,兩者之間用超參數αl控制。在模型上,如圖2 或3 所示,其中解碼器Decoder1 只負責第一輪的迭代,解碼器Decoder2 負責之后的迭代。因此提出隨機混合潛在變量模型和降噪自動編碼器的損失函數見式(4),用一個超參數αl控制。用式(3)中的隨機取代式(2)中的。

Lee 等[10]提出的基于迭代優化的非自回歸序列模型,如圖2 或者圖3 所示,該模型是通過使用基于Transform 模型改進的。模型訓練采用Adam 方法,使用warm up 的學習率調節方法,公式如下:

該學習率調節方法是指,需要預先設置一個warm_steps超參。當訓練步數step_num小于該值時,step_num*warmup_step-0.5決定學習率,這時學習率是step_num變量斜率為正的線性函數;反之,訓練步數step_num大于warm_steps時,step_num-0.5決定學習率,這時就成了一個指數為負數的冪函數。這樣在規模大的平行語料下,學習率呈現“上升-平穩-下降”的規律,這尤其在深層模型和具有多層感知機(MultipLayer Perception,MLP)層的模型中比較顯著。如果從模型角度來看,學習率的這種變化對應了模型“平穩-探索-平穩”的學習階段。因此warm up 有助于減緩模型在初始階段對小批量數據的過擬合現象,保持分布的平穩,更有助于保持深層模型的穩定性。但是當網絡不夠大、不夠深和數據規模batch size 普遍較小的情況下,網絡不夠大不夠深就意味著模型能夠比較容易地把分布從過擬合中拉回來,數據集比較小意味著batch size 之間的方差沒有那么大。所以,學習率不使用warm up 不會出現很嚴重的學習問題,同時warn up 學習率策略非常耗時間。
但是由于Lee 等[10]提出的該非自回歸的序列模型,是在機器翻譯研討會(Workshop on Machine Translation,WMT)英德平行語料上進行的。該平行語料由于規模比較大,warm up的效果比較好。而本文中所采用的語料是維漢平行語料,該語料比較少,僅有350 000,訓練過程中使用warm up 的學習率方法效果不是很好,而且對時間消耗很大,因此,本文在平行語料國際口語機器翻譯評測比賽(International Workshop on Spoken Language Translation,IWSLT)2016 英-德(196 000),WMT2015 英-德(4 500 000)和CWMT2017 維-漢(350 000)上分別采用學習率調節方法warm up 和linear annealing 進行了實驗(語料信息如表1 所示,實驗結果如表2)。從表2 的實驗結果來看,在平行語料規模比較大的WMT2015上,warm up的效果比較好;而在平行語料規模比較小的IWSLT2016 上,linear annealing 的效果比較好。同時,本文在維漢平行語料上證實了該觀點,由表2 可知,使用linear annealing 的學習率調節方法比warm up 在翻譯質量方面提升接近4 個雙語評估替換(BiLingual Evaluation Understudy,BLEU),在解碼速度方面提升接近200 Tokens/s。因此在CWMT2017 維漢語料上采用linear annealing 學習率調節方法比較好,公式如下:

訓練中設置lr_end=1E-5,anneal_steps=250 000,iters實際訓練步數(200 000)。linear annealing 是一種隨機算法,能夠快速找到問題的最優近似解,用來在一個大的搜尋空間內找尋命題最優解。這種方法區別于簡單的貪心搜索算法。簡單的貪心搜索算法每次從當前解的鄰近解空間中選擇一個最優解作為當前解,直到達到一個局部最優解;但這種方法容易陷入局部最優解,而局部最優解不一定是全局最優解。而linear annealing 算法在搜索過程中加入了隨機因素,以一定概率來接受一個比當前解要差的解,因此很有可能跳出這個局部最優解,達到全局最優解。同時linear annealing 適用于數據集規模比較少、模型不是很深的環境中,能夠快速地達到收斂,相較于warm up,消耗時間更少。由表2 可知,基線系統采用Lee 等[10]提出的基于迭代優化的非自回歸序列模型,在相同的訓練步驟200 000條件下,在維漢平行語料上采用學習率調節方法linear annealing 比warm up 得到的翻譯質量和解碼速度都高,使本研究的觀點得到驗證。因此,本文在該模型中采用學習率調節方法linear annealing 替換原模型中的warm up,實驗結果見表3。最終該非自回歸模型得出的結論與自回歸模型Transformer對比,實驗結果見表4。
數據集采用CWMT2017 發布的維吾爾語-漢語新聞政務評測語料,英-德平行語料訓練集采用WMT2015(4 500 000)和IWSLT201616(190 000)。對于WMT2015采用newstest2014和newstest2013 作為測試集和開發集;對于IWSLT2016 采用newstest2013 作為測試集和開發集。對所有平行語料的所有句子都使用字節對編碼(Byte Pair Encoding,BPE)算法[17]進行標記并分割成子單詞單元。將學習到的規則應用于所有的訓練集、開發集和測試集[18]。維漢語料和IWSLT2016 英-德語料共享大小為40 000 的詞匯表,WMT2015 英-德語料共享大小為60 000的詞匯表。數據集見表1所示。

表1 平行語料Tab.1 Parallel corpus
對于神經機器翻譯結果,本研究采用機器翻譯常用的評價指標機器雙語評估替換(BLEU)[19]值來對模型的翻譯質量進行評價,解碼效率采用Tokens/s和Sentences/s來判定。
基線系統(baseline) 采用Lee等[10]提出的基于迭代優化的非自回歸序列模型中的自回歸模型Transformer,使用小的訓練模型,設 置d_moder=278,d_hidden=507,p_droput=0.1,n_layer=5和n_head=2,t_warmup=746,訓練步數為200 000。分別采用warm up 和linear annealing 的學習率調節方法。訓練結果見表2,在CWMT2017 維漢平行語料上采用策略warm up時,翻譯質量的BLEU 值為43.33 和解碼速度為873.99 Tokens/s作為基線系統(自回歸模型)。
知識蒸餾(Knowledge Distillation) 知識蒸餾被廣泛應用于神經機器翻譯[20]。Hinton 等[21]和Kim 等[22]提出的知識蒸餾被證明是成功訓練非自回歸模型的關鍵。對于翻譯任務,本文使用序列級知識蒸餾來構造蒸餾語料庫,其中訓練語料庫的目標側被自回歸模型的輸出所替代。本研究使用原始語料庫訓練自回歸基線系統,用蒸餾語料庫訓練非自回歸模型。

表2 不同平行語料訓練結果Tab.2 Training results of different parallel corpuses
訓練和解碼 訓練的模型使用Kingma 等[23]提出的Adam[23]優化器。本文的訓練和解碼過程在單個Nvidia Tesla K80 GPU上。根據Lee等[10]的設置,超參數PDAE=0.5。在實驗中采用Oracle 距離作為距離函數,即采用迭代次數自適應時,采用Oracle 作為距離函數,用來求得翻譯質量和解碼速度平衡的最優值。
從表2 的實驗結果顯示,本文在基線系統上通過采用不同的學習率調節方法,很明顯學習率調節方法采用liner annealing時在維漢平行語料上無論是翻譯質量還是解碼速度都優于warm up。尤其在翻譯質量方面,使用liner annealing學習率調節方法比warm up提升4.28個BLEU值。因此,本研究在Lee 等[10]提出的非自回歸序列模型中采用liner annealing學習率調節方法替換warm up,實驗結果見表3。

表3 非自回歸模型訓練結果Tab.3 Training results of non-autoregressive model
從表3 的實驗結果顯示,翻譯質量隨著迭代次數的增加而增加,而解碼效率隨著迭代次數的增加而下降。當iter=1時,非自回歸的解碼器比自回歸模型提升8.37 倍,而翻譯質量僅達到自回歸模型的57.63%;當iter=4時,非自回歸的解碼器比自回歸模型提升1.78 倍,翻譯質量卻達到自回歸模型的92.85%;當iter=10時,使用liner annealing 的解碼速度略高于warm up的解碼速度時,它們的翻譯質量相近。為了在翻譯質量和解碼速度方面達到更好的平衡,本文采取自適應迭代次數,即解碼速度為2 109.36 Tokens/s,翻譯質量的BLEU 值為
41.31 。
從表4 的實驗結果顯示,本文將所采用的非自回歸模型與現有自回歸模型Transformer 的結果進行比較,最終得到非自回歸模型的解碼速度比自回歸模型提升1.74 倍時,翻譯質量可達到自回歸翻譯模型的95.34%,可以實現翻譯質量和解碼速度之間很好的平衡。

表4 自回歸和自非回歸模型結果對比Tab.4 Comparison of results of autoregressive and non-autoregressive models
圖4 展示了從CWMT 2017 維漢數據集中抽取的一個翻譯示例。可以看到非自回歸模型傾向于重復翻譯相同的單詞或短語,有時候會漏掉有意義的單詞。同時,隨著迭代次數的增加,會整體調整句子中單詞順序,使其更接近參考翻譯,翻譯質量也在逐步地提高。

圖4 非自回歸模型翻譯的例子Fig.4 Translation example of non-autoregressive model
本文通過在Lee 等[10]提出的基于迭代優化的非自回歸序列模型上采用不同的學習率調節方法,來驗證學習率調節方法對該模型翻譯質量和解碼速度的影響。最終得到在迭代次數自適應條件下,CWMT2017 維漢語料采用liner annealing 學習率策略可得到翻譯質量為41.31的BLEU 值,翻譯質量可達到自回歸翻譯模型Transformer 的95.34%,解碼速度提升1.74 倍,使其解碼速度和翻譯質量達到一個平衡。在下一步的工作中將研究如何改進該模型,使其在翻譯質量能夠達到甚至超過基線系統的基礎上,解碼速度能夠顯著地提升,讓翻譯質量和解碼速度達到一個更好的平衡。