任 眾,侯宏旭,武 靜,王洪彬,李金廷,樊文婷,申志鵬
(內蒙古大學 計算機學院,內蒙古 呼和浩特 010021)
蒙漢機器翻譯屬于稀少資源及少數民族語言翻譯領域任務,對于促進語言、文字和文化交流,以及民族團結進步具有重要意義。然而,此類翻譯任務普遍面臨雙語對齊語料不足,資源稀少,蒙古文形態復雜,翻譯研究時間短,成果少等困難。
本文中共提及四個系統分別為: CNN(Convolutional Neural Network)系統、RNN(Recurrent Neural Network)系統、SMT (Statistical Machine Translation)系統和以上三個系統的句子級融合系統。其中,CNN系統取得最好的翻譯效果(BLEU5-SBP=0.702 4),其次分別是融合系統、RNN系統以及SMT系統。蒙漢翻譯任務主要面臨的困難是資源稀少和蒙古文形態復雜。針對這兩個問題,本文的CNN系統和RNN系統采用短語和字融合訓練方法以獲取多粒度特征,RNN還采用了Giza++對齊指導模型來調整注意力機制產生的對齊;本文的SMT系統采用了從小粒度到大粒度的重對齊算法。通過蒙古文形態分析,對格的附加成分進行預處理。這幾種模型和語言學方面的處理技術都使得蒙漢翻譯實驗結果有顯著提升。本文將CWMT2017去重后的蒙漢測試集作為測試集合進行測試,并對實驗結果進行了比較和說明。
蒙古文詞匯豐富,形態構成復雜。因此,蒙古文的形態分析是語料預處理的關鍵步驟,對翻譯結果有著重要影響[1]。本文對蒙古文語料進行了格的附加成分的預處理。
蒙古文有多種詞綴。其中一種稱為格的附加成分,通常為蒙古文詞綴中的最后一個附加成分,包含部分句法信息。例如,名詞在句子中作為主語還是賓語,就通過其后綴接的格的附加成分來說明。對格的附加成分的處理對詞本身的詞性、詞義影響不大。蒙古文中格的數量龐大,因此對其進行預處理可以充分緩解數據稀疏。有別于一般處理蒙古文詞綴的方法,我們只對蒙古文進行格的附加成分預處理[2]。
圖1列出蒙古文中的七類格的附加成分的樣例。我們通過編碼方式識別出格,進行處理。

圖1 格的附加成分
格的附加成分處理方法主要有三種[3]。第一種是將控制符去除,然后將格的附加成分與前面的詞干進行連接,形成一個新的詞,這種處理方法意義不大。第二種方法是將控制符與格的附加成分一同去除,只留下詞干部分。第三種方法是將格的附加成分保留,但與詞干分開,作為新的處理單元。經過實驗證明第二種方法在緩解數據稀疏方面最為有效,在SMT上表現最好。本文在SMT實驗中采用去除格的附加成分的方法(第二種方法)。然而,這種方法在NMT系統上卻不如切分并保留格(第三種方法)效果更好。因為,NMT擅長處理更多特征,去除格會丟失一部分句法特征,不利于NMT網絡的學習。
表1分析了格的處理對語料數據稀疏性的影響。沒有進行任何處理的蒙古文語料單頻詞數量巨大,處理后的蒙古文數據稀疏問題明顯改善。格處理對翻譯結果的提升也比較顯著。

表1 蒙古文預處理數據稀疏分析
在實驗中本文搭建了CNN、RNN以及SMT三個系統。在基于神經網絡的CNN和RNN模型中采用了短語和字融合訓練方法;對RNN模型中還采用了Giza++對齊指導模型;在SMT上采用了基于小粒度向大粒度重對齊的SMT模型[4]。SMT的譯文結果BLEU得分低于CNN和RNN系統譯文結果BLEU的得分,但該重對齊模型為SMT基線系統帶來明顯的翻譯效果提升。本文采用了基于雙語N-gram詞嵌入的相似度重排序方法對三個各異的系統進行句子級重排序,但由于語料規模較小,雙語詞嵌入相似度準確率受限,融合系統結果并沒有高于最優的單系統。
2.1.1 CNN系統概述
本文的CNN系統采用以Facebook AI Research開源系統fairseq為基礎構建的蒙漢翻譯系統[5-6]。該系統實現序列到序列翻譯,系統架構分為編碼器和解碼器兩部分。兩部分均利用CNN卷積核獲取短距離依賴信息,并通過增加CNN深度來獲取遠距離依賴信息。此外,每層解碼器配備一個注意力機制。下面對該架構進行介紹。
1. 位置向量。因CNN無法獲取輸入詞在句子中的位置信息,故需要在輸入詞時為詞添加位置信息。CNN輸入為詞向量與位置向量相加形成,這里位置向量為詞在句子中的絕對位置向量,如式(1)~式(4)所示。
其中,x表示輸入序列,w表示輸入序列對應的詞向量,p表示位置向量,e表示詞向量和位置向量相加而成的CNN的輸入向量。
2. 卷積層結構。編碼器和解碼器使用相同的卷積層結構,每一層均由一個一維的卷積網絡加一個非線性層組合而成,如式(5)、式(6)所示。

3. 多步注意力。解碼器部分為多層深度CNN結構,系統為解碼器每一層都配備一個注意力機制,如式(7)~式(9)所示。

2.1.2 RNN系統概述
RNN在基于注意力機制GroundHog開源RNN系統上重現神經網絡的編碼、解碼翻譯模型[7]。系統由雙向RNN編碼器[8]和解碼器構成。注意力機制基于解碼器隱層狀態zi-1以及相應編碼器隱層狀態hj,針對源語言句子每個處理單元獲得對齊aj,由此得到ci作為編碼器輸出的摘要。在有了前一個編碼器生成的詞wi-1,以及上一個編碼器隱層狀態zi-1和向量ci的基礎上,解碼器更新隱層狀態zi。根據zi對目標詞典中所有詞計算概率分布,如式(10)~式(14)所示。
2.1.3 對齊融合
本文使用的是含有注意力機制神經網絡翻譯系統。注意力建模預測某個目標語言單詞時,對于源語言句子中單詞的依賴關系,稱作對齊權重。基于注意力機制的神經網絡翻譯模型中,對齊權重表示當前產生的目標詞與源語言單詞對齊的概率。而對齊權重的產生依賴于上一個隱層狀態、當前的輸出及前一步產生的目標單詞。神經網絡翻譯模型對齊權重的產生依賴的信息過多導致獨立性較差。當前一個單詞出現翻譯錯誤會影響神經網絡下一步對齊結果的準確性。與注意力機制模型的對齊相比,IBM翻譯模型產生的對齊結果更為準確。在IBM翻譯模型中目標語言句子中的第i個單詞與源語言句子中第j個單詞對齊的概率僅依賴于源語言的第j個詞以及第j個詞的位置。每個對齊位置的產生過程均有很好的獨立性。所以本文使用Giza++的對齊結果[9]指導神經網絡訓練從而提高翻譯結果。
神經網絡翻譯模型的代價函數是利用系統的翻譯結果與標準譯文的相似度衡量的。為了提高注意力機制產生的對齊結果,本文把Giza++產生的對齊結果作為標準的對齊加入到神經網絡翻譯模型的訓練中,使神經網絡注意力對齊權重的訓練過程變為有監督的訓練。通過修改代價函數將Giza++的對齊加入到神經網絡翻譯模型中,神經網絡翻譯模型的代價函數包含兩部分: 一部分是原本的翻譯代價Lde(y,x),另一部分是新加入的對齊代價,如式(15)所示。
(15)
其中,A是統計方法的對齊矩陣,a是神經網絡翻譯模型的注意力權重。T是目標語言句子長度,s和t是源語言句子和目標語言句子單詞下標。
神經網絡翻譯模型與基于統計方法的對齊結果意義不同,若要融合兩種對齊,需把統計方法的對齊結果轉換為可以融合到神經網絡的訓練中的對齊。加入對齊后重新定義的代價函數,如式(16)所示。
Loss=wal·Lal(A,a)+(1-wal)·Lde(y,x)
(16)
其中,wal是對齊代價和翻譯代價的線性組合權重。
2.1.4 多粒度融合
目前的神經網絡機器翻譯(NMT)模型傾向于為解碼器采用較小粒度的翻譯單元,來減少由有限的目標詞典引起的未登錄詞(OOV)問題[10-11]。然而,句子級別翻譯任務本身需要更大的語義單位。因此,基于短語的SMT模型也優于基于詞的SMT模型。此外,短語和詞包含比字或字符更完整和精確的語義特征[12]。通過句法分析或共現概率等方法獲得的短語包含更多的句法特征。尤其對于缺乏局部特征表示的RNN,短語能夠為解碼提供更多的局部語義和句法特征選擇。
如何解決這種矛盾呢?本文提出了一種短語和字符多粒度融合方法。我們引入短語和字詞混合解碼器,在訓練中使短語和字詞共享向量空間和概率空間,且不設置選擇粒度的優先級,解碼器根據共享概率空間中的概率分布選擇粒度。這有別于一般的一個解碼器對應一個解碼器的模型,一個源語言句子映射到解碼器中的兩個不同切分粒度的目標句子,即短語級和字級的漢文句子序列。2.1.3中所述的加入對齊信息的有監督訓練的注意力機制,將不同粒度的目標語言單詞與源語言單詞對齊,同時得到短語和字詞在同一空間的概率分布。如圖2所示,左邊為漢文字級的解碼器,右邊為漢文短語級的解碼器。本文提及的短語是從語料庫中得到的連續出現的相鄰詞和字,可以通過基于淺層句法分析[13]或共現詞概率分析[14]等方法獲得。

圖2 多粒度融合的注意力循環神經網絡解碼器模型
多粒度融合方法,是由解碼器來選擇粒度較大還是較小的單元作為翻譯候選。短語和字符的聯合訓練尤其適合于稀少資源翻譯任務,一方面豐富了NMT解碼器的多個粒度特征,另一方面擴大了訓練語料。短語和字按照詞頻排序進入目標詞典。中文常用詞匯和短語的數目龐大,但常用漢字不超過一萬字。因此,即使限制目標詞典大小,絕大部分中文字也都在詞典中。聯合訓練在解碼端共享字和短語概率分布,因而即使目標詞典中沒有充足的短語表示,也能夠通過選擇概率相近的字來避免未登錄詞問題。此外,由于稀少資源翻譯中一般語料和目標詞典都很小,訓練時間和復雜度有限,可以在訓練中不限定目標詞典規模。這種情況下聯合訓練方法充分擴大了詞典和多粒度特征,可以取得更理想的效果。我們提出的聯合訓練方法在蒙漢機器翻譯NMT系統上提升明顯。
2.2.1 系統描述
我們使用 Moses作為統計機器翻譯的基礎系統[15],采用基于短語的統計機器翻譯解碼方式進行解碼[16],GIZA++進行詞對齊,采用Och等提出的MERT進行權值的優化[17],使用3-gram語言模型。
2.2.2 重對齊模型
本文在SMT系統上也采用了多粒度的融合。基于蒙古文和漢文都存在多粒度切分的可能,而統計機器翻譯的對齊模型和解碼模型,分別在小粒度和大粒度上會取得更好的效果。因此,我們提出了一個基于小粒度融合為大粒度的轉換算法。對齊階段采用漢字和蒙古文詞干的小粒度,在解碼階段無誤差合成大粒度的漢文詞和蒙古文詞進行解碼,以通過在保證解碼大粒度優勢不變的前提下,優化對齊模型。從而在整體上優化統計機器翻譯模型,獲得更好的譯文質量。該方法流程圖如圖3所示。

