成 潔
(陜西國際商貿(mào)學(xué)院 基礎(chǔ)課部, 西安 712046)
深度學(xué)習(xí)在自然語言處理的各個領(lǐng)域都得到了成功的應(yīng)用,基于強(qiáng)化學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯的研究也得到了迅速的發(fā)展[1-4]。近年來,基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯與統(tǒng)計機(jī)器翻譯相比已經(jīng)取得了很大的成就,因此研究者不斷地、逐步地改變方法,以利用神經(jīng)網(wǎng)絡(luò)來改進(jìn)機(jī)器翻譯[5-8]。盡管機(jī)器翻譯有很多方法和技術(shù),但也存在一個問題。不同的機(jī)器翻譯方法或技術(shù)不能完整、準(zhǔn)確地描述同一源語句子的翻譯信息,而源語句子中的表達(dá)必然會產(chǎn)生錯誤[9-12]。復(fù)述可以糾正和補(bǔ)充機(jī)器翻譯結(jié)果,以盡可能地彌補(bǔ)上述問題的錯誤,從而可以用源語言更全面地描述翻譯結(jié)果。針對以上問題,系統(tǒng)融合也提出了解決方案。對于不同的系統(tǒng),系統(tǒng)融合將不同機(jī)器翻譯方法的輸出結(jié)果融合在一起,以生成輸出結(jié)果,由于其改進(jìn),該結(jié)果優(yōu)于原始機(jī)器翻譯。
本文運(yùn)用目前的主要機(jī)器翻譯方法來建立釋義模型,以完成提高漢英機(jī)器翻譯的任務(wù)。然后,它使用系統(tǒng)融合技術(shù)融合翻譯,以進(jìn)一步提高翻譯質(zhì)量。然后,在翻譯和釋義的基礎(chǔ)上,利用網(wǎng)絡(luò)和移動設(shè)備設(shè)計和開發(fā)漢英翻譯模型,并在神經(jīng)機(jī)器翻譯和釋義漢英移動翻譯系統(tǒng)的基礎(chǔ)上初步完成了開發(fā)工作。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯中最為廣泛的結(jié)構(gòu),而其它方法在編碼時只改變RNN的內(nèi)部隱藏結(jié)構(gòu)或固定向量計算[13-15]。與一般的前饋神經(jīng)網(wǎng)絡(luò)FNN不同,RNN在其基礎(chǔ)上引入了循環(huán)機(jī)制[16-18]。這樣,RNN可以處理前后不相關(guān)的輸入,但它不像以前的神經(jīng)網(wǎng)絡(luò)那樣需要一次性完成輸入特性。
圖1 RNN模型架構(gòu)
圖1描述了RNN的展開架構(gòu)。x和o分別表示輸入和輸出;h表示隱藏層;t表示時間;U表示參數(shù)從輸入層到隱藏層;V表示參數(shù)從隱藏層到輸出層;W表示隱藏層之間的遞歸參數(shù)。對于某一時刻的t,其輸出應(yīng)考慮當(dāng)前輸入xt和由某一狀態(tài)St-1發(fā)送的值。
對于xt。它是在整個網(wǎng)絡(luò)的時間t處輸入的字向量。對于st,它是時間t的狀態(tài),也是網(wǎng)絡(luò)的存儲單元。它包含時間t之前的所有狀態(tài),計算如下:
st=f(Uxt+Wst-1)
(1)
在公式(1)中,f是非線性激活函數(shù)。
對于ot它是在時間t時的輸出,通過公式(2)可以得到計算結(jié)果。
ot=softmax(Vst
(2)
圖2 基于編碼解碼器的神經(jīng)機(jī)器翻譯系統(tǒng)
基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯系統(tǒng)的典型模型是編碼-解碼。其基本思想是:將給定的源語言句子映射成連續(xù)的密集向量。解碼是指它根據(jù)這個向量轉(zhuǎn)換成目標(biāo)語言句子。一個編碼-解碼:基于結(jié)構(gòu)的神經(jīng)機(jī)器翻譯系統(tǒng)(NMT)如圖2所示。編碼和解碼通常使用RNN實現(xiàn)。由于普通RNN具有梯度消失和梯度爆炸的特性[19-21],因此通常采用長短期記憶網(wǎng)絡(luò)(LSTM)。
1.2.1 LSTM的原理
長短期記憶網(wǎng)絡(luò)(LSTM)是遞歸神經(jīng)網(wǎng)絡(luò)種的一種特殊網(wǎng)絡(luò),這種網(wǎng)絡(luò)可以對長期依賴關(guān)系進(jìn)行學(xué)習(xí)和獲取。Hochreiter等人提出了該網(wǎng)絡(luò),并在接下來的數(shù)十年里,許多學(xué)者對該網(wǎng)絡(luò)模型進(jìn)行了完善和改進(jìn)。LSTM及相關(guān)變種網(wǎng)絡(luò)的被設(shè)計出來的目的是為了避免長期依賴及相關(guān)的問題。對于LSTM來說,記住長期信息是其本身的自發(fā)默認(rèn)行為,是不需要通過大量學(xué)習(xí)就能夠?qū)崿F(xiàn)的。
所有普通的循環(huán)神經(jīng)網(wǎng)絡(luò)種,都有重復(fù)模塊,這些模塊以鏈?zhǔn)酱嬖?。在?biāo)準(zhǔn)的RNN中,重復(fù)模塊非常簡單,例如只有一個 tanh層,如圖3所示。
圖3 標(biāo)準(zhǔn)RNN的重復(fù)模塊包含一個單層網(wǎng)絡(luò)
基于以上背景可知,在LSTM及相關(guān)變種網(wǎng)絡(luò)中,同樣存在這樣的鏈狀結(jié)構(gòu),但是與普通RNN中的區(qū)別在于,LSTM中的重復(fù)模塊的結(jié)構(gòu)是不一樣的,具體如圖4所示。在LSTM中,原來的單層網(wǎng)絡(luò)被一個四層網(wǎng)絡(luò)所代替,并且他們之間的交互方式也十分特別。
圖4 LSTM網(wǎng)絡(luò)的重復(fù)模塊包含一個四層的交互網(wǎng)絡(luò)
cell狀態(tài)是LSTM及相關(guān)變種網(wǎng)絡(luò)的關(guān)鍵,圖5表示了一個橫穿整個cell頂端的水平線。
圖5 水平線橫穿cell示意圖
在長短期記憶網(wǎng)絡(luò)中中,cell狀態(tài)類似于傳送帶。為了保證承載的信息在傳送過程中保持不變,以及方便傳輸,cell狀態(tài)是直接穿過鏈,并且只在少數(shù)地方進(jìn)行一些較小的線性交互。
在LSTM中,為了能夠改變cell狀態(tài),如對信息的添加或刪除,所以引入一種叫做“門”的結(jié)構(gòu)來對其進(jìn)行操作。在這里,一個sigmoid神經(jīng)網(wǎng)絡(luò)層和一個位乘操作組成了門,如圖6所示。門在LSTM中的作用是控制信息,有選擇的讓信息通過。
圖6 門結(jié)構(gòu)示意圖
sigmoid層輸出數(shù)值是0或者1,這兩個值代表對應(yīng)的信息是否允許通過。當(dāng)數(shù)值為0時,當(dāng)前不允許信息通過,而當(dāng)數(shù)值為1時,則表示當(dāng)前所有信息都能夠通過。一個LSTM中門有3個,從而實現(xiàn)對cell狀態(tài)的保護(hù)和控制。下面將具體介紹這3個門。
第一個門:首先在LSTM中需要決定哪些信息要從cell狀態(tài)中被拋棄。這個選擇是由一個被稱為“遺忘門”的sigmoid層控制。這個門的輸入是ht-1和xt,輸出為0或者1。1代表保留這個信息,0代表這個信息需要被拋棄。
第三個門:接著,在LSTM中,是需要對最終輸出做出決定。當(dāng)前的cell狀態(tài)會影響輸出結(jié)果,但是為了使結(jié)果更加準(zhǔn)確,將會對結(jié)果進(jìn)行過濾。首先,建立一個輸出門,這個門是基于sigmoid神經(jīng)網(wǎng)絡(luò)層,這個門的作用是用來決定哪一部分的cell狀態(tài)是可以輸出。然后,將cell狀態(tài)通過tanh函數(shù)后,乘以輸出門。最終就輸出了只允許被輸出的部分。
1) 擴(kuò)展語料庫信息。釋義技術(shù)彌補(bǔ)了訓(xùn)練集、開發(fā)集和測試集中句子信息的缺陷。
2) 改變句子表達(dá)。復(fù)述技術(shù)對機(jī)器翻譯的輸入句子進(jìn)行復(fù)述,使翻譯系統(tǒng)能夠更好地理解或復(fù)述輸出的翻譯文本,使翻譯句子更符合目的語的語言習(xí)慣。
通過不同的釋義語料庫和不同的神經(jīng)網(wǎng)絡(luò)建立不同的釋義模型,并通過第二種方法對機(jī)器翻譯結(jié)果進(jìn)行復(fù)述,以提高機(jī)器翻譯的結(jié)果質(zhì)量。釋義模型的生成需要幾個步驟來完成:
1)得到神經(jīng)網(wǎng)絡(luò)翻譯模型;
2)得到釋義語料庫;
3)訓(xùn)練并得到釋義模型。
在改進(jìn)方法的基礎(chǔ)上,引入了譯碼器中的對齊模型,使該模型能夠同時學(xué)習(xí)對齊和平移。與傳統(tǒng)的RNN編解碼器最大的區(qū)別是改進(jìn)后的模型不將整個輸入序列變換成固定長度的中間矢量表達(dá)式,而是通過應(yīng)用雙邊遞歸神經(jīng)網(wǎng)絡(luò)將輸入序列變換成具有相同輸入長度的隱單元表達(dá)式。在此基礎(chǔ)上,解碼器可以在解碼過程中選擇一個或多個隱藏表達(dá)式進(jìn)行對齊和翻譯。該模型在處理長句子時具有較好的處理能力。
2.1.1 編碼器:雙向RNN表達(dá)式輸入序列
科學(xué)家們推測,在38億年前,火星的大氣層比現(xiàn)在要更濃密,溫度也比現(xiàn)在更高,能夠允許大量的液態(tài)水存在于火星表面,甚至還形成了海洋。在火星表面,能夠找到不少可能由水的流動而形成的地貌特征。然而,在現(xiàn)今的火星上,除了零星出現(xiàn)的液態(tài)水特征外,很難見到像南北極冰蓋這樣大規(guī)模的液態(tài)水分布。
對于給定的輸入序列x=(x1,…,xT),傳統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)模型將根據(jù)該序列從第一個序列到最后一個序列的順序依次輸入該模型,最終將整個序列轉(zhuǎn)化為一個中間向量表達(dá)式。為了使每個字的隱藏層都能在這個序列中攜帶其前、后信息,該模型采用雙向RNN模型來代替?zhèn)鹘y(tǒng)的RNN模型。
這樣,隱藏的分層狀態(tài)表達(dá)式就包含了整個輸入序列的信息。RNN模型的隱層表達(dá)趨向于更大程度上的表達(dá)和該詞附近的信息。因此,隱藏的分層向量hj對于每個詞的信息主要集中在該詞附近的上下文信息上,每個詞都可以以給定詞的上下文信息為中心來表達(dá)。在此基礎(chǔ)上,解碼器引入對齊模型,對輸出序列進(jìn)行更合理、更準(zhǔn)確的解碼
2.1.2 解碼器:訓(xùn)練對齊模型
在該模型中,重新定義了以下方程:
p(yi|y1,y2,...,yi-1,x)=g(yi-1,si,c)
(3)
其中:si是時間i時的隱藏層狀態(tài),并且隱藏層狀態(tài)的計算可以通過式(4)得到:
si=f(si-1,yi-1,ci)
(4)
其中:ci可以由輸入序列的隱藏狀態(tài)向量表示。這種隱層狀態(tài)向量的實現(xiàn)依賴于上下文中雙向遞歸神經(jīng)網(wǎng)絡(luò)模型表達(dá)式的輸入序列。這種隱層矢量計算是通過對每個輸入序列的隱層狀態(tài)進(jìn)行矢量加權(quán)和來實現(xiàn)的。
(5)
每個向量hj的權(quán)重aij可以通過式(6)計算得到:
(6)
其中:eij是一個對準(zhǔn)模型,用于估計對準(zhǔn)概率,具體可以通過式(7)計算得出:
eij=a(si-1,hj
(7)
基于隱層狀態(tài)向量si-1和jth雙向遞歸神經(jīng)網(wǎng)絡(luò),獲得了這種對準(zhǔn)概率。
通過上下文中可以看出,在Tx×Ty的每一個時間段中,雙語句子都將與輸入模型保持一致。在模型訓(xùn)練和解碼過程中,需要進(jìn)行大量的運(yùn)算。因此,為了降低計算復(fù)雜度,所以將使用感知器來完成這樣的功能。具體如式(8)所示:
(8)
在復(fù)述任務(wù)中,把復(fù)述語言的輸入和輸出作為不同的語義表達(dá)。與翻譯任務(wù)不同,釋義任務(wù)的輸入和輸出屬于同一種語言?;谶@一思想,所以利用該模型對同一語言的復(fù)述系統(tǒng)進(jìn)行訓(xùn)練,并以機(jī)器翻譯結(jié)果為輸入,生成句子規(guī)模的復(fù)述結(jié)果,使每個句子語義一致。由于在同一語言中很難獲得大規(guī)模的平行釋義語料庫,因此采用機(jī)器翻譯文本和參考翻譯文本的平行語料庫來近似釋義語料庫。在系統(tǒng)融合任務(wù)中,更多希望得到的是機(jī)器翻譯結(jié)果的復(fù)述句,因此與機(jī)器翻譯文本和參考文本相比,并行復(fù)述語料庫在一定程度上具有更大的優(yōu)勢。同時,在一定程度上提高了機(jī)器翻譯質(zhì)量的效果。
當(dāng)?shù)玫结屃x語料庫時,釋義模型的生成相對簡單。釋義模型的生成過程與翻譯模型的訓(xùn)練過程相似。在已有RNN網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)的基礎(chǔ)上,利用釋義語料庫分別訓(xùn)練模型,從機(jī)器翻譯文本和參考翻譯文本中獲得釋義模型。模型實現(xiàn)后,將機(jī)器翻譯結(jié)果輸入到“復(fù)述系統(tǒng)”中進(jìn)行翻譯,從而為輸入的句子生成理想的句子級復(fù)述結(jié)果。
本文的軟件設(shè)計框架采用MVC(model view controller)軟件構(gòu)建模式[22]。MVC三層架構(gòu)通過業(yè)務(wù)邏輯、數(shù)據(jù)和界面顯示的分離,促進(jìn)系統(tǒng)組織代碼,減少耦合,提高可重用性。系統(tǒng)生命周期成本低,可維護(hù)性高。內(nèi)容提供者主要用于管理共享數(shù)據(jù),實現(xiàn)不同應(yīng)用程序之間的數(shù)據(jù)共享。
圖7 系統(tǒng)工作流程
通過內(nèi)容提供者提供的完整性機(jī)制,可以實現(xiàn)一個程序?qū)α硪粋€程序的數(shù)據(jù)訪問。如果內(nèi)容提供商允許,它甚至可以更正數(shù)據(jù)。目前,Android提供的標(biāo)準(zhǔn)跨程序數(shù)據(jù)共享正在使用內(nèi)容提供商。移動翻譯軟件系統(tǒng)的整體流程圖如圖7所示,在該系統(tǒng)中,移動終端視圖層用來告訴用戶輸入和收集源語言語句??刂破饔糜趯⒕渥觽鬏?shù)椒?wù)器。
當(dāng)系統(tǒng)接收到需要翻譯的源句后,系統(tǒng)將該句子輸入到模型中,通過控制器,將源句傳輸?shù)竭h(yuǎn)端服務(wù)器,然后服務(wù)器通過利用前文所提的基于遞歸神經(jīng)網(wǎng)絡(luò)的翻譯模型對句子進(jìn)行翻譯,然后根據(jù)基于釋義的機(jī)器翻譯融合模型對釋義進(jìn)行優(yōu)化,增加譯后句子的可讀性。然后遠(yuǎn)端服務(wù)器將處理后的句子再次通過控制器傳輸回移動端,最后在移動端展示出結(jié)果。
該軟件的主要功能是將英語翻譯成漢語。當(dāng)軟件打開時,圖8中的初始界面將顯示在手機(jī)上??梢钥吹皆诖蜷_軟件后,有一個友好的界面建議。
圖8 軟件初始界面
輸入要翻譯的句子時,單擊相應(yīng)的按鈕翻譯該單詞或句子。點擊翻譯后,輸入的英文將被傳送到服務(wù)器進(jìn)行翻譯。翻譯和釋義后,翻譯結(jié)果將顯示在圖9的界面中,供用戶檢查。
圖9 翻譯結(jié)果示意圖
為了更好地評估所提出的翻譯模型的性能,本實驗基于NIST進(jìn)行英文翻譯任務(wù),使用的語料測試集為NIST05,NIST06,NIST08。開發(fā)集才用的是NIST02[8]。
接下來通過BLEU算法評價性能[23-24]。BLEU算法的計算公式為:
(9)
表1列出了在基線系統(tǒng)中的方法和轉(zhuǎn)換的結(jié)果。
表1 翻譯結(jié)果的對比
表1給列出了相應(yīng)的實驗結(jié)果,ALL表示將所有的測試集放在一起,從表中結(jié)果可以發(fā)現(xiàn),對于NIST08測試集,基線系統(tǒng)的BLEU值為30.07,是所有結(jié)果中最低的。相應(yīng)的,提出的模型,在NIST08測試集上的BLEU值有所提高,為31.02,但同樣為所有測試集中的最低的,但結(jié)果提高了1.02。在3個測試集中,NIST05的結(jié)果最好,分別為35.98和37.33。從表中可知,使用釋義糾正短語概率的方法在一定程度上得到了改進(jìn)。對于所有的測試集結(jié)果,基線系統(tǒng)的BLEU值為35.12,提出的模型的BLEU值為36.83,提高了1.71BLEU。結(jié)果表明,修正后的短語翻譯概率在一定程度上解決了訓(xùn)練語料數(shù)據(jù)的稀疏性,修正后的短語翻譯概率更加準(zhǔn)確合理。然而,通過短語向量提取的短語復(fù)述過程中存在一定的噪聲,因此機(jī)器翻譯中的振幅改善并不大,不需要進(jìn)一步改進(jìn)。
本文提出了一種面向移動終端的釋義機(jī)翻譯系統(tǒng)融合。該方法利用RNN編解碼模型生成語義一致性的句子級釋義。我們把釋義作為同一種語言之間的翻譯任務(wù)。在沒有大規(guī)模并行釋義語料庫的情況下,利用機(jī)器翻譯結(jié)果和源語言的參考翻譯文本來逼近并行釋義語料庫。利用該模型可以訓(xùn)練一個從機(jī)器翻譯結(jié)果到參考翻譯文本的釋義系統(tǒng),并生成語義連貫的句子級釋義結(jié)果。然后,將釋義結(jié)果引入系統(tǒng)融合的翻譯假設(shè)候選集。從實驗結(jié)果來看,該方法的改進(jìn)比基于詞尺度的短語尺度釋義的系統(tǒng)融合結(jié)果要大,因此我們的機(jī)器翻譯系統(tǒng)融合具有更大的潛力。