蔡子龍,熊德意
(蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006)
作為世界影響力最大的英語和世界人口使用數(shù)量最多的漢語,它們之間相互翻譯的需求是巨大的。構(gòu)建更加出色的機器翻譯系統(tǒng),不僅能創(chuàng)造龐大的經(jīng)濟價值,更能產(chǎn)生打破語言障礙、促進全球文化交流的社會價值。由早期基于規(guī)則的機器翻譯[1],到之后基于統(tǒng)計模型的機器翻譯[2],再到現(xiàn)在基于神經(jīng)網(wǎng)絡的機器翻譯[3],翻譯技術(shù)不斷取得新的突破,模型性能也不停地提升。
基于神經(jīng)網(wǎng)絡的機器翻譯簡稱神經(jīng)機器翻譯,是Sutskever等[3]在2014年提出的一種基于編碼器—解碼器結(jié)構(gòu)的翻譯模型。與統(tǒng)計機器翻譯相比,該方法生成的譯文具有流利度高的特點。2015年,Bahdanau等[4]在此基礎(chǔ)上引入了注意力機制,使得神經(jīng)機器翻譯生成的譯文全面超過統(tǒng)計機器翻譯,神經(jīng)機器翻譯因此成為機器翻譯中最熱門的研究方法。到目前為止,已經(jīng)有很多學者對神經(jīng)機器翻譯模型提出了優(yōu)化方法,例如Tu等[5]在2016年提出的對神經(jīng)機器翻譯覆蓋度進行建模的方法,Wang等[6]在2017年提出基于統(tǒng)計機器翻譯推薦的神經(jīng)機器翻譯模型。然而,很少有針對具體語言特征尤其是漢語這種形態(tài)豐富的語言設計相應的融合方法。
漢字是一種形聲字,其一半表音、一半表意的特殊結(jié)構(gòu),使得漢字本身含有豐富的語義、語音和句法信息。例如,“江” “河”“湖”“?!彼膫€字,都有共同的偏旁部首“ 氵”,表示它們具有和“水”相關(guān)的含義。“打”“抓”“撓”“推”這四個字,有共同的偏旁部首“扌”,表示它們是動詞。“乙yǐ”“億y씓憶y씓藝yì”這四個字都含有相同的子字“乙”,表示它們的發(fā)音都基于“yi”。對于學習漢語的人來說,豐富的字形信息不但可以幫助他們更快地記住漢語單詞,而且能夠幫助他們更好地理解漢語知識。受此啟發(fā),本文在Marta R.等[7]工作的基礎(chǔ)上,提出新的將漢字字形特征融入中英神經(jīng)機器翻譯的方法,與基準系統(tǒng)相比,該方法在NIST評測集上獲得平均1.1個BLEU[8]點的顯著提升,有效地證明了漢字字形特征可以對神經(jīng)機器翻譯模型起到促進作用。
本文其他部分組織如下: 第1節(jié)介紹神經(jīng)機器翻譯的相關(guān)知識;第2節(jié)介紹神經(jīng)機器翻譯和語言特征結(jié)合的相關(guān)工作;第3節(jié)詳細說明如何將漢字字形特征融入中英神經(jīng)機器翻譯;第4節(jié)介紹實驗;第5節(jié)對本文提出的融合方法進行詳細分析;最后一節(jié)總結(jié)工作,展望未來。
本文研究的神經(jīng)機器翻譯指的是一種端到端的基于雙向循環(huán)神經(jīng)網(wǎng)絡的機器翻譯。該翻譯模型將源端句子X=(x1,…,xTx)作為輸入,將目標端句子Y=(y1,…,yTy)作為輸出,其中,xt和yt′分別代表源句子符號和目標句子符號。端到端的神經(jīng)網(wǎng)絡由編碼器和解碼器兩個部分構(gòu)成。
圖1 基于雙向循環(huán)神經(jīng)網(wǎng)絡的編碼器
圖2 基于雙向循環(huán)神經(jīng)網(wǎng)絡的解碼器
如圖2所示,解碼器基于源端句子的上下文向量C計算所有可能翻譯結(jié)果的條件概率分布。給定某一具體的翻譯,其條件概率的計算如式(3)所示。
(3)
式(3)中,給定源端句子和目標端已生成的單詞,計算當前時刻單詞的概率,如式(4)所示。
(4)
其中,ey(yt′-1)表示的是前一時刻單詞的詞向量,ct′可由式(5)計算得到,表示的是依據(jù)解碼端前一時刻單詞向量以及相對應的隱藏層向量,對源端上下文向量C計算權(quán)重后進行累加求和,權(quán)重的分配使得解碼端每一時刻生成的單詞能夠捕捉到更多關(guān)于源端句子中對應單詞的信息。源端句子中第t個位置的單詞所對應的權(quán)重αt,t′可由式(6)計算得到,其中fscore是帶有一個隱層的前饋網(wǎng)絡,Z是正則化常量,其計算如式(7)所示。式(4)中的st′表示解碼端的隱藏層向量,其更新如式(8)所示。
(9)
雖然端到端的神經(jīng)機器翻譯模型具有很強的學習能力,但是引入外部的語言知識依舊可以幫助模型學到更多有用的知識。
Sennrich和Haddow[10]在2016年提出將神經(jīng)機器翻譯模型中源端的單詞向量分成6個部分,分別是單詞本身、單詞的基本形式、子詞標記[11]、形狀特征、詞性標注[12]及依存句法標簽[13]。每種語言特征都有各自對應的索引表,給定一個單詞,根據(jù)其不同的屬性查找與之對應的特征向量,將這些特征向量拼接在一起,形成參與模型訓練的詞向量。本文和Sennrich等的工作主要存在兩個不同之處,第一,本文研究的對象是漢語特征,而他們研究的對象是英語特征。第二,本文不僅使用了向量拼接法作為對比實驗,而且提出了新的用漢字字形特征輔助詞向量生成的方法。
Dai和Cai[14]在2017年提出利用漢字的字形特征對單詞向量進行初始化。Dai等的思想和本文是一致的,均認為漢字豐富的字形信息可以幫助理解漢語知識。不同點在于: ①本文簡單地將漢字字形矩陣以行的方式拆開,重組成一維的詞向量,而Dai等是用卷積神經(jīng)網(wǎng)絡從漢字字形中提取更加細粒度的特征作為單詞的詞向量; ②本文研究的對象是神經(jīng)機器翻譯,而Dai等則是將字形特征用于語言模型和分詞任務。
Kuang等[15]在2018年提出了將漢字偏旁部首融入神經(jīng)機器翻譯模型的方法。他們將中文端的詞向量分成三個部分: 第一部分是單詞本身對應的向量;第二部分是組成單詞的字符向量之和;第三部分是構(gòu)成字符的偏旁部首向量之和。這種方法使得詞向量不僅具有傳統(tǒng)的“單詞”和“字符”級特征,而且具有更加細粒度的“漢字偏旁部首”級特征。本文和Kuang等提出的方法相同點在于都是將漢字的形體特征融入神經(jīng)機器翻譯,不同點在于Kuang等提出的“漢字偏旁部首”級特征是相對離散化的,而本文提出的“漢字字形特征”保留了完整的漢字形體。
本文研究的對象是中文到英文的神經(jīng)機器翻譯。其中,中文端以漢字字符為單位對句子進行切割;英文端以單詞為單位對句子進行切割。中文端以字符為單位對句子進行切割有以下三點好處: ①中文不存在空格符,以字符為單位可以省去分詞處理; ②中文常用字3 755個,不常用字3 008個,合計6 763個,以字符為單位可以解決漢語端未登錄詞問題; ③方便設計字形特征融合方法。
在本文之前,Marta R.等已經(jīng)展開了漢字字形特征和神經(jīng)機器翻譯模型相結(jié)合的工作。雖然她們在中文到西班牙文的翻譯任務上取得了不錯的成績,但是依然存在一些問題。為此,本文提出新的字形特征融合方法。3.1節(jié)主要介紹如何獲得漢字的字形特征;3.2節(jié)詳細描述字形特征融合的三種方法;3.3節(jié)對比分析三種字形特征融合方法的優(yōu)缺點。
在神經(jīng)機器翻譯中,單詞以詞向量[16]的形式進行表征。漢字是方塊字,其點陣圖像如圖3所示。為了從漢字的點陣圖像中獲取到與詞向量形式一致的信息,本文采用Marta R.等的方法,簡單地將漢字的點陣圖像以行的方式拆開,拼接成一維向量,并把它作為漢字的字形特征。
圖3 16×16的“漢”字的點陣圖像
為了便于闡述,本文將Marta R等提出的字形特征融合方法稱為完全替代法。如圖4所示,該方法將神經(jīng)機器翻譯模型當作“黑盒子”,僅用漢字的字形特征(圖中深色部分)對源端字符向量進行初始化,模型的其余部分保持不變。
圖4 完全替代法
漢語中存在形態(tài)極為相似,但意思完全不同的漢字,例如,“人”“入”。使用完全替代法,將會使得同形不同義的漢字字符得到幾乎一樣的向量表征。為了對這些漢字加以區(qū)別,本文提出了部分替代法。如圖5所示,該方法僅把漢字的字形特征作為字符向量的一部分,同時,使用正則分布對字符向量的其他部分進行隨機初始化。
圖5 部分替代法
傳統(tǒng)神經(jīng)機器翻譯模型中的字符向量完全是基于目標端句子的翻譯損失進行更新的。這種方式得到的字符向量是一種語言模型向量。如圖6所示,本文提出輔助學習法,將漢字的字符向量Vc(圖中淺色向量)和字形特征向量Vs(圖中深色部分)相關(guān)聯(lián),使得漢字的字符向量既有傳統(tǒng)的基于神經(jīng)網(wǎng)絡的語言模型特征,又包含漢字的字形特征。
圖6 輔助學習法
(12)
Marta R等提出的完全替代法是一種詞向量初始化方法。該方法利用漢字字形特征對字符向量進行初始化,改變了字符向量的起始狀態(tài),從而使得神經(jīng)機器翻譯模型向著更好的方向去優(yōu)化。和Marta R等的方法相比,本文提出的部分替代法也是一種詞向量初始化方法,不同點在于,完全替代法沒有考慮到漢語中存在的同形不同義的問題,而部分替代法將隨機初始化和字形特征初始化結(jié)合使用,保證了字形過于相同的漢字其字符向量依然存在不同的地方。
無論是Marta R等提出的完全替代法,還是本文提出的部分替代法,都是直接使用漢字字形特征對字符向量進行初始化。這種簡單的初始化方法存在兩個問題: ①漢字的字形特征向量是一種基于圖形的空間向量,而神經(jīng)機器翻譯模型中的字符向量是一種詞嵌入向量,兩者不在同一維度空間;②從整個訓練過程來講,初始化字符向量是一種靜態(tài)方法,該方法只是改變神經(jīng)機器翻譯模型中字符向量的起始狀態(tài),并不能保證漢字字形信息能夠始終作用到字符向量的訓練中去。為了解決這兩個問題,本文提出輔助學習法。首先,通過使用神經(jīng)網(wǎng)絡,將字符向量映射到漢字字形特征空間,使得它們可以在同一空間維度下進行比較;其次,將字符向量和字形特征向量之間的距離作為模型的一種損失,使得漢字字形特征參與模型的整個訓練。
本節(jié)分為兩個部分,4.1節(jié)介紹實驗設置,4.2節(jié)給出實驗結(jié)果。
使用從LDC語料庫中抽取出來的125萬對平行雙語句子作為實驗數(shù)據(jù)。其中,中文端約0.46億個漢字,英文端約0.35億個單詞。將NIST06作為開發(fā)集,NIST02,03,04,05,08作為測試集。分別從16×16,25×25的漢字點陣圖像中獲得256維、625維的字形特征向量。本文使用不區(qū)分大小寫的四元BLEU值作為實驗的評價標準,BLEU值越高,翻譯效果越好。
為了加快神經(jīng)網(wǎng)絡的訓練,將中文端句子的長度設置為120(有效句子占比99.78%),英文端句子的長度設置為80(有效句子占比99.20%)。將中文端詞典大小設置為6 186,英文端詞典大小設置為30 000,其中中文端字符覆蓋率為100%,英文端單詞覆蓋率為99.30%,對英文端不在詞典內(nèi)的單詞用UNK替代。
將字符向量的維度設置為620,隱藏層向量維度設置為1 000。對于Marta R提出的完全替代法,本文截取625維字形特征的前620維作為字符向量的初始化向量。對于部分替代法,對字符向量的前364維采用隨機初始化的方式賦值,剩余部分用256維的字形特征向量進行替代。對于輔助學習法來說,采用256維的字形特征向量輔助學習字符向量。
本文使用名為RNNSearch的神經(jīng)機器翻譯系統(tǒng)作為實驗的基準系統(tǒng)。使用GRU[18]學習隱藏層向量,使用Adam[19]對參數(shù)進行優(yōu)化。本文還對輸出層采用dropout[20]方法以加強神經(jīng)網(wǎng)絡的泛化能力。本文采用批量式方法對參數(shù)進行更新,大小設置為120。本文將束搜索的大小設置為10。
如表1所示,本文從參數(shù)大小、訓練速度及翻譯性能這三個方面,對三種字形特征融合方法進行了比較。除此之外,也對比了基于漢語字符的機器翻譯和基于漢語單詞的機器翻譯之間的差異。
表1 翻譯系統(tǒng)比較
參數(shù)神經(jīng)機器翻譯模型中,詞向量約占參數(shù)總量的一半。基于漢語單詞的RNN,其源端詞表大小設置為3萬,故而參數(shù)總量最多?;跐h語字符的RNN,其源端詞表大小設置為6 186,故而參數(shù)總量最小?;谳o助學習法的RNN,在訓練階段,由于字符特征向量參與模型訓練,故而參數(shù)總量有所增加,但在測試階段,參數(shù)總量保持不變。
速度本文使用單顆GPU對翻譯系統(tǒng)進行訓練?;跐h語單詞的RNN,由于分詞之后,句子的單元數(shù)變少了,編碼速度加快,因而迭代一輪語料所需的時間最短?;谳o助學習法的RNN迭代一輪語料耗時403min,速度上比基于漢語字符的RNN慢了將近9%,主要原因是需要額外計算字符向量和字形特征向量之間的距離。
性能基于漢語單詞的RNN比基于字符的RNN在測試集上平均高出0.3個點。原因可能是和單純的字符序列相比,文本分詞帶來了更多的語義知識?;诓糠痔娲ǖ腞NN并沒有取得比基于完全替代法的RNN更好的結(jié)果,兩種方法均比基準系統(tǒng)高0.7個點,可能的原因在于初始化方法是一種靜態(tài)法,只是改變了模型參數(shù)的起始狀態(tài),無法參與訓練的整個過程,本文提出的基于輔助學習法的RNN取得了最好的結(jié)果,平均比基準系統(tǒng)高出1.1個點,比基于漢語單詞的RNN高出了0.8個點,比其他兩種字形特征融合方法高出0.4個點,證明了該方法能夠有效地改進初始化方法中存在的問題。
本節(jié)從兩個方面對輔助學習法的有效性做進一步分析。
本節(jié)主要探究輔助學習法在不同句子長度下的性能表現(xiàn)。具體做法如下: 首先,將測試集02、03、04、05、08的句子整合在一起;其次,以10個字符單元長度為單位,將句子分到6個不同的區(qū)間;最后,用multi-BLEU評測工具對不同區(qū)間的句子進行打分。評測結(jié)果如圖7所示,輔助學習法只有在[10,20]、[30,40]這兩個區(qū)間內(nèi)得分略低于完全替代法,其他區(qū)間內(nèi)得分均比完全替代法高,特別是當句子的字符數(shù)在50以內(nèi)時,輔助學習法的翻譯性能和基準系統(tǒng)相比有著顯著提升,這表明本文提出的輔助學習法確實能夠?qū)ι窠?jīng)機器翻譯模型的翻譯結(jié)果起到促進作用。
圖7 不同句子長度下的翻譯性能比較
表2 漢字分類結(jié)果
本文在Marta R.等工作的基礎(chǔ)上,提出了新的將漢字字形特征融入中英神經(jīng)機器翻譯的方法。該方法將字符向量和字形特征之間的距離作為模型的一種損失,迫使模型學習到漢字豐富的字形信息,以此提升翻譯性能。
本文提出的字形特征融合方法是基于字級別設計的,然而單個漢字并不具備完整的語義。因此,未來工作中,我們會考慮將漢字字形特征融入基于單詞的神經(jīng)機器翻譯模型。