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

?

基于掩碼機制的非自回歸神經(jīng)機器翻譯

2021-06-22 08:32季佰軍段湘煜
關(guān)鍵詞:編碼器解碼長度

賈 浩,王 煦,季佰軍,段湘煜,張 民

(蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)

機器翻譯[1-2]的主要研究目的是通過計算機實現(xiàn)一種語言到另一種語言的自動翻譯,傳統(tǒng)的統(tǒng)計機器翻譯(statistic machine translation,SMT)[3]系統(tǒng)性能提升緩慢,但是近年來,隨著神經(jīng)機器翻譯(neural machine translation,NMT)[4]的提出,機器翻譯性能大幅度提升,再次得到了廣泛的關(guān)注.

NMT模型一般采用編碼器-解碼器[5]結(jié)構(gòu),使用編碼器學(xué)習(xí)源端單詞的上下文表征,之后再通過解碼器來預(yù)測目標端的單詞.2014年,Bahdanau等[6]第一次將注意力機制引入自然語言處理領(lǐng)域,進一步提升了NMT的性能.之后Luong等[7]拓展了注意力機制在機器翻譯領(lǐng)域的運用,提出了全局注意力與局部注意力的概念.2017年,Vaswani等[8]通過自注意力機制(self-attention)將輸入序列中不同位置的信息相互聯(lián)系起來,提出了完全基于注意力機制的翻譯模型Transformer,與遞歸結(jié)構(gòu)、卷積結(jié)構(gòu)相比,取得了更好的翻譯效果.

雖然在翻譯效果上取得了較大進步,但相關(guān)模型也越來越復(fù)雜,并且編碼器與解碼器分開設(shè)計,進一步增加了模型的復(fù)雜度.目前已經(jīng)有一些工作嘗試縮小編碼器與解碼器之間的差異,將它們簡化為一個模塊.Bapna等[9]嘗試將編碼器所有層的信息傳給解碼器.He等[10]將編碼器與解碼器參數(shù)共享,取得了不錯的效果.Fonollosa等[11]則在He等[10]的基礎(chǔ)上對注意力層添加了局部約束.這些方法都嘗試將編碼器與解碼器在注意力層面上統(tǒng)一,但是在編碼過程中這些模型只能依靠源端句子.

非自回歸NMT近幾年在NMT領(lǐng)域逐漸受到關(guān)注.傳統(tǒng)的自回歸NMT在解碼過程中逐次以已知單詞為條件預(yù)測下一個單詞,而非自回歸NMT則通過并行計算一次性生成所有預(yù)測單詞.雖然在配置相同的情況下非自回歸NMT效果往往沒有自回歸NMT好,但是相對而言,其翻譯速度有大幅提高.2018年,Gu等[12]首次提出了非自回歸NMT,與傳統(tǒng)Transformer模型相比,多了一個繁殖預(yù)測(fertility predictor)模塊,使用外部的快速對齊工具(fast align)來生成繁殖信息以決定輸出句子長度,之后并行地生成目標語句的各個單詞.Lee等[13]則通過編碼器隱狀態(tài)直接生成句子長度,并且采用多次迭代的方法,直接取上一輪翻譯的結(jié)果作為下一輪的解碼器輸入,從而提升翻譯效果.Ghazvininejad等[14]則在Lee等[13]的基礎(chǔ)上采用掩碼機制,隨機對解碼器的輸入進行掩碼處理,輸出這些被掩碼的單詞.為了得到更合適的翻譯結(jié)果,Wei 等[15]將自回歸模型作為教師模型,指導(dǎo)模型的訓(xùn)練.Shao等[16]則引入了強化學(xué)習(xí)的訓(xùn)練方法.但是,這些方法仍然需要使用編碼器-解碼器結(jié)構(gòu).

