一、RNN簡介
循環神經網絡(Recurrent Neural Network,RNN)是一類專門用於處理時序數據樣本的神經網絡,它的每一層不僅輸出給下一層,同時還輸出一個隱狀態,給當前層在處理下一個樣本時使用。就像卷積神經網絡可以很容易地擴展到具有很大寬度和高度的圖像,而且一些卷積神經網絡還可以處理不同尺寸的圖像,循環神經網絡可以擴展到更長的序列數據,而且大多數的循環神經網絡可以處理序列長度不同的數據(for 循環,變量長度可變)。它可以看作是帶自循環反饋的全連接神經網絡。
RNN符合帶時間序列的任務場景,前后關聯強
- 標准神經網絡做NLP的建模弊端:
- 輸入和輸出數據再不同例子中可能有不同的長度
- 不共享從文本的不同位置學到的特征
- 參數量巨大
- 沒有辦法體現時序上的前因后果
- RNN特點:
- 串聯結構,體現出前因后果,后面結果的生成,要參考前面的信息
- 所有特征共享同一套參數
- 缺點:
- 序列太長時,容易導致梯度消失。參數更新只能捕捉到局部依賴關系,沒法再捕捉序列之間的長期關聯或者依賴關系
隨着距離的增加,RNN無法有效的利用歷史信息。在理論上,RNN絕對有能力處理這樣的“長依賴”問題。人們可以仔細挑選參數來解決這種形式的問題。 可悲的是,在實踐中,RNN似乎無法學習到這些特征。Hochreiter和Bengio,曾經深入的研究過這個問題,他們發現一些根本性的原因,能夠解釋RNN為什么不work。
二、LSTM
- 可以有效的解決梯度消失、梯度爆炸問題
- 長短記憶神經網絡——通常稱作LSTM,是一種特殊的RNN,能夠學習長的依賴關系。
三、GRU
GRU(Gate Recurrent Unit)是循環神經網絡(Recurrent Neural Network, RNN)的一種。和LSTM(Long-Short Term Memory)一樣,也是為了解決長期記憶和反向傳播中的梯度等問題而提出來的。
GRU和LSTM在很多情況下實際表現上相差無幾
我們在我們的實驗中選擇GRU是因為它的實驗效果與LSTM相似,但是更易於計算。
相比LSTM,使用GRU能夠達到相當的效果,並且相比之下更容易進行訓練,能夠很大程度上提高訓練效率,因此很多時候會更傾向於使用GRU。