上周推薦了一篇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的深度學習方法,作者把整體架構劃分為三個等級:
分布式文本表示分布式文本表示,說白了就是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 is abundant, training models with RNNs from scratch and fine-tuning contextualized language models could be considered. If data is scarce, adopting transfer strategies might 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 models with domain-specific data is often an effective way.
可惜的是作者這裡只考慮了準招效果,而沒有考慮參數量、複雜度、內存等其他因素,不過就準招而言,確實有借鑑意義。
深度學習在NER中的應用這章更多的是談一些使用深度學習解決NER的思路,這塊涉及自己的盲點很多,但是這些東西都很值得學習,此處先列出,後續慢慢學習。
深度多任務學習。
深度遷移學習。
深度主動學習。
深度強化學習。
深度對抗學習。
Attention機制。
NER的挑戰和未來方向看到類似的句子,說明綜述到尾聲了,總結了過去,肯定要展望未來,在挑戰上,作者提出了兩個關鍵點:
而在方向上,有如下思路可供參考:
細粒度的NER和邊界問題。NER有時候也被叫做提槽,槽位的精準在現在問題下,其實多在於對邊緣的準確劃分。
實體連結。即對NER問題有了更高級的需求,要求理解實體之間的關係,這個對知識圖譜的構建非常重要。
資源匱乏下NER的訓練。
NER的可延展性,由於NER大都依賴rnn這種遞歸式,貪婪式的模型,所以耗時普遍較長,長句子的識別時間尤其可怕,因此這個問題需要被關注。
遷移學習。說白了就是看看能不能白嫖或者是少花錢的方式完成一個ner任務。
NER下可用的深度學習工具。
評價這篇綜述其實談到了很多NER我之前沒有關注的點,幾個重點我劃一下,後續我也會持續去看:
上下遊編碼結構和tagger兩個模塊的模型拓展。
多任務、主動學習這兩塊有較大的挖掘空間。
另外我認為作者還有幾個方向沒有談到但是大家應該關注:
由於微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:
(1)點擊頁面最上方"AINLP",進入公眾號主頁。
(2)點擊右上角的小點點,在彈出頁面點擊「設為星標」,就可以啦。
感謝支持,比心。
進群請添加AINLP小助手微信 AINLPer(id: ainlper),備註命名實體識別推薦閱讀
這個NLP工具,玩得根本停不下來
徵稿啟示| 200元稿費+5000DBC(價值20個小時GPU算力)
完結撒花!李宏毅老師深度學習與人類語言處理課程視頻及課件(附下載)
從數據到模型,你可能需要1篇詳實的pytorch踩坑指南
如何讓Bert在finetune小數據集時更「穩」一點
模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法
文本自動摘要任務的「不完全」心得總結番外篇——submodular函數優化
Node2Vec 論文+代碼筆記
模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結
中文命名實體識別工具(NER)哪家強?
學自然語言處理,其實更應該學好英語
史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用
關於AINLP
AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。
閱讀至此了,分享、點讚、在看三選一吧🙏