論文閱讀《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》

Abstract

這篇論文第一次運用注意力機制(Attention)解決機器翻譯中的問題。和傳統的統計機器翻譯(SMT)不同,神經機器翻譯(NMT)旨在構建一個神經網絡來提高翻譯性能。最近(2016)提出的NMT模型都是基於編碼器和解碼器:將源語言編碼成一個定長向量(fixed-length vector),然後用解碼器生成目標語言。這篇論文假設將源語言編碼成定長向量是提高翻譯性能的瓶頸,提出了自動對源語言可以轉換到目標語言片段的soft-search。經過實驗,這種方法在英語到法語的翻譯中確實取得了很棒的效果。

1 Introduction

神經機器翻譯(NMT)由Kalchbrenner和Blunsom(2013),Sutskever(2014)和Cho(2014b)提出。傳統的基於短語的翻譯系統是對各個子元素分別進行調整,NMT構建一個大的神經網絡直接實現源語言到目標語言的轉換。

大部分的NMT模型都是基於編碼器-解碼器結構,將源句子編碼成一個定長向量,然後解碼器利用這個向量生成目標句子。這種方法可能帶來的一個問題就是:神經網絡需要將一個句子的所有信息都編碼到一個定長向量。如果句子短一些還好,但是如果句子很長神經網絡處理起來就會變得很困難。Cho (2014b) 發現:隨着輸入句子的長度增加,基於編碼器解碼器的模型的表現就會變得很差。

爲了解決這個問題,引入一個擴展的編碼-解碼模型:自動學習對齊和翻譯。每次生成翻譯的一個單詞時,在源句子中soft-search一組內容最相關的位置。這些源位置信息結合翻譯的前一個單詞就能預測下一個目標單詞。

這種自動對齊和翻譯的方法避免了將一個句子的所有信息都壓縮到一個定長的向量中。特別是在處理長句子時這種方法的優勢就很突出了。在英語到法語的翻譯任務中,這個單一的模型已經接近了傳統基於短語的翻譯系統。(之前NMT一直幹不過SMT)

2 Background:Neural Machine Translation

從概率學的角度來看,翻譯就相當於在給定源語句 x 的情況下最大化條件概率 ,從而找到目標語句。

用公式表示就是:arg max_{y}p(y|x)

在NMT中,利用平行語料的語句對訓練模型的參數,從而在翻譯過程中最大化這個條件概率。

2.1 RNN encoder-decoder

簡要介紹由Cho(2014a)和Sutskever(2014)提出的底層框架:RNN encoder-decoder。在這個基礎上提出同時對齊和翻譯的模型結構。

  • 編碼:在encoder-decoder框架中,將源語句用向量表示輸入到編碼器中生成語境向量c。例如通常做法是:

h_{t}=f(x_{t},h_{t-1}) 和 c=q({h_{1},\cdots ,h_{T_{x}}})

       h_{t}是t時刻的隱藏狀態,c是從一組隱藏狀態生成的一個向量。f 和 q是非線性函數。例如,Sutskever(2014)使用LSTM作爲f,    q({h_{1},\cdots ,h_{T}})=h_{T}.

  • 解碼:解碼器根據語境向量(context vector)和前面所有預測的單詞\left \{ y_{1},\cdots ,y_{t-1} \right \}預測下一個單詞y_{t}.

          也就是:p(\textup{y})\prod_{t=1}^{T}p(y_{t}|\left \{ y_{1} ,\cdots ,y_{t-1},c\right \})

           \textup{y}=(y_{1},\cdots ,y_{T_{y}})。每個條件概率通過p(y_{t}|\left \{ y_{1} ,\cdots ,y_{t-1},c\right \})=g(y_{t-1},s_{t},c)。g是一個非線性潛在多層函數,s_{t}是RNN的隱藏狀態。

3 LearningTo Align and Translate

這篇論文使用雙向RNN作爲編碼器和一個模擬翻譯過程中通過源語句進行搜索的解碼器。

3.1 Decoder

這裏定義條件概率:p(y_{i}|\left \{ y_{1} ,\cdots ,y_{i-1},\textup{x}\right \})=g(y_{i-1},s_{i},c_{i})          g是一個非線性潛在多層函數

s_{i}是t時刻RNN的隱藏狀態,s_{i}=f(s_{i-1},y_{i-1},c_{i})=(1-z_{i})\odot s_{i-1}+z_{i}\odot\tilde{s_{i}}               其中 \odot代表點乘

\tilde{s_{i}}=tanh(We(y_{i-1})+U[r_{i}\odot s_{i-1}]+Cc_{i})

e(y_{i-1})是單詞y_{i-1}的詞嵌入向量。

r_{i}是輸出的重置門,控制之前狀態的多少信息會被重置:r_{i}=\sigma (W_{r}e(y_{i-1})+U_{r}s_{i-1}+C_{r}c_{i})

z_{i}是更新門,允許每一個隱藏單元保留之前多少信息:z_{i}=\sigma (W_{z}e(y_{i-1})+U_{z}s_{i-1}+C_{z}c_{i})

其中:\sigma ()是logistic sigmoid 函數

 

c_{i}取決於編碼器將輸入句子映射到的註釋序列(h_{1},\cdots ,h_{T_{x}}).每個註釋hi都包含有關整個輸入序列的信息,重點關注輸入序列第i個單詞周圍的部分。

                         c_{i}=\sum_{j=1}^{T_{x}}\alpha _{ij}h_{j}

                        \alpha _{ij}=\frac{\textup{exp}(e_{ij})}{\sum_{k=1}^{T_{x}}\textup{exp}(e_{ik})}

  其中: e_{ij}=a(s_{i-1},h_{j})=v_{a}^{T}tanh(W_{a}s_{i-1}+U_{a}h_{j})是對齊模型,它可以計算位置 j 周圍的輸入和位置 i 的輸出匹配程度。 \alpha _{ij}反應了註釋h_{j}的重要程度,當\alpha _{ij}越大時說明注意力越集中,這就體現了注意力機制

3.2 Encoder:雙向RNN用於序列註釋

一般的RNN網絡在輸入序列數據時從頭到尾輸入網絡。而BiRNN不僅考慮序列的正向順序也考慮序列的反向順序。一個BiRNN由前向RNN和反向RNN組成。正向RNN計算前向隱藏狀態,反向RNN計算

因此 

本部分原文:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章