【論文閱讀】Sequence to Sequence Learning with Neural Network

Sequence to Sequence Learning with NN算法

《基於神經網絡的序列到序列學習》原文google scholar下載。網絡

@author: Ilya Sutskever (Google)and so on學習

1、總google

DNNs在許多棘手的問題處理上取得了矚目的成績。文中提到用一個包含2層隱藏層神經網絡給n個n位數字排序的問題。若是有好的學習策略,DNN可以在監督和反向傳播算法下訓練出很好的參數,解決許多計算上覆雜的問題。一般,DNN解決的問題是,算法上容易的而計算上困難的。DNN就是解決這個問題,將計算上看似不易解的問題經過一個設計好的多層神經網絡,並按照必定的策略輕鬆解決。編碼

 

可是,DNN有一個明顯的缺陷:DNN只能處理輸入、輸出向量維度是定長的情形。對於輸入、輸出可變長的狀況,使用RNN-Recurrent Neural Network更易求解。spa

對於一個RNN,每個cell一般是使用LSTM。也有GRU替代,GRU精度上可能不如LSTM,但計算上更加簡便,由於他是對LSTM的簡化。翻譯

 

這篇論文的模型相似於Encoder-Decoder的模型,Encoder和Decoder的部分採用兩個不一樣的RNN,之因此採用不一樣的RNN是由於能夠以不多的計算代價訓練更多的參數。設計

具體的說,這個Sequence to Sequence的學習中,首先將可變長的Sequence用一個RNN提取出特徵向量—定長的,這個特徵向量取自飛一個RNN的最後一個LSTM單元。code

以後,把這個向量輸入另外一個RNN(語言模型),如條件語言模型,使用beam search計算出機率最大的句子,獲得輸出。blog

 

本文的創新之處在於,源串做爲第一個RNN的輸入,其中的每個單詞是逆向輸入的。這樣作獲得了更高的BLEU分數。

雖然本文的模型沒有超過當下最好的模型的得分,但其逆向輸入的方法提供了新的思路

 

2、模型

本文的模型以下:這是一個英語 –> 法語的翻譯模型:

clip_image002[1]

源串是CBA,獲得輸出WXYZ。

 

數據集:WMT’14 English to French dataset

使用的詞典是英文16萬詞,法語8萬詞。詞向量已經訓練好。未知單詞采用UNK。句子結尾爲EOS

 

 

3、訓練細節

  • 使用的是4層LSTM單元,深層的LSTM表現的更好
  • 每一層1000個LSTM,也就是說,循環1000次(由於大多數句子30詞左右,其實這有點浪費)
  • 初始化參數使用服從均勻分佈U(-0.8,0.8)隨機初始化
  • 解碼階段輸出層機率採用的是一個很大的softmax,這個佔用了絕大多數的計算資源
  • 詞向量維度是1000維度的
  • 學習過程當中,使用隨機梯度降低,學習率初始0.7,迭代7.5次,前5次固定學習率是0.7,以後每半次迭代學習率減半一次
  • 使用mini-batch,每一個batch是128個句子
  • 爲了不梯度消失和梯度爆炸,限制梯度大小。若是梯度g的二範數||g||大於5,就進行g = 5*g/||g|| 的轉換。
  • 爲了解決上面提到的,LSTM橫向1000次是浪費的,但咱們能夠儘量讓同一mini-batch裏的句子長度幾乎相同。這樣是2倍加速效果的。
  • 本文的實驗採用8個GPU,其中4個用來處理LSTM的每一層,其他的處理softmax層。

 

4、實驗結果

一方面實驗直接對本文的模型以及其餘經典模型求BLUE比較,而且對本模型也對不一樣的超參數作了對比。

clip_image003[1]

另外一方面,與統計的機器翻譯模型一塊兒使用,一般會比直接使用RNN得分更高。這樣作的結果以下:

clip_image005[1]

此外,實驗發現,LSTM對長句子表現的更好。

實驗還對針對不一樣句子長度的BLUE得分作了分析:

clip_image006[1]

對不一樣句子的平均詞頻下的BLEU獲得作了分析:

clip_image007[1]

 

5、結論

本文得出的結論以下:

  1. 使用LSTM的RNN MT能夠打敗傳統的基於統計的MT—>STM。
  2. 源句子反轉輸入對於模型提高的幫助很大。這個沒有數學解釋,但一個通俗的理解是:目標句子與源句子開頭的短時聯繫更加緊密了,在一個就翻譯的初期,目標句子開頭翻譯質量的提高,提升了總體翻譯的質量。

 

6、其餘

還有一些人研究其餘的機制。

  1. 編碼並不採用RNN,而是使用CNN,這樣編碼的向量/矩陣改變了語序的問題。
  2. 有些人致力於將RNN結合到傳統的STM中去。
  3. 有一種注意力機制。這種機制考慮到Encoder可能並不能徹底提取源句子的全部信息,因此使用編碼成向量+生成注意力向量 -> 在解碼的每一步都線性組合出新的條件(源句子信息)。這樣作的好處是在解碼生成每個單詞的過程當中,網絡對源句子中不一樣的單詞更加感興趣,這能夠提升翻譯質量。
相關文章
相關標籤/搜索