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

dicksonjyl560101發表於2019-09-26

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

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

作者 | 小Dream哥

編輯 | 小Dream哥

1 LSTM+CRF

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

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

「NLP」 NLP中應用最廣泛的特徵抽取模型-LSTM

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

如上圖所示,是用雙向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。從字面上就很好理解,就是在標準的卷積裡注入空洞,以此來增加 感受野

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

Convolution with 3*3 kernel

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

Dilated Convolution with 3*3 kernel

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

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

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

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

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

如上圖所示,模型是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任務都是採用這樣的一套框架。本文詳細的介紹了上述兩種方法的模型結構和本質,具體的實現和程式碼, 包括資料預處理,模型搭建,訓練,部署等在我們的知識星球裡都有詳細的介紹,感興趣的同學可以掃描下面的二維碼加入。





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2658423/,如需轉載,請註明出處,否則將追究法律責任。

相關文章