關鍵詞:automated translation 自動翻譯
谷歌傳統的機器翻譯系統:基於詞組/短語的(phrase-based) 統計機器翻譯 Statistical Machine Translation (SMT),即 Phrass-Based Machine Translation (PBMT),翻譯的是一列長度可能不相同的單詞或詞組。
PBMT 有許多缺陷 (導致翻譯不準確),爲了克服這些缺陷,提出了Neural Machine Translation (NMT) 神經機器翻譯。
結構:兩個 Recurrent Neural Networks (RNNs) 遞歸神經網絡。一個用來處理輸入的文本 (encoder network),一個用來生成翻譯後的文本 (decoder network)。
優點:end-to-end 直接學習,從輸入文本直接映射到關聯的輸出文本
缺點:主要有三個
- 速度慢:對大規模的數據集,訓練的速度慢;推斷 (即最後翻譯) 的速度也慢,因爲涉及到大量的參數;
- 準確率低,不穩健(lack robustness):處理罕見詞時比較無能;
- 有時候並不翻譯所有輸入的內容,即,沒有完全覆蓋 (cover)所有的輸入文本。
爲了處理這三個缺點,GNMT的方法是:
- 爲了加快速度:使用了8層的 Long Short-Term Memory (LSTM) RNNs。
- 層與層之間的 residual connection 殘差相關是爲了促進梯度流 (encourage gradient flow)[不是很清楚,可能加快梯度下降的速度];
- decoder network 的最高層與 encoder network 的最底層之間的 attention connection 是爲了並行計算 (parallelism),從而減少訓練的時間;
- 使用了低精度計算,以減少推斷時間,即增加了翻譯速度;並且用 Google 的 Tensor Processing Unit (TPU) 張量處理單元進行加速。
- 爲了增加準確率,使得更加穩健,也就是改進對罕見詞的處理,在輸入和輸出時都採用了 wordpieces 系統。
- 長度正則化過程 length normalization procedure 來處理 decoding 時,不同長度的假設之間的比較問題。coverage penalty 懲罰項,能夠促使模型翻譯所有的輸入內容。