电竞比分网-中国电竞赛事及体育赛事平台

分享

【NLP】 NLP中應用最廣泛的特征抽取模型-LSTM

 有三AI 2020-11-27

本篇介紹在NLP中應用最為廣泛的特征抽取模型LSTM。詳細介紹LSTM提出的由來及其模型結構,并由此分析了LSTM能夠解決RNN不能夠對長序列進行處理和訓練的原因。

作者&編輯 | 小Dream哥

上周介紹了RNN模型結構及其反向傳播和正向傳播機制。文末提到了RNN會出現(xiàn)梯度消失等問題,使得訓練變得困難,但因為篇幅限制,沒有介紹其具體的原因,后面小Dream哥在有三AI-NLP知識星球里詳細介紹了這一方面的內容,感興趣的同學可以移步如下鏈接:

RNN梯度消失原因詳解:https://t./7qzRBeE

那好,既然RNN有這樣的問題,該怎么解決呢?我們今天的主角LSTM(Long Short-Term Memory)就該登場了。

1 LSTM的提出

在LSTM提出之前,RNN的訓練基于BPTT(Back-Propagation Through Time)或者RTRL(Real Time Recurrent Learning)。通過這兩種方式對RNN進行訓練時,當誤差在序列內進行傳播時,會出現(xiàn)梯度消失或者爆炸的情況。

當出現(xiàn)梯度消失時,在訓練時,權重會出現(xiàn)搖擺和震蕩;梯度消失使得訓練會耗費大量的時間,甚至干脆就停滯。

基于這樣的情況,兩位大神Sepp Hochreiter和Jürgen Schmidhuber提出了LSTM:

Hochreiter, S, and J. Schmidhuber. "Long short-term memory." Neural Computation 9.8(1997):1735-1780.

我們先回顧一下RNN的誤差傳遞公式:

一個很簡單的想法,如果誤差在不同時刻相互連接的RNN單元之間,傳遞的是一個常量,即令下式是一個常量。其中f為激活函數(shù)。

這樣,梯度消失或者爆炸的問題是不是就可以解決了?

因此,Sepp Hochreiter和Jürgen Schmidhuber提出了CEC(Constant Error Carrousel),這也是LSTM的核心特點。

所謂CEC,就是令

Sepp Hochreiter和Jürgen Schmidhuber指出可以選擇恒等函數(shù)作為激活函數(shù),并且令w_j,j=1便可滿足上式,保證梯度在誤差隨時間傳遞之后不至于出現(xiàn)梯度消失或者梯度爆炸。這個想法很簡單和樸素,因此Sepp Hochreiter和Jürgen Schmidhuber稱之為Naive Approach。

但是對RNN僅僅是做這樣的修改也還會有一些問題,不管是輸入權重還是輸出權重,在更新都既要考慮“記住”前面時刻的內容;又要考慮不要讓前面時刻的內容干擾到當前時刻的輸入,這種矛盾會使訓練變得困難。因此兩位大神針對這個問題,設計新的模型結構,下面介紹LSTM的模型結構。

2 LSTM的結構

現(xiàn)在網(wǎng)絡上講LSTM結構的文章,實在是太多了,小Dream哥本來是不想再講的。出于文章完整性和系統(tǒng)性的考慮,這里還是將LSTM的模型結構和前向傳播過程列一下。

可以看到LSTM的結構要比RNN的復雜的多,其主要是增加了細胞狀態(tài)和3個門結構。看上去比較復雜,同學們先不要著急,下面我們一步一步來講一講LSTM的結構。

如上圖,細胞狀態(tài)C_t橫向穿過,看起來像一條傳送帶,只是經(jīng)過了少量的線性變化,因此狀態(tài)容易保持下來。

上圖是LSTM的第一個門,遺忘門。這個門根據(jù)輸入信息(h_t-1和x_t)決定要忘記細胞狀態(tài)C_t-1的哪些部分。

接下來是信息更新門,決定了細胞狀態(tài)C_t,它分為兩個部分。

第一步,根據(jù)輸入信息,用tanh產(chǎn)生該時刻需要更新到細胞狀態(tài)中的內容;用sigmoid函數(shù)產(chǎn)生更新的比例。

第二步,將需要更新的內容更新到細胞狀態(tài)中去,生成C_t。

最后,是輸出門。根據(jù)新的細胞狀態(tài)和輸入信息,產(chǎn)生新的輸出h_t。

上面大致介紹了LSTM的結構,及其前向傳播過程,圖片來自:

http://colah./posts/2015-08-Understanding-LSTMs/

這里先總結一下,LSTM在原本RNN的基礎上增加了CEC的內容,CEC保證了誤差以常數(shù)的形式在網(wǎng)絡中流動,這部分通過引入細胞狀態(tài)C來體現(xiàn)。并且,為了解決輸入和輸出在參數(shù)更新時的矛盾,在CEC的基礎上添加3個門使得模型變成非線性的,就可以調整不同時序的輸出對模型后續(xù)動作的影響。

3 LSTM局限性

LSTM提出之后,在語音處理、機器翻譯、實體識別等NLP領域迅速取得很好的效果,在工業(yè)界獲得很好的應用。但其也有一定的局限性,下面我們做一下介紹。

(1) 相較于RNN,LSTM的網(wǎng)絡結構復雜很多,因為引入了更多的權重參數(shù),這增加了計算的復雜度。

(2) 不管是RNN,還是它的衍生LSTM等,都需要隨著時間推移進行順序處理。因此對于輸入序列的處理效率很低。

(3) 特征提取能力不強,t時刻的輸入不能提取到t時刻之后序列信息的內容。這點在transformer出來之后,體現(xiàn)的尤為明顯。

總結

上文詳細講述了LSTM提出的由來,大致介紹了其模型結構,由此分析了其能夠解決RNN無法訓練的問題。最后,介紹了LSTM的局限性。

LSTM是一個應用廣泛的模型,但隨著Attention機制的提出,transfomer開始作為一種更為強大的特征抽取模型,開始橫掃各大NLP任務的榜單。不出意外,transformer將會取代RNN及其衍生(LSTM GRU)模型,成為NLP中,最受歡迎、最為強大的特征抽取模型。

下期預告:Attention及transformer介紹

知識星球推薦

知識星球主要有以下內容:

(1) 聊天機器人。考慮到聊天機器人是一個非常復雜的NLP應用場景,幾乎涵蓋了所有的NLP任務及應用。所以小Dream哥計劃以聊天機器人作為切入點,通過介紹聊天機器人的原理和實踐,逐步系統(tǒng)的更新到大部分NLP的知識,會包括語義匹配,文本分類,意圖識別,語義匹配命名實體識別、對話管理以及分詞等。

(2) 知識圖譜。知識圖譜對于NLP各項任務效果好壞的重要性,就好比基礎知識對于一個學生成績好壞的重要性。他是NLP最重要的基礎設施,目前各大公司都在著力打造知識圖譜,作為一個NLP工程師,必須要熟悉和了解他。

(3) NLP預訓練模型?;诤A繑?shù)據(jù),進行超大規(guī)模網(wǎng)絡的無監(jiān)督預訓練。具體的任務再通過少量的樣本進行Fine-Tune。這樣模式是目前NLP領域最火熱的模式,很有可能引領NLP進入一個全新發(fā)展高度。你怎么不深入的了解?

 

 

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多