国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于篇章上下文的蒙漢神經(jīng)機器翻譯方法

2020-10-19 04:40:54蘇依拉仁慶道爾吉
計算機工程與應(yīng)用 2020年20期
關(guān)鍵詞:蒙漢語料編碼器

高 芬,蘇依拉,仁慶道爾吉

內(nèi)蒙古工業(yè)大學 信息工程學院,呼和浩特 010080

1 引言

機器翻譯作為人工智能的終極目標之一,主要研究如何使用計算機將一種源語言翻譯成為另一種目標語言[1]。機器翻譯的研究能夠促進不同民族和國家之間的信息交流,具有重要的科學研究價值。

蒙古族作為我國五十六個民族的重要成員之一,是草原游牧民族的典型代表和草原文化的重要傳承者。蒙古語則是我國蒙古族同胞使用的主要語言。在我國經(jīng)濟快速發(fā)展與社會不斷進步的背景下,蒙古族與漢族之間的交流日益頻繁。蒙漢機器翻譯的研究能促進蒙漢兩種文化的融合和信息共享,對于兩種文化的價值觀相互滲透,凝聚民族的核心文化,促進良好民族關(guān)系的建立具有重要意義。

隨著深度學習技術(shù)的不斷發(fā)展,神經(jīng)機器網(wǎng)絡(luò)碾壓統(tǒng)計機器網(wǎng)絡(luò),已成為機器翻譯業(yè)界的主流[2]。然而,在當前的神經(jīng)網(wǎng)絡(luò)機器翻譯中,大部分的機器翻譯系統(tǒng)還停留在單句范圍內(nèi)進行信息處理[3],以句子級的翻譯方式為主,使用平行句子語料庫來訓(xùn)練翻譯模型。即使翻譯一篇篇章也是先將篇章拆分成單個句子,然后對單個句子進行翻譯,孤立地進行句子翻譯的神經(jīng)網(wǎng)絡(luò)機器翻譯模型在翻譯的過程中僅能利用當前句子的信息,完全忽略了篇章上下文其他有價值的語境信息之間的聯(lián)系[4]。

“歧義”是自然語言中很常見的一個現(xiàn)象,同一個詞根據(jù)不同的上下文有兩個或者兩個以上的詞義時,就會產(chǎn)生歧義。蒙古文同形詞歧義消除問題是蒙古文信息處理的難點之一。不同的上下文,一個詞可能含有不同的意義和解釋。國內(nèi)外一些研究者已經(jīng)表明通過篇章級上下文可以很好地解決詞義歧義和指代消解等問題進而提高翻譯質(zhì)量。

基于篇章上下文方法的機器翻譯1994年就有學者提出。2006年,廈門大學的史曉東教授指出“語篇才是人類語言的交際單位,才是翻譯的基本單位”[5]。中科院的劉群教授在2012年提出機器翻譯需要用到多個層次的知識,包括篇章層面。2018年,中國科學院自動化研究院張家俊教授在“機器翻譯前沿動態(tài)”報告會上對比近兩年ACL 系列文章,指出未來機器翻譯的趨勢是利用篇章上下文進行翻譯。不可否認,以上專家都有共鳴,機器翻譯的處理單元必須跨越句子。很顯然有些句子直接依靠它本身的信息就能夠獲得正確的翻譯,但是還有一些句子卻需要更大的篇章上下文信息[6]。

近兩三年,利用上下文信息來提高機器翻譯成為了一個趨勢。Tiedemann等人[7]研究了擴展上下文在基于注意力的神經(jīng)機器翻譯中的應(yīng)用。實驗以翻譯電影字幕為基礎(chǔ),討論了在單個翻譯單元之外增加片段的效果。愛爾蘭都柏林大學研究者提出了一種跨句語境感知方法,研究了歷史語境信息對神經(jīng)機器翻譯性能的影響[8]。愛丁堡大學(The University of Edinburgh)研究者基于現(xiàn)有的Transformer 模型,構(gòu)造了源語言編碼器(source encoder)和上下文編碼器(context encoder),上下文相關(guān)的源語言表示是通過兩個編碼器的輸出經(jīng)過注意力層得到的[9]。莫納什大學(Monash University)的研究者通過構(gòu)造記憶網(wǎng)絡(luò)來存儲源語言篇章和目標語言篇章中句子之間的依賴關(guān)系來解決篇章級機器翻譯的任務(wù)[10]。以上文獻都表明神經(jīng)機器翻譯需要根據(jù)源句定義的上下文跨句來提高譯文的連貫性。利用篇章上下文的機器翻譯能提取到其他有價值的語境信息之間的聯(lián)系,有助于提高翻譯質(zhì)量。然而,大型篇章級并行語料庫通常稀缺,尤其對于少數(shù)民族語言而言?;诖藛栴},擬參考Zhang Jiacheng等人[11]的思想,利用較為豐富的句子級平行語料庫和有限的篇章級并行語料進行機器翻譯的訓(xùn)練。并且,此文還研究了蒙漢神經(jīng)機器翻譯的翻譯單元粒度。漢語端采用子詞作為基本翻譯單元,有效解決集外詞(OOV)和罕見詞(Rare word)問題[12]。蒙古語端以子素、單詞、短語為單位對句子進行切割。

本文在Zhang Jiacheng等人[11]的工作基礎(chǔ)上,第一,將漢字子詞特征融入到蒙漢神經(jīng)機器翻譯的方法,同時,有效地證明了漢字子詞特征可以對神經(jīng)機器翻譯模型起到促進作用。第二,蒙古語端使用混合編碼器,混合編碼器采用三種編碼狀態(tài)混合而成,包括字素、單詞和短語三類向量信息。使用混合編碼器的好處是利用不同的深度和結(jié)構(gòu)的編碼器對源端蒙文句子進行分布式表示。

2 背景知識

本文研究的對象是蒙文到中文的神經(jīng)機器翻譯。其中,中文端以漢字子詞(Byte Pair Encoder,BPE)為單位對句子進行切割;子詞的全名稱是字節(jié)對編碼,它主要是為了解決數(shù)據(jù)壓縮,它的原理是替換,字符串中頻率高的字符被頻率低的字符替代的一個層層迭代的過程。BPE 最初2016 年應(yīng)用于機器翻譯,很好地解決集外詞和罕見詞問題[13]。

蒙古文詞的數(shù)量龐大,而且可以通過在詞干后添加附加成分來構(gòu)造新詞[14],因此翻譯模型無法覆蓋所有詞,故未登錄詞的問題會一直存在于詞級翻譯模型中。而蒙古文字符數(shù)量有限且數(shù)量較少,所有詞都由字符序列組合而成,這種字符序列有一定的組合規(guī)律,適合神經(jīng)網(wǎng)絡(luò)模型去學習,故融合不同粒度的切分方法來預(yù)處理語料。

蒙古文端以子素、單詞、短語為單位對句子進行切割。使用混合編碼器,利用深度和結(jié)構(gòu)不同的三個編碼器即對源端蒙文句子進行分布式表示。混合編碼器的三個編碼器的其他參數(shù)獨立分布,只是共享詞向量矩陣。在機器翻譯中,當輸入源端句子時,詞向量將輸入句子數(shù)學化,輸入的詞或字符經(jīng)過詞向量映射為向量矩陣。如圖1所示,混合編碼器的目的是利用深度和結(jié)構(gòu)不同的多個編碼器對源端蒙文句子進行分布式表示,不同深度的編碼器對源端句子具有不同的分布式表示能力,不同結(jié)構(gòu)的編碼器對句子表示過程中關(guān)注的句子特征的權(quán)重不同,然后源端蒙文句子的最終表示是將多個分布式的表示融合起來。期望通過這種方式能得到一個對源端句子更全面的表示,增強模型能力。

圖1 混合編碼器

混合編碼器建模的公式為:

式中,Γ為混合函數(shù),是三種激活函數(shù)的集合,ht為詞編碼器的隱藏狀態(tài),htc為字素編碼器的隱藏狀態(tài),htp為短語編碼器的隱藏狀態(tài)。

詞編碼器的建模公式為:

式中,ht為詞編碼器的隱藏狀態(tài),φ表示激活函數(shù),C為映射矩陣,wt為詞的向量表示。

這里,wt為單字的蒙古語詞向量表達形式,由于蒙古語形態(tài)多變,單單利用詞單位的向量形式無法做到較好的編碼效果,蒙古語語義也得不到較為理想的獲取,基于神經(jīng)網(wǎng)絡(luò)的蒙漢機器翻譯系統(tǒng)還將另外構(gòu)建兩種編碼器,分別為字素編碼器和短語編碼器。

字素編碼器的建模公式為:

式中,htc為字素編碼器的隱藏狀態(tài),ψ為激活函數(shù),Cc表示映射矩陣,wtc為字素的向量表示。

短語編碼器是將源語言句子中成組出現(xiàn)的短語作為編碼器的基本單元進行編碼,體現(xiàn)了雙語平行對照語料中的一對多翻譯的優(yōu)勢,盡可能地保留原始句子的語義特征。對源語言蒙語句子的短語進行短語劃分,進而構(gòu)建短語字典庫,然后構(gòu)建短語編碼器。

短語編碼器的建模公式為:

式中,htp為短語編碼器隱藏狀態(tài),γ為激活函數(shù),Cp為映射矩陣,wtp為短語的向量表示。

3 神經(jīng)機器翻譯

3.1 神經(jīng)網(wǎng)絡(luò)的seq2seq模型

Seq2Seq[15]的中文名稱是序列到序列,序列到序列指的就是輸入和輸出都是序列。假設(shè)有一個蒙語句子“”和一個其對應(yīng)的中文句子“明天是周末”,那么序列的輸入就是“”,而序列的輸出就是“明天是周末”,從而對這個序列對進行訓(xùn)練。

Seq2Seq 模型由編碼器和解碼器兩個部分來構(gòu)成,其中編碼器將源句總結(jié)為矢量表示,解碼器從矢量中逐字生成目標句。使用編碼器-解碼器以及注意力機制,神經(jīng)機器翻譯在各種語言對上的性能已經(jīng)超過了傳統(tǒng)統(tǒng)計機器翻譯的性能。

如圖2 所示,在輸入句子比較長時,此時所有語義完全通過一個中間語義向量C來表示,會丟失很多細節(jié)信息,因此要引入注意力模型。深度學習中的注意力機制核心目標是從眾多信息中選擇出對當前任務(wù)目標更關(guān)鍵的信息。注意力機制的引入使得神經(jīng)機器翻譯由于定長源語言句子向量帶來的長距離依賴問題得到緩解。

圖2 Seq2Seq模型

3.2 帶注意力機制的seq2seq模型

2015 年,注意力機制[16]的提出,是自然語言處理的一大里程碑。

注意力機制函數(shù)的本質(zhì)是對Source中元素的Value值進行加權(quán)求和,而Query 和Key 用來計算對應(yīng)Value的權(quán)重系數(shù),如圖3所示。

圖3 注意力機制函數(shù)

基于注意力機制的神經(jīng)機器翻譯模型在生成每個單詞的時候,如圖4 所示,即由固定的中間語義表示C會被替換成根據(jù)當前輸出單詞而不斷變化的Ci?;谧⒁饬C制的神經(jīng)機器翻譯模型中編碼器為每個源語言詞生成包含全局信息的向量表示,在生成每個目標語言詞時,解碼器會動態(tài)尋找和當前詞相關(guān)的源語言上下文信息。

圖4 加入注意力機制的Seq2Seq模型

3.3 純注意力機制的seq2seq模型

通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)或卷積神經(jīng)網(wǎng)絡(luò)[17]來處理變長序列得到一個相同長度的輸出向量序列。然而,不管是對于循環(huán)神經(jīng)網(wǎng)絡(luò)還是對于卷積神經(jīng)網(wǎng)絡(luò),其實都是屬于對變長序列的“局部編碼”。循環(huán)神經(jīng)網(wǎng)絡(luò)因為梯度消失只能建立短距離依賴,而卷積神經(jīng)網(wǎng)絡(luò)是基于N-gram的局部編碼。

如果要建立輸入序列之間的長距離依賴關(guān)系,通常有兩種方法,其一是通過加深網(wǎng)絡(luò)層數(shù)去獲取長距離的依賴關(guān)系,其二是應(yīng)用全連接網(wǎng)絡(luò)。如圖5 所示,全連接網(wǎng)絡(luò)是一種直接的建模遠距離依賴的模型,但由于不同的輸入長度,其連接權(quán)重的大小不同。故全連接網(wǎng)絡(luò)無法應(yīng)對變長的輸入序列。這時可以利用自注意力機制,如圖6所示,動態(tài)地生成不同連接的權(quán)重,從而處理變長的信息序列。

圖5 全連接模型

圖6 自注意力模型

2017年末,Google提出的Transformer[18]是自然語言處理的又一大里程碑。Transformer 完全由純注意力機制組成,更準確地說,Transformer 由且僅由自注意力機制[19]和前饋神經(jīng)網(wǎng)絡(luò)組成。

