上周推薦了一篇NER的論文,這周算是把這篇綜述看完了,感覺自己的收獲挺大的(老是感覺自己看過寫過,但是又沒找到),給大家介紹一下。
A Survey on Deep Learning for Named Entity Recognition.
總評
這篇綜述讓我感受到比較完整的NER世界觀是啥樣的,問題定義、問題拆解、常用方法及其評價、模型評估、拓展等,由于是綜述,全面性滿滿,具體的方法可以在參考文獻里面找,212篇文獻可謂是誠意滿滿。
文章關鍵點筆記
1 introduction
命名實體識別的中的核心,命名實體(Named Entity)概念的出現其實并不久遠,1996年。時至今日,處理NER問題的主要有四種:
基于規則的方法。
無監督學習方法。
基于特征的機器學習方法。
深度學習方法。
我們其實可以看到,得益于機器學習方法,NER問題被更好的解決。
2 background
本章主要是討論了NER的一些背景問題,NER的問題定義(尤其是NE的定義)、數據集和工具、模型評估、傳統方法之類的。
NER問題定義
首先是問題定義,主要是命名實體的定義,我直接用文章的原句吧:
A named entity is a word or a phrase that clearly identies one item from a set of other items that have similar attributes.
那么NER,其實就是去識別這個命名實體。
NER的模型評估
作者把評估方法分為了兩塊,精準匹配和軟匹配(我翻譯的,英文是relaxed-match)。
精確匹配有兩個層面,一個是每個位點的預測準確情況(BIO或者BIEMO的情況),這個比較常見。
而軟匹配上,其實由于他的復雜性和基于問題的特異性,沒有被廣泛使用。
傳統NER方法
所謂的“傳統”方法,作者認為是除了DL之外的方法都算吧。
基于規則的方法會依賴問題的背景,其實也有一些輸出,作者角度看,如果資源足夠時,其實就能夠有很好的效果(這個和我的實踐來看是一致的),高準確低召回低可遷移性是它的特點。
無監督方法
無監督方法也有一些,說白了就是聚類,利用的是關鍵詞匯、種子詞匯去進行擴增,從而完成無監督學習的任務,需要根據問題進行策略的調整,可遷移性較低。
基于特征的機器學習方法
常用的機器學習方法其實就是那些,隱馬爾科夫、決策樹、最大熵、支持向量機和條件隨機場。
至于特征上,也給了大家一些提示,詞性、句子成分、大小寫等,另外還可以引入一些外部的知識信息,例如維基百科的地點詞等。
3 NER中的深度學習技術
我們都知道,在nlp領域下,論準招等各種效果,深度學習具有很高的地位,因此作者也花了非常大的筆墨來討論深度學習,首先就談了深度學習的特點:
非線性處理。
自動化信息抽取,不用花費精力尋找和維護特征。
直接端到端訓練。
對于解決NER的深度學習方法,作者把整體架構劃分為三個等級:
分布式文本表示
上下文編碼
tag解碼
分布式文本表示
分布式文本表示,說白了就是word2vector、glove之類的預訓練方法。具體定義不贅述了哈哈哈。
word級別,其實就比較常見word2vector、glove、fasttet、senna等,當然也有一些簡單預訓練語言模型,例如結合CNN之類的。
而char級別(中文就是字級別)對未登錄詞的識別能力很高,其構建的主要方式主要有CNN-based和RNN-based。
當然,還有一些混合方法,會加入一些外部信息(詞典信息、詞匯相似度信息),這些方法對效果提升有用,但是可遷移性下降了。另外,作者把bert的方法也歸于此處,主要原因是他在預訓練的時候使用了大量外部語料信息。
上下文編碼架構
上下文編碼是文本表示之后的操作,作者分為了4種情況,CNN、RNNs、遞歸神經網絡和transformer,另外還單獨提到了神經網絡語言模型。
CNN和RNNs的情況其實比較常規了,不做太多解釋,文章中其實更多的也是論文的解釋。
遞歸神經網絡(Recurrent Neural Networks)其實我也只是聽過,自己沒有深入地了解,后續會排期學習。簡單的用作者的話評價:
Recursive Neural Networks are non-linear adaptive mod- els that are able to learn deep structured information, by traversing a given structure in topological order.
也就是構建了一種特定的拓撲結構來表達內部的信息,這種信息大都和句子的語法結構相關。
神經語言模型是nlp里面最為基礎的內容,NLP幾次前進的里程碑都和神經語言模型的大跨步有關,word2vector、elmo、bert。
想提一個有意思的思路,他借助語言模型和NER多任務的模型來進行訓練,這種方式能讓模型學到更加針對領域的語言模型,同時也能滿足NER的需求,作者的解釋放這里:
Peters et al. [19] proposed TagLM, a language model augmented sequence tagger. This tagger considers both pre-trained word embeddings and bidirectional language model embeddings for every token in the input sequence for sequence labeling task. Figure 12 shows the architecture of LM-LSTM-CRF model [121], [122]. The language model and sequence tagging model share the same character-level layer in a multi-task learning manner. The vectors from character- level embeddings, pre-trained word embeddings, and lan- guage model representations, are concatenated and fed into the word-level LSTMs. Experimental results demonstrate that multi-task learning is an effective approach to guide the language model to learn task-specific knowledge.
transformer可以說是距離我們最近的一次里程碑跨越的代表了,一次技術的突破需要時間落到更多任務的實踐中,NER也不例外,目前在transformer應用于NER的研究上,已經有不少人進行嘗試,而且從效果來看,具有下面這些特點:
上下文和位置信息的表征。
微調方法為模型的通用性提供了保證,同時對特定問題也能進行特異性訓練。
tag解碼器
有關tag解碼器,其實就有點像機器學習方法了,上游做好特征工程,然后下游接解碼器預測每個位置的分類,常用的方法有:
MLP+softmax,簡單,但是上下文信息捕獲能力很差。
CRF,NER上比較重要的基本方法。、
RNN,訓練速度比CRF稍快,但是個人感覺效果不如CRF強。
pointer networks。RNN的一種升級版,用來提取其中的chunk,內部其實有兩個神經網絡,一個用于分詞,一個用于標記。
summary
作者花了很多的力氣去對比各個模型的效果,經過作者的總結,有如下信息:
文本表示效果對預測結果影響很大。
噪音數據對效果影響較大。
外部信息,包括預訓練語言模型,效果雖好,作者特別指出了里面的問題:
外部信息依賴計算性能和標注性能。
大部分情況不利于可遷移能力。
從效果來看transformer比lstm系列效果更好,可以成為lstm的替換方法。
rnn系列的缺點在于貪婪法,首先強烈依賴于上一步的結果,同時對速度有影響。
后續作者對任務下的方法進行總結,給出一些方法選擇的建議:
For end users, what architecture to choose is data and domain task dependent. If data isabundant, training models withRNNs from scratch and fine-tuning contextualized languagemodels could be considered. If data is scarce, adoptingtransfer strategiesmight be a better choice. For newswires domain, there are many pre-trained off-the-shelf models available. For specific domains (e.g., medical and social media),fine-tuning general-purpose contextualized language modelswith domain-specific data is often an effective way.
可惜的是作者這里只考慮了準招效果,而沒有考慮參數量、復雜度、內存等其他因素,不過就準招而言,確實有借鑒意義。
深度學習在NER中的應用
這章更多的是談一些使用深度學習解決NER的思路,這塊涉及自己的盲點很多,但是這些東西都很值得學習,此處先列出,后續慢慢學習。
深度多任務學習。
深度遷移學習。
深度主動學習。
深度強化學習。
深度對抗學習。
Attention機制。
NER的挑戰和未來方向
看到類似的句子,說明綜述到尾聲了,總結了過去,肯定要展望未來,在挑戰上,作者提出了兩個關鍵點:
數據標注問題,NER相比文本分類,其實更加需要數據,這個一直是一個老大難的問題,如何獲取更多更準的標注樣本,是一個技術活。
非正式語言環境。在非正式的語境下,其實語法結構并不是那么完整(例如微博、朋友圈、用戶query到等),這對準確性和魯棒性要求就很高了。
而在方向上,有如下思路可供參考:
細粒度的NER和邊界問題。NER有時候也被叫做提槽,槽位的精準在現在問題下,其實多在于對邊緣的準確劃分。
實體鏈接。即對NER問題有了更高級的需求,要求理解實體之間的關系,這個對知識圖譜的構建非常重要。
資源匱乏下NER的訓練。
NER的可延展性,由于NER大都依賴rnn這種遞歸式,貪婪式的模型,所以耗時普遍較長,長句子的識別時間尤其可怕,因此這個問題需要被關注。
遷移學習。說白了就是看看能不能白嫖或者是少花錢的方式完成一個ner任務。
NER下可用的深度學習工具。
評價
這篇綜述其實談到了很多NER我之前沒有關注的點,幾個重點我劃一下,后續我也會持續去看:
上下游編碼結構和tagger兩個模塊的模型拓展。
多任務、主動學習這兩塊有較大的挖掘空間。
另外我認為作者還有幾個方向沒有談到但是大家應該關注:
nlp下的數據增強問題,可以從ner角度開始拓展,主要因為ner的標注數據具有的信息,比比他簡單的文本分類問題的數據多,也比比他復雜的機器翻譯、對話系統的數據信息更結構化,因此用ner進行數據增強具有很大價值。
蒸餾。我們都知道上述模型耗時長、體積大,蒸餾是解決該問題的一個重要方法,但是相比CV領域,nlp領域的蒸餾還有很大潛力。
責任編輯:lq
-
模型
+關注
關注
1文章
3254瀏覽量
48878 -
機器學習
+關注
關注
66文章
8422瀏覽量
132714 -
深度學習
+關注
關注
73文章
5504瀏覽量
121221
原文標題:【綜述】2018年的一篇NER綜述筆記
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論