烏尼爾,蘇依拉,劉婉婉,仁慶道爾吉
(內(nèi)蒙古工業(yè)大學(xué) 信息工程學(xué)院,內(nèi)蒙古 呼和浩特 010080)
隨著社會(huì)交流的發(fā)展,信息的傳播變得尤為重要,大到國際合作,小到國內(nèi)交流,都離不開信息傳播,文本文字的翻譯則是實(shí)現(xiàn)信息傳播和交流的重要途徑,以人工翻譯為主的翻譯方法翻譯質(zhì)量好,但是翻譯速度較慢,以機(jī)器翻譯為主的翻譯方法則能夠快速地、較為準(zhǔn)確地對文本進(jìn)行翻譯。自20世紀(jì)90年代統(tǒng)計(jì)機(jī)器翻譯方法[1]逐漸成為機(jī)器翻譯的主流方法以來,一直受到科學(xué)家和語言學(xué)家褒貶不一的評論,科學(xué)家認(rèn)為從大規(guī)模語料中利用基于對數(shù)線性模型[2]的統(tǒng)計(jì)分析方法可以預(yù)測每一個(gè)目標(biāo)詞出現(xiàn)的概率,盡量提高譯文的流利程度,避免非法句子的出現(xiàn)。而語言學(xué)家則認(rèn)為,統(tǒng)計(jì)機(jī)器翻譯方法過分依賴數(shù)學(xué)統(tǒng)計(jì),對源語言不進(jìn)行語義分析,會(huì)導(dǎo)致歧義譯文的產(chǎn)生,從而難以獲得更高質(zhì)量的譯文。為此,Cho[3]以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)提出了一種全新的機(jī)器翻譯系統(tǒng)框架,稱為編碼—解碼框架。通過將源語言句子編碼為一個(gè)長度固定的向量形式,這組向量中包含整句源語言的所有語義信息,然后通過一個(gè)解碼器將這組向量信息解碼為與之對應(yīng)的目標(biāo)語言句子,最終實(shí)現(xiàn)源語言到目標(biāo)語言的翻譯。但是由于這種框架中的神經(jīng)網(wǎng)絡(luò)類型選取的是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(recurrent neural network)[4],在模型訓(xùn)練過程中通過時(shí)間反向傳播算法BP(back propagation)[5]進(jìn)行反向求梯度時(shí),句子中位置越靠前的詞與當(dāng)前詞的相關(guān)性越低,梯度變化越小,會(huì)導(dǎo)致梯度消失現(xiàn)象的產(chǎn)生,出現(xiàn)的結(jié)果就是在翻譯長句子時(shí)翻譯質(zhì)量很低;Jean[6]提出一種基于句子級(jí)別的長短時(shí)記憶模型LSTM(long short time memory)的機(jī)器翻譯系統(tǒng),這種模型的優(yōu)勢在于,在神經(jīng)網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)加入記憶單元對向量信息進(jìn)行記憶,緩解梯度消失;但是缺點(diǎn)仍然明顯,由于構(gòu)建記憶單元中輸入門、輸出門和遺忘門時(shí)還需要分別對每個(gè)門控單元添加激活函數(shù),導(dǎo)致訓(xùn)練速度很慢,尤其針對大規(guī)模語料,其訓(xùn)練的時(shí)間復(fù)雜度很高。所以,2013年Kalchbrenner[7]在編碼—解碼框架基礎(chǔ)上首次采用卷積神經(jīng)網(wǎng)絡(luò)CNN(convolution neural network)作為源語言編碼的載體,以單隱藏層的RNN進(jìn)行目標(biāo)語解碼,不僅訓(xùn)練速度快而且能夠在同一時(shí)刻得到句子的語義信息,實(shí)現(xiàn)并行計(jì)算。國內(nèi)基于神經(jīng)網(wǎng)絡(luò)算法的機(jī)器翻譯研究雖然在大語種互譯方面發(fā)展迅速,但在漢 語 和 少 數(shù) 民 族 語
言的互譯方面發(fā)展則較為緩慢;劉宇鵬[8]提出基于層次遞歸神經(jīng)網(wǎng)絡(luò)的方法獲取句子的語義關(guān)系來改進(jìn)翻譯模型,在英漢翻譯任務(wù)中獲得較好的結(jié)果;史曉東[9]提出利用深度神經(jīng)網(wǎng)絡(luò)DNN(Deep neural network)對漢英雙語添加隱式表達(dá)關(guān)系,在關(guān)系識(shí)別中獲取高質(zhì)量譯文。而在蒙漢翻譯方面,目前內(nèi)蒙古大學(xué)、內(nèi)蒙古師范大學(xué)及內(nèi)蒙古工業(yè)大學(xué)在進(jìn)行基于統(tǒng)計(jì)的翻譯任務(wù)和基于神經(jīng)網(wǎng)絡(luò)的翻譯任務(wù)[10]。本文通過利用CNN對蒙古語進(jìn)行編碼(區(qū)別于時(shí)間序列模型),能夠并行處理句子中的任意詞語,在獲取語義關(guān)系的同時(shí)加快訓(xùn)練速度,并利用全局注意力模型的GRU網(wǎng)絡(luò)對向量解碼,以BLEU值為評測指標(biāo),通過歸一化函數(shù)預(yù)測譯文,最終提高蒙漢機(jī)器翻譯模型質(zhì)量。
模型的搭建采用端到端的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[11],該結(jié)構(gòu)由一個(gè)編碼器和一個(gè)解碼器構(gòu)成,編碼器作用是將蒙古語句子詞語進(jìn)行編碼,生成包含語義信息的向量集合[12],解碼器作用是將這部分向量集合進(jìn)行解碼,預(yù)測出譯文[13],具體流程如圖1所示。
圖1 模型結(jié)構(gòu)
如圖1所示,當(dāng)對蒙古語句子進(jìn)行編碼時(shí),首先將句子中的詞語向量化處理,向量維度固定為N,句子中詞向量個(gè)數(shù)為M,由此構(gòu)成一個(gè)M×N的輸入矩陣,卷積層(conv-layer)通過預(yù)設(shè)窗口Filter的大小對窗口內(nèi)包含的蒙古語詞語集合進(jìn)行卷積運(yùn)算,接著利用池化層(pooling-layer)的采樣策略進(jìn)行特征提取,將所有提取的特征集合傳給全連接層,進(jìn)而完成編碼過程。解碼階段,利用全局注意力機(jī)制計(jì)算當(dāng)前預(yù)測漢語詞與每個(gè)源語言端蒙古語詞的對齊權(quán)重,通過一個(gè)GRU循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測最終譯文,完成解碼過程。本文以總分形式對模型進(jìn)行說明。
語料的向量化有兩種方式,一種以詞典大小K為維度的1-of-K模式,在詞典中該詞出現(xiàn)的位置設(shè)為1,其它位置均為0,表示方式簡單,但會(huì)構(gòu)成一個(gè)維度很大的輸入矩陣,且在進(jìn)行卷積運(yùn)算時(shí)由于0元素過多而造成大量無效運(yùn)算,造成CPU資源浪費(fèi)。另一種是以分布式表示的詞向量,這種表示方式使得每一個(gè)詞向量都有一組特定的編碼,區(qū)別于其他詞向量,在處理上下文時(shí)根據(jù)單詞向量的正交運(yùn)算獲取對應(yīng)的相似度值,便于文本的編碼。此外,向量的維度可人工設(shè)定,在卷積神經(jīng)網(wǎng)絡(luò)后續(xù)的卷積計(jì)算中CPU可以高效利用。本文采用后一種詞向量表示方式。詞語向量化處理后采用Skip-gram來預(yù)測其周圍詞,如式(1)所示。
(1)
CNN的構(gòu)建包括輸入矩陣、卷積層、池化層(采樣層)以及全連接層,其中卷積層由若干窗口(卷積核)構(gòu)成,每個(gè)窗口包含輸入矩陣中蒙古語詞向量的集合,根據(jù)窗口移動(dòng)步長遍歷整個(gè)輸入矩陣。窗口每移動(dòng)一個(gè)步長,都會(huì)將該窗口范圍內(nèi)的詞向量集合做采樣運(yùn)算,通過采樣策略找出該集合內(nèi)的最優(yōu)值,最終得到一個(gè)包含所有關(guān)鍵詞信息的整句源語言向量信息,其過程如圖2所示。
圖2 CNN編碼器
(2)
圖3 ELU函數(shù)
卷積層ELU激活函數(shù)及其導(dǎo)數(shù)如式(3)所示。
(3)
式(3)中,ε為常數(shù),x為輸入。ELU函數(shù)通過在正區(qū)間取x減輕梯度消失問題[15],且在負(fù)區(qū)間取小值時(shí)具有軟飽和特性,提高噪聲的魯棒性。
(4)
式(4)中,β為乘法偏置,b為加法偏置。Maxpooling為池化層激活函數(shù)。最后將所有包含語義信息的向量集合傳送至全連接層。
范崢崢從車上下來,打扮得很光鮮,白色的針織衫內(nèi)衣,黑色的中長外套,下穿當(dāng)下流行的春秋靴和百褶短裙,讓賈鵬飛不敢相信這就是快半年沒見面的妻子。
本文將蒙古語動(dòng)詞的詞干詞根進(jìn)行拆分,并以向量形式作為CNN神經(jīng)網(wǎng)絡(luò)的輸入。同時(shí)構(gòu)建詞根表,匯總出蒙古語語料的詞根,在編碼器編碼時(shí)通過遍歷詞根形態(tài)來緩解翻譯過程中出現(xiàn)的用詞錯(cuò)誤等問題。詞根形態(tài)表示如表1所示。
表1 詞根形態(tài)表示
編碼器工作完成后,進(jìn)行解碼前,通過全局注意力機(jī)型來獲取與當(dāng)前漢語詞對齊的源語言端蒙古語詞位置,利用包含一個(gè)隱藏層的GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行解碼。GRU解碼器結(jié)構(gòu)圖如圖4所示。
圖4 GRU解碼器結(jié)構(gòu)圖
圖4中,通過全連接層將信息傳入包含注意力機(jī)制的GRU解碼器,解碼器隱藏層節(jié)點(diǎn)中重置門和更新門決定是否對新信息進(jìn)行記憶。其各門控單元激活公式如式(5)~式(7)所示。
(8)
(9)
通過利用softmax函數(shù)進(jìn)行歸一化處理,預(yù)測當(dāng)前時(shí)刻的目標(biāo)詞,并將當(dāng)前目標(biāo)詞向量導(dǎo)入下一個(gè)隱藏層狀態(tài),配合當(dāng)前隱藏層狀態(tài)預(yù)測下個(gè)目標(biāo)詞。softmax函數(shù)如式(10)所示。
p(yt|y (10) 系統(tǒng)模型構(gòu)建完成,需要對模型參數(shù)初始化,模型訓(xùn)練中利用隨機(jī)梯度下降SGD[16]對初始化的參數(shù)進(jìn)行調(diào)整和優(yōu)化,獲取優(yōu)化參數(shù)。系統(tǒng)的模型流程圖如圖5所示。 圖5 模型流程圖 本文實(shí)驗(yàn)數(shù)據(jù)為蒙漢雙語平行語料67 000句對,此外還有從內(nèi)蒙古日報(bào)網(wǎng)站等相關(guān)網(wǎng)站下載的篇章對齊雙語語料約2萬句,通過對篇章對齊語料的預(yù)處理和校對,總計(jì)獲得可用雙語句對齊語料85 000句對。 語料庫利用自動(dòng)法進(jìn)行劃分: 訓(xùn)練集語料75 000句對,驗(yàn)證集語料8 000句對,測試集語料2 000句對。雙語詞典選取用得最頻繁的8 000個(gè)單詞。模型構(gòu)建中,CNN編碼器采用雙卷積雙池化層結(jié)構(gòu),卷積層激活函數(shù)為ELU,解碼器采用全局注意力的單隱藏層GRU神經(jīng)網(wǎng)絡(luò)。詞向量維度設(shè)為300,卷積窗口大小設(shè)為4,迭代訓(xùn)練30輪,初始學(xué)習(xí)率設(shè)為1,每三輪迭代后學(xué)習(xí)率變?yōu)樵瓉?.9,系統(tǒng)采用BLEU作為譯文評測指標(biāo)。實(shí)驗(yàn)的硬件環(huán)境為Ubuntu14.04,GPU為GTX760?;鶞?zhǔn)系統(tǒng)采用RNN結(jié)構(gòu)的蒙漢機(jī)器翻譯系統(tǒng)。 本文首先驗(yàn)證訓(xùn)練速度,觀察利用CNN的編碼器和RNN編碼器的工作速度,利用GPU訓(xùn)練并記錄前10輪迭代訓(xùn)練時(shí)間,實(shí)驗(yàn)結(jié)果如表2所示。 表2 系統(tǒng)運(yùn)行速率 單位: min 續(xù)表 通過表2可以看出,與基準(zhǔn)系統(tǒng)相比,利用CNN編碼的系統(tǒng)速度提高了約2.3倍。說明卷積神經(jīng)網(wǎng)絡(luò)處理文本信息時(shí)采用并行處理和矩陣計(jì)算的方法要快于RNN的時(shí)間序列模型這類每次只能處理一個(gè)蒙古語詞的方法。 通過訓(xùn)練后的模型,利用3 000句對的蒙古語語料測試集分別在基于CNN的系統(tǒng)和基準(zhǔn)系統(tǒng)上進(jìn)行測試,CNN編碼器輸入矩陣為30×300,30為蒙古語句子的最大長度,300為每個(gè)詞對應(yīng)的詞向量維度,滑動(dòng)窗口步長為1。當(dāng)采用單卷積單池化層結(jié)構(gòu),結(jié)果如圖6(a)所示,采用雙卷積雙池化層結(jié)構(gòu)時(shí),結(jié)果如圖6(b)所示,其中橫軸表示訓(xùn)練時(shí)段,縱軸表示模型BLEU值。 由圖6看出,隨著CNN結(jié)構(gòu)的改變,通過增加相應(yīng)的卷積層和池化層來提取特征,其語義信息將被更好地編碼,便于目標(biāo)端解碼和預(yù)測。 圖6 測試結(jié)果 圖6 測試結(jié)果 圖6(b)中,當(dāng)采用雙卷積層結(jié)構(gòu)時(shí),譯文的BLEU值相比較基準(zhǔn)系統(tǒng)有了較大程度的提升,最大提升3.09個(gè)BLEU值,說明在保證訓(xùn)練速度的前提下,還保證了譯文的質(zhì)量。表3所示為不同實(shí)驗(yàn)下的最優(yōu)BLEU值及其對應(yīng)的改進(jìn)幅度。 表3 各實(shí)驗(yàn)BLEU值 由表3可看出,隨著增加卷積層、池化層個(gè)數(shù),對應(yīng)的BLEU值也得到了相應(yīng)的提升,理論上可以進(jìn)一步增加CNN編碼器中卷積層和池化層的數(shù)量來改進(jìn)本文系統(tǒng),但是勢必對CPU的計(jì)算造成過量的負(fù)擔(dān),因此本文在CPU運(yùn)行負(fù)載正常的情況下使用當(dāng)前配置模式。表4所示為利用測試集語料及基準(zhǔn)系統(tǒng)翻譯結(jié)果和基于CNN的蒙漢機(jī)器翻譯系統(tǒng)得出的部分結(jié)果對比。 表4 部分結(jié)果 續(xù)表 本文提出利用CNN和GRU神經(jīng)網(wǎng)絡(luò)分別對蒙古語語料和漢語語料進(jìn)行相應(yīng)的編碼和解碼操作,主要根據(jù)CNN神經(jīng)網(wǎng)絡(luò)能夠并行運(yùn)算、權(quán)值共享和提取采樣特征的特點(diǎn)來提升模型的訓(xùn)練速度和語義編碼質(zhì)量,利用GRU神經(jīng)網(wǎng)絡(luò)中更新門和重置門的功能對模型中主要語義信息進(jìn)行記憶,進(jìn)一步緩解訓(xùn)練中產(chǎn)生的梯度彌散和梯度爆炸等現(xiàn)象,從而解決RNN神經(jīng)網(wǎng)絡(luò)在長距離現(xiàn)象中出現(xiàn)的問題。此外,本文通過在預(yù)測目標(biāo)端漢語詞匯時(shí)計(jì)算所有的源語言端蒙古語詞匯的權(quán)重來獲取對齊概率,這樣進(jìn)一步提升了翻譯質(zhì)量。但是針對目前蒙古語到其他語種的翻譯問題,都存在一個(gè)較為嚴(yán)重的問題,就是語料小、投入力度不足。這不僅在很大程度上限制了少數(shù)民族語言機(jī)器翻譯的發(fā)展,更加影響了民族文化事業(yè)的進(jìn)步,因此在今后的工作中,將進(jìn)一步搜集相關(guān)的信息與材料,為蒙古族乃至所有中國少數(shù)民族信息文化事業(yè)的發(fā)展做出自己的貢獻(xiàn)。 [1] 苗洪霞,蔡?hào)|風(fēng),宋彥.基于短語的統(tǒng)計(jì)機(jī)器翻譯方法[J].沈陽航空航天大學(xué)學(xué)報(bào), 2007, 24(2): 32-34. [2] 戴維·諾克, 彼得·J.伯克. 對數(shù)線性模型[M].上海: 格致出版社,2012: 17-29. [3] Cho K, VanMerrienboer B, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. Computer Science, 2014, 2(11): 23-37. [4] Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Proceedings of Conference of the International Speech Communication Association, Makuhari, Chiba, Japan, September. DBLP, 2010: 1045-1048. [5] Prokhorov D V, Si J,Barto A, et al. BPTT and DAC: A common framework for comparison[M]. Handbook of Learning and Approximate Dynamic Programming. John Wiley & Sons, Inc, 2012: 381-404. [6] Jean S, Cho K,Memisevic R, et al. On using very large target vocabulary for neural machine translation[J]. Computer Science, 2014: 11(6): 7-16. [7] Kalchbrenner N,Blunsom P. Recurrent continuous translation models[C]//Proceedings of Association for Computation Linguistics. 2013: 1700-1709. [8] 劉宇鵬, 馬春光, 張亞楠. 深度遞歸的層次化機(jī)器翻譯模型[J].計(jì)算機(jī)學(xué)報(bào), 2017, 40(4): 861-871. [9] 史曉東, 陳毅東.基于語篇的機(jī)器翻譯前瞻[C]. 曹右琦,孫茂松.中國中文信息學(xué)會(huì)二十五周年學(xué)術(shù)會(huì)議.北京: 清華大學(xué)出版社,2006: 56-68. [10] 寧靜. 基于樹到串的蒙漢統(tǒng)計(jì)機(jī)器翻譯研究[D]. 呼和浩特: 內(nèi)蒙古師范大學(xué)碩士學(xué)位論文, 2016. [11] 陳煒. 基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯技術(shù)研究[D]. 北京: 中國科學(xué)院大學(xué)碩士學(xué)位論文,2016. [12] Meng F, Lu Z, Wang M, et al. Encoding source language with convolutional neural network for machine translation[J]. Computer Science, 2015,11(2): 15-22. [13] Gehring J, Auli M, Grangier D, et al. A Convolutional Encoder Model for Neural Machine Translation[J]. Computation and Language. 2016,8(6): 33-45. [14] 陳先昌. 基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究[D].杭州: 浙江工商大學(xué)碩士學(xué)位論文,2013. [15] 王龍, 楊俊安, 劉輝,等. 基于RNN漢語語言模型自適應(yīng)算法研究[J]. 火力與指揮控制, 2016, 41(5): 31-34. [16] 汪寶彬, 汪玉霞. 隨機(jī)梯度下降法的一些性質(zhì)[J].數(shù)學(xué)雜志,2011,31(6): 1041-1044.1.5 系統(tǒng)流程
2 實(shí)驗(yàn)
2.1 訓(xùn)練速度
2.2 實(shí)驗(yàn)評測及結(jié)果分析
3 總結(jié)