【NLP-NER】命名實體識別中最常用的兩種深度學習模型

2021-01-07 騰訊網

命名實體識別(Named Entity Recognition,NER)是NLP中一項非常基礎的任務。NER是信息提取、問答系統、句法分析、機器翻譯等眾多NLP任務的重要基礎工具。

上一期我們介紹了NER的基本概念,大致介紹了NER常用的模型。本期我們詳細介紹目前NER最常用的兩種深度學習模型,LSTM+CRF和Dilated-CNN。

作者&編輯 | 小Dream哥

1 LSTM+CRF

在NLP領域,有那麼一段時間,LSTM是「最紅」的特徵抽取器,自然,NER中也開始引入LSTM來進行特徵抽取。

LSTM我就不再做過多的介紹,其原理在我的一篇文章中有詳細的介紹,讀者可以點擊如下的連結回顧:

如上圖所示,是用雙向LSTM+CRF進行命名實體識別的模型結構圖。

我們來好好分析一下這個模型,看數據的流轉和各層的作用。

1.embedding layer 將中文轉化為字向量,獲得輸入embedding

2.將embedding輸入到BiLSTM層,進行特徵提取(編碼),得到序列的特徵表徵,logits。

3.logits需要解碼,得到標註序列。將其輸入到解碼CRF層,獲得每個字的序列。

總結一下,該模型的重點其實有兩個:

1. 引入雙向LSTM層作為特徵提取工具,LSTM擁有較強的長序列特徵提取能力,是個不錯的選擇。雙向LSTM,在提取某個時刻特徵時,能夠利用該時刻之後的序列的信息,無疑能夠提高模型的特徵提取能力。

2. 引入CRF作為解碼工具。中文輸入經過雙向LSTM層的編碼之後,需要能夠利用編碼到的豐富的信息,將其轉化成NER標註序列。通過觀察序列,預測隱藏狀態序列,CRF無疑是首選。

2 ID-CNN+CRF

膨脹卷積可能有很多朋友還不是很熟悉,這裡先做一個簡單的介紹。

Dilated/Atrous Convolution(中文叫做空洞卷積或者膨脹卷積))或者是Convolution with holes。從字面上就很好理解,就是在標準的卷積裡注入空洞,以此來增加感受野

Convolution with 3*3 kernel

Dilated Convolution with 3*3 kernel

如上圖所示,相比原來的正常卷積,膨脹卷積多了一個超參數,稱之為膨脹率(dilation rate),指的是kernel的間隔數量(例如,正常的卷積是膨脹率是1)。

「膨脹」的好處是,不做池化,不損失信息的情況下,增大了感受野,讓每個卷積輸出都包含較大範圍的信息。

《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》一文中提出在NER任務中,引入膨脹卷積,一方面可以引入CNN並行計算的優勢,提高訓練和預測時的速度;另一方面,可以減輕CNN在長序列輸入上特徵提取能力弱的劣勢。

具體使用時,dilated width會隨著層數的增加而指數增加。這樣隨著層數的增加,參數數量是線性增加的,而感受野卻是指數增加的,這樣就可以很快覆蓋到全部的輸入數據。

如上圖所示,模型是4個大的相同結構的Dilated CNN block拼在一起,每個block裡面是dilation width為1, 1, 2的三層Dilated卷積層,所以叫做 Iterated Dilated CNN。

IDCNN對輸入句子的每一個字生成一個logits,這裡就和BiLSTM模型輸出logits之後完全一樣,再放入CRF Layer解碼出標註結果。

總結

LSTM+CRF和ID-CNN+CRF兩種模型其實都是同一個架構:深度學習特徵提取+CRF解碼。現在絕大部分的NER任務都是採用這樣的一套框架。本文詳細的介紹了上述兩種方法的模型結構和本質,具體的實現和代碼,包括數據預處理,模型搭建,訓練,部署等在我們的知識星球裡都有詳細的介紹,感興趣的同學可以掃描下面的二維碼加入。

讀者們可以留言,或者加入我們的NLP群進行討論。感興趣的同學可以微信搜索jen104,備註"加入有三AI NLP群"

下期預告:命名實體識別詳解之三

知識星球推薦

掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。

知識星球主要有以下內容:

(1) 聊天機器人。考慮到聊天機器人是一個非常複雜的NLP應用場景,幾乎涵蓋了所有的NLP任務及應用。所以小Dream哥計劃以聊天機器人作為切入點,通過介紹聊天機器人的原理和實踐,逐步系統的更新到大部分NLP的知識,會包括語義匹配,文本分類,意圖識別,語義匹配命名實體識別、對話管理以及分詞等。

(2) 知識圖譜。知識圖譜對於NLP各項任務效果好壞的重要性,就好比基礎知識對於一個學生成績好壞的重要性。他是NLP最重要的基礎設施,目前各大公司都在著力打造知識圖譜,作為一個NLP工程師,必須要熟悉和了解他。

(3) NLP預訓練模型。基於海量數據,進行超大規模網絡的無監督預訓練。具體的任務再通過少量的樣本進行Fine-Tune。這樣模式是目前NLP領域最火熱的模式,很有可能引領NLP進入一個全新發展高度。你怎麼不深入的了解?

轉載文章請後臺聯繫

侵權必究

相關焦點

  • NLP 詳解教程:使用 Spacy 和 Python 實現命名實體識別 (NER)
    本文的目的是介紹NLP中的一項關鍵任務,即命名實體識別(NER)。目的是能夠提取文本語料庫中的公共實體。例如,在給定的文本(例如電子郵件或文檔)中檢測人員,地點,藥品,日期等。在這篇hand-on文章中,我們將使用Spacy庫訓練基於神經網絡的深度學習模型,以從文本數據中檢測實體。我們還將展示的一件事是如何標記數據,並且在許多文章中經常被忽略。我們還將使用更強力的模式匹配將深度學習進行比較。
  • 命名實體識別的兩種方法
    ——命名實體識別的兩種方法。總結 一 、什麼是命名實體識別?命名實體識別(Named Entity Recognition,簡稱NER),又稱作「專名識別」,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。
  • NLP入門(四)命名實體識別(NER)
    本文將會簡單介紹自然語言處理(NLP)中的命名實體識別(NER)。  命名實體識別(Named Entity Recognition,簡稱NER)是信息提取、問答系統、句法分析、機器翻譯等應用領域的重要基礎工具,在自然語言處理技術走向實用化的過程中佔有重要地位。
  • 初學者|一文讀懂命名實體識別
    命名實體識別(Named Entity Recognition,簡稱NER),又稱作「專名識別」,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。簡單的講,就是識別自然文本中的實體指稱的邊界和類別。
  • 【NLP基礎】信息抽取(Information Extraction:NER(命名實體識別),關係抽取)
    抽取文本數據中的名詞短語、人名、地名等都是文本信息抽取,當然,文本信息抽取技術所抽取的信息可以是各種類型的信息。本文介紹從文本中提取有限種類語義內容的技術。此信息提取過程(IE)將嵌入文本中的非結構化信息轉換為結構化數據,例如用於填充關係資料庫以支持進一步處理。命名實體識別(NER)的任務是找到文本中提到的每個命名實體,並標記其類型。
  • 【NLP】流水的NLP鐵打的NER:命名實體識別實踐與探索
    就這樣還是先放結論命名實體識別雖然是一個歷史悠久的老任務了,但是自從2015年有人使用了BI-LSTM-CRF模型之後,這個模型和這個任務簡直是郎才女貌,天造地設,輪不到任何妖怪來反對。直到後來出現了BERT。在這裡放兩個問題:2015-2019年,BERT出現之前4年的時間,命名實體識別就只有 BI-LSTM-CRF 了嗎?
  • 流水的NLP鐵打的NER:命名實體識別實踐與探索
    就這樣還是先放結論命名實體識別雖然是一個歷史悠久的老任務了,但是自從2015年有人使用了BI-LSTM-CRF模型之後,這個模型和這個任務簡直是郎才女貌,天造地設,輪不到任何妖怪來反對。直到後來出現了BERT。在這裡放兩個問題:2015-2019年,BERT出現之前4年的時間,命名實體識別就只有 BI-LSTM-CRF 了嗎?
  • 中文命名實體識別工具(NER)哪家強?
    " 等,具體可參考下述文章:史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用既然中文分詞、詞性標註已經有了,那下一步很自然想到的是命名實體識別(NER,Named-entity recognition)工具了,不過根據我目前了解到的情況,開源的中文命名實體工具並不多,這裡主要指的是一些成熟的自然語言處理開源工具,不是github上一些學習性質的代碼
  • 超詳綜述 | 基於深度學習的命名實體識別
    一句話總結該任務:命名實體識別(Named Entity Recognition, NER)是指從自由文本中識別出屬於預定義類別的文本片段。NER 任務最早由第六屆語義理解會議(Message Understanding Conference)提出,當時僅定義一些通用實體類別,如地點、機構、人物等。目前命名實體識別任務已經深入各種垂直領域,如醫療、金融等。
  • 【NLP】一文了解命名實體識別
    (1) 匱乏資源命名實體識別    命名實體識別通常需要大規模的標註數據集,例如標記句子中的每個單詞,這樣才能很好地訓練模型。然而這種方法很難應用到標註數據少的領域,如生物、醫學等領域。這是因為資源不足的情況下,模型無法充分學習隱藏的特徵表示,傳統的監督學習方法的性能會大大降低。    近來,越來越多的方法被提出用於解決低資源命名實體識別。
  • NLP入門從入門到實戰 實體命名識別 +中文預處理之繁簡體轉換及獲取拼音
    該庫提供了大多數標準功能(標記化,PoS標記,解析,命名實體識別…),並且構建快速。spaCy也很好地與所有主要的深度學習框架接口,並預裝了一些非常好的和有用的語言模型。下面所有的例子都是用Jupter運行過後的。
  • 「NLP實戰系列」Tensorflow命名實體識別實戰
    實戰是學習一門技術最好的方式,也是深入了解一門技術唯一的方式。因此,NLP專欄計劃推出一個實戰專欄,讓有興趣的同學在看文章之餘也可以自己動手試一試。本篇介紹自然語言處理中一種非常重要的任務:命名實體識別。
  • 用Keras+LSTM+CRF的實踐命名實體識別NER
    文本分詞、詞性標註和命名實體識別都是自然語言處理領域裡面很基礎的任務,他們的精度決定了下遊任務的精度,其實在這之前我並沒有真正意義上接觸過命名實體識別這項工作,雖然說讀研期間斷斷續續也參與了這樣的項目,但是畢業之後始終覺得一知半解的感覺,最近想重新撿起來,以實踐為學習的主要手段來比較系統地對命名實體識別這類任務進行理解
  • 一文讀懂命名實體識別
    命名實體識別(Named Entity Recognition,簡稱NER),又稱作「專名識別」,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。簡單的講,就是識別自然文本中的實體指稱的邊界和類別。
  • 今日Paper|梯度剪切;命名實體識別;自然語言處理;免強度函數學習等
    目錄梯度剪切可以加速梯度下降完成命名實體識別的雙向LSTM+CRF結構完成命名實體識別的神經網絡結構自然語言處理(幾乎)從頭開始from=leiphonecolumn_paperreview0212核心問題:這篇論文是完成命名實體識別的工作,這是一系列使用RNN結構並結合CRF層進行NER的工作的文章之一。創新點:本論文的創新點是使用了雙向LSTM+CRF作為網絡模型,這種創新的意義都是結構上的創新,很多時候模型的效果就是結構上的創新。
  • NLP入門篇:命名實體識別
    命名實體識別命名實體識別(Named Entity Recognition,NER)是 NLP 中一項非常基礎的任務。NER 是信息提取、問答系統、句法分析、機器翻譯等眾多 NLP 任務的重要基礎工具。命名實體識別是什麼要了解 NER ,首先要先明白,什麼是實體。
  • 當RNN神經網絡遇上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LSTM, 字母嵌入
    有詞嵌入表徵是遠遠不夠的,我們要有效利用這些embedding處理NER問題,一個NER預測問題和一般的機器學習差別不大:給出一個訓練集(已經標註過命名實體的文檔集),用測試集(未標註命名實體的文檔)上的NER識別率來評價模型。論文中為了提高上述的命名實體識別率,結合了兩方面評估:1.
  • 【NER】NLP-入門實體命名識別(NER)+Bilstm-CRF模型原理Pytorch代碼詳解——最全攻略
    所以我把學習的記錄放出來給大家作參考,其中匯聚了很多其他博主的知識,在本文中也放出了他們的原鏈。()中就有這個綁定的parameter,所以在參數優化的時候可以進行優化的),所以經過類型轉換這個self.v變成了模型的一部分,成為了模型中根據訓練可以改動的參數了。
  • NLP實戰-中文命名實體識別
    (包括HMM,CRF,Bi-LSTM,Bi-LSTM+CRF)來解決中文命名實體識別問題,文章不會涉及過多的數學推導,但會從直觀上簡單解釋模型的原理,主要的內容會集中在代碼部分。本文的目錄結構如下:概覽任務描述首先,我們明確一下命名實體識別的概念:命名實體識別(英語:Named Entity Recognition),簡稱NER,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等,以及時間、數量、貨幣、比例數值等文字。
  • 中文命名實體識別有困難?在Amazon SageMaker上看如何基於TensorFlow來解決~
    我們在與客戶的交流中發現,現有的 NER 工具(比如 Jiagu)對於特定領域的中文命名實體識別效果難以滿足業務需求,而且這些工具很難使用自定義數據集訓練。因此客戶迫切想使用業內最先進的算法在行業內數據集上進行訓練,以改進現有 NER 工具的不足。本文將介紹如何使用 Amazon SageMaker 運行基於 TensorFlow 的中文命名實體識別。