Transformer使用自注意力機制,將序列中的任意兩個位置之間的距離縮小為一個常量;其次它不是順序結(jié)構(gòu),因此具有更好的并行性,自注意力機制的核心內(nèi)容是為輸入向量的每一個單詞學習一個權(quán)重,多頭注意力的不同之處在于進行了h次計算而不僅僅算一次,這樣的好處是可以允許模型在不同的表示子空間里學習到相關(guān)的信息。

如圖7所示為傳統(tǒng)的Transformer結(jié)構(gòu)簡圖。

圖7 Transformer結(jié)構(gòu)簡圖

4 篇章上下文方法

本文擬采用融合篇章級語義信息的策略來解決蒙古文同形詞歧義問題和指代消解問題,提高蒙漢神經(jīng)機器翻譯的質(zhì)量。由于大型篇章級并行語料庫通常不可用,因此擬利用較為豐富的句子級平行語料庫和有限的篇章級并行語料庫。由于篇章上下文通常包含多個句子,因此捕獲遠程依賴關(guān)系并識別相關(guān)信息非常重要。使用多頭自注意力來計算篇章級上下文的表示,能夠減少遠程依賴關(guān)系到O(1)之間的最大路徑長度并確定上下文中不同位置的相對重要性。

如圖8 所示,在傳統(tǒng)的Transformer 框架基礎(chǔ)上,通過自注意力模型上添加模塊來融合篇章上下文信息,并且使用多頭自注意力機制將得到的篇章上下文的隱層表示同時融入到源端編碼器和解碼器中。上下文編碼器的輸入是源端待翻譯句子與同一個篇章中的前k個句子。上下文編碼器類似于Transformer 的編碼器,是一個多層結(jié)構(gòu),每一層都包含一個自注意力層和前向反饋層,并且利用多頭上下文注意力(context attention)將篇章上下文的隱層信息輸入到源端編碼器和解碼器中。

圖8 篇章上下文語境方法的結(jié)構(gòu)框架

將篇章語料編碼成篇章向量,使用多頭自注意來計算篇章級上下文的表示,自注意編碼器的輸入是一系列上下文字嵌入,表示為矩陣。篇章級訓(xùn)練多頭注意力,更能獲取不同子空間的語義信息,提高語義消除歧義能力,提高翻譯質(zhì)量。

采用兩步訓(xùn)練法:

(1)訓(xùn)練一個標準的自注意翻譯模型(句子級別和篇章級別語料);

(2)訓(xùn)練新加入的模塊(篇章級別的語料訓(xùn)練)。

圖8 左側(cè)列上下文編碼器端第一個子層是多頭自注意力:

第二個子層是前饋神經(jīng)網(wǎng)絡(luò):

圖8中間列的編碼器端第一層是多頭自注意力:

第二層是上下文注意力,將篇章上下文集成到編碼器:

第三層是前饋神經(jīng)網(wǎng)絡(luò):

圖8右側(cè)列的解碼器用來計算目標端的表示:

第一層是多頭自我注意力:

第二層是上下文注意力,將篇章上下文集成到編碼器中:

第三層是編碼器-解碼器注意力:

第四層是前饋神經(jīng)網(wǎng)絡(luò):

式中,n=1,2,…,Nt;Y∈RD×j;T(0)=Y。

5 實驗

5.1 數(shù)據(jù)預(yù)處理

通過BLUE 值來證明篇章上下文語境方法能夠提高蒙漢翻譯性能。本文采用了兩個數(shù)據(jù)集來進行實驗驗證。

(1)內(nèi)蒙古大學開發(fā)的67 288句對蒙漢雙語平行語料,數(shù)據(jù)集劃分如表1 所示,隨機選取1 000 句為驗證集,800 句為測試集。從65 488 句訓(xùn)練集里選擇具有上下文關(guān)系的篇章語料庫,如表2 所示,在本文使用的語料庫里共選擇出35 個具有上下文關(guān)系的篇章語料庫,涉及到小說、對話等,其中篇章上下文語料共有34 784句對。

表1 數(shù)據(jù)集1語料庫的劃分

表2 篇章上下文數(shù)據(jù)

(2)CWMT 去重校正后的118 502 句對蒙漢平行語料劃分如表3所示,隨機選取1 500句為驗證集,1 000句為測試集。從116 002句訓(xùn)練集里選擇具有上下文關(guān)系的篇章語料庫,如表2 所示,在本文使用的語料庫里共有37個具有上下文關(guān)系的篇章語料庫,涉及到小說、對話等,其中篇章上下文語料共有29 702句平行語料庫。

表3 數(shù)據(jù)集2語料庫的劃分

5.2 實驗配置

本文使用谷歌開源系統(tǒng)庫Tensor2Tensor的Transformer的神經(jīng)機器翻譯系統(tǒng)作為實驗的基準系統(tǒng)。篇章級機器翻譯選用清華大學自然語言處理小組開發(fā)的機器翻譯庫THUMT。本文使用系統(tǒng)為Ubuntu 16.04,語言為python 2.7.0,TensorFlow 版本為1.6.0。參數(shù)設(shè)置如下:隱藏層大小設(shè)置為512,多頭注意力的頭數(shù)設(shè)置為8,編碼器解碼器的層數(shù)設(shè)置為6層,上下文編碼器的網(wǎng)絡(luò)層數(shù)設(shè)置為1層,使用Adam進行參數(shù)優(yōu)化,本文還對輸出層采用dropout方法以加強神經(jīng)網(wǎng)絡(luò)的泛化能力。本文采用批量式方法對參數(shù)進行更新,大小設(shè)置為120,本文將束搜索的大小設(shè)置為10。迭代步數(shù)設(shè)置為100 000步,batch-size 設(shè)置為 6 250,用 mult-bleu.per 腳本評測翻譯性能BLUE值。

5.3 實驗結(jié)果

為了驗證篇章上下文方法能提高翻譯的質(zhì)量,分別選用兩個數(shù)據(jù)集來進行對比實驗。實驗結(jié)果如表4所示。

表4 BLUE值

如表4 所示,在67 288 句平行語料庫里,在測試集上句子級別的翻譯模型BLUE值為21.3,加入篇章上下文語境以后 BLUE 達到了 22.2,提升了 0.9 個 BLUE 值。在118 502 句對平行語料庫中,句子級別的翻譯模型BLUE 值為29.5,加入篇章上下文語境以后BLUE 達到了30.0,提升了0.5個BLUE值。

用一個例子來說明加入篇章上下文語境以后如何幫助翻譯。例如英文單詞“address”,如果沒有上下文,很難消除“address”的歧義,而加入篇章上下文語境以后,“address”可以很好地從上下文的“speech”推斷出來是“演講”的意思。這個例子表明本文的模型通過整合篇章上下文來學習解決詞義歧義問題進而幫助翻譯。

6 結(jié)束語

通過本文實驗表明,在兩種語料中,加入篇章上下文方法的蒙漢神經(jīng)機器翻譯相比于句子級別的蒙漢神經(jīng)機器翻譯BLUE值確實有提升,證明篇章上下文方法確實能夠提升機器翻譯的效果,但是提升效果不是特別明顯,大概提升了0.5~1個BLUE值,對此認為并不是加入篇章上下文語境技術(shù)后對翻譯結(jié)果提升效果小,而是由于在蒙漢平行語料中,篇章上下文語料數(shù)據(jù)太少,如果句子級平行語料數(shù)據(jù)和篇章級語料數(shù)據(jù)有數(shù)量級差或者主題存在差異時,訓(xùn)練會不太穩(wěn)定。故下一步擬爬取數(shù)量更多、質(zhì)量更好的蒙漢篇章上下文并行語料庫來進一步提升翻譯效果。

猜你喜歡
蒙漢語料編碼器
《內(nèi)蒙古藝術(shù)》(蒙漢刊)首屆作者培訓(xùn)班掠影
簡論蒙漢蛇文化比較研究
基于FPGA的同步機軸角編碼器
淺析關(guān)于蒙漢章回小說的結(jié)構(gòu)
基于PRBS檢測的8B/IOB編碼器設(shè)計
基于語料調(diào)查的“連……都(也)……”出現(xiàn)的語義背景分析
清代歸化城土默特地區(qū)的草廠糾紛與蒙漢關(guān)系
JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
電子器件(2015年5期)2015-12-29 08:42:24
華語電影作為真實語料在翻譯教學中的應(yīng)用
《苗防備覽》中的湘西語料
黔西| 宜君县| 义马市| 蓝山县| 屏南县| 宁武县| 墨脱县| 福州市| 亚东县| 寿光市| 景泰县| 沂南县| 墨玉县| 和林格尔县| 聂拉木县| 灵丘县| 河东区| 霞浦县| 于都县| 瑞昌市| 象山县| 阿拉善盟| 阿克陶县| 房山区| 察雅县| 崇信县| 太保市| 陵水| 泸定县| 桂阳县| 扶余县| 广宁县| 道真| 泌阳县| 弥渡县| 阜南县| 巴东县| 龙里县| 昌宁县| 毕节市| 盐津县|