華文網

CMU:深度學習自然語言處理,神經機器翻譯與 seq2seq 模型匯總,6 大類型附部署技巧

新智元編譯

論文題目:神經機器翻譯與 sequence-to-sequence 模型:一個教程 (Neural Machine Translation and Sequence-to-sequence Models: A Tutorial)

引言

這個教程介紹了一些新的,而且十分強大的技術,通常被稱為“神經機器翻譯”或“神經seq2seq 模型”。這些技術已經被用於人類語言處理的許多人物,並且對任何想對某種類型的序列資料建模的人來說都是很強大的工具。這個教程假設讀者已經具備數學和程式設計的基礎知識,

但不要求一定要有神經網路或自然語言處理的經驗。本教程嘗試解釋一系列方法背後的原理,然後通過大量數學上的解釋幫助讀者深入瞭解這些方法,並且提供了一些實踐上的建議,以便讀者在實踐中測試自己對這些內容的理解。

背景

在這一節,作者解釋了標題裡的兩個重要概念的含義,即“機器翻譯”和“seq2seq 模型”。有關“機器翻譯”的概念在這裡不再贅言,

以下介紹一下“序列到序列模型”,即簡稱“seq2seq 模型”的這個概念。

“seq2seq 模型”是指將一個序列映射到另一個系列的一類模型。這裡面當然包括機器翻譯,但也包含了處理其他任務的更廣泛的方法,如圖1所示。實際上,如果我們把電腦程式的輸入看作是一個輸入比特序列,然後輸出是一個輸出比特序列,那麼我們可以說每一個單獨的程式都是一個表示某些行為的“序列到序列”模型(雖然在許多情況下這不是最自然或最直觀的表達方式)。

圖1:seq2seq 建模任務的示例

本教程的結構

首先,本教程第2節講解了用於機器翻譯的統計學技術的一般數學定義。教程的其餘部分按複雜程度遞增介紹 seq2seq 的各種模型,最後是注意力模型,

它代表了當前該領域最先進的技術。

第3~6節關注語言模型,這些模型計算目標序列的概率。這些模型不能執行翻譯或序列轉換,但對初步理解 seq2seq 模型很有説明。這幾節解釋的概念包括:n-gram 語言模型、log-linear 語言模型、神經網路,以及迴圈神經網路(RNN)。

最後,第7和第8節介紹了能夠執行機器翻譯或其他任務的實用 seq2seq 模型,包括 encoder-decoder 模型和 注意力模型。Encoder-decoder 模型使用 RNN 將目標序列編碼為數位向量,然後另一個網路將該數位向量解碼為輸出的句子。

第7節也介紹了生成序列的搜索演算法。注意力模型允許在生成翻譯輸出時注意輸入的句子的不同部分。這是更有效、更直觀的表示句子的方法,而且通常比 encoder-decoder 的對應更有效。

全部目錄附在文末。

更多研究主題

本教程涵蓋了神經機器翻譯和 seq2seq 模型的基礎,從 n-gram 語言模型開始,最後講到注意力模型。需要注意的是,這是一個非常活躍的研究領域,並且還有一些本教程沒有覆蓋到的更高級的研究主題,掌握了基礎知識並想要瞭解更多的讀者可以主動去研究。這些進一步的研究主題包括:

處理大型詞彙表:

神經 MT 模型的一個難點是在處理大型詞彙表時表現不佳,模型很難學會如何用有限的資料去正確翻譯罕見詞,而且需要的計算量很大。處理這個問題的一種方法是將詞彙分割成更小的單位,例如字元(character)或子字(subword),也可以結合覆蓋面更廣泛的翻譯詞典來處理低頻現象。

優化翻譯結果:

雖然本教程介紹的模型是給定源 P(E | F),被訓練去最大化目標句子的似然性,但實際上我們關心的是生成的句子的準確性。已經有很多工作試圖解決這個問題,利用的手段是在訓練模型時直接考慮的是所生成結果的準確性。方法包括從當前模型的翻譯結果中取樣,並向能得到更好翻譯結果的方向進行參數調優,將參數調優為部分錯誤假設以提高生成結果中錯誤的魯棒性,以及嘗試防止在搜索過程中出現錯誤。

多語言學習:

到目前為止,我們都是假設在兩種語言 F 和 E 之間訓練一個模型。但是,世界上有許多種語言,一些研究已經證明能夠利用所有語言的資料去訓練一個模型。也可以跨語言執行遷移,先在一個語言對上訓練模型,然後將其微調用於其他語言對。

其他應用:

類似的 seq2seq 模型已經用於多種任務,包括對話系統、文本自動摘要、語音辨識、語音合成、圖像標注(image captioning)、圖像生成,等等。本教程涉及的只是這個迅速擴大的領域的一小部分主題,希望能為讀者提供工具,將這些模型應用到自己感興趣的應用上。

附:目錄

1 引言

1.1 背景

1.2 本教程結構

2 MT的統計學基礎

3 n-gram 語言模型

3.1 逐詞計算概率

3.2 基於計數的 n-gram 語言模型

3.3 語言模型評估

3.4 處理未知的詞

3.5 拓展閱讀

3.6 練習

4 Log-linear 語言模型

4.1 模型組成

4.2 學習模型參數

4.3 Log-linear 模型的衍生

4.4 語言建模的其他特徵

4.5 拓展閱讀

4.6 練習

5 神經網路和前饋語言模型

5.1 組合特徵的潛力和問題

5.2 神經網路概要

5.3 訓練神經網路

5.4 一個實現示例

5.5 神經網路語言模型

5.6 拓展閱讀

5.7 練習

6 RNN 語言模型

6.1 語言中的長距離語義關係

6.2 迴圈神經網路

6.3 消失梯度和長短期記憶中

6.4 其他 RNN 變體

6.5 Online, Batch, 和 Minibatch 訓練

6.6 拓展閱讀

6.7 練習

7 神經 Encoder-Decoder 模型

7.1 Encoder-decoder 模型

7.2 生成輸出

7.2.1 隨機取樣

7.2.2 Greedy 1-best 搜索

7.2.3 Beam 搜索

7.3 其他編碼序列的方式

7.3.1 反向與雙向編碼器

7.3.2 卷積神經網路

7.3.3 樹結構網路

7.4 ensemble 多個模型

7.5 練習

8 注意力神經機器翻譯

8.1 Encoder-Decoder 表示的為題

8.2 注意力

8.3 計算注意力分數

8.4 計算注意力分數的方式

8.5 模仿詞和位置詞替代

8.6 注意力的直覺先驗

8.7 拓展閱讀

8.8 練習

9 總結

論文地址:https://arxiv.org/pdf/1703.01619v1.pdf

並且還有一些本教程沒有覆蓋到的更高級的研究主題,掌握了基礎知識並想要瞭解更多的讀者可以主動去研究。這些進一步的研究主題包括:

處理大型詞彙表:

神經 MT 模型的一個難點是在處理大型詞彙表時表現不佳,模型很難學會如何用有限的資料去正確翻譯罕見詞,而且需要的計算量很大。處理這個問題的一種方法是將詞彙分割成更小的單位,例如字元(character)或子字(subword),也可以結合覆蓋面更廣泛的翻譯詞典來處理低頻現象。

優化翻譯結果:

雖然本教程介紹的模型是給定源 P(E | F),被訓練去最大化目標句子的似然性,但實際上我們關心的是生成的句子的準確性。已經有很多工作試圖解決這個問題,利用的手段是在訓練模型時直接考慮的是所生成結果的準確性。方法包括從當前模型的翻譯結果中取樣,並向能得到更好翻譯結果的方向進行參數調優,將參數調優為部分錯誤假設以提高生成結果中錯誤的魯棒性,以及嘗試防止在搜索過程中出現錯誤。

多語言學習:

到目前為止,我們都是假設在兩種語言 F 和 E 之間訓練一個模型。但是,世界上有許多種語言,一些研究已經證明能夠利用所有語言的資料去訓練一個模型。也可以跨語言執行遷移,先在一個語言對上訓練模型,然後將其微調用於其他語言對。

其他應用:

類似的 seq2seq 模型已經用於多種任務,包括對話系統、文本自動摘要、語音辨識、語音合成、圖像標注(image captioning)、圖像生成,等等。本教程涉及的只是這個迅速擴大的領域的一小部分主題,希望能為讀者提供工具,將這些模型應用到自己感興趣的應用上。

附:目錄

1 引言

1.1 背景

1.2 本教程結構

2 MT的統計學基礎

3 n-gram 語言模型

3.1 逐詞計算概率

3.2 基於計數的 n-gram 語言模型

3.3 語言模型評估

3.4 處理未知的詞

3.5 拓展閱讀

3.6 練習

4 Log-linear 語言模型

4.1 模型組成

4.2 學習模型參數

4.3 Log-linear 模型的衍生

4.4 語言建模的其他特徵

4.5 拓展閱讀

4.6 練習

5 神經網路和前饋語言模型

5.1 組合特徵的潛力和問題

5.2 神經網路概要

5.3 訓練神經網路

5.4 一個實現示例

5.5 神經網路語言模型

5.6 拓展閱讀

5.7 練習

6 RNN 語言模型

6.1 語言中的長距離語義關係

6.2 迴圈神經網路

6.3 消失梯度和長短期記憶中

6.4 其他 RNN 變體

6.5 Online, Batch, 和 Minibatch 訓練

6.6 拓展閱讀

6.7 練習

7 神經 Encoder-Decoder 模型

7.1 Encoder-decoder 模型

7.2 生成輸出

7.2.1 隨機取樣

7.2.2 Greedy 1-best 搜索

7.2.3 Beam 搜索

7.3 其他編碼序列的方式

7.3.1 反向與雙向編碼器

7.3.2 卷積神經網路

7.3.3 樹結構網路

7.4 ensemble 多個模型

7.5 練習

8 注意力神經機器翻譯

8.1 Encoder-Decoder 表示的為題

8.2 注意力

8.3 計算注意力分數

8.4 計算注意力分數的方式

8.5 模仿詞和位置詞替代

8.6 注意力的直覺先驗

8.7 拓展閱讀

8.8 練習

9 總結

論文地址:https://arxiv.org/pdf/1703.01619v1.pdf