圖3 多粒度對齊融合模型流程圖
本文使用基于雙語N-gram詞嵌入的相似度計算方法來對多個系統譯文進行句子級重排序。該重排序方法由于沒有利用各系統內部產生的概率分布,因而可以對多個完全不同的模型譯文進行重排序。也正因為如此,其排序算法全部依賴于雙語向量表示。然而在蒙漢雙語語料規模較小、單語語料領域龐雜的情況下,在重排序上的表現不穩定。參與融合的三個系統為第3節描述的CNN、RNN和SMT系統字級別譯文。
實驗數據均基于CWMT2017提供的蒙漢評測提供的訓練集(26.16萬句)、開發集(1 000句)和測試集(1 001句)。由于測試集重復問題,本文實驗中所采用測試集為去重后的678句。評測指標為BLEU5-SBP。實際訓練數據包含訓練集和開發集經過長度處理后的全部數據。中文語料處理方面采用中科院計算所開發的ICTCLAS中文分詞系統按字進行切分。
為了分別分析多粒度融合方法和對齊指導方法對RNN的影響,本文從CWMT2017提供的蒙漢雙語語料中隨機抽取了五組包含1 000句的語料作為測試集。
本文的CNN系統使用Facebook AI Research開源系統fairseq。CNN翻譯系統,系統參數配置如下: 編碼器層數5層,解碼器層數9層,解碼器的每一層均配備一個注意力機制。編碼器和解碼器的核寬度均為3,詞向量維度500,每個隱層單元數量500。batchsize 32,訓練算法Nesterov’s accelerated gradient (NAG)。
RNN系統使用基于注意力機制的開源實現dl4mt-tutorial作為RNN翻譯系統。系統參數配置如下: 詞向量維度500,隱層單元數量500,batchsize 32,訓練算法SGD,優化算法采用adadelta。
SMT系統使用Moses基礎系統。通過Och等提出的GIZA++進行詞對齊,采用Koehn等提出的基于短語的統計機器翻譯解碼方式進行解碼。采用Och等提出的MERT進行權值的優化,使用3-gram語言模型。采用訓練集和開發集為目標語言訓練語言模型,并未采用評測主辦方提供的中文單語語料。
因蒙漢翻譯訓練語料小,詞匯規模小,訓練時間短,所以采用較大詞典對計算復雜度、計算時間和內存占比不僅不會造成過大壓力,還能使取得的翻譯結果明顯提升。因此,CNN和RNN源和目標語言詞典均采用全部訓練語料中獲取的詞(實驗中字和短語融合系統詞典最大,蒙文和漢文詞典均為8萬詞左右)。
表2所示為四個系統以及各模型對比系統。提交的單個系統中CNN系統取得的效果最好,BLEU5-SBP值達到0.702 4;其次是RNN系統為0.599 8,SMT系統為0.568 6。融合系統在對以上三個系統進行句子級別融合時,由于2.3節提到的原因,在開發集上融合系統表現高于單個最好成績。但在評測中融合系統BLEU5-SBP的值為0.668 0,并沒有超過單個BLEU5-SBP值最高的系統。
本文針對字和短語融合方法、對齊指導方法和重對齊方法在各系統基線系統上進行了比較試驗。所有基線系統配置按系統描述所述配置,蒙文進行了格的附加成分預處理,漢語部分均為分字處理。
實驗可見,基于NMT的機器翻譯,無論是RNN和CNN,其在蒙漢機器翻譯上的表現已經超過了SMT。然而,簡單利用神經網絡基礎模型來進行蒙漢翻譯實驗效果并不理想。我們在不對語料進行任何處理,也沒有采用相關技術的情況下,得到的蒙漢NMT和SMT翻譯結果并不理想。而本文將多種粒度融合方法及對齊技術運用于基本的SMT和NMT上,卻取得了非常好的效果。
SMT重對齊方法,通過提高蒙漢雙語對齊準確率來提升模型性能,其實驗結果較基線SMT提升0.053 9個點。
本文使用的RNN是單層循環神經網絡。RNN因其自身的網絡結構,特別適合于序列的建模,尤其適合序列化的自然語言處理問題。從表2中看到,RNN的基線系統與目前較為成熟的SMT基線系統基本持平。而加入多粒度融合和對齊指導技術,RNN網絡已經完全超過了傳統的SMT。
機器翻譯不是簡單的序列處理。句子中的詞和短語包含大量重要的局部信息,且對于蒙漢兩種句法差異較大的語言,局部信息顯得更加重要。但是RNN缺乏對局部信息的把握,相比CNN的優勢就在于學習局部信息,且CNN可以在有限的實驗條件下采用多層網絡,獲取全局信息。因此,從實驗中也取得了更好的效果。
CNN和RNN中,均使用了字詞和短語融合方法,且都使得系統有較為顯著的提升。
如表3所示,RNN中單獨加入Giza++對齊指導方法,提升相對較小。加入多粒度融合的方法,在缺乏局部信息學習的RNN網絡中加入短語級的局部信息,因此,BLEU值均有顯著提升,且Contrast c對比RNN基線系統BLEU5-SBP提升了0.092 3個點。

