陳 馳
(北京七彩拇指科技有限公司,北京 100079)
Transformer全新模型結構于2017年提出,其不再依賴循環和卷積兩種神經網絡,而是應用自注意力機制,提升了機器翻譯的性能。為解決神經機器翻譯存在的缺點,提供了研究單語數據訓練機器翻譯模型的新思路。2017年,行業專家通過無監督方法的應用完成了跨語言嵌入,訓練后獲得了詞對詞模型,在此基礎上,通過降噪處理和反向翻譯方式,實現了偽平行語料的生成,并通過訓練得到結果。隨后在2018年,相關專家學者依據前期工作,將無監督神經機器翻譯過程總結為三個步驟(也稱三項原則):①詞對詞模型初始化;②基于單語語料,訓練源語言模型、目標語言模型,在訓練中采用降噪自編碼器方式;③轉換無監督,使之成為有監督形式,在轉換過程中采用反向翻譯方法。由于不同語言的詞匯不同,語言結構和語法卻類似,所以應用多任務學習策略,對無監督的多語言神經機器翻譯進行訓練,其目的在于學習不同目標語言中有價值的語義信息、結構信息[1]。
下面以Transformer模型結構為基礎展開研究,通過這一模型,為各類語言建立編碼器和解碼器,實現部分參數共享,并結合上述三項原則,在三種語言之間構建訓練任務,即英語、德語、法語,進而得到訓練模型。
2.1.1 Transformer架構
Transformer并不依賴循環和卷積兩種神經網絡,而是通過自注意力機制,實現端到端的神經機器翻譯,這是Transformer的關鍵特點。所謂自注意力機制,指的是對句子中的每個詞及其他所有詞進行注意力計算,作用在于對句子中的依賴關系加以學習,以此獲取句子內部結構。在Transformer架構中,無論是編碼器,還是解碼器,都是多層網絡結構且包含諸多相同層。各子層都應用殘差方式進行連接。
2.1.2 雙語單任務無監督神經機器翻譯模型
在這一模型訓練過程中,僅應用Transformer結合三項原則對單個訓練任務進行訓練,這種單個任務為英語→法語、英語→德語以及德語→法語中的其中一種。在研究中,源語言用S表示,目標語言用T表示,源語言單語訓練出的語言模型用Ps表示,目標語言單語訓練出的語言模型用Pt表示,源語言到目標語言翻譯模型的預測概率用Ps→t表示,目標語言到源語言翻譯模型的預測概率用Pt→s表示。無監督神經機器翻譯過程主要包括以下三個環節。
(1)初始化。模型的初始化方式有兩種:①基于Word2vec對兩種語言的詞向量進行單獨訓練,進而通過變換矩陣學習,在相同潛在空間中映射兩種語言的詞向量,以此得到具備較高精確度的雙語詞表;②使用字單元,即單詞的字節對編碼,這種方式不僅能減小詞表大小,還能清除翻譯中存在的未知問題[2]。
(2)語言模型。在雙語單任務無監督神經翻譯模型中,需要對語言模型降噪自編碼器最小損失函數予以明確,即:
從本質上講,語言模型訓練過程是將噪聲加入處理后的句子C(x)作為源端輸入句子,而目標端輸入句子則為原始句子x,進而以[C(x),x]為平行句子對進行訓練。
(3)反向翻譯。在這一過程中以偽平行句對為平行句對進行訓練,損失函數公式為:
在反向翻譯過程中,主要以[u*(y),y]和[u*(x),x]為平行句對進行訓練,轉換無監督問題,使之成為有監督問題。而語言模型和反向翻譯環節反復迭代的過程,為雙語單任務無監督神經機器翻譯模型訓練的過程。
2.1.3 多語言多任務無監督神經機器翻譯模型
這一模型是基于Transformer架構,并結合前文所講三項原則,對多任務訓練后得到的模型[3]。多語言多任務無監督神經機器翻譯模型主要由編碼器、解碼器、生成對抗網絡以及潛在空間四部分組成。其中,編碼器和解碼器內部都包括四個子層,并分別共享編碼器、解碼器的后三層參數和前三層參數。為使共享潛在空間的作用得到強化,通過生成對抗網絡的訓練,針對不同語言所對應的編碼器建立不同任務,其目的是對編碼語言的所屬類別進行預測,進而基于最小化交叉熵損失函數實現優化,即:
式中,EX(S’)指的是通過語言X編碼器對當前編碼句子S’進行預測后得到的結果,而當前編碼的句子可能源于源語言,也可能源于目標語言;θD表示生成對抗網絡的參數。為對這一生成對抗網絡進行訓練,還要優化訓練編碼器。
本文針對英語、法語、德語三種語言之間的無監督神經機器翻譯進行實驗,并利用評測標準雙語互譯評估值對實驗的翻譯性能予以評估。
(1)在實驗訓練集的選擇上,抽取WMT2007~2010語料庫中三種語言的單語句子各1 000萬行;在開發集的選擇上,采用數據集newstest 2012中的德語?英語、英語?法語以及德語?法語任務;在測試集的選擇上,采用數據集newstest2013中的德語?英語、英語?法語以及德語?法語任務。
(2)實驗優化器選用Adam,設置失活率為0.1,設置單詞維度、最大句子長度分別為512、175。在句子超過175個單詞時,會截取超出部分,設置訓練步長為35 000,其他參數依據Transformer模型默認參數進行設置。
(3)在三種語言翻譯模型中進行三種語言的詞表共享,并將BPE操作數設置為85 000,基于fastText工具的應用,基于子詞化的訓練集進行跨語言詞向量學習訓練。
(4)設置對比實驗,在以往雙語單任務無監督神經機器翻譯模型中,對兩種語言詞表進行共享,并將BPE操作數設置為60 000,其他參數依據多任務無監督神經機器翻譯模型進行設置。
單任務、多任務無監督神經機器翻譯模型在測試集上的翻譯性能如表1所示。從表1中數據可知,雖然多任務無監督神經機器翻譯模型在四項翻譯任務上得到顯著提升,但提升效果存在差異性。在英語→德語和德語→英語這兩項翻譯任務上,測試結果BLFU提升程度較小;但在德語→法語和法語→德語這兩項翻譯任務上,測試結果BLFU提升程度較大;而在英語→法語和法語→英語這兩項翻譯任務上,多任務無監督神經機器翻譯模型的翻譯性能相較于單任務模型有所下降。因此,在p為0.01顯著性測試中,本研究模型在四項翻譯任務上翻譯性能良好,即英語→德語、德語→英語、德語→法語、法語→德語[4]。

表1 兩種模型翻譯性能比較
在該多任務無監督神經機器翻譯模型中,需要共享多種語言的詞表,所以關鍵在于合理選擇詞表大小,基于此,文章多次開展實驗進行比對,實驗結果如表2所示。

表2 不同詞表大小實驗結果對比
從表2中數據可知,在85 000和90 000的BPE操作數設置下,所獲得的實驗結果較好,但兩組實驗結果BLEU值相差較小。而且在部分語言對中,BPE操作數設置為90 000時的BLEU值比設置成85 000時的BLEU更低。因此,加大詞表大小不能顯著提升試驗結果,在該模型中,最終設置BPE操作數為85 000。
為直觀地對比翻譯性能和訓練速度,文章以統計方式匯總了實驗中需要訓練的各項參數。通過統計結果可知,多語言多任務翻譯任務參數數量是雙語單任務翻譯任務參數數量的1.3倍左右,兩者總參數分別為1.3×108和1.7×108,數值遠遠小于六個翻譯任務單獨訓練的參數總和。與單任務無監督神經機器翻譯相比,多任務無監督神經機器翻譯訓練時長縮短了一半左右。為直觀對比翻譯性能和訓練速度,針對兩種模型在翻譯效果變化最為顯著的德語→法語和法語→德語任務,利用折線圖呈現兩種模型效果,如圖1所示。
從實驗結果可知:①多任務無監督神經機器翻譯確實能改善翻譯性能,但針對不同種類語言的翻譯任務,翻譯效果存在差異性。②針對本身具備較好翻譯效果的語言種類,如果利用多語言多任務無監督神經機器翻譯模型進行翻譯,提升翻譯效果并不樂觀,甚至會產生反向作用;而針對本身具備較差翻譯效果的語言種類,如果利用多語言多任務無監督神經機器翻譯模型進行翻譯,可能會獲得顯著效果,出現這一結果的原因是訓練數據采樣對低資源語言對更有利所致。③多語言無監督神經機器翻譯可同時建立多種語言的翻譯任務,從而顯著減少訓練所需要的總時長[5]。
為解決神經機器翻譯存在的缺點,文章主要探究基于無監督學習的多語言神經機器翻譯模型。通過分析多任務學習在無監督神經機器翻譯中的應用,并針對部分語言提出了能提升翻譯性能的訓練模型,在聯合訓練多個訓練任務的基礎上,讓源語言在向目標語言的翻譯過程中學習第三種語言單語語料中有價值的語義信息和結構信息。本文研究的基于無監督學習的多語言神經機器翻譯模型,不僅能顯著提升翻譯性能,還能在多種語言對的翻譯中有效縮短訓練時長。■