華文網

學界|CMU論文:神經機器翻譯和Seq2seq模型導論

選自arXiv

作者:Graham Neubig

機器之心編譯

參與:李澤南、蔣思源

本文是一篇有關機器翻譯的詳細教程,適用於電腦科學本科背景的讀者。據 Paper Weekly(ID:paperweekly)介紹,本論文來自 CMU LTI,內容包括了 Seq2Seq 方法的各個基礎知識,

包括 N-gram Language Model、Log Linear Language Model、NNLM、RNNLM、encoder-decoder、attention,是一本高品質教程,適合初學者學習。

摘要

本教程介紹了一組強大的技術「神經機器翻譯」、「神經 seq2seq 模型」。這些技術已經被應用於處理人類語言相關的很多工中,也已成為所有順序資料建模的強大工具。本教程假設讀者擁有基礎數學和程式設計知識,但對神經網路和自然語言處理背景沒有要求。本文試圖解釋各種方法背後的思路,然後通過完整的數學解析重現它們,

讓讀者可以深入瞭解這些技術。此外,本文還有一些實現的建議,讀者可以通過練習測試自己對於文中內容的理解程度。

背景

機器翻譯是通過電腦翻譯人類不同語言的技術。想像一下科幻電影裡出現的即時翻譯機,它可以即時將一種語言轉換為另一種。目前,谷歌翻譯等網站在這些方向上已經做得很不錯了。機器翻譯可以消除語言障礙,具有廣泛的應用前景,所以在電腦出現不久以後,

這一方向就成為了研究人員關注的焦點。

我們稱輸入機器翻譯系統的語言為來源語言,輸出語言為目的語言。這樣,機器翻譯就可以被描述為一種將來源語言中的單詞序列轉換為目的語言單詞序列的任務。機器翻譯研究者們的目標是最終實現一個高效的模型,讓這種轉換在各類語言的應用中能夠快速進行。

Seq2seq 模型是包括將一個序列映射到另一個序列的所有模型的更廣泛類型。

它包含機器翻譯,同時也包含大量用於處理其他任務的方法。事實上,我們可以把每個電腦程式都看成是輸入一個位序列,經過處理輸出一個位序列,這意味著所有程式都是表示一些行為的 Seq2seq 模型(儘管在許多情況下,這不是最自然和直觀的表達方式)。

一個 Seq2seq 模型任務實例

機器翻譯作為 Seq2seq 模型代表具有以下特點:

1、機器翻譯是最被認可的 Seq2seq 模型實例,允許我們在其中使用很多直觀例子來說明處理此類問題的困難。

2、機器翻譯通常是新模型開發階段接觸的主要任務之一,這些模型在發展中經常會首先用於機器翻譯,然後才會被應用到其他任務中。

3、當然,也有一些機器翻譯從其他任務中獲得靈感的案例,

從其他任務中獲得的啟發有助於機器翻譯技術的發展。

導論結構

本教程從第二章開始介紹機器翻譯所需要的統計學一般數學定義和方法。在隨後的章節中,本課程將沿著技術複雜度遞增的方向進行闡述,一直到當前該領域最先進的注意模型(attentional models)。

第三章到第六章關注於語言模型,這些語言模型是對興趣(interest)目標序列的概率進行計算。雖然這些模型不能執行翻譯或序列轉換(transduction),但對於初步瞭解 Seq2Seq 模型還是很有説明的。

第三章重點闡述了 n-gram 語言模型,該模型是一種基於單詞在資料集中所出現頻率計算其概率的簡單方法。同時本章節還闡述了如何使用混亂度(perplexity)等度量方法來評估這些模型的性能好壞。

第四章講述了對數-線性語言模型(log-linear language models),該模型通過上下文特徵計算下一個單詞的概率。本章節同時還敘述了如何通過隨機梯度下降來學習模型的參數,即通過求解偏導數並一次次反覆運算更新參數而增加觀察資料的似然度。

第五章介紹了神經網路的基本概念,神經網路要比對數-線性語言模型更容易將多區塊組合在一起,從而進一步提升語言模型的準確度。本章節給出了前饋神經網路語言模型這樣一個案例,該模型主要通過基於先前詞的神經網路預測下一個單詞的概率。

第六章介紹了迴圈神經網路,這是一種允許通過在多個時間步上記錄資訊的機制。而這種特性催生了迴圈神經網路語言模型,該模型能在語言或序列資料建模時獲取長期依存關係(long-term dependencies)。

最後,第七和八章描述了能夠執行機器翻譯或其他任務的實際 seq2seq 模型。

第七章描述了編碼器-解碼器模型,使用遞迴神經網路將目標序列編碼為數位向量,另一個網路會解碼這些數位,並將數位向量轉換成為語句輸出。本章同時也解釋了基於此模型生成輸出序列的搜索演算法。

第八章解釋了注意機制,這種方法允許模型在生成翻譯時聚焦輸入句子的不同部分。這引出了更有效和直觀的句子表示方法,並且通常比相對簡單的編碼器——解碼器機制更有效。

但對於初步瞭解 Seq2Seq 模型還是很有説明的。

第三章重點闡述了 n-gram 語言模型,該模型是一種基於單詞在資料集中所出現頻率計算其概率的簡單方法。同時本章節還闡述了如何使用混亂度(perplexity)等度量方法來評估這些模型的性能好壞。

第四章講述了對數-線性語言模型(log-linear language models),該模型通過上下文特徵計算下一個單詞的概率。本章節同時還敘述了如何通過隨機梯度下降來學習模型的參數,即通過求解偏導數並一次次反覆運算更新參數而增加觀察資料的似然度。

第五章介紹了神經網路的基本概念,神經網路要比對數-線性語言模型更容易將多區塊組合在一起,從而進一步提升語言模型的準確度。本章節給出了前饋神經網路語言模型這樣一個案例,該模型主要通過基於先前詞的神經網路預測下一個單詞的概率。

第六章介紹了迴圈神經網路,這是一種允許通過在多個時間步上記錄資訊的機制。而這種特性催生了迴圈神經網路語言模型,該模型能在語言或序列資料建模時獲取長期依存關係(long-term dependencies)。

最後,第七和八章描述了能夠執行機器翻譯或其他任務的實際 seq2seq 模型。

第七章描述了編碼器-解碼器模型,使用遞迴神經網路將目標序列編碼為數位向量,另一個網路會解碼這些數位,並將數位向量轉換成為語句輸出。本章同時也解釋了基於此模型生成輸出序列的搜索演算法。

第八章解釋了注意機制,這種方法允許模型在生成翻譯時聚焦輸入句子的不同部分。這引出了更有效和直觀的句子表示方法,並且通常比相對簡單的編碼器——解碼器機制更有效。