淺談Facebook最新CNN神經翻譯機:Convolutional Sequence to Sequence Learning

今天小編要介紹的是來自FAIR團隊這幾天出的基於純CNN架構翻譯機:Convolutional Sequence to Sequence Learning. 其結果跟Google最新的方法比較後重點結果如下:

英翻法產生翻譯(WMT English->French)速度的表現:

  1. 在GPU產生翻譯的速度上,FAIR用K40(比較爛的GPU)是Google用K80(比較好的GPU)的9.3倍。
  2. 在CPU產生翻譯速度上,FAIR(48 cores)就已經是Google(88 cores)的17(per cpu core basis)倍,且還是Google自家用TPU的2.7倍。

綜合翻譯的表現:

  1. WMT 2014 English-French:進步1.5BLEU
  2. WMT 2014 English-German:進步0.5BLEU
  3. WMT 2016 English-Romanian:進步1.8BLEU

看這速度跟效能,算是不小的突破。那這到底是怎麼做的呢? 下圖是這個模型的大架構:

 

因為這一篇涉及的知識有點廣,所以小編分三部分做引導和補充相關閱讀資料,這個Model的主要有三個部分:

  1. Encoder-Decoder(左上和左下)
  2. Residual Connect(沒標出來)
  3. Multi-Hop Attention(中間那塊)

第一部分:Encoder Decoder: Gated Linear Unit[1]

小編私心覺得要讀懂這一篇要先去看這一篇,因為這是FAIR這篇的基底而且上面的圖畫的真的有點抽象。 Dauphine在他的論文中有更清楚的圖和文字來說明如何用這樣的架構來達到更好的Language Model。簡單來說Gated Linear Unit會對同一個input word vector學出兩個representation,其中一個是用來決定哪些資訊要保留哪些要捨去。而且這個方法可以更有效讓Gradient Backpropogate

第二部分: Residual Connect[2]

這個方法其實是在2015 ResNet中提出的,目的是為了在訓練很深的神經網路時讓Gradient能夠更容易Backpropogate,其概念和實作可以參考這篇介紹。可以簡單想成是在很深的神經網路中,讓比較深的Gradient可以有一個捷徑直接往後丟以免再一步一步地傳遞過程中消失。

第三部分:Multi-hop Attention

這裡必需先提一下Attention在機器翻譯中的應用,直覺上來說就是在翻譯的過程中,回去看一下待翻譯句子的前後文,更多細節可以參考[3]或是這篇文章中的Attention部分。Multi-Hop直覺上來說就是多重複幾次這樣的動作來達到更好的翻譯表現,這部分FAIR做了一個簡單的圖:

圖片來源: FAIR

這三塊都有基本了解後這篇大概就能看懂八成了。不過這篇文還有其他細節像是Normalization,Initialization都有特別設計過,就留待讀者自行去探索了。更多細節請參考:

[1]Daphine et.al "Language Modeling with Gated Convolutional Networks" 2016(paper)

[2]He et.al. "Deep Residual Learning for Image Recognition"(arxiv)

[3]Bahdanau et.al. "Neural Translation By Jointly Learning to Align and Translate" 2015(arxiv)

Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

近期文章

近期迴響

彙整

分類

其它

kuanchen Written by:

Be First to Comment

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *