這一講研究NLP中一個重要的領域——機器翻譯Machine Translation。機器翻譯顧名思義,就是將源語言中的文字轉換成對應的目標語言中的文字的任務。早期的機器翻譯很多是人為rule-based的,隨後逐漸發展出依賴於統計信息的Statistical Machine Translation(簡稱SMT),之後又發展出利用神經網路使得準確度大幅改善的Neural Machine Translation(NMT),它依賴於Sequence-to-Sequence的模型架構,以及進一步將其改善的Attention機制。

SMT

SMT的核心思想是從數據中學習出概率模型。假設我們想要從法語翻譯成英語,我們希望給定輸入的法語句子 x ,找到對應最好的英語句子 y ,即找到 underset{y}{mathrm{argmax}}P(y|x)

利用貝葉斯法則,這相當於求 underset{y}{mathrm{argmax}}P(x|y)P(y) ,其中 P(x|y) 被稱作translation model模擬單詞或片語該如何翻譯,主要是處理局部的片語的翻譯, P(y) 被稱作language model 即如何挑選這些單詞或片語組成合理的目標語言中的句子。之前語言模型已總結過如何學習語言模型,而對於translation model,我們需要parallel data,即大量的成對的法語、英語句子。

SMT系統實際上要比這個複雜很多,而且需要很多feature engineering,很難維護。而NMT的出現極大的改善了這些問題。

Neural Machine Translation 與 Seq2Seq

NMT依賴於Sequence-to-Sequence的模型架構,即通過一個RNN作為encoder將輸入的源語言轉化為某表徵空間中的向量,再通過另一個RNN作為decoder將其轉化為目標語言中的句子。我們可以將decoder看做預測目標句子 y 的下一個單詞的語言模型,同時其概率依賴於源句子的encoding,一個將法語翻譯成英語的Seq2Seq模型如下圖所示。

訓練過程中,損失函數與語言模型中類似,即各步中目標單詞的log probability的相反數的平均值:

上例中的損失函數如下圖所示,並且我們可以看出損失函數的梯度可以一直反向傳播到encoder,模型可以整體優化,所以Seq2Seq也被看做是end2end模型:

在做inference的時候,我們可以選擇greedy decoding即每一步均選取概率最大的單詞並將其作為下一步的decoder input。

但是greedy decoding的問題是可能當前的最大概率的單詞對於翻譯整個句子來講不一定是最優的選擇,但由於每次我們都做greedy的選擇我們沒機會選擇另一條整體最優的路徑。

為解決這一問題,一個常用的方法是beam search decoding,其基本思想是在decoder的每一步,我們不僅僅是取概率最大的單詞,而是保存k個當前最有可能的翻譯假設,其中k稱作beam size,通常在5到10之間。

對於 y_1,...,y_t 的翻譯,它的分數是

分數越高越好,但求和中的每一項都是負數,這會導致長的翻譯分數更低,所以最後在選取整句概率最大的翻譯時,要對分數做歸一化

與SMT相較,NMT的優勢是我們可以整體的優化模型,而不是需要分開若干個模型各自優化,並且需要feature engineering較少,且模型更靈活,準確度也更高。其缺點是更難理解也更糾錯,且很難設定一些人為的規則來進行控制。

BLEU

對於機器翻譯模型,我們如何來衡量它的好壞呢?一個常用的指標是BLEU(全稱是Bilingual Evaluation Understudy)。BLEU基本思想是看你machine translation中n-gram在reference translation(人工翻譯作為reference)中相應出現的幾率。

我們用

來表示n-gram的precision score, w_n=1/2^n 作為權重,另外引入對過短的翻譯的penalty eta = e^{min(0,1-frac{len_{ref}}{len_{MT}})}

BLEU score可以表示為(其中k通常選為4)

BLEU可以較好的反應翻譯的準確度,當然它也不是完美的,也有許多關於如何改進機器翻譯evaluation metric方面的研究。

Attention

觀察Seq2Seq模型,我們會發現它有一個信息的瓶頸即我們需要將輸入的所有信息都encode到encoder的最後一個hidden state上,這通常是不現實的,因此引入Attention機制來消除這一瓶頸:在decoder的每一步,通過與encoder的直接關聯來決定當前翻譯應關注的源語句的重點部分。詳細步驟可參考之前的總結文章Attention機制詳解(一)——Seq2Seq中的Attention。

參考資料

第八講講義web.stanford.edu/class/

補充材料web.stanford.edu/class/

第八講視頻youtu.be/XXtpJxZBa2c


推薦閱讀:
相關文章