這一講研究NLP中一個重要的領域——機器翻譯Machine Translation。機器翻譯顧名思義,就是將源語言中的文字轉換成對應的目標語言中的文字的任務。早期的機器翻譯很多是人為rule-based的,隨後逐漸發展出依賴於統計信息的Statistical Machine Translation(簡稱SMT),之後又發展出利用神經網路使得準確度大幅改善的Neural Machine Translation(NMT),它依賴於Sequence-to-Sequence的模型架構,以及進一步將其改善的Attention機制。
SMT
SMT的核心思想是從數據中學習出概率模型。假設我們想要從法語翻譯成英語,我們希望給定輸入的法語句子 ,找到對應最好的英語句子 ,即找到
利用貝葉斯法則,這相當於求 ,其中 被稱作translation model模擬單詞或片語該如何翻譯,主要是處理局部的片語的翻譯, 被稱作language model 即如何挑選這些單詞或片語組成合理的目標語言中的句子。之前語言模型已總結過如何學習語言模型,而對於translation model,我們需要parallel data,即大量的成對的法語、英語句子。
SMT系統實際上要比這個複雜很多,而且需要很多feature engineering,很難維護。而NMT的出現極大的改善了這些問題。
Neural Machine Translation 與 Seq2Seq
NMT依賴於Sequence-to-Sequence的模型架構,即通過一個RNN作為encoder將輸入的源語言轉化為某表徵空間中的向量,再通過另一個RNN作為decoder將其轉化為目標語言中的句子。我們可以將decoder看做預測目標句子 的下一個單詞的語言模型,同時其概率依賴於源句子的encoding,一個將法語翻譯成英語的Seq2Seq模型如下圖所示。