神經網路結構在命名實體識別(NER)中的應用
近年來,基於神經網路的深度學習方法在自然語言處理領域已經取得了不少進展。作為NLP領域的基礎任務—命名實體識別(Named Entity Recognition,NER)也不例外,神經網路結構在NER中也取得了不錯的效果。最近,我也閱讀學習了一系列使用神經網路結構進行NER的相關論文,在此進行一下總結,和大家一起分享學習。
1 引言
命名實體識別(Named Entity Recognition,NER)就是從一段自然語言文字中找出相關實體,並標註出其位置以及型別,如下圖。它是NLP領域中一些複雜任務(例如關係抽取,資訊檢索等)的基礎。
NER一直是NLP領域中的研究熱點,從早期基於詞典和規則的方法,到傳統機器學習的方法,到近年來基於深度學習的方法,NER研究進展的大概趨勢大致如下圖所示。
在基於機器學習的方法中,NER被當作是序列標註問題。與分類問題相比,序列標註問題中當前的預測標籤不僅與當前的輸入特徵相關,還與之前的預測標籤相關,即預測標籤序列之間是有強相互依賴關係的。例如,使用BIO標籤策略進行NER時,正確的標籤序列中標籤O後面是不會接標籤I的。
在傳統機器學習中,條件隨機場(Conditional Random Field,CRF)是NER目前的主流模型。它的目標函式不僅考慮輸入的狀態特徵函式,而且還包含了標籤轉移特徵函式。在訓練時可以使用SGD學習模型引數。在已知模型時,給輸入序列求預測輸出序列即求使目標函式最大化的最優序列,是一個動態規劃問題,可以使用維特比演算法進行解碼。
在傳統機器學習方法中,常用的特徵如下:
接下里我們重點看看如何使用神經網路結構來進行NER 。
2 NER中主流的神經網路結構
2.1 NN/CNN-CRF模型
《Natural language processing (almost) from scratch》是較早使用神經網路進行NER的代表工作之一。在這篇論文中,作者提出了視窗方法與句子方法兩種網路結構來進行NER。這兩種結構的主要區別就在於視窗方法僅使用當前預測詞的上下文視窗進行輸入,然後使用傳統的NN結構;而句子方法是以整個句子作為當前預測詞的輸入,加入了句子中相對位置特徵來區分句子中的每個詞,然後使用了一層卷積神經網路CNN結構。
在訓練階段,作者也給出了兩種目標函式:一種是詞級別的對數似然,即使用softmax來預測標籤概率,當成是一個傳統分類問題;另一種是句子級別的對數似然,其實就是考慮到CRF模型在序列標註問題中的優勢,將標籤轉移得分加入到了目標函式中。後來許多相關工作把這個思想稱為結合了一層CRF層,所以我這裡稱為NN/CNN-CRF模型。
在作者的實驗中,上述提到的NN和CNN結構效果基本一致,但是句子級別似然函式即加入CRF層在NER的效果上有明顯提高。
2.2 RNN-CRF模型
借鑑上面的CRF思路,在2015年左右出現了一系列使用RNN結構並結合CRF層進行NER的工作。代表工作主要有:
將這些工作總結起來就是一個RNN-CRF模型,模型結構如下圖:
它主要有Embedding層(主要有詞向量,字元向量以及一些額外特徵),雙向RNN層,tanh隱層以及最後的CRF層構成。它與之前NN/CNN-CRF的主要區別就是他使用的是雙向RNN代替了NN/CNN。這裡RNN常用LSTM或者GRU。實驗結果表明RNN-CRF獲得了更好的效果,已經達到或者超過了基於豐富特徵的CRF模型,成為目前基於深度學習的NER方法中的最主流模型。在特徵方面,該模型繼承了深度學習方法的優勢,無需特徵工程,使用詞向量以及字元向量就可以達到很好的效果,如果有高質量的詞典特徵,能夠進一步獲得提高。
3 最近的一些工作
最近的一年在基於神經網路結構的NER研究上,主要集中在兩個方面:一是使用流行的注意力機制來提高模型效果(Attention Mechanism),二是針對少量標註訓練資料進行的一些研究。
3.1 Attention-based
《Attending to Characters in Neural Sequence Labeling Models》該論文還是在RNN-CRF模型結構基礎上,重點改進了詞向量與字元向量的拼接。使用attention機制將原始的字元向量和詞向量拼接改進為了權重求和,使用兩層傳統神經網路隱層來學習attention的權值,這樣就使得模型可以動態地利用詞向量和字元向量資訊。實驗結果表明比原始的拼接方法效果更好。
另一篇論文《Phonologically aware neural model for named entity recognition in low resource transfer settings》,在原始BiLSTM-CRF模型上,加入了音韻特徵,並在字元向量上使用attention機制來學習關注更有效的字元,主要改進如下圖。
3.2 少量標註資料
對於深度學習方法,一般需要大量標註資料,但是在一些領域並沒有海量的標註資料。所以在基於神經網路結構方法中如何使用少量標註資料進行NER也是最近研究的重點。其中包括了遷移學習《Transfer Learning for Sequence Tagging with Hierarchical Recurrent Networks》和半監督學習。這裡我提一下最近ACL2017剛錄用的一篇論文《Semi-supervised sequence tagging with bidirectional language models》。該論文使用海量無標註語料庫訓練了一個雙向神經網路語言模型,然後使用這個訓練好的語言模型來獲取當前要標註詞的語言模型向量(LM embedding),然後將該向量作為特徵加入到原始的雙向RNN-CRF模型中。實驗結果表明,在少量標註資料上,加入這個語言模型向量能夠大幅度提高NER效果,即使在大量的標註訓練資料上,加入這個語言模型向量仍能提供原始RNN-CRF模型的效果。整體模型結構如下圖:
4 總結
最後進行一下總結,目前將神經網路與CRF模型相結合的NN/CNN/RNN-CRF模型成為了目前NER的主流模型。我認為對於CNN與RNN,並沒有誰佔據絕對的優勢,各自有相應的優點。由於RNN有天然的序列結構,所以RNN-CRF使用更為廣泛。基於神經網路結構的NER方法,繼承了深度學習方法的優點,無需大量人工特徵。只需詞向量和字元向量就能達到主流水平,加入高質量的詞典特徵能夠進一步提升效果。對於少量標註訓練集問題,遷移學習,半監督學習應該是未來研究的重點。
參考文獻
[1] Lafferty J, McCallum A, Pereira F. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. Proceedings of the eighteenth international conference on machine learning, ICML. 2001, 1: 282-289.
[2] Sutton C, McCallum A. An introduction to conditional random fields. Foundations and Trends® in Machine Learning, 2012, 4(4): 267-373.
[3] Collobert R, Weston J, Bottou L, et al. Natural language processing (almost) from scratch. Journal of Machine Learning Research, 2011, 12(Aug): 2493-2537.
[4] Lample G, Ballesteros M, Subramanian S, et al. Neural Architectures for Named Entity Recognition. Proceedings of NAACL-HLT. 2016: 260-270.
[5] Huang Z, Xu W, Yu K. Bidirectional LSTM-CRF models for sequence tagging. arXiv preprint arXiv:1508.01991, 2015.
[6] Ma X, Hovy E. End-to-end sequence labeling via bi-directional lstm-cnns-crf. arXiv preprint arXiv:1603.01354, 2016.
[7] Chiu J P C, Nichols E. Named entity recognition with bidirectional LSTM-CNNs. arXiv preprint arXiv:1511.08308, 2015.
[8] Rei M, Crichton G K O, Pyysalo S. Attending to Characters in Neural Sequence Labeling Models. arXiv preprint arXiv:1611.04361, 2016.
[9] Akash Bharadwaj, David Mortensen, Chris Dyer, Jaime G Carbonell. Phonologically aware neural model for named entity recognition in low resource transfer settings. EMNLP, pages 1462–1472, 2016.
[10] Yang Z, Salakhutdinov R, Cohen W W. Transfer Learning for Sequence Tagging with Hierarchical Recurrent Networks. ICLR, 2017.
[11] Matthew E. Peters, Waleed Ammar, Chandra Bhagavatula, Russell Power. Semi-supervised sequence tagging with bidirectional language models. ACL, 2017.
作者:陳海斌 連結:https://zhuanlan.zhihu.com/p/46864074 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
目錄
•A Survey on Recent Advances in Named Entity Recognition from Deep Learning models(2018 COLING)
•A FOFE-based Local Detection Approach for Named Entity Recognition and Mention Detection(2017 ACL)
•Attending to Characters in Neural Sequence Labeling Models(2016 COLING)
•Neural Architectures for Fine-grained Entity Type Classification (2017 ACL)
•Improving Neural Fine-Grained Entity Typing with Knowledge Attention(2018 AAAI)
•Chinese NER Using Lattice LSTM(2018 ACL)
•Semi-supervised sequence tagging with bidirectional language models(2017 ACL)
•Deep Active Learning for Named Entity Recognition(2018 ICLR)
•GAN…(2018 AAAI 2018 ACL)
1.A Survey on Recent Advances in Named Entity Recognition from Deep Learning models(2018COLING)
這篇文章是今年的綜述,表中資料為經典資料COLING2003的F1值。以EN為例,第一部分為CRF+特徵工程,在各種特徵工程懟到了90左右,二三部分分別為只以詞和只以字元做為嵌入向量,F1值大概為85。第四部分為詞向量和字元向量進行拼接後效果有了很大的提升。最後為加入CNN等模型進一步提取前後綴特徵。
2.A FOFE-based Local Detection Approach for Named Entity Recognition and Mention Detection(2017ACL)
1.FOFE編碼方法:對於所有長度<n的序列進行編碼
α為從左到右編碼的遺忘因子,et為one-hot向量,zt為該部分編碼,維度為整個詞典大小
由原論文證明該編碼是唯一的且不會損失資訊
例子:ABCBC編碼為 [α4,α+α3,1+α2] 過程:A [1,0,0] B[0,1,0] C[0,0,1]。 從左到右編碼:[1,0,0] [α,1,0] [α2,α,1] [α3,α2+1,α] [α4,α3+α,1+α2]
總結:從左到右帶有遺忘因子的單向解碼
2.類似CBOW用2個矩陣對映到低維向量
3.低維向量維度確定,通過3層神經網路softmax輸出分類
訓練過程對模型的補充:
1.加入字元級特徵:把已知實體的逐個字元進行雙向FOFE編碼,用矩陣對映到低維,加入神經網路(應該是隻有訓練時才用到)
2.softmax輸出分類為正確的標籤和NONE(忽略部分匹配)
3.若不想出現實體巢狀或重疊,可直接選擇出現分數更高或長度更長的,也可保留巢狀特徵,這在序列標註模型是難以做到的(優點1)
4.保留大小寫...下采樣平衡實體和非實體數量…
對模型的解釋和其他優點
1.類似人類尋找實體的過程,關注NER整體和周圍上下文特徵,實體內部的關聯相對較少,實體和實體間序列上的依賴也相對較少
2.無特徵工程,未完全標註的訓練集也可以(序列標註未完全標註的話效果會很差)
3.訓練使用3層神經網路簡單快速
效果:接近state of art
gaz為地名索引、cap為大小寫特徵、pos序列標註特徵
未來工作:句法分析等其他層面的應用
總結:暴力窮舉句子的所有視窗、編碼、對映、softmax 輸出的軟匹配(沒有用到上下文的“硬”輸出資訊)
只有視窗居然做到了比較好的效果,這與傳統序列標註的逐個詞輸出思路完全不同
並且跳過了分詞,中文序列標註問題也受分詞很大的影響
3.Attending to Characters in Neural Sequence Labeling Models(2016COLING)
這篇相對比較簡單,查字元和詞向量拼接時注意到的
模型上半部分:經典模型
作者的解釋是lstm隱層輸出後再進行d層對映的效果更好,可以捕捉到“更高層”特徵且壓縮維度
embedding部分
h1和ht進行拼接作為字元向量,與詞向量進行拼接/attention
Attention部分:
這裡的attention為經典attention模型的第三種公式,x和m之間是沒有互動的,添加了三個W矩陣而已,互動放在了損失函式。E為softmax輸出的交叉熵。
對於out-of-vocabulary的詞來說,通過cos值使得字元向量和詞向量更加接近。作者在這裡解釋是對於訓練語料未出現的詞,詞向量的結果還是值得字元向量去接近的,反之則效果不佳
作者的其他解釋:
1.優點在於處理OOV詞時可以平衡詞向量和字元向量的權重,也可以提取部分前後綴特徵
2.引數量少了,相對於concat,attention部分的z維度更小
4.Neural Architectures for Fine-grained Entity Type Classification (2017ACL)
背景:對文字句子中的特定實體(實體已知種類未知)給出基於上下文文字資訊的精細的分類資訊
關注點:實體特徵提取
和CRF的特徵工程差不多
合併入模型的方式:拼接進去(vf)
特徵調整方式:
重新編碼、剪枝、某些特徵重新分類
最後編碼出只包含0、1的vf向量
實體向量:特徵提取拼接詞向量
Attention:兩邊的全域性selfattention
這是本文提到的第一種人工特徵加入方式:單獨訓練其他特徵,拼接入模型
5.Improving Neural Fine-Grained Entity Typing with Knowledge Attention(2018 AAAI)
加入方式二:知識庫、知識圖譜引
6.Chinese NER Using Lattice LSTM(2018ACL)
改進點:避免分詞按字元輸入,用預訓練實體庫(建立字索引)顯性地利用詞和詞序資訊,通過門控單元從詞典中自動找到可能的詞
以“南京市”綠色LSTM為例:b為開始位置,e為結束位置
這裡和傳統LSTM相同,只是砍掉了輸出層
每個都是長度為3的LSTM,南、南京市的字典索引、兩個字長度後的市字,保留的是記憶資訊(南+南京市)
對於市字的隱層單元:原本的雙向LSTM輸入+所有索引詞的LSTM隱層輸入
效果:部分語料state of art
疑問:引入的實體庫資訊只是訓練時後還要存下來測試用啊...每個語料都有自己做一個字典?
第三個特徵引入方式:建立詞字典 以及..再次跳過了分詞
7.Semi-supervised sequence tagging with bidirectional language models(2017ACL)
背景:通用的半監督方法,通過雙向語言模型從未標記文字中學習詞嵌入新增到NLP系統,並將其應用於序列標記任務。語料庫再利用/小語料集
也有dense層,只關注右側:
單項編碼:
即計算序列的出現的概率:從句首和句尾兩個方向預測序列下一個詞是什麼,丟進LSTM,將語言模型最後一層softmax去掉(實驗表明),得到LM embedding。
雙層LM是獨立的 和左方LSTM第一層隱層一起拼接
或
未來工作:attention
對比實驗:
LM用什麼模型影響還挺大(雙向)
若只有LM層,F1值為88,做為bilstm+crf的輔助
對領域特定的預訓練是不必要的
LM層資訊的Concat在哪兒
對比:
word2vec 一定視窗內的上下文語義資訊
LM embedding 序列上下文資訊(類似馬爾科夫鏈)
結果:state of art
8.Deep Active Learning for Named Entity Recognition(2018ICLR)
主動學習:通過“選擇策略”主動從未標註的樣本集中挑選部分(1個或N個)樣本讓相關領域的專家進行標註;然後將標註過的樣本增加到訓練資料集給“學習模組”進行訓練;當“學習模組”滿足終止條件時即可結束程式,否則不斷重複上述步驟獲得更多的標註樣本進行訓練。
開始:1%初始資料集
結束:單詞庫20000個單詞
效果:25%的訓練集即可接近state of art
體現在取樣方法:
MNLP:由句子編碼(長度歸一化)尋找最難(資訊量最大)分類類別進行引數更新
BALD:inference 時的dropout 等價於來計算模型的不確定性的。每次在M種結果中取和現模型最不一致的。(我自己也不是很明白,整理下其他部落格的解釋)
9.類似“GAN”對抗
使用對抗網路減少眾包標記的不良影響/針對專家集有限的語料
詞向量、字元向量加入噪聲資訊(特別是小語料)
出處為知乎問題
總結:
LSTM+CRF依舊是主流
1.attention:哪裡都有(這裡沒看到那麼多)
2.特徵引入:難以學習的特徵的補充
3.主動學習/半監督學習:小語料、訓練集不同利用方式
4.對抗方法的引入
(5.遷移學習/聯合學習..:多工、引數共享..)