為了簡化傳統(tǒng)的NMT模型框架,本研究提出了基于掩碼機制的非自回歸NMT模型.該模型只使用一個帶有自注意力機制的編碼器,并且運用了類似于Devlin等[17]在其掩碼語言模型(masked language model,MLM)中使用的掩碼機制.這個方法最先被用于單語言預(yù)訓(xùn)練中,之后Lample等[18]將其運用到跨語言預(yù)訓(xùn)練中,他們將源端語句和目標端語句拼接作為輸入,并且在源端語句和目標端語句中都隨機掩蓋一部分詞進行訓(xùn)練,最終的訓(xùn)練目標是預(yù)測出被隨機掩蓋的單詞.本研究在訓(xùn)練過程中,使用類似于Lample等[18]的方法,將平行源端句子與目標端句子拼接輸入,但是只對目標端的單詞進行掩碼處理.在訓(xùn)練時,模型依靠自注意力層學(xué)習(xí)源端句子和目標端未被掩碼處理的句子信息,來預(yù)測目標端被掩碼處理的單詞.并且通過這個模型,可以同時實現(xiàn)非自回歸NMT,與傳統(tǒng)的自回歸NMT相比,可以大大提高翻譯的速度.

1 模型結(jié)構(gòu)

1.1 基礎(chǔ)結(jié)構(gòu)

受MLM[17]的啟發(fā),將帶有雙向自注意力機制的Transformer的編碼器作為實驗的基本模型結(jié)構(gòu),如圖1所示.該模型結(jié)構(gòu)融合了掩碼機制、非自回歸NMT、遮掩-預(yù)測解碼機制等思想.模型由一個Transformer編碼器和一個單層循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)組成,RNN模塊用來預(yù)測目標語言的句子長度l,Transformer編碼器用來預(yù)測目標語言的句子內(nèi)容.相比于傳統(tǒng)的自回歸NMT,該模型能減少近一半的參數(shù),大大減少了模型的參數(shù)規(guī)模.其中,Transformer編碼器由6個編碼器層堆疊而成,每個編碼器層包含2個子層(多頭自注意力子層和前饋神經(jīng)網(wǎng)絡(luò)子層),每個子層都有1個殘差連接和1個層標準化.

圖1 本模型結(jié)構(gòu)Fig.1 Structure of our model

1.2 掩碼機制

MLM實質(zhì)上是一個帶有雙向自注意力機制和掩碼機制的Transformer編碼器,在此結(jié)構(gòu)基礎(chǔ)上,模型能夠在每一層中學(xué)習(xí)到上下文的雙向表示.因此,本研究采用類似于MLM的方法來優(yōu)化輸入文本的上下文表示.具體地,將輸入文本中的詞隨機替換為特殊標記[mask],實現(xiàn)對輸入文本的部分遮掩,然后模型通過學(xué)習(xí)文本的上下文信息來預(yù)測被遮掩的詞.

在模型訓(xùn)練時,對目標語句進行隨機遮掩之后,將雙語平行句對用隔開,作為一個序列,進入Transformer編碼器進行自注意力的計算.如圖2所示:其中,對于源語句部分,在進行自注意力運算時,將目標語句的權(quán)重設(shè)置為-∞,即讓模型在進行源語句注意力計算時,感知不到目標語句;而在進行目標語句的自注意力運算時,不對源語句的權(quán)重進行任何的操作,即讓模型在目標語句注意力計算時,能夠感知到整個句對.

1.3 非自回歸NMT

非自回歸NMT對目標語言的每個詞獨立地進行預(yù)測,不依賴于預(yù)測詞前面位置的單詞,因此能一次性地預(yù)測出整個目標語言句子.給定一個源語言句子SI=[s1,…,si,…,sI],生成正確的目標語言句子TJ=[t1,…,tj,…,tJ]的概率

箭頭表示注意力的傳遞.圖2 每個編碼器層之間的注意力計算參與方式Fig.2 Participating method of attention calculation between each encoder layer

(1)

本研究隨機對目標端句子中的N個詞進行遮掩,N服從于均勻分布U(1,l),其中l(wèi)為目標端句子長度.模型的遮掩和生成部分的損失函數(shù)可表示為

(2)

1.4 長度預(yù)測模塊

在傳統(tǒng)的自回歸NMT中,從左往右逐詞解碼,直到預(yù)測出代表句子結(jié)束的特殊標識符,作為句子解碼結(jié)束的標志.而在非自回歸NMT中,由于同時預(yù)測出整個句子的內(nèi)容,所以在預(yù)測句子內(nèi)容之前,需要提前知道句子長度.因此,本研究采用了一個單層的RNN來提前預(yù)測句子的長度.

假設(shè)目標語言句子的最大長度為lmax,對于源語言句子的第t個詞st,可以通過如下公式得到隱狀態(tài)Ht:

Ht=tanh(WHt-1+Ust),t=1,2,…,I,

(3)

(4)

因此,在模型訓(xùn)練階段,將目標端句子的真實長度編碼成一個lmax維的獨熱向量(one-hot vector)Y,長度預(yù)測模塊的訓(xùn)練目標為最小化交叉熵(cross entropy,ec)損失:

(5)

1.5 損失函數(shù)

結(jié)合長度預(yù)測模塊和目標端句子預(yù)測模型,本研究在模型訓(xùn)練過程中,最小化損失函數(shù)為

L=L1+L2.

(6)

1.6 遮掩-預(yù)測解碼機制

非自回歸NMT雖然能夠提高解碼的速度,但是如何提高解碼的效果至關(guān)重要.因此,在模型解碼階段,本研究采用“遮掩-預(yù)測”解碼機制[16]進行逐步優(yōu)化,提高模型解碼出的句子效果.

解碼的算法思路如下:首先根據(jù)源語言的句子,通過長度預(yù)測模塊得到目標語言句子的長度l;然后將目標語言句子置為l個特殊標記[mask],與源語言句子拼接在一起進入模型,預(yù)測出目標語言句子中的所有詞;最后進入T輪的迭代優(yōu)化,每一輪的優(yōu)化迭代包含遮掩和預(yù)測兩部分.

(7)

其中[]表示取整.

(8)

(9)

其中,Vj為模型詞表中的各個詞.而對于那些沒有被遮掩的詞,其預(yù)測概率保持不變.

2 實 驗

2.1 數(shù)據(jù)集

選擇非自回歸NMT任務(wù)中常用的WMT 2016英語-羅馬尼亞語(http:∥www.statmt.org/wmt16/translation-task.html)語料進行實驗,訓(xùn)練集含有61.3 萬對平行句對,驗證集newsdev2016和測試集newstest2016各含有2 000對平行句對.使用工具MOSES[19]對數(shù)據(jù)進行分詞,對英語語料和羅馬尼亞語語料進行聯(lián)合字節(jié)對編碼[20](byte pair encoding,BPE),共享約6萬的詞匯表,其余低頻詞用替換.

2.2 實驗設(shè)置

在實驗中,對于長度預(yù)測模塊,使用一個單層RNN對源端信息進行編碼,目標端句子最大長度設(shè)為256,并用一個Softmax層對目標端句子長度進行預(yù)測.對于目標端句子內(nèi)容預(yù)測部分,使用一個Transformer編碼器,含有6個編碼器層,每一層多頭注意力機制均使用了8個頭,詞嵌入(word embedding)維度為1 024.

訓(xùn)練時,使用Adam優(yōu)化器[21],初始學(xué)習(xí)率設(shè)為0.000 5,批大小(batch size)為5 200個詞,對于所有的隱藏層,都有0.1的隨機失活率(dropout),標簽平滑(label smoothing)參數(shù)=0.1.隨機將目標端句子的N個詞用[mask]代替,其中N服從均勻分布U(1,l).解碼時,將迭代優(yōu)化的輪數(shù)設(shè)為10.

2.3 翻譯系統(tǒng)的評測指標

以雙語互譯評估(BLEU)分數(shù)來作為本研究模型性能的評測指標,使用WMT數(shù)據(jù)集評測常用的SacreBLEU[22]工具(SacreBLEU的設(shè)置為: BLEU+case.mixed+numrefs.1+smooth.exp+tok.13a+version.1.2.17).

2.4 實驗結(jié)果

基準系統(tǒng)選取了近年來非自回歸NMT領(lǐng)域比較有影響力的幾個工作.分為兩類,第一類解碼階段不需要進行迭代優(yōu)化,解碼的時間復(fù)雜度為O(1);另一類解碼階段需要進行迭代優(yōu)化,解碼的時間復(fù)雜度為O(T),其中,T為迭代優(yōu)化的輪數(shù).這些方法都是基于編碼器-解碼器結(jié)構(gòu),具有更多的參數(shù)、更復(fù)雜的模型結(jié)構(gòu),會消耗更多的訓(xùn)練時間.

表1展示了各系統(tǒng)在WMT 2016英語-羅馬尼亞語任務(wù)的測試集newstest2016上的性能,可以看出本研究的模型盡管結(jié)構(gòu)很簡單,但是取得了最好的實驗性能(英語→羅馬尼亞語的BLEU值為30.2%,羅馬尼亞語→英語的BLEU值為31.2%).與解碼階段不需要迭代優(yōu)化的方法相比,雖然本研究的方法在解碼時具有更高的時間復(fù)雜度,但是其參數(shù)更少,翻譯性能更好.而和解碼階段需要迭代優(yōu)化的方法相比,雖然解碼復(fù)雜度相同,但是本研究的方法翻譯性能有了大幅的提升,而且完全是端到端的訓(xùn)練方式.

表1 各系統(tǒng)在WMT 2016英語-羅馬尼亞語任務(wù)的測試集newstest2016上的性能Tab.1 Performances of systems on the test set ofWMT 2016 English-Romanian task(newstest2016)

3 實驗分析

3.1 不同迭代優(yōu)化輪數(shù)的影響

根據(jù)1.6節(jié)介紹的遮掩-預(yù)測解碼機制可知,迭代優(yōu)化的輪數(shù)T可能會對解碼結(jié)果產(chǎn)生一定的影響.而在本研究的實驗中,迭代優(yōu)化的輪數(shù)T已經(jīng)預(yù)先設(shè)定,因此,本節(jié)將分析不同迭代優(yōu)化輪數(shù)對解碼結(jié)果的影響.

從圖3可以看出,在迭代優(yōu)化輪數(shù)T小于12時,迭代的輪數(shù)越多,模型解碼的效果越好,而在T大于12時,模型解碼的效果趨于平穩(wěn),不會因為迭代輪數(shù)的增多而產(chǎn)生較大的影響.

圖3 不同迭代優(yōu)化輪數(shù)對解碼結(jié)果的影響Fig.3 Effect of different iteration optimization rounds on the decoding result

3.2 模型不同初始化參數(shù)的影響

由于本研究使用基于掩碼機制的Transformer編碼器,和MLM類似,本研究用預(yù)訓(xùn)練的英語-羅馬尼亞語MLM(https:∥dl.fbaipublicfiles.com/XLM/mlm_enro_1024.pth)參數(shù)初始化本模型中的Transformer編碼器,分析不同初始化參數(shù)對模型性能的影響.

由表2可知,將本模型中的Transformer編碼器用預(yù)訓(xùn)練的MLM參數(shù)初始化之后,英語→羅馬尼亞語和羅馬尼亞語→英語兩個語向上的BLEU都取得了很大的提升,與Lample等[18]使用預(yù)訓(xùn)練的MLM參數(shù)初始化Transformer編碼器和解碼器得到的自回歸NMT模型性能相當,同時參數(shù)約減少了一半,模型更輕量.

表2 不同的參數(shù)初始化方式下模型的性能以及參數(shù)量Tab.2 Performance and parameter quantity of the modelwith different parameter initialization methods

3.3 給定目標端長度的結(jié)果

本研究使用一個單層RNN作為長度預(yù)測模塊,在解碼時首先通過長度預(yù)測模塊預(yù)測出目標語言句子的長度,再進行目標語言句子內(nèi)容的預(yù)測.為了分析RNN這個長度預(yù)測模塊的效果,本研究改變解碼的方式,即給定目標語言句子的真實長度,然后再用本研究模型預(yù)測目標語言句子的內(nèi)容.

表3給出了相關(guān)實驗性能的數(shù)據(jù),在解碼階段給定目標語言句子的真實長度,即不再使用長度預(yù)測模塊后,解碼效果并沒有很大的提升(英語→羅馬尼亞語方向的BLEU值提升0.2個百分點,羅馬尼亞語→英語方向的BLEU值提升0.3個百分點),說明長度預(yù)測模塊在整個模型中起到了不錯的效果.