表3 RNN對比實驗結果
在CNN中加入多粒度融合方法后提升0.122 8個點,提升非常明顯。CNN本身就是通過抽象局部信息來得到全局信息,因此多粒度融合方法對于CNN來講,主要是通過擴大訓練集語料大小以及豐富目標詞典中的語言現象來提升翻譯效果。
本文還參考了CWMT2015最佳系統以及CWMT2017廈門大學和呼和浩特民族學院的測試結果,如表4所示。在完全相同的語料條件下,本文的CNN和融合系統均已趕超了CWMT2015最佳系統(best in 2015);廈門大學的參賽系統(S12-primary-a)主要運用了蒙古文轉拉丁以及多系統融合等方法,可以看到的CNN以及多系統融合系統效果要好于廈門大學的最好結果;呼和浩特民族學院(S8-primary-a)主要在SMT使用了與本文類似的方法對蒙古文詞綴進行了處理,且在蒙古文端使用了BPE算法。可以看出,SMT中加入重對齊方法的效果與該系統基本持平,且本文其他三個系統明顯好于該系統。

表4 多單位對比實驗結果
本文構建了三個蒙漢翻譯系統,以及一個融合系統,分別使用多種技術提升翻譯效果。并在實驗中對多種系統及技術進行了比較研究。
在蒙漢機器翻譯任務中,最為嚴峻的兩個問題就是資源較少,不足以訓練出好的SMT或者NMT系統,以及蒙古文本身形態復雜,難以處理。二者也是困擾資源稀少翻譯任務,或者說少數民族語言翻譯任務的主要問題。在對蒙漢翻譯進行研究的過程中,我們發現: 一方面蒙古文的處理對其翻譯質量有較大的影響,尤其是形態分析與處理,但是僅僅依靠形態分析難以進一步提升;另一方面在大語種任務上取得成果的一些技術方法如何因地制宜地用到蒙漢翻譯上,如何開發適用于蒙漢,乃至整個稀少資源語言翻譯任務特殊性的翻譯技術方法,則更為重要。
本文在蒙漢翻譯研究中,重視蒙古文的形態分析和處理,進行了大量實驗來分析多種處理方法對不同翻譯模型的影響。同時及時學習國內外機器翻譯研究優秀成果,研發多種蒙漢翻譯系統及其融合技術。此外,針對蒙漢翻譯實際研究中遇到的困難和不足,提出多種具有創新性的技術方法,這些技術方法對蒙漢翻譯有顯著提升。