paper-Sequence to Sequence Learning with Neural Networks_2014【machine translation】

論文:Sequence to Sequence Learning with Neural Networks

作者:Ilya Sutskever,Oriol Vinyals,Quoc V. Le

需補習知識:RNN,LSTM,SGD,PCA,beam search


what:

提出一個端到端的序列學習的編解碼模式

應用於英文->法語的翻譯任務

why:

DNN雖然靈活,但侷限性在於輸入和輸出只允許固定維度向量,且維度是已知的

how:

seq2seq模型由兩部分組成:

encoder: 

  •     一個 deep LSTM
  •     將長度可變的input sequence映射爲定長vector

deoder:

  •     另一個 deep LSTM
  •     將上一步的定長vector解碼到target sequence

 

該論文在原始LSTM模型上的創新點:

1.two different LSTM 

2.deep LSTMs(four layers) 比淺層LSTM好

3.reverse the order of the words of input sentence:

        減少了困惑度,增大了BLUE分數,猜想翻轉詞彙有效的原因是引入了許多短期依賴

4.預測時候使用beam search:(貪心搜索的一種)

        只在預測的時候需要,因爲訓練的時候知道正確答案,不需要搜索。預測的時候,假設詞表是3:{a,b,c},beam size是2,decoder解碼的時候:

4.1 生成第一個詞的時候,選擇概率最大的兩個詞,假設a,c,那麼現在的兩個序列就是a和c;

4.2 生成第二個詞的時候,將當前序列與詞表中的詞彙組合,得到新的6個序列:aa,ab,ac,ca,cb,cc,計算每個序列的得分,並選擇得分最高的兩個序列,作爲新的序列,假設aa,cb;

4.3 後面不斷重複這個過程,知道遇到結束符或者達到最大長度爲止。

 

notes:

1.提出seq2seq模型的編解碼模式,並且適用於long sentence。在長句上的表現也很好,因爲翻轉了源句子(而非目標句子)的單詞的順序,引入了許多短期依賴,使得優化問題更加簡單。實用標準的SGD優化器來訓練模型。

2.不會引起梯度消失,但是會引起梯度爆炸(採取梯度的範數超過某個閾值的時候縮放它)。

3.針對句子長短不一帶來的小批量處理浪費計算的問題,確保每次批量處理中的句子長度差不多長,提升了2x的速度。

4.對詞表外的詞沒法翻譯。

 

問題:

1.RNN的輸入時定長的,LSTM呢?輸入輸出不需要定長嗎?

2.源句(翻轉)和目標句的平均距離沒變,前幾個詞彙的距離短了,後幾個詞彙的距離不會變長嗎?

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章