





摘 要: "針對基于Transformer的機器翻譯模型中存在的運行效率不高、計算參數過大以及計算復雜度過高的問題,提出一種基于融合CNN和Transformer的分離結構機器翻譯模型。首先,對于運行效率不高和計算參數過大的問題,使用計算注意力模塊和歸一化模塊分離的結構保證堆疊多層結構的可復用性,提高運行效率和降低計算參數。其次,引入了卷積計算模塊和原始自注意力模塊進行融合,原始自注意力模塊用于計算全局上下文語義關系,卷積計算模塊用于計算局部上下文語義關系,降低模型的復雜度。與其他機器翻譯模型在相同的數據集進行實驗對比,實驗結果表明,該模型的計算參數最低,效果也比其他模型表現得更好。
關鍵詞: "卷積注意力; 模塊分離; 機器翻譯
中圖分類號: "TP391 """文獻標志碼: A
文章編號: "1001-3695(2022)02-018-0432-04
doi:10.19734/j.issn.1001-3695.2021.07.0274
Separate structure machine translation model based on "fusion of CNN and Transformer
Ge Junwei, Tu Zhaohao, Fang Yiqiu
(College of Software Engineering, Chongqing University of Posts amp; Telecommunications, Chongqing 400065, China)
Abstract: ""To address the problems of inefficient operation,excessive computational parameters,and high computational complexity in the Transformer-based machine translation model,this paper proposed a separate structure machine translation model based on fused CNN and Transformer.Firstly,for the problems of inefficient operation and excessive computational parameters,this paper used the structure of separating computational attention module and normalization module to ensure the reusability of stacked multilayer structure,improve the operation efficiency and reduce the computational parameters.Secondly,the model introduced the convolutional computation module and the original self-attentive module for fusion.This paper used the original self-attentive module to calculate the global contextual semantic relations and the convolutional computation module to calculate the local contextual semantic relations to reduce the complexity of the model.Experimental comparisons with other machine translation models on the same dataset show that the model has the lowest computational parameters and performs better than other models.
Key words: "convolutional attention; module separation; machine translation
0 引言
機器翻譯(machine translation,MT)是自然語言處理(natural language processing,NLP)的一項子任務,主要目的是通過計算機來實現不同語言之間的相互轉換,即將一門語言翻譯為另一門語言。 對于不同語言人們的交流具有重要的意義。早期的機器翻譯模型普遍采用基于規則或者基于統計的方法,由于翻譯規則編寫復雜,不能表示不連續的短語搭配,難以處理非規范語言現象等缺點導致翻譯效果不佳。隨著計算機水平的發展,人們開始使用深度學習的方法來實現機器翻譯,這種方法被稱為神經機器翻譯(neural machine translation,NMT)。
2014年Cho等人[1]提出了基于循環神經網絡(recurrent neural network,RNN)的編碼器—解碼器(encoder-decoder)機器翻譯模型,該模型存在難以捕獲長距離上下文的關系、難以預測目標語言的所有詞、難以捕獲源語言的全部信息等缺陷。在此基礎上,2015年Bahdanau等人[2]提出了基于注意力機制(attention)的雙向循環神經網絡(bi-directional recurrent neural network,BRNN)模型,基于編碼器—解碼器結構,使用注意力機制計算上下文的關系,使用雙向循環神經網絡捕獲源語言的上下文特征信息,這種模型可以在生成目標語言序列時考慮全局上下文信息。使用注意力機制計算全局信息成為了提升機器翻譯模型效果的關鍵手段之一。2016年Gehring等人[3]提出了完全基于卷積神經網絡(convolutional neural network,CNN)的機器翻譯模型,同樣使用編碼器—解碼器構成。其中編碼器和解碼器使用了相同的卷積結構,由多個卷積層構成。模型整體通過卷積計算(convolution calculation)、非線性計算(nonlinear calculation)、殘差連接(residual connection)、最后通過多跳注意力機制(multi-step attention)的方法生成目標單詞。這種基于卷積神經網絡的模型相比于傳統的基于循環神經網絡的模型取得了明顯進步,卷積的計算過程可以并行化處理,模型的計算時間大大減少。2017年Vaswani等人[4]提出了完全基于注意力的Transformer模型,該模型依舊使用編碼器—解碼器結構,相比以前的工作,此模型拋棄了循環神經網絡結構。該模型不僅可以并行處理輸入數據,也可以捕捉到更深層次的上下文信息,并在機器翻譯任務中取得驚人的效果。但由于Transformer模型使用了點積注意力(dot-product attention),導致模型的參數量過高、復雜度達到了 O(N2)(N 是輸入序列的長度)。特別是多層Transformer模型,這種高額的參數量和時間復雜度就成為了模型的瓶頸。最近有很多工作,例如2019年周孝青等人[5]提出了多層信息融合的方法降低模型的 復雜度。2020年明玉琴等人[6]提出了一種使用GAN模型優化的方法降低了模型的復雜度。2020年Wang等人[7]提出一種新的自注意力將模型的復雜度降低到 O(N) 。2020年Beltagy等人[8]采用滑動窗口機制、膨脹窗口機制、融合窗口機制降低模型的時間復雜度。2020年Zaheer等人[9]采用類似的隨機注意力機制、窗口注意力機制、 全局注意力機制降低模型的時間復雜度。2020年Kitaev等人[10]采用局部敏感哈希注意力、可逆殘差網絡降低模型的時間復雜度。2020年 Choromanski等人[11]采用一種通用注意力降低模型復雜度。
本文提出了一種新的模型,通過使用卷積計算捕獲局部信息,使用原始自注意力捕獲全局信息,可以捕捉到更多的特征信息。使用卷積計算融合原始自注意力(self-attention)和共享計算結果來共同降低Transformer的復雜度。通過兩種方法改善原始模型的參數量過高、復雜度過大的問題。
1 相關技術
1.1 序列到序列模型
2014年由Cho等人[1]提出的序列到序列(sequence to sequence,Seq2Seq)模型可以生成與原序列長度不相等的目標結果,由于機器翻譯的源語言和目標語言的長度一般不相同,這種模型結構天生就適用于機器翻譯領域。基于編碼器—解碼器框架的神經機器翻譯模型無須根據人工定義語言結構上的特征來描述翻譯規律,而是直接從訓練語料中學習特征,因此規避了因自然語言的高度復雜性帶來的大量人工特征標注定義的工作。編碼器—解碼器模型是通用的框架,可以由不同的神經網絡實現。序列到序列模型大致由編碼器(encoder)、生成的中間語義編碼、解碼器(decoder)三部分構成。模型通過三部分計算來實現源序列到目標序列的轉換,其中編碼器讀取源語言序列X1、X2、X3、X4,通過計算輸出語義編碼向量 C ;解碼器讀取該語義編碼向量,解碼生成目標語言詞語序列Y1、Y2、Y3,此模型結構如圖1所示。
1.2 注意力機制
Bahdanau等人[2]為了解決基于序列到序列機器翻譯模型中長文本處理效果不佳等問題,參考圖像處理中的注意力思想,首次提出應用在自然語言處理方向上的注意力機制。一般來說注意力機制是在生成目標語言序列時,計算出源語言序列中每一個詞之間的權重關系,找出源語言序列中與之最相關的詞語,使模型在預測時更加準確。更加普遍的做法是把輸入的 源語言序列視為鍵值對序列,分別用 key= (k 1,…,k "N)、 value=(v 1,…,v "N)、 query=(q 1,…,q "M) 表示。通用的注意力機制計算可以分為以下三步:
a)通過點積計算鍵值對序列中每一個 q i和k j的注意力分數e ij 。
e ij =score( q "i, k "j)= q "i k T "j ""(1)
b)使用softmax函數對注意力分數進行歸一化處理,得到每一個 k j 的權重 a ij 。
a ij= softmax (e ij) = exp( e ij ) ∑ N n=1 "exp( e ij ) ""(2)
c)將得到的權重 a ij與相應的v i 加權計算求和,計算的結果作為注意力機制的輸出。
out =attention( Q,K,V )=∑a ijv i ""(3)
1.3 Transformer模型
2017年Vaswani等人[4]提出了完全基于注意力機制(attention)的Transformer模型,該模型創新性地使用了自注意力機制(self-attention)來對序列進行編碼,自注意力是注意力機制的一種形式,可以由以下公式定義。
Z =attention( Q,K,V )= softmax( QK T) ""d k ""V ""(4)
與上文中的計算方式類似,不同的是 QK T,其進行了歸一化處理,避免梯度消失。模型還使用了多頭注意力機制(multi-head attention),將 h 個不同的自注意力模塊集成在一起,不同的注意力模塊相互配合獲得更好的效果。除此之外,該模型還使用了殘差連接的方式進一步提升了模型的性能。由于該模型的編碼器和解碼器均由注意力模塊和前向神經網絡構成,Transformer模型可以在運行時高度并行化,所以在訓練速度上遠超循環神經網絡,且在翻譯質量上也有大幅提升。
1.4 動態卷積神經網絡
2016年Gehring等人[3]提出了基于卷積神經網絡的機器翻譯模型,這種模型由于采用了卷積運算可以并行化處理,相比于傳統的循環神經網絡模型,該模型的運行速度大大提高。同時該模型利用了卷積運算的特點,可以捕獲到局部的語言特征信息。
2019年Wu等人[12]在傳統卷積網絡的基礎上提出了深度卷積(depthwise convolution),在每個卷積通道上獨立執行卷積運算,參數量可以從 d2k降低到dk,其中k 是卷積核的寬度。深度卷積的輸出 O ∈"Euclid Math TwoRAp
n×d和權重 W ∈"Euclid Math TwoRAp
d×k 可以由以下公式定義:
O i,c =DepthwiseConv( X,W "c,:,i,c)=∑ k j=1 "W "c,j· X "(i+j-| (k+1) 2 |),c ""(5)
通過這種方法可以用更少的參數表示矩陣運算,提升了計算效率。根據深度卷積的特點進一步簡化了此模型,提出了輕量級卷積(lightweight convolution),引入了多頭共享權重的機制進一步減少參數,其中每個頭所占的通道數為 d/H ,輕量級卷積的輸出可以由以下公式定義:
LightConv( X,W "「 cH d ,:,i,c) =DepthwiseConv( X ,softmax( W "「 cH d ,:,i,c) ""(6)
由于輕量級卷積在不同的時間布的權重是固定的,基于輕量級卷積進一步提出了動態卷積(dynamic convolution),可以由以下公式定義:
DynamicConv( X ,i,c )=LightConv( X ,f( X "i) h,:,i,c) ""(7)
其中: f 是一種可以學習的線性變換; WQ∈"Euclid Math TwoRAp
H×k×d;f( X "i)=∑ d c=1 "W Q h,j,c X "i,c "。
2 基于融合CNN和Transformer的機器翻譯模型
本文提出的基于融合CNN和Transformer的機器翻譯模型遵循兩分支設計,左分支是Vaswani等人提出的注意力機制,用于捕獲全局上下文的特征信息。對于局部上下文信息,因為卷積的特性自然想到在序列中使用卷積進行操作,為了進一步減少計算量,本文使用上一章提到的動態卷積模型代替了普通卷積。通過這種方式將注意力和卷積模塊進行并排放置,在全局和局部兩種不同的角度,使模型可以捕獲更好的特征。文獻[13]中可以看出,注意力矩陣在不同層中是相似的,尤其是在相鄰層,因此可以壓縮計算注意力矩陣,不需要每一層都計算。例如計算三層注意力矩陣,并將其重用于其他層。本文模型的大致結構如圖2所示,假設計算 n次后復用k次,本文構建模型的復雜度可以從O((n+k)N2) 降低為 O(nN2) 。
對于機器翻譯模型來說,輸入的句子可以由 S 表示,句子中每個單詞由 W "i 表示, S={W 1,W 2,W 3,…,W "n} 。句子編碼可以由 E 表示, E =PostionalEmbedding( S ),其中 E ∈Rn×d S 。本文將得到的embedding按照維度進行分割操作,則 X ∈Rn×d X、 X "2∈Rn×d X 2,其中d S=d X+d X 2。同時維度d和注意力頭數h 相關,維度必須能夠整除注意力頭個數。設置全局注意力的注意力頭為 h T ,每個頭分到的維度為 d T ,卷積運算的頭個數為 h C ,每個頭分到的維度為 d C ,則有 d T×h T+d C×h C=d S 。為了和原始Transformer模型參數保持一致,本文定義原始Transformer模型的注意力頭個數為 H ,則有 H=h T+h C 。左分支計算全局注意力的方法不變,通過 X 乘上相應的 W Q T、 W K T、 W V T 矩陣得到對應的 Q "T、 K "T、 V "T ,記 Z 為左分支的輸出則有公式:
Z =attention( Q "T, K "T, V "T) =softmax( "Q "T K T "T "d T ") V "T ""(8)
模型的右分支計算采用了動態卷積計算局部注意力,記 C 作為右分支的輸出,則有公式:
C =DynamicConv( X "2,i,c )=DepthwiseConv( X "2,f( X "2 "i) h,:,i,c) ""(9)
從而 Z ∈"Euclid Math TwoRAp
n×d T, C ∈"Euclid Math TwoRAp
n×d C。進一步對得到的運算結果進行拼接,則有 out=A⊕C,out ∈"Euclid Math TwoRAp
n×d S ,此時輸出結果 out 的維度就等于輸入的embedding。接下來使用殘差網絡:
out "i =LayerNorm( out+out "i-1) ""(10)
最后和Transformer模型一致,使用前向網絡提取注意力矩陣中的特征。
3 實驗與結果
為了驗證本文模型性能,本文進行了大量的實驗。本文模型基于Transformer,因此本文模型使用的參數和Transformer模型保持一致,具體來說Transformer模型由6個encoder層和6個decoder層組成,其中嵌入維數是512,注意力頭數為8,隱藏維數為2 048。
3.1 實驗設置
本文使用的數據集來自統計機器翻譯研討會發布的WMT-16英語—德語數據集(http://www.statmt.org/wmt16/ translation-task.html),本文在WMT-16訓練數據上使用450萬條句子對模型進行訓練,在newstest2013上進行驗證,在newstest2014上進行測試,此外數據集進行了BPE處理,實驗結果使用BLUE4作為評估指標。所有代碼均基于PyTorch中的fairseq實現。實驗的所有模型全部使用一個RTX3090 GPU上使用半精度浮點運算進行訓練(FP16)。
本文使用 Md d T:d C×β 表示本文模型的結構。其中 d 表示模型的嵌入維度, d T 表示原始注意力的維度, d C 表示卷積計算的維度, β 表示計算注意力層的個數。由于注意力頭需要被維度整除,則可以有公式:
h T×dh T+h C×dh C=d ""(11)
其中: h T 是原始注意力的頭個數; dh T 是原始注意力單個注意力頭的維度; h C 是卷積計算的頭個數; dh C 是卷積計算單個注意力頭的維度。本文中注意力頭的分配規則是原始注意力所占的頭為2,卷積計算的頭個數為6,則有
2×dh T+6×dh C=512 ""(12)
例如: M512 200:312×3 表示模型的嵌入維度是512, 原始注意力維度是200,卷積計算維度是312,且模型共有三個計算注意力的層。
3.2 本文方法實現過程
本文方法的流程分為三個部分,具體描述如下:
a)源語言輸入部分。本文中的輸入部分和已有Transformer模型保持一致, 采用詞向量和位置編碼相結合的方式。定義源語言最長序列為512,當序列長度超過512時,則截取前512個詞作為源序列。當序列長度不足512時,則采取補零的方式對序列進行對齊。使用CreateEmbed函數進行詞向量初始化,使用PositionalEmbed函數計算位置編碼,兩者相加后得到最終的輸入結果 x ,其中詞向量的維度為512。之后將計算結果輸入編碼器提取語言特征。
b)編碼器部分。本文改變了已有模型的編碼器計算方式,添加了基于卷積網絡的注意力計算模塊,具體結構如圖2所示。將得到的詞向量 x 進行拆分,按照式(11)所示,可以得到多種拆分方法。式(12)則是其中一種,拆分后自注意力計算部分擁有兩個注意力頭,卷積計算部分則擁有六個。兩部分的維度則是式(12)的正整數解,選擇[22,78]作為實驗參數,則輸入維度拆分的結果為[44,468]。將拆分完成的詞向量分別送入對應的計算部分進行計算。通過concatenate的方式將計算得到的結果按照維度拼接合并和得到維度為512維的結果與輸入保持一致。編碼器的計算部分和前向網絡分離,也就是說編碼器中的計算模塊可以只計算 n次而前向網絡模塊也可以單獨堆疊m-n 次,可以更好地提取特征。
c)解碼輸出部分。和編碼器類似,本文同樣添加了基于卷積網絡的注意力計算模塊,使得模型可以捕獲更多的上下文信息。將編碼器部分的計算結果作為解碼器注意力的 K和V ,而解碼器的上一層輸出則作為本層的 Q 進行計算。最后使用softmax函數求出生成目標語言序列的最大值,得到最后的輸出結果。
3.3 自定義模型對比
首先本文建立模型的整體比較,除了原始的Transformer模型,按照實驗設置本文還設計了五個 d T 為44、 d C 為468且僅在注意力層數不同的模型 M512 44:468×1,M512 44:468×2,…,M512 44:468×5 進行對比分析。
從表1中可以看出,隨著模型注意力層數的上升,模型的參數量、Blue4分數和運行時間也在同步上升。其中 M512 44:468×2 模型的Blue4分數接近Transformer模型,并且只有0.32的差距。而 M512 44:468×3 模型的Blue4分數已經超過了Transformer模型。五個自定義模型參數均小于原始的Transformer模型。雖然 M512 44:468×5 模型Blue4分數最高,但運行時間超過了原始模型,所以本文選擇 M512 44:468×3 模型作為基準模型。
接下來本文探索 d T 和 d C 的大小對模型效果的影響,根據式(12),本文從中選取兩個特殊的模型 M512 2:510×3 、 M512 506:6×3 ,五個普通模型 M512 44:468×3 、 M512 152:360×3 、 M512 260:252×3 、 M512 368:144×3 、 M512 476:36×3 。測試結果如表2所示。
從表2中可以看到在這七個模型中,Blue4分數總體呈現下降的趨勢,模型參數大小和運行時間變化趨勢都是先下降再回升。其中 M512 260:252×3 的參數量是最小的,Blue4分數也是最高的,運行時間占用也比較低。此外Blue4分數排在第二的是本文的基準模型 M512 44:468×3 ,但是參數大小和運行時間都不占優勢。另外從 M512 476:36×3 模型開始,Blue4分數就嚴重下降,推測與卷積不能很好地捕獲局部上下文有關。最后取 M512 44:468×3 和 M512 260:252×3 兩個模型的參數進行不同模型的對比實驗。
3.4 對比分析
a)Collaborative模型[14]修改了注意力計算的方法,引入協作多頭注意力層,使頭能夠學習共享投影,減少了訓練時間。
b)Lite Transformer模型[15]同樣添加了卷積用來計算局部上下文信息。使用剪枝和量化技術進一步壓縮模型的大小。和本文不同的是,Lite Transformer沒有采用參數共享和計算注意力層分離的做法,卷積和原始注意力的頭個數相同。
表3列出了本文模型以及上述模型在WMT-16數據集上的結果,所有模型的結果均由本地運行得出。
分析表3可知,本文方法在相同的數據集上的表現對比其他模型有所上升。Collaborative模型相比原始的Transformer,參數大小基本沒變,但Blue4分數提升明顯,說明該模型修改注意力層確實有效。Lite Transformer模型的參數大小有所下降,Blue4分數相比基線模型也有所上升,運行時間略有上升,表明該模型可以很好地降低參數量,對比原始Transformer模型有一定的優勢。本文模型在WMT-16數據集上對比其他基線模型有較大的提升,相比Blue4分數最高的Collaborative模型,本文 M512 44:468×4 模型的參數大小減少了11%,運行時間降低了20%,Blue4分數仍高于Collaborative模型。
本文模型在參數大小、Blue4分數方面均優于其他模型,運行時間接近原始Transformer模型,說明本文模型具有較大優勢。本文模型采用融合卷積和原始注意力的方法計算句子的上下文關系。同時使用了可變層數的設計,降低了不必要的計算,減少計算參數,進而使模型能取得較好的效果。
此外,本文模型對現有模型的整體結構改動不大,通過維度拆分的方式添加卷積注意力機制,方便移植到其他模型。對現有的模型可以起到一定的改善作用,具有一定的實用價值。
4 結束語
本文提出一種基于融合CNN和Transformer的分離結構機器翻譯模型,使用卷積和Transformer注意力共同計算,同時采用注意力層參數共享、層數可調的方法,共同降低了模型的計算參數,同時也降低了計算量,改善了模型的復雜度問題,提升了模型的翻譯效果。實驗結果表明本文模型在WMT-16數據集上的表現要優于其他模型。
未來將進一步研究兩種模型的融合效果以及如何進一步降低模型的復雜度,探索更多的融合方式,希望取得一個令人滿意的結果。
參考文獻:
[1] "Cho K,Van Merriёnboer B,Gulcehre C, et al .Learning phrase representations using RNN encoder-decoder for statistical machine translation[C]//Proc of Conference on Empirical Methods in Natural Language Processing.Stroudsburg,PA:Association for Computational Linguistics,2014:1724-1734.
[2] Bahdanau D,Cho K,Bengio Y.Neural machine translation by jointly learning to align and translate[C]//Proc of the 5th International Conference on Learning Representations.2015.
[3] Gehring J,Auli M,Grangier D, et al .Convolutional sequence to sequence learning[C]//Proc of the 34th International Conference on Machine Learning.2017:1243-1252.
[4] Vaswani A,Shazeer N,Parmar N, et al .Attention is all you need[C]//Proc of the 31st International Conference on Neural Information Processing Systems.Red Hook,NY:Curran Associates Inc.,2017:6000-6010.
[5] 周孝青,段湘煜,俞鴻飛,等.多層信息融合的神經機器翻譯[J].廈門大學學報:自然科學版,2019, 58 (2):149-157. (Zhou Xiaoqing,Duan Xiangyu,Yu Hongfei, et al .Multi-layer information fusion for neural machine translation[J]. Journal of Xiamen University:Natural Science ,2019, 58 (2):149-157.)
[6] "明玉琴,夏添,彭艷兵.基于GAN模型優化的神經機器翻譯[J].中文信息學報,2020, 34 (4):47-54. (Ming Yuqin,Xia Tian,Peng Yanbing.Neural machine translation based on GAN optimization[J]. Journal of Chinese Information Processing ,2020, 34 (4):47-54.)
[7] Wang Sinong,Li B Z,Khabsa M, et al .Linformer:self-attention with linear complexity[EB/OL].(2020-07-14).https://arxiv.org/abs/2006.04768v3.
[8] Beltagy I,Peters M E,Cohan A.Longformer:the long-document transformer[EB/OL].(2020-04-10).https://arxiv.org/abs/2004.05150v2.
[9] Zaheer M,Guruganesh G,Dubey K A, et al .Big bird:transformers for longer sequences[C]//Proc of the 34th Conference on Neural Information Processing Systems.Vancouver:NIPS Press,2020:17283-17297.
[10] Kitaev N,Kaiser L,Levskaya A.Reformer:the efficient transformer[EB/OL].(2020-01-13).https://arxiv.org/abs/2001.04451.
[11] Choromanski K,Likhosherstov V,Dohan D, et al .Rethinking attention with performers[EB/OL].(2020-10-01).https://arxiv.org/abs/2009.14794.
[12] Wu F,Fan A,Baevski A, et al .Pay less attention with lightweight and dynamic convolutions[C]//Proc of the 7th International Conference on Learning Representations.2019.
[13] "Vig J,Belinkov Y.Analyzing the structure of attention in a Transformer language model[C]//Proc of the 2nd BlackboxNLP Workshop on Analyzing and Interpreting Neural Networks for NLP.2019:63-76.
[14] Cordonnier J B,Loukas A,Jaggi M.Multi-head attention:collaborate instead of concatenate[EB/OL].(2020-06-29).https://arxiv.org/abs/2006.16362.
[15] Wu Zhanghao,Liu Zhijian,Lin Ji, et al .Lite Transformer with long-short range attention[C]//Proc of the 8th International Conference on Learning Representations.2020.