(NER經典之作BiLSTM-CRF解讀)Bidirectional LSTM-CRF Models for Sequence Tagging
Abstract
論文以LSTM為基礎,對比LSTM、BiLSTM、CRF、LSTM-CRF和BiLSTM-CRF一系列序列標註模型,實驗對比表明BiLSTM-CRF模型在序列標註任務中的極大優勢(該模型在後續幾年成為NER任務的標杆,幾乎知道NER任務的人都有聽說過BiLSTM-CRF,足以見其影響力)。模型名稱(BiLSTM-CRF)直觀顯示了模型結構與優勢,其中BiLSTM通過前向/後向傳遞的方式學習序列中某字元依賴的過去和將來的資訊,CRF則考慮到標註序列的合理性。這些優勢使得論文模型在當時取得SOTA結果。
Introduction
序列標註是NLP經典任務,包括詞性標註POS、語義組塊Chunking、命名實體識別NER等。傳統的機器學習方法包括隱馬爾科夫模型HMM、最大熵馬爾可夫模型MEMMs和條件隨機場CRF,神經網路方法CNN、RNN也可用來解決該問題。論文設計一系列LSTM模型對比實驗,包括BiLSTM、LSTM-CRF和BiLSTM-CRF。其中經典的BiLSTM-CRF方法就是在該論文首次提出。
Models
論文該部分以NER任務為例,分5小節分別介紹LSTM、BiLSTM、CRF、LSTM-CRF和BiLSTM-CRF序列標註模型,讀者用不著被這麼多模型嚇到,理解該部分的核心在於LSTM和CRF(如果你了解LSTM和CRF,直接看下面五張圖即可了解該章節內容)。對LSTM和CRF不熟悉的推薦學習命名實體識別(NER):BiLSTM-CRF原理介紹+Pytorch_Tutorial程式碼解析,學習完後估計對論文該章節的內容不會再有疑問。
Training procedure
以BiLSTM-CRF為例,訓練過程如下圖所示,其餘模型與此類似。這一部分的介紹比較簡陋,不過比起現在大多數論文理論知識、模型、實驗分析的「三板斧」套路,僅在實驗部分介紹模型參數。要想真正理解是如何操作/實踐的,還是要看程式碼,該論文並未提供程式碼,讀者可自行搜索「BiLSTM-CRF NER」相關程式碼閱讀,幾乎大同小異。
Experiments
Data
- Penn TreeBank (PTB) –> POS
- CoNLL 2000 –> chunking
- CoNLL 2003 –> NER
Features
特徵工程有利於模型效果改善。儘管特徵工程需要人工定義,當前DL研究趨勢是儘可能的減少人工干預,實現智慧全自動化,但在工業應用或是數據競賽中,特徵工程對於應用模型落地和比賽結果提升仍然至關重要,因此在此處對論文中提到的文本處理特徵工程進行介紹,相信了解這些內容對於NLP研究會有一定幫助。
論文將文本特徵分為拼寫特徵(見下圖)和上下文特徵(主要指N元模型n-gram)。
Features connection tricks:對於如何合理使用特徵工程得到的特徵(拼寫、上下文)和神經網路得到的嵌入特徵(char-/word embedding),直接的想法是將其進行拼接,然後輸入模型,當然多數模型就是這樣做的。但論文作者提出,可以使用下圖所示的方法,即僅僅將神經網路的嵌入特徵傳遞給BiLSTM,而特徵工程的特徵無需BiLSTM直接傳遞給CRF,作者表示,這樣做可以加快訓練速度,同時並不會影響實驗結果。當然要注意,拼寫/上下文特徵與BiLSTM的輸出存在較大的維度差異,需要使用全連接方式進行適當處理。
Results
- POS:BiLSTM-CRF > LSTM-CRF > CRF\approx BiLSTM > LSTM
- Chunking:BiLSTM-CRF > LSTM-CRF > BiLSTM > CRF > LSTM
- NER:BiLSTM-CRF > LSTM-CRF > BiLSTM > CRF > LSTM
實驗驗證得到的其他一些經驗:
- 相比之前的方法Conv-CRF,BiLSTM-CRF具有更小的詞向量依賴性。BiLSTM-CRF中,使用Senna詞向量較隨機初始化詞向量在POS/Chunking/NER任務分別提升0.12%/0.33%/4.57%,而Conv-CRF則分體提升0.92%/3.99%/7.20%。(同時可以得到,對NER任務,使用預訓練的詞向量可有效改善模型性能)
- CRF的表現嚴重依賴特徵工程的好壞。
- 在訓練標註任務上,BiLSTM-CRF較過去的方法更具優勢。