薛 媛 蘇依拉 仁慶道爾吉 石 寶 李雷孝
(內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院 內(nèi)蒙古 呼和浩特 010080)
隨著全球化的不斷深入,國(guó)家與國(guó)家之間、民族與民族之間的交往日益頻繁,而各國(guó)家、民族之間的語(yǔ)言差異造成了溝通障礙。因此機(jī)器翻譯成為不同國(guó)家與民族之間的溝通橋梁。蒙古語(yǔ)屬于小語(yǔ)種,蒙漢機(jī)器翻譯系統(tǒng)在解決由于語(yǔ)言差異引起的交流障礙問(wèn)題方面作出了很大的貢獻(xiàn),本文主要對(duì)句法依存樹(shù)提高蒙漢機(jī)器翻譯系統(tǒng)性能進(jìn)行研究。
蒙漢機(jī)器翻譯主要采用兩種做法:(1) 傳統(tǒng)的基于短語(yǔ)的機(jī)器翻譯方法[1];(2) 利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行機(jī)器翻譯[2]。對(duì)于神經(jīng)機(jī)器翻譯方法,目前的缺陷是嚴(yán)格依賴于序列編碼器-解碼框架,并且不能有效利用句子的句法信息以及語(yǔ)言的層次結(jié)構(gòu)信息[3]。究其原因是在編碼序列信息時(shí),并沒(méi)有找到一種適合的方式將結(jié)構(gòu)信息納入其中[4]。有研究采用間接的方式引入結(jié)構(gòu)信息[5],還有研究對(duì)機(jī)器翻譯任務(wù)中建模結(jié)構(gòu)信息加以嚴(yán)格的限制。對(duì)比本文方法,文獻(xiàn)[6]實(shí)現(xiàn)了基于非詞匯化概率上下文無(wú)關(guān)文法的蒙古文句法分析系統(tǒng),然后設(shè)計(jì)并開(kāi)發(fā)了基于樹(shù)到串的蒙漢統(tǒng)計(jì)機(jī)器翻譯系統(tǒng),與該文不同,本文的目標(biāo)是為編碼器提供對(duì)豐富語(yǔ)法信息的訪問(wèn),但是讓它決定語(yǔ)法的哪些方面對(duì)機(jī)器翻譯有益,而不必對(duì)語(yǔ)法和翻譯任務(wù)之間的交互施加嚴(yán)格的限制。因此嘗試在源端加入句法信息作為額外知識(shí)來(lái)輔助神經(jīng)系統(tǒng)進(jìn)行翻譯。
自然語(yǔ)言處理(NLP)的核心技術(shù)之一依存句法分析[7],該方法主要通過(guò)分析一個(gè)句子中詞與詞之間的依賴關(guān)系來(lái)確定其句法結(jié)構(gòu)。作為底層技術(shù),依存分析可直接用于機(jī)器翻譯以提升其效果,并且對(duì)于其他NLP任務(wù)效果的提升也是顯而易見(jiàn)。雖然神經(jīng)機(jī)器翻譯技術(shù)已取得了很大的進(jìn)步,但其翻譯效果還不及人工翻譯的原因之一在于神經(jīng)網(wǎng)絡(luò)只有根據(jù)輸入的平行句子進(jìn)行學(xué)習(xí)和對(duì)齊[8],并沒(méi)有很好地利用句子的句法結(jié)構(gòu)和語(yǔ)義結(jié)構(gòu)信息。蒙古語(yǔ)和漢語(yǔ)在語(yǔ)法結(jié)構(gòu)中存在較大差異。蒙古語(yǔ)屬于阿爾泰語(yǔ)系,其語(yǔ)序?yàn)橹?賓-謂結(jié)構(gòu),即主語(yǔ)在前,謂語(yǔ)在賓語(yǔ)之后,修飾語(yǔ)在被修飾語(yǔ)之前。而漢語(yǔ)屬于漢藏語(yǔ)系,在語(yǔ)序結(jié)構(gòu)中采用主-謂-賓結(jié)構(gòu),其在謂語(yǔ)和賓語(yǔ)部分與蒙古文出現(xiàn)差異,并且這種結(jié)構(gòu)差異會(huì)使神經(jīng)網(wǎng)絡(luò)不能完全準(zhǔn)確地進(jìn)行對(duì)齊,造成翻譯性能差,倘若能對(duì)句子的句法結(jié)構(gòu)進(jìn)行分析后再進(jìn)行編碼就會(huì)解決該問(wèn)題,因此本文提出在編碼器端加入句法結(jié)構(gòu)信息用以輔助神經(jīng)機(jī)器翻譯。
DDparser,其全名為Baidu Dependency Parser,是百度開(kāi)源的基于深度學(xué)習(xí)框架的依存句法分析系統(tǒng),其功能為對(duì)于給定的源語(yǔ)言句子,可將其解析為依存句法樹(shù),該系統(tǒng)的開(kāi)源對(duì)于NLP(Natural Language Processing)的下游任務(wù)提供了巨大的幫助,輸入文本通過(guò)DDParser輸出其對(duì)應(yīng)的句法分析樹(shù)。
對(duì)于句子“那家的飯菜太淡,還很貴”的依存句法關(guān)系如圖1所示。連接兩詞的弧表示兩個(gè)詞語(yǔ)之間的依賴關(guān)系,由核心詞指向依存詞,弧上的標(biāo)簽表示依存詞對(duì)核心詞的關(guān)系。其中:ATT表示定中關(guān)系,即定語(yǔ)和修飾詞之間的關(guān)系;DE通常連接“的”與其中心詞;SBV表示主謂關(guān)系,通常也用來(lái)表示系詞與表語(yǔ)之間的關(guān)系;ADV表示狀中結(jié)構(gòu),圖1中“淡”是一個(gè)形容詞,而“太”作為副詞來(lái)修飾“淡”,因此DDparser在解析其關(guān)系時(shí),定義為狀中結(jié)構(gòu);IC表示獨(dú)立分句,“淡”和“貴”都用來(lái)形容飯菜,但處于兩個(gè)分句中。對(duì)于百度依存句法分析系統(tǒng)中還存在很多句法關(guān)系,具體請(qǐng)查閱文獻(xiàn)[7]。可以看出,將這種依存句法關(guān)系加入到翻譯系統(tǒng)中,可以很好地輔助句子的理解,使得翻譯更加準(zhǔn)確。
圖1 依存句法樹(shù)舉例
圖2 編碼器-解碼器模型
機(jī)器翻譯是利用計(jì)算機(jī)將一種語(yǔ)言轉(zhuǎn)換為另一種語(yǔ)言的過(guò)程[9]。給定一個(gè)含有N個(gè)詞的源語(yǔ)言句子X(jué)=x1,x2,…,xi,…,xN和一個(gè)含有M個(gè)詞的目標(biāo)語(yǔ)言句子Y=y1,y2,…,yj,…,yM,NMT做的工作是將句子級(jí)概率分解為詞級(jí)的概率的乘積:
(1)
式中:θ表示源語(yǔ)言與目標(biāo)語(yǔ)言之間的轉(zhuǎn)化公式。
神經(jīng)機(jī)器翻譯模型通常由編碼器、解碼器,以及構(gòu)建編碼器解碼器之間的聯(lián)系的一些方法組成,例如注意力機(jī)制,編碼器接收一個(gè)源語(yǔ)言句子序列,將其轉(zhuǎn)化為中間表示,解碼器再將這個(gè)中間表示生成翻譯,如圖1所示。
給定一個(gè)源語(yǔ)言句子序列,編碼器的工作就是將其編碼為一個(gè)計(jì)算機(jī)能夠識(shí)別的連續(xù)稠密向量。編碼方式有很多,包括詞袋模型(Bag-of-words,BOW)、循環(huán)神經(jīng)網(wǎng)絡(luò)模型(Recurrent Neural Network,RNN)、卷積神經(jīng)網(wǎng)絡(luò)模型(Convolutional Neural Network,CNN)的編碼器等,本文將重點(diǎn)介紹以上三種編碼方式。
1.2.1BOW(詞袋模型)
BOW[10]的原理十分簡(jiǎn)單,就是把一句話轉(zhuǎn)換成計(jì)算機(jī)能看懂的向量形式,比如給定兩句話:
(1) 我喜歡書(shū)法,曉麗也喜歡。
(2) 我也喜歡繪畫(huà)。
可以構(gòu)建包含所有單詞的詞典向量dictionary=[我,喜歡,書(shū)法,曉麗,也,繪畫(huà)]。第一句話的向量表示為v1=[1,2,1,1,1,0];第二句話的向量表示為v2=[1,1,0,0,1,1]
向量的每一個(gè)維度表示詞典向量中對(duì)應(yīng)的單詞在句子中出現(xiàn)的次數(shù)。不難發(fā)現(xiàn)這種方式雖然可以將一個(gè)句子映射為向量形式,但表示出的句子向量是無(wú)序的,它不能明確表示一個(gè)單詞在句子中的相對(duì)位置,為了表明詞的位置信息用了一個(gè)位置編碼嵌入。通常選用整數(shù)型數(shù)字來(lái)表明詞的位置信息,為該數(shù)字初始化一個(gè)列向量表示詞的位置。因此詞袋模型編碼器可以表示為:
BOW(x1:N,i)=xi+pi
式中:pi表示位置向量。
1.2.2RNN編碼器
RNN編碼器[11]模型是在序列建模中應(yīng)用的最多的一種變換方式,輸入一個(gè)源語(yǔ)言句子X(jué)=x1,x2,…,xi,…,xN,傳送給RNN后,RNN通過(guò)以下公式遞歸處理輸入中的每一個(gè)詞xi將其映射到實(shí)值向量中:
RNN(x1:i)=f(xi,RNN(xi))
(2)
式中:xi=x1,x2,…,xi-1;f是非線性函數(shù),通常為L(zhǎng)STM(Long Short-Term Memory)或GRU(Gated Recurrent Unit),為了捕獲當(dāng)前詞的前后文信息,一般采用雙向LSTM或雙向GRU,本文將采用雙向LSTM。將詞映射到實(shí)值向量中后,一個(gè)帶有LSTM單元的前饋和后饋RNN開(kāi)始分別計(jì)算其前向和后向隱藏狀態(tài)。
(3)
(4)
整個(gè)源隱藏狀態(tài)hi就包含著前向和后向的全部信息:
(5)
1.2.3CNN編碼器
卷積神經(jīng)網(wǎng)絡(luò)對(duì)于處理網(wǎng)絡(luò)結(jié)構(gòu)的信息十分有效,最初的提出大多用于分析視覺(jué)圖像。2017年Facebook AI實(shí)驗(yàn)室提出一款利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行機(jī)器翻譯的翻譯模型Fairseq,由于卷積神經(jīng)網(wǎng)絡(luò)的引入,模型不僅可以精確地控制上下文的長(zhǎng)度,并且經(jīng)過(guò)卷積的并行計(jì)算,在達(dá)到與RNN相同的翻譯準(zhǔn)確率上,速度足足快了9倍。CNN編碼器[12]是用一個(gè)固定大小的窗口在輸入句子序列上滑動(dòng)以捕獲句中每個(gè)詞的局部文本信息,相比RNN,雖然CNN速度快并且可以并行計(jì)算,但缺點(diǎn)是犧牲了全局文本信息,而為了彌補(bǔ)文本信息的丟失,通常對(duì)CNN的層數(shù)進(jìn)行堆疊。
CNN(x1:N,i)=f(xi-└w/2┘,xi-└w/4┘,…,xi,…xi+└w/2┘)
(6)
式中:f是非線性函數(shù);w是窗口大小。
近兩年深度學(xué)習(xí)領(lǐng)域誕生了一種新的網(wǎng)絡(luò),即圖卷積網(wǎng)絡(luò)[13]。該網(wǎng)絡(luò)從出現(xiàn)時(shí)就受到科學(xué)界的廣泛關(guān)注,那么GCN與CNN有什么不同呢?傳統(tǒng)的CNN網(wǎng)絡(luò)處理的數(shù)據(jù)是矩陣形式,就像以像素點(diǎn)排列的矩陣為基礎(chǔ)。而GCN處理的數(shù)據(jù)是圖結(jié)構(gòu),例如像社交網(wǎng)絡(luò)、信息網(wǎng)絡(luò)等這些拓?fù)浣Y(jié)構(gòu),一般卷積神經(jīng)網(wǎng)絡(luò)就無(wú)能為力了。
一個(gè)無(wú)向圖G={N,E},其中:N是圖中所有節(jié)點(diǎn)的集合;E是所有邊的集合,包括自還邊。GCN是一個(gè)多層神經(jīng)網(wǎng)絡(luò),可以直接在圖上進(jìn)行操作,對(duì)節(jié)點(diǎn)聚合信息。通常一個(gè)圖上的節(jié)點(diǎn)信息用一個(gè)鄰接矩陣來(lái)表示。對(duì)于一層GCN,節(jié)點(diǎn)的向量信息聚合公式如下:
(7)
式中:W∈Rd×d是權(quán)重矩陣;b∈Rd是偏置向量;ρ是激活函數(shù)比如線性修正單元(ReLU);N(n)是節(jié)點(diǎn)n的鄰居節(jié)點(diǎn)集合,包括n本身。節(jié)點(diǎn)信息可以通過(guò)堆疊GCN層數(shù)來(lái)進(jìn)行傳遞,層之間的傳遞關(guān)系可用如下公式來(lái)計(jì)算:
(8)
對(duì)于像神經(jīng)機(jī)器翻譯,圖卷積網(wǎng)絡(luò)的輸入是一種語(yǔ)言的一句話,而一個(gè)句子詞與詞之間是有先后順序的,也就是說(shuō)如果用有向圖來(lái)處理這種句子信息會(huì)更好,已有工作對(duì)GCN進(jìn)行泛化,使其能夠在有向圖以及邊有類型的圖上進(jìn)行操作[14]。這就使得GCN在依存樹(shù)上操作有了可能。
為了處理依存樹(shù)上邊的方向,根據(jù)邊的類型將其分為三類:入邊(IN)、出邊(OUT)和自環(huán)(LOOP)。遞歸計(jì)算如下:
(9)
式中:dir(u,n)表示邊的方向,包含IN、OUT和LOOP。對(duì)于一個(gè)節(jié)點(diǎn)而言,可能包含入邊、出邊,以及還可能給出自環(huán),因此式(9)可以被拆解為式(10)-式(12)。
(10)
(11)
(12)
式中:WIN、WOUT和WLOOP分別表示u→n、n→u和n→n的權(quán)重矩陣;bIN、bOUT和bLOOP為相應(yīng)的偏置向量。
傳統(tǒng)的RNN以及CNN處理的序列數(shù)據(jù),而神經(jīng)機(jī)器翻譯的發(fā)展雖然已取得了很大的進(jìn)步,但是現(xiàn)有的翻譯系統(tǒng)還是會(huì)出現(xiàn)所翻譯的句子還不夠通順,并且對(duì)于一些表達(dá)不同而句意相同的句子機(jī)器不能準(zhǔn)確地進(jìn)行識(shí)別。為了同時(shí)有效利用序列的前后文信息以及句法結(jié)構(gòu)信息,本文提出在源語(yǔ)言端采用雙編碼器,該思想受Eriguchi等[15]提出的樹(shù)到序列注意力機(jī)制神經(jīng)機(jī)器翻譯的啟發(fā)。不同的是Eriguchi使用LSTM編碼樹(shù)結(jié)構(gòu)信息,而本文將使用RNN等編碼源語(yǔ)言的原始序列數(shù)據(jù),用GCN編碼句法樹(shù)結(jié)構(gòu)信息。為了證明該方法對(duì)于提高神經(jīng)機(jī)器翻譯系統(tǒng)性能的有效性,將分別采用兩種方式編碼源語(yǔ)言序列數(shù)據(jù)。
(1) BiRNN+GCN。首先用雙向RNN學(xué)習(xí)序列信息,之后將RNN的輸出傳入給GCN學(xué)習(xí)句子的句法結(jié)構(gòu)信息。具體結(jié)構(gòu)如圖3所示。RNN編碼得到的隱藏狀態(tài)向量h0作為GCN的輸入。
圖3 RNN和GCN編碼器結(jié)構(gòu)關(guān)系
(2) CNN+GCN。用CNN學(xué)習(xí)詞的表示,CNN雖然速度快但僅能學(xué)習(xí)局部的上下文信息,所以一般采用多層CNN來(lái)彌補(bǔ)這一缺點(diǎn),但本文主要研究的是GCN對(duì)于神經(jīng)機(jī)器翻譯性能的影響,因此僅采用了一層CNN,并且CNN的窗口大小w取值為5,CNN與GCN組合編碼結(jié)構(gòu)圖與RNN和GCN組合編碼結(jié)構(gòu)圖相似,因此不再給出圖。
解碼器會(huì)根據(jù)源語(yǔ)言句子產(chǎn)生一個(gè)相應(yīng)的目標(biāo)序列,在本文中解碼器是一個(gè)RNN,其網(wǎng)絡(luò)單元采用LSTM,源語(yǔ)言句子根據(jù)編碼器產(chǎn)生一個(gè)上下文向量ci,連同解碼器產(chǎn)生的前一個(gè)值yi-1共同生成目標(biāo)序列中的當(dāng)前詞。我們知道,神經(jīng)機(jī)器翻譯模型在訓(xùn)練時(shí),它以正確標(biāo)注的單詞作為上下文進(jìn)行預(yù)測(cè),而在測(cè)試時(shí),它只能從頭開(kāi)始重新生成整個(gè)序列。這樣做的結(jié)果是訓(xùn)練和測(cè)試中的預(yù)測(cè)詞分別來(lái)自不同的分布,訓(xùn)練來(lái)自于原本平行語(yǔ)料中的數(shù)據(jù)分布,而測(cè)試卻來(lái)源于模型分布。這樣做將會(huì)產(chǎn)生暴露偏差(Exposure Bias),并且隨著目標(biāo)序列的增長(zhǎng)錯(cuò)誤會(huì)不斷累積。為了解決該問(wèn)題,很容易想到在與測(cè)試相同的條件下進(jìn)行模型訓(xùn)練,所以本文采用的方法是,首先從預(yù)測(cè)的單詞中選擇優(yōu)質(zhì)的單詞集BestWords(BW),然后從BW和正確標(biāo)注的單詞中進(jìn)行抽樣,所得的結(jié)果作為上下文進(jìn)行訓(xùn)練。使用LSTM進(jìn)行解碼,第j步,目標(biāo)隱藏狀態(tài)sj為:
sj=LSTM(ey′j-1,sj-1,cj)
(13)
目標(biāo)詞的概率分布Pj為:
Pj=softmax(g(ey′j-1,cj,sj))
(14)
圖4 解碼器結(jié)構(gòu)
本實(shí)驗(yàn)的技術(shù)路線如圖5所示,對(duì)于蒙漢對(duì)齊語(yǔ)料庫(kù),在漢語(yǔ)端采用DDparser將其解析為依存樹(shù),同時(shí)采用BPE處理蒙古語(yǔ)目標(biāo)端的稀有詞和復(fù)合詞,然后分別采用RNN+GCN和CNN+GCN作兩組對(duì)比實(shí)驗(yàn),通過(guò)增加訓(xùn)練步數(shù),最終得到最好的翻譯模型。
圖5 技術(shù)路線
本實(shí)驗(yàn)所采用的數(shù)據(jù)為由內(nèi)蒙古工業(yè)大學(xué)構(gòu)建的用于內(nèi)蒙古自治區(qū)蒙古語(yǔ)言文字信息化專項(xiàng)扶持項(xiàng)目的121萬(wàn)蒙漢對(duì)齊語(yǔ)料庫(kù),包括政府新聞、法律公文、日常對(duì)話、詞典條目、計(jì)算機(jī)相關(guān)術(shù)語(yǔ)、氣象類相關(guān)術(shù)語(yǔ)、蒙古文諺語(yǔ)、日常用語(yǔ)和文學(xué)語(yǔ)句等語(yǔ)言信息。
對(duì)數(shù)據(jù)集劃分結(jié)果如表1所示。
表1 數(shù)據(jù)集劃分結(jié)果
本實(shí)驗(yàn)的源語(yǔ)言為漢語(yǔ),目標(biāo)語(yǔ)言為蒙古語(yǔ),對(duì)于劃分好的數(shù)據(jù)集,在漢語(yǔ)端采用由百度開(kāi)源的中文依存句法分析工具——DDParser。將原始句子解析為依賴樹(shù)。對(duì)于句子“創(chuàng)新是文化的生命力所在”,其經(jīng)過(guò)DDParser解析后,輸出結(jié)果如下:
[{′word′: [′創(chuàng)新′, ′是′, ′文化′, ′的′, ′生命力′, ′所在′],
′head′: [2, 0, 5, 3, 6, 2], ′deprel′: [′SBV′, ′HED′, ′ATT′, ′MT′, ′SBV′, ′VOB′]}]
為了解決蒙漢機(jī)器翻譯中存在的大量稀有詞和復(fù)合詞問(wèn)題,采用發(fā)布于github上的fastBPE對(duì)蒙古語(yǔ)進(jìn)行BPE操作,對(duì)蒙古語(yǔ)采用子詞級(jí)粒度[16]切分,操作數(shù)設(shè)為30 000,切分后詞典大小由原來(lái)的13 827 560變?yōu)?6 319 479,僅出現(xiàn)過(guò)一次的詞由原來(lái)的314 616變?yōu)?6 479,僅出現(xiàn)一次的詞的比率由0.023下降為0.002,很好地緩解了數(shù)據(jù)稀疏問(wèn)題。
對(duì)于中文采用自行編寫(xiě)的腳本程序字粒度切分,首先將原有的文本語(yǔ)料去掉標(biāo)點(diǎn)符號(hào)生成新的文本,再將生成的文本進(jìn)行逐字加空格生成新的語(yǔ)料文本。經(jīng)過(guò)切分后詞典大小由原來(lái)的11 900 543變?yōu)?0 987 685,僅出現(xiàn)過(guò)一次的詞由319 756下降到7 526,僅出現(xiàn)一次的比率由原來(lái)的2.69%下降為0.04%。
蒙漢平行語(yǔ)料分詞、分字結(jié)果見(jiàn)表2。
本實(shí)驗(yàn)采用github上基于TensorFlow的開(kāi)源工具包neuralmonkey,TensorFlow的版本為1.4.1,Python版本為3.6。采用Adam優(yōu)化器,RNN模型學(xué)習(xí)率設(shè)為0.2,CNN模型學(xué)習(xí)率設(shè)為0.1,dropout設(shè)為0.2,訓(xùn)練步數(shù)設(shè)為150 000。LSTM和CNN編碼器解碼器的層數(shù)均設(shè)為4層,隱藏單元數(shù)均為512,GCN層的維度與其輸入層的維度相等,并且實(shí)驗(yàn)發(fā)現(xiàn)采用兩層GCN的效果更好。以上參數(shù)取值是多次實(shí)驗(yàn)結(jié)果最好的參數(shù),所以模型優(yōu)化主要體現(xiàn)在這里。因?yàn)楸疚闹饕难芯績(jī)?nèi)容不在此,因此對(duì)于模型優(yōu)化不作過(guò)多的介紹。本實(shí)驗(yàn)的基線系統(tǒng)有兩個(gè),其一是有哈佛大學(xué)開(kāi)源的OpenNMT,其二是由Facebook AI實(shí)驗(yàn)室發(fā)布的基于CNN的神經(jīng)機(jī)器翻譯系統(tǒng)Fairseq,其中w=5。進(jìn)行多組對(duì)比實(shí)驗(yàn),得到實(shí)驗(yàn)結(jié)果如下:
如圖6所示,為BiRNN和BiRNN+GCN隨著訓(xùn)練步數(shù)的增加BLEU的變化圖??梢钥闯?隨著訓(xùn)練步數(shù)的增加BLEU值逐漸增加并收斂,并且加了GCN編碼語(yǔ)義信息后要比直接采用BiRNN編碼效果要好,當(dāng)訓(xùn)練步數(shù)達(dá)到150 000步時(shí),添加GCN后的BLEU值達(dá)到46.27,比基線系統(tǒng)(BLEU值為43.58)高了2.69個(gè)BLEU值,譯文結(jié)果見(jiàn)圖7。
圖7 句子級(jí)實(shí)驗(yàn)結(jié)果
如圖8所示,當(dāng)采用CNN+GCN組合編碼時(shí),BLEU值會(huì)出現(xiàn)明顯提高,當(dāng)訓(xùn)練達(dá)到150 000步時(shí),BLEU值達(dá)到43.72,比CNN基線系統(tǒng)(BLEU為41.63)提高了2.09。通過(guò)選擇GCN層數(shù)來(lái)調(diào)節(jié)信息傳播的距離:在k層中,一個(gè)節(jié)點(diǎn)最多可以從k跳處接收來(lái)自鄰居的信息。本文通過(guò)對(duì)比實(shí)驗(yàn)發(fā)現(xiàn):在BiRNN+GCN中,2層GCN取得更好的效果,如表3所示,其中1L、2L分別表示GCN的層數(shù)為1層和2層,+GCN表示BiRNN+GCN,可見(jiàn),當(dāng)采用1層GCN時(shí),BLEU值為45.16,當(dāng)采用兩層GCN時(shí),BLEU值提高了1.11,達(dá)到46.27,譯文結(jié)果見(jiàn)圖7。
表3 GCN層數(shù)對(duì)翻譯結(jié)果的影響
圖8 CNN+GCN對(duì)比實(shí)驗(yàn)BLEU值變化趨勢(shì)
蒙漢機(jī)器翻譯已取得了空前的進(jìn)步,但是仍達(dá)不到人類翻譯的效果,一些句子翻譯結(jié)果看似符合語(yǔ)法結(jié)構(gòu),但并不符合人類的表達(dá)習(xí)慣,原因在于現(xiàn)有的神經(jīng)機(jī)器翻譯系統(tǒng)并沒(méi)有很好地利用句子的句法結(jié)構(gòu)信息。因此本文提出將句子的依存句法樹(shù)作為輔助信息來(lái)提高神經(jīng)機(jī)器翻譯效果,對(duì)于依存句法信息,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)也可以進(jìn)行編碼,通常的做法是將句法樹(shù)轉(zhuǎn)化為序列信息進(jìn)行編碼,而本文提出直接使用圖卷積神經(jīng)網(wǎng)絡(luò)編碼這種句法結(jié)構(gòu)信息,圖和樹(shù)的結(jié)構(gòu)更加適應(yīng),并且采用有向圖編碼,能夠進(jìn)一步體現(xiàn)節(jié)點(diǎn)之間的關(guān)系。為了解決神經(jīng)機(jī)器翻譯系統(tǒng)在翻譯時(shí)嚴(yán)格對(duì)照給定語(yǔ)料作為參考,對(duì)于一些意思相近而表達(dá)不同的結(jié)果,神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)時(shí)會(huì)嚴(yán)格進(jìn)行校正,導(dǎo)致一些本來(lái)正確的翻譯被淘汰掉,本文提出將預(yù)測(cè)出的優(yōu)質(zhì)翻譯結(jié)果加入到下一步的訓(xùn)練過(guò)程中,可以有效解決上述問(wèn)題。為了解決神經(jīng)機(jī)器翻譯中出現(xiàn)的復(fù)合詞和未登錄詞對(duì)于翻譯質(zhì)量的影響,本文提出采用BPE,對(duì)蒙古語(yǔ)進(jìn)行子詞級(jí)切分,對(duì)漢語(yǔ)進(jìn)行字粒度切分。以上方法結(jié)合,最終的翻譯結(jié)果得到顯著提升,并且為蒙漢機(jī)器翻譯提供了一種新思路。