【深度学习机器翻译】GNMT:Google 的的神经机器翻译系统
Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
- 1. 論文地址:
- 2. 論文簡介:
- 3. NMT 的典型結構:
- 4. NMT 現有的缺點:
- 5. GMNT 的特點:
- 6. GMNT 的網絡結構:
- 6.1 推理過程:
- 6.2 殘差模塊:
- 6.3 第一層的雙向編碼器:
- 6.4 模型的并行性:
- 7. 實驗結果:
- 關注我的公眾號:
1. 論文地址:
https://arxiv.org/abs/1609.08144
發表時間:2016 被引用量:2345 (注意不是百度學術查到的,百度學術非常不準,這個數據是從谷歌學術鏡像查到的,而且不得不說這一篇真的厲害) 源碼地址:https://github.com/tensorflow/nmt (非常詳細的一個教程,畢竟用的自家框架)2. 論文簡介:
如今 NMT(Neural Machine Translation)任務中最大的一個問題就是模型缺乏魯棒性,為了解決這個問題,Google 團隊提出了一個新的模型,稱之為 GNMT;
這個模型由一個有 8 個編碼器和 8 個解碼器層的深度 LSTM 網絡組成,使用殘差連接以及從解碼器網絡到編碼器的注意力模塊連接,主要特點有:
在 WMT‘14 的英法和英德基準測試中,GNMT 達到了最先進水平的競爭性結果,與谷歌的基于短語的生產系統相比,通過對一組孤立的簡單句子進行人工并排評估,它平均減少了60%的翻譯錯誤;
3. NMT 的典型結構:
NMT 模型能夠實現從輸入文本序列到輸出文本序列的端到端的學習;
它的基本結構是由兩個 RNN 組成,一個負責評估輸入文本,另一個負責生成輸出的翻譯文本;
并且在 NMT 中經常使用注意機制來有效地處理長輸入序列;
4. NMT 現有的缺點:
NMT 的一個優點是它避開了傳統基于短語的機器翻譯(SNT)中許多脆弱的設計選擇,然而,在實踐中,NMT 系統往往比基于短語的翻譯系統的準確性更差,特別是在對非常大規模的數據集進行訓練時,如用于最好的公共可用翻譯系統時;
作者總結了 NME 有三個固有的缺點:
5. GMNT 的特點:
谷歌提出的 GMNT 為上述問題提供了解決方案;
在 GMNT 的實現中主要注意以下幾點:
這個模型的實現是健壯的,并且在跨許多對語言的數據集上表現良好,不需要進行特定于語言的調整,能夠在標準基準上獲得與以前的最先進系統相當或更好的結果,同時對基于短語的生產翻譯系統進行了很大的改進,最終的翻譯系統的質量更接近于人類的平均水平;
6. GMNT 的網絡結構:
主要結構有三個:
6.1 推理過程:
假設 (X,Y)(X,Y)(X,Y) 是一對源語句和目標語句,其中 xi,yjx_i,y_jxi?,yj? 表示語句中的字符:
那么編碼層就可以表示為:
其中 XiX_iXi? 是 xix_ixi? 的固定大小的向量表示;
利用鏈式法則,可以將序列的條件概率 P(Y∣X)P(Y|X)P(Y∣X) 分解為:
在推理過程中,我們可以根據到目前為止的源語句編碼和解碼的目標序列計算下一個符號的概率:
這個解碼器是由一個 RNN 網絡和一個 softmax 層的組合來實現的:解碼器 RNN 網絡生成下一個待預測符號的隱藏狀態 yiy_iyi?,然后通過 softmax 層生成候選輸出符號的概率分布;
注意力模塊使用 yi?1y_{i-1}yi?1? 作為過去解碼時間步長的解碼器輸出;
那么當前時間步長的注意上下文信息 aia_iai? 的計算公式就可以寫作:
其中 AttentionFunctionAttentionFunctionAttentionFunction 就是一個由一個隱藏層構成的前饋神經網絡;
6.2 殘差模塊:
雖然研究表明,深層 LSTM 網絡往往優于淺層網絡,但是深層網絡往往會因為梯度消失或梯度爆炸等問題難以收斂;
因此作者提出可以通過在 LSTM 層之間使用殘差模塊來解決這個問題:
即假設一個普通的堆疊 LSTM 結構表示為:
那么使用殘差結構的 LSTM 就可以寫作:
即在原本上一層輸出 mtim_t^imti? 上加了一個上一層輸入 xti?1x_t^{i-1}xti?1?;
6.3 第一層的雙向編碼器:
對于翻譯系統,在輸出端翻譯某些單詞所需的信息可以出現在源端的任何位置;
通常,源端信息近似于從左到右,類似于目標端,但根據語言對,特定輸出字的信息可以分布在輸入端的某些區域,甚至可以被分割,因此作者在第一個 LSTM 層使用雙向的編碼器,從而更有效地利用上下文信息;
雙向編碼器的結構如圖:
其中 LSTMfLSTM_fLSTMf? 從左到右處理源語句,LSTMbLSTM_bLSTMb? 從右到左處理源語句,二者的輸出 XifX_i^fXif? 和 XibX_i^bXib? 合并后作為下一層的輸出;
6.4 模型的并行性:
由于模型的復雜性,作者利用模型并行性和數據并行性來加速訓練;
數據并行性很簡單:我們使用 Downpour SGD 算法并行地訓練 n 個模型副本,這 n 個副本共享一個模型參數副本,每個副本使用 Adam 和 SGD 算法的組合異步更新參數;
在的實驗中,n 通常是 10 左右,并且每一個副本一次只能處理一小批 m 個句子對,通常是 128 個;
除了數據并行性外,模型并行性還可以提高每個副本上梯度計算的速度;
編碼器和解碼器網絡沿著深度維度進行分區,并放置在多個 GPU 上,有效地在不同的 GPU 上運行每一層;
由于除第一層以外的所有編碼器層都是單向的,所以第 i+1i + 1i+1 層可以在第 iii 層完全完成之前開始計算,從而提高了訓練速度;
softmax 層也被分區,每個分區負責輸出詞匯表中的一個符號子集;
模型并行性給可以使用的模型架構設置了一定的約束;
例如,不能為所有的編碼器層都提供雙向的 LSTM 層,因為這樣做會減少后續層之間的并行性,因為每一層都必須等到前一層的前向和后向都完成;
對于模型的注意部分,作者選擇將底部解碼器輸出與頂部編碼器輸出對齊,以在運行解碼器網絡時最大化并行性;如果將頂層解碼器層與頂層編碼器層對齊,我們就會消除解碼器網絡中的所有并行性,并且不會從使用多個 GPU 進行解碼中受益;
7. 實驗結果:
與以前的基于短語的生產系統相比,這個GNMT系統在幾種流行的語言對上大約減少了60%的翻譯錯誤;
關注我的公眾號:
感興趣的同學關注我的公眾號——可達鴨的深度學習教程:
總結
以上是生活随笔為你收集整理的【深度学习机器翻译】GNMT:Google 的的神经机器翻译系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dhcp6
- 下一篇: 服务器ubuntu系统调节亮度,ubun