天天看點

BiLSTM介紹及中文命名實體識别應用

What-什麼是LSTM和BiLSTM?

LSTM:全稱Long Short-Term Memory,是RNN(Recurrent Neural Network)的一種。LSTM由于其設計的特點,非常适合用于對時序資料的模組化,如文本資料。

BiLSTM:Bi-directional Long Short-Term Memory的縮寫,是由前向LSTM與後向LSTM組合而成。

可以看出其很适合做上下有關系的序列标注任務,是以在NLP中常被用來模組化上下文資訊。

我們可以簡單了解為雙向LSTM是LSTM的改進版,LSTM是RNN的改進版。

(這裡簡單說一下RNN,熟悉的可以直接跳過。RNN的意思是,為了預測最後的結果,我先用第一個詞預測,當然,隻用第一個預測的預測結果肯定不精确,我把這個結果作為特征,跟第二詞一起,來預測結果;接着,我用這個新的預測結果結合第三詞,來作新的預測;然後重複這個過程;直到最後一個詞。這樣,如果輸入有n個詞,那麼我們事實上對結果作了n次預測,給出了n個預測序列。整個過程中,模型共享一組參數。是以,RNN降低了模型的參數數目,防止了過拟合,同時,它生來就是為處理序列問題而設計的,是以,特别适合處理序列問題。LSTM對RNN做了改進,使得其能夠捕捉更長距離的資訊。但是不管是LSTM還是RNN,都有一個問題,它是從左往右推進的,是以後面的詞會比前面的詞更重要。是以出現了雙向LSTM,它從左到右做一次LSTM,然後從右到左做一次LSTM,然後把兩次結果組合起來。)

Why-為什麼使用LSTM與BiLSTM?

如果我們想要句子的表示,可以在詞的表示基礎上組合成句子的表示,那麼我們可以采用相加的方法,即将所有詞的表示進行加和,或者取平均等方法。但是這些方法很大的問題是沒有考慮到詞語在句子中前後順序。而使用LSTM模型可以更好的捕捉到較長距離的依賴關系。因為LSTM通過訓練過程可以學到記憶哪些資訊和遺忘哪些資訊。但是利用LSTM對句子進行模組化也存在一個問題:無法編碼從後到前的資訊。而通過BiLSTM可以更好的捕捉雙向的語義依賴。

How-BiLSTM原理 

BiLSTM介紹及中文命名實體識别應用

 詳細原理可看:https://www.jiqizhixin.com/articles/2018-10-24-13

Do-BiLSTM與NER任務

BiLSTM-CRF模型簡單介紹

所有 RNN 都具有一種重複神經網絡單元的鍊式形式。在标準的RNN中,這個重複的單元隻有一個非常簡單的結構,例如一個tanh層。

BiLSTM介紹及中文命名實體識别應用

LSTM 同樣是這樣的結構,但是重複的單元擁有一個不同的結構。不同于普通RNN單元,這裡是有四個,以一種非常特殊的方式進行互動。

BiLSTM介紹及中文命名實體識别應用

圖4:LSTM結構

LSTM通過三個門結構(輸入門,遺忘門,輸出門),選擇性地遺忘部分曆史資訊,加入部分目前輸入資訊,最終整合到目前狀态并産生輸出狀态。

BiLSTM介紹及中文命名實體識别應用

圖5:LSTM各個門控結構

應用于NER中的biLSTM-CRF模型主要由Embedding層(主要有詞向量,字向量以及一些額外特征),雙向LSTM層,以及最後的CRF層構成。實驗結果表明biLSTM-CRF已經達到或者超過了基于豐富特征的CRF模型,成為目前基于深度學習的NER方法中的最主流模型。在特征方面,該模型繼承了深度學習方法的優勢,無需特征工程,使用詞向量以及字元向量就可以達到很好的效果,如果有高品質的詞典特征,能夠進一步獲得提高。

BiLSTM介紹及中文命名實體識别應用

參考文章

https://my.oschina.net/datagrand/blog/2251431

 https://www.jiqizhixin.com/articles/2018-10-24-13

繼續閱讀