表3 模型在給定目標端長度情況下的解碼效果Tab.3 Decoding performance of the modelwith the given target-side length

3.4 不同源端信息的影響

如圖2所示,在本研究模型的Transformer編碼器中,在對源語言端進行注意力計算時,將目標端的信息全部進行了遮掩,此時,源語言端每一層的隱狀態(tài)都只跟源語言端的信息相關(guān).為了研究不同源端信息的影響,本研究直接用Transformer編碼器對源語言句子進行獨立編碼,然后將編碼器最終輸出的隱狀態(tài)作為源端信息,參與每一層目標端注意力的計算.

從表4可以看出,獨立編碼源端注意力信息并參與每一層目標端注意力計算的效果不及本研究將每一層的源端注意力信息僅用來參與該層目標端注意力計算.這是因為每一層的源端隱狀態(tài)都關(guān)注到了不同的信息,參與該層目標端注意力計算能讓目標端注意到該層的信息;而獨立編碼源端注意力信息,將最終輸出的隱狀態(tài)作為源端信息參與每一層目標端注意力的計算,會使目標端失去這部分信息,導(dǎo)致效果不佳.

表4 目標端的不同源端注意力輸入方式的結(jié)果對比Tab.4 Result comparison of different sourceattention input methods on target side

3.5 模型解碼速度

本研究采用了基于迭代的解碼方式,解碼速度會隨著迭代輪數(shù)增加而變慢,其解碼時間復(fù)雜度為O(T),T為迭代優(yōu)化輪數(shù).而基于自回歸的從左往右的解碼方式復(fù)雜度為O(N),N為目標端句子長度.通常來說,T?N,因此本研究模型在性能上是優(yōu)于自回歸解碼的.

在一臺TITANXP上分別使用兩種解碼方式對10萬句輸入進行解碼測試.如圖4所示,隨著迭代輪數(shù)增加,本研究模型解碼速度確實會有降低,但還是優(yōu)于基于自回歸的解碼,解碼速度是自回歸的1.3~3.6倍.

圖4 不同解碼方式之間的速度對比Fig.4 Speed comparison between different decoding methods

4 結(jié) 論

本研究針對傳統(tǒng)自回歸NMT結(jié)構(gòu)復(fù)雜、參數(shù)過多的問題,提出了基于掩碼的非自回歸NMT.本研究采用類似MLM中的掩碼機制,對Transformer編碼器部分修改并使其同時實現(xiàn)編碼器與解碼器功能.最終實驗結(jié)果表明本研究基于掩碼的非自回歸NMT模型相比于其他非自回歸翻譯模型,取得了更好的翻譯性能;相比于傳統(tǒng)自回歸NMT模型,結(jié)構(gòu)更簡單、參數(shù)更少,并且使用跨語言預(yù)訓(xùn)練語言模型初始化之后,本研究取得了和自回歸NMT模型相當?shù)慕Y(jié)果.

在未來的工作中,將進一步探索非自回歸NMT方法,同時對本研究模型在其他語言對和其他生成任務(wù)中的作用進行探索.

猜你喜歡
編碼器解碼長度
WV3650M/WH3650M 絕對值旋轉(zhuǎn)編碼器
設(shè)定多圈絕對值編碼器當前圈數(shù)的方法
轉(zhuǎn)爐系統(tǒng)常用編碼器選型及調(diào)試
繩子的長度怎么算
舞臺機械技術(shù)與設(shè)備系列談(二)
——編碼器
文化解碼
解碼eUCP2.0
文化 解碼
文明 解碼
愛的長度
乐陵市| 时尚| 蕲春县| 长子县| 榆林市| 治县。| 南靖县| 黄陵县| 通许县| 湾仔区| 开封市| 定边县| 宣武区| 宝清县| 郴州市| 波密县| 太仆寺旗| 龙泉市| 温州市| 阜宁县| 民权县| 汝州市| 东山县| 固阳县| 瓮安县| 阳信县| 南投市| 万盛区| 开封县| 循化| 汨罗市| 英山县| 响水县| 博白县| 白朗县| 晋城| 五常市| 万州区| 武宣县| 常宁市| 苍南县|