Monday, February 12, 2018

深入淺出 Deep Learning():Seq2Seq

深入淺出 Deep Learning():Seq2Seq

2017/12/19

施工中...

前言:

-----

Summary:

本篇討論的文章 [1] 最早是在 GPU Taiwan Facebook 看到。其中使用 GRU 而非 LSTM 引起我的好奇,因為 GRU 雖然號稱是 LSTM 的改進 [2],但近年看到的論文其實還是以 LSTM 居多。於是轉貼到 台灣「人工智慧」社團 尋求討論 [3]。由討論中得知,這兩者的差異其實不大 [3]-[5]。

無論如何,討論中出現了 seq2seq 與  attention,屬於常見但我卻沒有進一步研究的主題。因此我先查了 attention [6]-[8], [10],再補上 seq2seq [6], [9], [10],以便閱讀 [1]。

[11] 是有關 RNN 較詳細的翻譯文章。

-----


Fig. 1. Encoder and Decoder [1].

-----

Outline

一、動機
二、LSTM and GRU
三、seq2seq
四、attention

-----

一、動機

「最近在 Kaggle 上有一場關於網絡流量預測的比賽落下帷幕,比賽的目標是預測 14 萬多篇維基百科的未來網絡流量。 來自莫斯科的 Arthur Suilin 在這場比賽中奪冠, 他在 github 上分享了自己的模型。」[1]

這篇文章引起我的注意,點進去瀏覽後發現他的 RNN 用的是 GRU。之前我研究過 LSTM 與 GRU [2],但實際上我看到較新的論文,使用 LSTM 還是佔多數(幾乎全部,除了這一篇)。於是我到台灣「人工智慧」社團去請教同好。

請教一個問題:GRU 可說是 LSTM 的改進(演化)。然而近年的論文用到的 RNN 還是以 LSTM 居多。這篇又使用了 GRU(參考圖1),讓我有點好奇 [3]?

-----

二、LSTM and GRU

有關 LSTM 與 GRU 效能上的差異,由下列討論可得知差異並不大。當然,結構上,GRU 是簡單一點。

郭宗賢:Marcel 兄,GRU 比LSTM 晚, 是進化版 ,, 不過主要是參數減少的進化, (LSTM 有點 redundant ) 。。之前有一篇論文比較過,LSTM vs GRU 的準確度差不多。在 cs224n,2位教授針對誰比較好也有課堂上 1分鐘舌戰,(Manning vs Richard) 年輕的 Richard Socher 說 參數比較少, 準確率差不多,當然比較好。。。Manning 說: 我完全無法同意。。。。( 2位都是彬彬有禮的君子。。 )以上, 個人淺見。[3]

Marcel Wang:「We confirmed that the LSTM seems to be a better default choice for language modeling than the GRU.」[4]

郭宗賢: 我記得 google 有一篇 language translation 也有這樣的結論,,,(經過不可思議的 GPU hours 的訓練..)。這裡有一篇, 比較各式 LSTM 變形的 performance (figure 3)。[5]

-----

三、seq2seq

「目前解決對話問題的方法是基於檢索式的和基於生成式的兩種。生成式方法大多使用的是 seq2seq 的模型框架,即將對話的上下文看作兩個序列,通過對上文序列進行編碼,再解碼出下文。藉助於 GAN 和 VAE 等生成式模型的研究,有學者將其應用於對話系統,也取得了很好的效果。 」[6]

-----


Fig. 2. seq2seq [6].

-----

「要注意的是,seq2seq 模型中的解碼器在訓練和預測階段不太一樣。在訓練階段,我們同時使用對話的上下文,decoder 每個時刻的輸入都是我們給定的下文,利用每個時刻的輸出與給定下文的不同來計算損失(loss),再用反向傳播的方法對模型進行訓練。」[6]

上面這段話,基本上是沒有問題的。參考圖2,左邊是 encoder,右邊是 decoder,訓練階段可以用 CNN 的概念類推。CNN 的輸入是圖片,輸出是 tag。RNN 的輸入是對話的上文,輸出是對話的下文。

「但在預測階段,我們希望給出上文讓模型來生成下文,所以 decoder 每個時刻的輸入都是它自身上個時刻的輸出(除了第一個開始標識符)。」[6]

這段話則不容易看懂。???

-----

四、attention

郭宗賢:btw,看了一下文章, Arthur 是用 GRU + Attention, (常用在NLP...) 還用了 Time series autocorrelation 模型當作 feature ...佩服啊!!! [1]

Marcel Wang:「這裏十分推薦關於 Attention Mechanism 的兩大經典論文,即 Bahdanau Attention 和Luong Attention」 [6]-[8]。

-----


Fig. 3.  Bahdanau Attention [6].

-----


-----

結論:



-----

References

[1] Kaggle比賽冠軍經驗分享:如何用 RNN 預測維基百科網絡流量 - 掃文資訊
https://hk.saowen.com/a/f1c61f563ab09ee6bcd2715997fe9183b0b1f3dac8ea4060dc3e99bfdc5ff28c

◎ LSTM and GRU

[2] AI從頭學(一九):Recurrent Neural Network
http://hemingwang.blogspot.tw/2017/03/airecurrent-neural-network.html

[3] 請教一個問題:
https://www.facebook.com/groups/Taiwan.AI.Group/permalink/1944977135824718/

[4] Irie, Kazuki, et al. LSTM, GRU, highway and a bit of attention: an empirical overview for language modeling in speech recognition. RWTH Aachen University Aachen Germany, 2016.
https://www-i6.informatik.rwth-aachen.de/publications/download/1006/Irie--2016.pdf

[5] Greff, Klaus, et al. "LSTM: A search space odyssey." IEEE transactions on neural networks and learning systems (2017).
https://arxiv.org/pdf/1503.04069.pdf?utm_content=buffereddc5&utm_medium=social&utm_source=plus.google.com&utm_campaign=buffer

◎ attention

[6] Neural Response Generation——关于回复生成工作的一些总结
https://zhuanlan.zhihu.com/p/30533380

[7] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014).
https://arxiv.org/pdf/1409.0473.pdf

[8] Luong, Minh-Thang, Hieu Pham, and Christopher D. Manning. "Effective approaches to attention-based neural machine translation." arXiv preprint arXiv:1508.04025 (2015).
https://arxiv.org/pdf/1508.04025.pdf

◎ seq2seq

[9] seq2seq学习笔记 - CSDN博客
http://blog.csdn.net/Jerr__y/article/details/53749693

[10] 完全图解RNN、RNN变体、Seq2Seq、Attention机制
https://zhuanlan.zhihu.com/p/28054589 

[11] RNN 循环神经网络系列
https://github.com/xitu/gold-miner/blob/master/TODO/recurrent-neural-networks-rnn-part-1-basic-rnn-char-rnn.md

No comments: