論文解讀:DTMT: A Novel Deep Transition Architecture for Neural Machine Translation

論文解讀:DTMT: A Novel Deep Transition Architecture for Neural Machine Translation

  本文爲一篇神經機器翻譯的文章,發表在2019AAAI會議上,主要提出一種深度轉移網絡(Deep Transition),結合多頭注意力解決循環神經網絡中同一層不同時刻之間shallow的問題。

一、簡要信息

序號 屬性
1 模型名稱 DTMT
2 所屬領域 自然語言處理
3 研究內容 神經機器翻譯
4 核心內容 Deep Transition RNMT, GRU, Multi-Head Attention
5 GitHub源碼 https://github.com/fandongmeng/StackedDTMT
6 論文PDF https://arxiv.org/pdf/1812.07807

二、相關背景

  Encoder-Decoder爲主的神經網絡結構在機器翻譯任務中有重大的突破,先前諸多工作都是以Encoder-Decoder爲主,一般地Encoder是用於對原始句子source sentence進行特徵表示,將句子映射爲一定長度的向量;Decoder則是根據對應的向量以及當前已經預測的單詞來生成下一個單詞,即所謂的自迴歸模型。Decoder部分的主要目標則是:

p(yx)=t=1mp(yty<t,x;θ)p(\mathbf{y}|\mathbf{x}) = \prod_{t=1}^{m}p(y_t|\mathbf{y}_{<t},\mathbf{x};\theta)

通常Encoder和Decoder可以選擇CNN、RNN、Transformer等模型。本文作者認爲以RNN爲代表的遞歸神經機器翻譯(RNMT)具有更大的潛力。不過在很多RNN爲主的表徵過程中,通常通過堆疊多層RNN來挖掘句子信息,換句話說,整個遞歸過程中,每一個時刻的深度可以通過多層RNN實現,但是對於時刻之間的轉移卻非常淺。這一問題在許多其他先前工作中也被提出。例如LAU( Linear Associative Unit)提出降低遞歸單元內部的梯度路徑。

  本文提出一種以GRU爲主的深度轉移遞歸神經網絡模型,Encoder和Decoder均採用該網絡模型分別用於編碼和解碼,Encoder和Decoder通過多頭注意力模型相連。

2.1 GRU & T-GRU & L-GRU

  GRU是一種帶有門控機制的RNN網絡。其輸入包括當前時刻 tt 的單詞input embedding以及上一時刻 t1t-1 的隱狀態,輸出則是當前時刻 tt 的隱狀態。沒個時刻的隱狀態則通過重置門(Reset Gate)和更新門(Update Gate)來控制。公式如下:

ht=(1zt)ht1+zth^th_t=(1-z_t)\odot h_{t-1}+z_t\odot \hat{h}_t

h^t=tanh(Wxhxt+rt(Whhht1))\hat{h}_t = tanh(W_{xh}x_t+r_t\odot (W_{hh}h_{t-1}))

rt=σ(Wxrxt+Whrht1)r_t = \sigma(W_{xr}x_t + W_{hr}h_{t-1})

zt=σ(Wxzxt+Whzht1)z_t = \sigma(W_{xz}x_t + W_{hz}h_{t-1})

其中 ht1h_{t-1} 表示上一時刻的隱狀態,h^t\hat{h}_t 表示當前時刻更新的信息,其取決於當前的input embedding 和隱狀態 ht1h_{t-1}rt,ztr_t,z_t 分別表示重置門和更新門,σ\sigma 表示softmax函數。

  T-GRU是一種特殊的GRU,其不同於GRU的是其只有一個輸入,且爲隱狀態,因此更新信息 h^t\hat{h}_t 以及兩個門只與隱狀態 ht1h_{t-1} 有關。公式如下:

ht=(1zt)ht1+zth^th_t=(1-z_t)\odot h_{t-1}+z_t\odot \hat{h}_t

h^t=tanh(rt(Whhht1))\hat{h}_t = tanh(r_t\odot (W_{hh}h_{t-1}))

rt=σ(Whrht1)r_t = \sigma(W_{hr}h_{t-1})

zt=σ(Whzht1)z_t = \sigma(W_{hz}h_{t-1})

  L-GRU是帶有對輸入單詞input embedding線性變換的“增強版”GRU,L即代表linear。其不同於GRU的在於其輸入部分包括三個,前兩個與GRU相同,第三個則爲input embedding的線性變換 H(xt)H(x_t),門控單元也增加了一個線性變換門 ltl_t。公式如下:

ht=(1zt)ht1+zth^th_t=(1-z_t)\odot h_{t-1}+z_t\odot \hat{h}_t

h^t=tanh(Wxhxt+rt(Whhht1)+ltH(xt))\hat{h}_t = tanh(W_{xh}x_t+r_t\odot (W_{hh}h_{t-1}) + l_t\odot H(x_t))

rt=σ(Wxrxt+Whrht1)r_t = \sigma(W_{xr}x_t + W_{hr}h_{t-1})

zt=σ(Wxzxt+Whzht1)z_t = \sigma(W_{xz}x_t + W_{hz}h_{t-1})

lt=σ(Wxlxt+Whlht1)l_t = \sigma(W_{xl}x_t + W_{hl}h_{t-1})

2.2 Deep Transition RNN

  DTRNN主要在不同時刻之間添加深度的網絡,相比stack RNN是在縱向加深,DTRNN則是橫向加深。如圖所示:

在這裏插入圖片描述
參考文獻【1】率先將深度轉移網路引入到機器翻譯任務中,其通過在不同時刻的隱狀態之間使用一個前饋網路來試圖提高相鄰狀態結點之間的深度。現如今諸多工作也受到DTRNN的啓發,例如BiDeep RNN

三、DTMT模型

在這裏插入圖片描述
模型分爲編碼器和解碼器,其中編碼器爲encoder transition,解碼器爲query transition和decoder transition。編碼器和解碼器之間通過multi-head attention相連。

3.1 L-GRU+T-GRU for encoder

  如上圖左,編碼器爲一個雙向DTRNN,對於每一個時刻,先由L-GRU將上一時刻狀態以及當前的input embedding和線性變換作爲輸入,其次逐個由T-GRU進行循環,假設DTRNN的深度爲 LsL_s,前向傳播公式爲:

hj,0=LGRU(xj,hj1,Ls)\overrightarrow{h}_{j,0} = L-GRU(\mathbf{x}_j,\overrightarrow{h}_{j-1,L_s})

hj,k=TGRUk(hj,k1)\overrightarrow{h}_{j,k} = T-GRU_k(\overrightarrow{h}_{j,k-1})

其中k[1,Ls]k\in [1,L_s],反向傳播公式僅改變箭頭即可 。在實驗過程中,L-GRU和T-GRU中的參數是共享的。每一個時刻的輸出爲 C={[hj,Ls,hj,Ls]}C=\{[\overrightarrow{h}_{j,L_s},\overleftarrow{h}_{j,L_s}]\}

3.2 L-GRU+T-GRU for decoder

  解碼器部分包含query transition和decoder transition。假設兩個部分的DTRNN深度分別爲LqL_qLdL_d

st,0=LGRU(yt1,st1,Lq+Ld+1)s_{t,0} = L-GRU(\mathbf{y}_{t-1}, \mathbf{s}_{t-1, L_q+L_d+1})

st,k=TGRU(st,k1)s_{t,k} = T-GRU(\mathbf{s}_{t, k-1})

其中k[a,Lq]k\in [a,L_q]。這部分是將decoder部分t1t-1時刻的輸出作爲輸入,以及上一時刻預測的單詞 yt\mathbf{y}_t作爲輸入,輸出則是L-GRU,再由query transition中的T-GRU進行循環編碼。輸出部分則與編碼器的輸出一起喂入一個多頭注意力中:

ct=MultiHeadAttention(C,st,Lq)c_t=Multi-HeadAttention(C,s_{t,L_q})

多頭注意力模型與Transformer的一致,這裏不細提。其輸出部分則作爲decoder transition的輸入,另外decoder transition的輸入還包括query transition最後一層的T-GRU的輸出:

st,Lq+1=LGRU(ct,st,Lq)s_{t,L_q+1} = L-GRU(c_t, s_{t,L_q})

st,Lq+p=TGRU(st,LLq+p1)s_{t,L_q+p} = T-GRU(s_t, L_{L_q+p-1})

其中 p[2,Lq+1]p\in [2,L_q+1]

  因此總的來說,在解碼過程中,query transition是爲了將上一時刻的預測詞進行一次深度編碼爲查詢器,用這個查詢器從編碼器中查詢下一個可能的詞的隱特徵,查詢的過程則是使用多頭注意力實現alignment對齊,然後通過decoder transition將這個詞的隱特徵解碼並通過full connection映射到標籤分佈上。

  作者在(中文-英文),(英文-德文),(英文-法文)三個任務上進行了實驗,同時實施消融實驗(Ablation)驗證L-GRU和T-GRU以及結合使用的效果。作者在實驗中還使用了dropout用於防止過擬合,label smoothing做標籤平滑處理(不採用0-1獨熱編碼,對於其他類都有非0的很小的概率),層級正則化以及位置表徵。

【1】 Deep architectures for neural machine translation

發佈了76 篇原創文章 · 獲贊 132 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章