基本原理 | seq2seq概述


基本原理:

Encoder-decoder框架為文本處理領域的一種非常流行的框架,這項技術突破了傳統的輸入大小固定的問題,將深度神經網絡模型用到了自然語言處理的相關任務之中。其不僅可以用在對話生成任務中,同樣應用在自然語言處理的其他領域,如機器翻譯、文本摘要、句法分析等任務中。

Seq2seq模型最早在2014年,由Ilya Sutskever等[1]提出。當時主要應用在機器翻譯的相關問題中,其可以理解為一個適用於處理由句子(段落)X生成句子(段落)Y的通用模型。對於給定的輸入句子X,我們的目標是通過Seq2seq模型生成目標句子Y。X與Y並不限制為同一種語言。將X和Y的單詞序列表示如下:

 

編碼器(Encoder)對輸入句子 進行建模,通過非線性變換將輸入向量轉化為中間向量表示h。

 

解碼器(Decoder)根據編碼器生成的中間向量表示 和之前的歷史信息 ,生成i時刻的單詞 。

 

其目標函數表示為:

 

上述目標函數存在數值下溢(Numerical Underflow)的問題,原因在於 中每一項都小於1,乘起來就會得到很小的數字,因此在實際中往往取其對數進行放縮,訓練目標即為最大化下面的目標函數。

 

 

 

經典改進:

Teacher foring

在基礎的模型中,Decoder的每一次解碼又會作為下一次解碼的輸入,這樣就會導致一個問題就是錯誤累計,如果其中一個RNN單元解碼出現誤差了,那么這個誤差就會傳遞到下一個RNN單元,使訓練結果誤差越來越大。Teacher Forcing[2]在一定程度上解決了這個問題,它的流程如圖3所示,在訓練過程中,使用要解碼的序列作為輸入進行訓練,但是在inference階段是不能使用的,因為你不知道要預測的序列是個啥,當然只在訓練過程中效果就很不錯了,它幫助模型加速收斂。

 

 

 

Attention

在傳統的Seq2seq模型中,編碼器將所有長度的原始句子都編碼成一個固定維度的向量,若原始句子較長,這個向量往往不能很好地表達原始句子的所有細節,同時,這個向量的表達受最后位置的詞的影響更大。Bahdanau[3]和Cho[4]利用注意力改進了Seq2seq模型。在加入了注意力機制的Seq2seq模型中,解碼器在每一個位置的生成時,會利用編碼器的所有狀態加權作為輸入,而非僅選取編碼器的最后一個狀態值。

Curriculum Learning

在模型的訓練中的解碼器部分,使用上一個時刻的輸出作為下一個時刻的輸入。這樣會導致訓練迭代過程早期的模型的預測能力非常弱,幾乎不能給出好的生成結果。如果某一個時刻產生了垃圾結果,必然會影響后面整體的學習,以至於最終結果非常不好也很難溯源到發生錯誤的源頭。我們在訓練中使用課程學習(Curriculum Learning)[5]來改進這一問題,通過改變訓練過程,以便逐步迫使模型處理它自己的錯誤,就像它在推斷(Inference)過程中必須做的那樣。具體地,以概率 去選擇使用真實的輸出 還是前一個時刻模型生成的輸出 作為當前時刻的輸入。概率 會隨着時間的推移而減小,即使用計划抽樣(Scheduled Sampling)的方法產生輸入。這樣在訓練的早期階段,模型可以獲得更多真實的數據,從而加速訓練;在訓練的后期階段,模型更多地使用真實輸出作為輸入,從而學習如何處理錯誤。

 

 

 

 

[1]    Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[J]. Advances in NIPS, 2014.

[2]    Williams, Ronald J., and David Zipser. "A learning algorithm for continually running fully recurrent neural networks." Neural computation 1.2 (1989): 270-280.

[3]    Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.

[4]    Cho K, Van Merriënboer B, Bahdanau D, et al. On the properties of neural machine translation: Encoder-decoder approaches[J]. arXiv preprint arXiv:1409.1259, 2014.

[5]    Bengio Y, Louradour J, Collobert R, et al. Curriculum learning[C]//Proceedings of the 26th annual international conference on machine learning. 2009: 41-48.

 

 

 

最新研究:

[1] Exploring Sequence-to-Sequence Learning in Aspect Term Extraction, acl2019

https://www.aclweb.org/anthology/P19-1344/

[2] Sparse Sequence-to-Sequence Models, acl2019

https://arxiv.org/abs/1905.05702v1

[3] Self-Regulated Interactive Sequence-to-Sequence Learning, acl2019

   https://arxiv.org/abs/1907.05190

[4] CNNs found to jump around more skillfully than RNNs: Compositional generalization in seq2seq convolutional networks, acl2019

    https://arxiv.org/abs/1905.08527

[5] Automatic Grammatical Error Correction for Sequence-to-sequence Text Generation: An Empirical Study, acl2019

https://www.aclweb.org/anthology/P19-1609/

[6]  A Neural, Interactive-predictive System for Multimodal Sequence to Sequence Tasks, acl2019

https://arxiv.org/abs/1905.08181

[7]  Sequicity: Simplifying Task-oriented Dialogue Systems with Single Sequence-to-Sequence Architectures, acl2018

https://www.aclweb.org/anthology/P18-1133/

[8] Reliability and Learnability of Human Bandit Feedback for Sequence-to-Sequence Reinforcement Learning, acl2018

    https://www.aclweb.org/anthology/P18-1165/

[9] Sequence-to-sequence Models for Cache Transition Systems, acl2018

https://www.aclweb.org/anthology/P18-1171/

[10] Tailored Sequence to Sequence Models to Different Conversation Scenarios, acl2018

https://www.aclweb.org/anthology/P18-1137/

[11] MASS: Masked Sequence to Sequence Pre-training for Language Generation, icml2019

https://arxiv.org/abs/1905.02450

[12] Minimum Divergence vs. Maximum Margin: An Empirical Comparison on Seq2seq Models, ICLR2019

https://openreview.net/pdf?id=H1xD9sR5Fm

[13] Von Mises-Fisher Loss for Training Sequence to Sequence Models with Continuous Outputs, ICLR2019

     https://arxiv.org/abs/1812.04616

[14]  Posterior Attention Models for Sequence to Sequence Learning, ICLR2019

     https://openreview.net/forum?id=BkltNhC9FX

[15]  Detecting Egregious Responses in Neural Sequence-to-sequence Models, ICLR2019

     https://openreview.net/forum?id=HyNA5iRcFQ

[16]  Improving Sequence-to-Sequence Learning via Optimal Transport, ICLR2019

      https://openreview.net/forum?id=S1xtAjR5tX

[17] Sentence-wise Smooth Regularization for Sequence to Sequence Learning,aaai2019

     https://arxiv.org/abs/1812.04784v1

[18]  Trainable Decoding of Sets of Sequences for Neural Sequence Models,icml2019

http://proceedings.mlr.press/v97/kalyan19a/kalyan19a.pdf

[19] Compositional generalization through meta sequence-to-sequence learning, neurIPS2019

http://papers.nips.cc/paper/9172-compositional-generalization-through-meta-sequence-to-sequence-learning


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM