王 濤,熊德意
(蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006)
隨著深度學習的發(fā)展,基于深度學習的神經(jīng)機器翻譯(NMT)成為機器翻譯的主流方法[1-3]。與傳統(tǒng)的基于統(tǒng)計的統(tǒng)計機器翻譯不同,神經(jīng)機器翻譯沒有特征工程、隱藏結(jié)構(gòu)設(shè)計等方面的困擾,而是簡單地通過訓練一個大型的神經(jīng)網(wǎng)絡(luò)對輸入的句子產(chǎn)生合適的翻譯。盡管神經(jīng)機器翻譯在翻譯質(zhì)量上有著當前最好的結(jié)果,但其端到端的特性使得想要在翻譯的過程中進行顯式的干預是一件很困難的事情。
在許多使用場景中,我們需要神經(jīng)機器翻譯系統(tǒng)使用來自外部數(shù)據(jù)庫的預先定義的翻譯。例如,在跨語言電子商務(wù)場景中,許多產(chǎn)品的品牌名稱是明確的,并且可以直接翻譯成目標語言。這些品牌名稱的錯誤翻譯將導致糾紛。如表1所示,“舒膚佳”在第一句中被直接音譯為“Shufujia”,而在第二個例子中被意譯為“good for skin”,而正確的品牌名稱翻譯應該是“Safeguard”。這個例子說明面對這種情況,當前的神經(jīng)機器翻譯不僅無法保證結(jié)果的準確性,而且缺乏一致性。
表1 品牌名稱錯誤翻譯樣例
通常,給定源句中一句話s=w1,w2,…,wn,其中出現(xiàn)了存儲在雙語詞典中的雙語對(p,q)中的源端p,其中p=wk,…,wl,p應該被翻譯系統(tǒng)直接翻譯為q。 這對當前的神經(jīng)機器翻譯系統(tǒng)是一個不小的挑戰(zhàn)。一方面,神經(jīng)機器翻譯是在連續(xù)空間向量,而非離散空間中運行;另一方面,神經(jīng)機器翻譯以逐詞生成的方式生成目標翻譯,而雙語詞典中指定的翻譯通常包含多個詞。
為了解決上述問題,我們分別從數(shù)據(jù)和模型角度提出了幾種方法,其中模型上的方法是為了配合數(shù)據(jù)方法的使用。數(shù)據(jù)上的方法包括標簽標注、混合短語替換;模型上的方法包括部分詞向量共享和額外向量增強。具體來說,在數(shù)據(jù)處理階段,我們用特殊標簽將訓練數(shù)據(jù)中對來自外部詞典的文本段的開始和結(jié)束的位置打上標記,讓模型學習到關(guān)于特殊標簽的翻譯模式。同時,我們將和源端p等價的q添加到源端,讓模型可以同時看到兩種語言的信息。因為此時源端和目標端同時包含了q,模型可以同時學習q到q的拷貝,以及p到q翻譯,并且學習了跨語言的信息。為了增強標簽以及混合短語替換的作用,我們共享了編碼器和解碼器詞向量的標簽和目標端部分。此外,我們使用了額外的向量來進一步區(qū)分預先定義的詞和其他正常需要翻譯的詞,將在第2節(jié)中詳細介紹。
我們在3個語言對上進行了實驗,包括中文到英語、英語到德語,以及阿拉伯語到中文。實驗結(jié)果表明,本文方法在外部詞典翻譯的準確率上獲得了極大的提高。其中,我們在中英語言對上進行了細致的分析實驗,成功翻譯詞典中預定義短語的概率從基準模型的73.8%增加到98.4%。此方法還在45.70的基準之上實現(xiàn)了1.58個 BLEU的改進。在英語到德語以及阿拉伯語到中文的翻譯中,使用本文方法,翻譯的成功率也分別從91.2%、95.0%(基準)提高到99.3%、99.5%。進一步的實驗分析說明了本文方法的泛化性和魯棒性。
旨在將外部定義的翻譯融入神經(jīng)機器翻譯的方法一般通過修改模型或解碼算法來實現(xiàn)。此外,也有一些通過數(shù)據(jù)進行學習的方法。
Stahlberg等人[4]使用基于層次化統(tǒng)計機器翻譯系統(tǒng)產(chǎn)生的短語作為解碼器的硬解碼約束,從而使神經(jīng)機器翻譯能夠生成更多的符合語法的短語。Tang等人[5]提出了短語網(wǎng)絡(luò),使得解碼器可以根據(jù)外部短語表生成翻譯。 Wang等人[6]嘗試將存儲目標短語的短語存儲記憶集成到編碼器-解碼器框架中。Zhang等人[7]嘗試將先驗知識表示為對數(shù)線性模型中的特征,并集成到神經(jīng)機器翻譯之中。這些工作側(cè)重于修改神經(jīng)機器翻譯模型,從而支持翻譯外部指定的短語。
將預定義雙語詞典融入神經(jīng)機器翻譯的另一種方法是修改解碼時的集束搜索算法。Hokamp等人[8]提出了一種基于網(wǎng)格的集束搜索算法,該算法允許在模型的輸出中出現(xiàn)特定的子序列,其中子序列可以是單字或多字。Chatterjee等人[9]進一步提出了一種“引導”機制,用于增強解碼器處理帶有推薦翻譯文本(以XML注釋形式存在)的能力。上面剛剛提到的幾種方法,盡管它們不會改變神經(jīng)機器翻譯模型的結(jié)構(gòu),但必須在正常解碼以及使用外部翻譯中進行決策和切換,從而嚴重降低了解碼速度。
還有幾種從數(shù)據(jù)上進行增強的方法。Crego等人[10]提出用置位符替換雙語詞典中定義好的詞對,從而讓模型學習對置位符的翻譯,這樣模型在進行翻譯時就可以通過將源端匹配到的詞組替換為置位符,翻譯完成后再替換回去。使用置換符的方式簡單有效,但是由于將詞語替換成了無意義的置位符,源端句子丟失了一定語義,往往會造成BLEU下降。Song等人[11]通過將源短語替換為目標翻譯,并使用指針網(wǎng)絡(luò)來增強對替換短語的拷貝。此方法類似于我們的混合短語替換方法,但是由于指針網(wǎng)絡(luò)方法較為間接,短語被正確翻譯的正確率相對較低。
與以前的工作相比,本文方法成功率高,且不需要引入復雜的解碼算法,很容易復現(xiàn)。
為了用外部詞典中預定義的雙語對(p,q)增強神經(jīng)機器翻譯,我們嘗試通過標簽標注以及混合短語替換來實現(xiàn)目標。為了進一步增強數(shù)據(jù)上的方法,我們使用了額外向量并且共享了部分詞向量。幾種不同的數(shù)據(jù)處理方法如表2所示,對模型的修改如圖1所示。下面將詳細介紹這幾種方法。
表2 幾種不同的數(shù)據(jù)處理方法
2.1.1 標簽標注
標簽標注方法(縮寫為“T”)十分直接。在訓練數(shù)據(jù)集中,源端短語p及其對應的目標端短語q均被兩個標簽包圍,即
2.1.2 混合短語替換
短語替換(R)的方法源自于一個符合常識的直覺: 對于深度神經(jīng)模型來說,學習拷貝要比翻譯容易得多。因此,我們提出用目標端的q來擴展源端的p。 如表2中的第4行所示,我們同時使用了標簽標注和混合短語替換。在這種情況下,將存在第三個標記,即
混合短語替換和之前的工作[11]提出的短語替換(R)有相似之處,即用q直接替換掉源端的p。 表2中的第3行給出了一個樣例。相較于直接替換,我們的混合短語替換方法使用了混合的源端短語和目標端短語。我們傾向于在源句中添加更多信息,而不是替換它們,因為替換可能會導致丟棄一些重要信息,包括和替換短語之間的雙語信息。此外,混合短語替換對錯誤的替換也有一定的抗干擾能力。我們將在 3.5節(jié)進行分析。
2.1.3 部分詞向量共享
由于標簽和混合短語的存在,源端和目標端都存在標簽詞以及目標端的詞。為了增強源端和目標端標簽的聯(lián)系,我們共享標簽和目標端詞向量。如圖1所示,編碼器的詞向量包含三塊內(nèi)容,分別是標簽向量、源端詞向量和目標端詞向量。而解碼器的詞向量和最后的輸出線性映射部分使用和編碼器相同的標簽和目標端部分向量。我們不共享全部的詞向量是為了減少目標端的計算量以及出現(xiàn)輸出錯誤語言的情況。
圖1 共享部分詞向量并使用額外向量增強的神經(jīng)機器翻譯模型
2.1.4 額外向量增強
為了進一步增強拷貝信號并區(qū)分p和q,我們使用額外向量。對于給定的輸入詞,其對應的表示是通過將其詞向量、位置向量[3]和我們稱之為額外向量的三個向量相加得到的。同樣以“我喜歡在
預定義的雙語對可以由專家總結(jié)構(gòu)建,也可以從雙語平行語料庫中自動提取。但在訓練過程中,專家總結(jié)的雙語對并不能充分覆蓋語料庫,所以我們在本節(jié)簡要介紹從雙語語料庫中自動挖掘雙語對的方法。
整體的流程如圖2所示。我們專注于命名實體(NE),并使用LTP[13]和spaCy工具對中文和其他語言進行實體識別。我們使用Moses[14]生成短語表,并從短語表中查找抽取的實體詞,并將大于一定概率的短語對添加到候選列表。如果一個實體詞對應短語表中的多個翻譯,則過濾最大概率小于p的。實驗中設(shè)置p為0.8。之后,再根據(jù)短語對的長度、重合度進行二次過濾,得到最后的預定義雙語對。相較于使用詞對齊工具,短語表提供了評估質(zhì)量的概率度量,能抽取更高質(zhì)量的預定義雙語對。
圖2 從平行語料庫自動挖掘雙語對的流程
我們采用1.25M大小規(guī)模的LDC部分語料作為中英數(shù)據(jù)集。我們選擇NIST06作為開發(fā)集,并選擇NIST03、NIST04、NIST05作為測試集且還在4.5M 規(guī)模的WMT2017英語到德語語料庫進行了實驗。我們選擇newstest2014作為開發(fā)集,選擇newstest2016作為測試集。同時,聯(lián)合國語料被用于阿拉伯語到中文的翻譯。
我們使用不區(qū)分大小寫的4-元BLEU分數(shù)作為評價尺度,并且使用“multi-bleu.perl”腳本去計算BLEU分數(shù)。我們使用字節(jié)對編碼(BPE)[15]處理所有這些數(shù)據(jù),并將合并操作限制為3萬。
我們使用了目前最主流的基于注意力機制的Transformer模型[3]。給定輸入序列x1,x2,…,xn,Transformer會將其編碼為一系列連續(xù)表示,然后依次生成輸出序列y1,y2,…,ym。 我們設(shè)置編碼器和解碼器的層數(shù)都為6,隱藏層維數(shù)設(shè)置為512,前饋層維數(shù)設(shè)置為2 048。我們使用了8頭注意力機制。在訓練過程中,本文使用隨機梯度下降算法Adam來訓練NMT模型。Adam的β1和β2分別被設(shè)置為0.9和0.999,學習率被設(shè)置為0.001。訓練期間,一次迭代處理32 000個詞。解碼期間,我們使用集束搜索算法并將束搜索大小設(shè)置為6。
給定訓練數(shù)據(jù)和預定義的雙語對,對于訓練數(shù)據(jù)的每一句,我們遍歷其中的n-元短語,如果匹配到預定義的雙語對,則根據(jù)第2節(jié)中的方法進行處理。
如表3所示,我們從中英語料庫中提取了169 142個預定義雙語對,中英訓練集中有39.2%的句子至少包含一個雙語對。在測試集中,這個比例類似。對英語到德語,阿拉伯語到中文,這兩個數(shù)據(jù)分別是109 759、29.2%和182 105、24.9%。
表3 實驗數(shù)據(jù)統(tǒng)計
我們可以看到,盡管中英LDC語料庫規(guī)模較小,但由于其新聞領(lǐng)域特性,所以包含更多的專有名詞,訓練集以及測試集中也包含更多的可替換短語。
在解碼階段,我們對源端進行相同的處理后解碼。除了使用BLEU對翻譯質(zhì)量進行評估,我們同樣評估被替換短語被成功翻譯的概率。
表4展示了作為基準的Transformer模型和我們的方法在三個語料庫上的結(jié)果,表5展示了不同方法的組合在中英數(shù)據(jù)集上的結(jié)果。模型對應的兩列數(shù)據(jù)分別表示BLEU值和預定義短語被成功翻譯對的概率(句子級別)。表格中的T、M、E分別對應于第2節(jié)中所描述的標簽標記、混合短語替換、額外向量增強。我們將Song[11]等人之前的工作用“R”表示,與我們的混合短語替換(M)方法進行對比。在Song[11]等人的論文中,已經(jīng)論述其方法基本優(yōu)于之前的方法,所以本文僅和其方法進行比較。部分詞向量共享在使用了“M”或者“R”的所有方法上都進行了使用?!癟&M&E”表示結(jié)合了所有提出的方法的結(jié)果。
表4 總體實驗結(jié)果
從表4的結(jié)果我們可以看到,我們的方法在不同的語種上都有一定的性能提升。特別是對于中英LDC語料,在基準模型上BLEU提高了1.58,預定義雙語對翻譯的成功率提高了24.6%。
相較于中英,英德和阿中提升相對較小。英德和阿中的BLEU幾乎沒有變化,預定義雙語對翻譯的成功率分別提高了8.1%和4.5%。一方面,英德和阿中的語料規(guī)模較大,訓練出的模型對于特定的短語翻譯成功率較高;另一方面,英德語料和阿中語料中包含預定義短語的句子占比較少。如表3所示,在中英數(shù)據(jù)集中,大約40%的句子包含至少一個預定義短語,而在英德和阿中數(shù)據(jù)集上,占比僅有30%和25%左右。如果僅計算包含預定義短語的句子,英德數(shù)據(jù)集的BLEU提高了0.36。
表5展示了不同方法的組合在中英數(shù)據(jù)集上的具體結(jié)果。我們同時將不同方法組合的結(jié)果和基準模型以及在語料中加入短語表的模型進行對比。其中基準模型是標準的Transformer模型,加入短語表的模型則是在原有的語料的基礎(chǔ)上,把提取的預定義雙語對直接加入到語料中一起訓練。
表5 不同方法組合在中英數(shù)據(jù)集上的結(jié)果
我們可以看到,在訓練語料中加入雙語對并不會對BLEU和短語翻譯成功率帶來明顯的影響。這是由于短語本身就是從語料中抽取獲得的,因此語料包含了相關(guān)信息。
單獨使用標簽標注方法(T)不能給預定義短語翻譯成功率帶來明顯收益,單獨使用短語替換方法(R)將平均成功率提高到了92.7%,相對來說是一個很大的提升。但是當標簽標注方法(T)和短語替換或者混合短語替換方法結(jié)合時,可以獲得最好的效果,成功率達到了98.4%。我們認為這是因為當使用M或者R方法時,我們共享了部分詞向量,從而為句子源端和目標端的標簽標注提供了更強的連接。結(jié)合了所有方法的T&M&E同樣達到了最好效果。
從BLEU值來看,T&M方法相較于T&R有一定的優(yōu)勢,而結(jié)合了E方法后性能得到了進一步的提升。正如我們在第2節(jié)中描述的,相較于直接替換(R),混合短語替換(M)保留了原始的預定義短語信息,增強模型對跨語言信息的學習,并帶來了一定的抗噪能力。額外向量增強(E)在增強了對替換短語拷貝信號的同時,提供了對源端語塊的區(qū)分,從而幫助模型更好區(qū)分正常翻譯部分、被替換短語部分,以及可以直接拷貝的部分。
為了進一步評估本文方法的作用以及運作機制,我們針對預定義雙語詞典外的短語以及錯誤替換短語兩種情況進行分析。
同樣以“我喜歡在
表6 詞表外短語及錯誤替換短語的翻譯結(jié)果
從表6中可以看到,模型對詞表外的短語有很好的泛化性能,能達到98%成功率,錯誤的往往是那些替換了無意義稀有詞的句子。這說明我們的模型在臨時擴充的雙語對上依然有良好的適應能力。翻譯錯誤替換句子時,模型在大部分情況下仍然傾向于直接拷貝源端的替換部分,特別是替換的是類似的詞,如不同代詞替換、不同人名替換。令人驚訝的是有6%的錯誤替換樣例會被正確的翻譯源端部分代替,而丟棄錯誤的替換。經(jīng)過人工分析,我們發(fā)現(xiàn)翻譯模型會盡量讓拷貝的結(jié)果合理出現(xiàn)在翻譯句子中。當替換為一些不可能出現(xiàn)的詞(特別是稀有詞),模型經(jīng)常會丟棄掉那部分錯誤替換,退化為翻譯被替換部分。還有4%的句子會被錯誤替換嚴重影響,翻譯出隨機的詞。
由于使用了混合短語替換方法,部分共享的詞向量在訓練中學習到了跨語言的信息。這一點我們可以通過提取翻譯模型中的詞向量并計算其中一些詞的鄰近詞來觀察到。
表7中展示了在詞向量空間中和“india”/“印度”以及“beijing”/“北京”最為鄰近的5個詞。距離通過計算cosine距離獲得??梢钥吹?,和“beijing”最為靠近的詞是其對應的中文“北京”,同時“beijing”也是其對應中文的最鄰近的詞?;旌隙陶Z替換方法中的混合短語,成為了詞向量空間中的錨點,讓翻譯模型的詞向量學習到了更多跨語言的信息。同時,跨語言的詞向量可以進一步幫助提高翻譯的質(zhì)量[16-17]。
表7 詞向量空間中的鄰近詞
Transformer模型使用多頭注意力機制[3],讓不同的頭注意到不同語義空間的信息。圖3是句子“
圖3 句子樣例的交叉注意力示意圖
當關(guān)注被標簽標記的預定義短語時,我們可以看到無論是“danish”還是“ras@@ mus@@ sen”都同時對源端的中文和英語部分有一定的注意力權(quán)重,這展示了混合短語替換的作用,即同時為目標端提供翻譯和拷貝的信息。同時,我們注意到像“danish”這種在語料中經(jīng)常出現(xiàn)的詞,注意力矩陣在中文部分的權(quán)重會更大,因為模型較為確認這種翻譯。而對于“ras@@ mus@@ sen”這種人名,由于數(shù)據(jù)中出現(xiàn)次數(shù)較少,翻譯模型不能充分學習到,所以傾向于直接拷貝,從而對源端的英文部分有更高的權(quán)重。
表8中的樣例體現(xiàn)了本文方法的優(yōu)勢。由于數(shù)據(jù)存在偏置,我們的字典中“南韓”對應“korea”,所以原文中的“南韓”被默認替換為了“korea”。在直接替換的+R方法下,翻譯模型傾向于直接拷貝,翻譯為“the korea and north korea”。但是考慮到“north korea”也在上下文中,“南韓”翻譯為“korea”不夠準確。我們的T&M&E方法可以依靠保留的“南韓”,同時參考了原始信息以及替換信息,輸出更為準確的翻譯“south korea and north korea”。從這個例子看,本文方法對類似情況有更好的魯棒性。
表8 翻譯樣例比較
本文提出使用簡單的數(shù)據(jù)預處理,包含標簽標注、混合短語替換,以及對應的模型修改,包括共享部分詞向量和額外向量增強,從而將外部的預定義雙語對融入神經(jīng)機器翻譯。三個語對上的實驗證明了本文方法的有效性。各種方法的組合對比實驗說明了不同方法的作用。通過進一步分析,我們從詞向量和注意力角度分析了方法為何有效。在未來的工作中,我們希望考慮一詞多義的情況,即如何將控制不同含義的外部詞融入神經(jīng)機器翻譯中。