當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS

當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS

命名實體識別 (NER) 是語義理解中的一個重要課題。NER就像天然語言領域的「目標檢測」。
找到文檔D 中的名詞實體還不夠,許多狀況下,咱們須要瞭解這個名詞是表示地點(location),人名(Person)仍是組織(Organization),等等:
當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS
上圖是NER輸出一個句子後標記名詞的示例。
在神經網絡出現以前,幾乎全部NER半監督或者非監督的方法,都要依靠手工的單詞特徵或者外部的監督庫(如gazetteer)達到最好的識別效果。html

手工的單詞特徵能夠方便提煉出相似前綴,後綴,詞根,如:
-ance, —ancy 表示:行爲,性質,狀態/ distance距離,currency流通
-ant,ent 表示:人,…的/ assistant助手,excellent優秀的
–ary 表示:地點,人,事物/ library圖書館,military軍事
能夠知道-ant結尾的單詞極可能是指人,而-ary結尾更可能指的地點。git

而外部的監督庫(如gazetteer),把一些同種類的實體聚合在一塊兒作成一個庫,能夠幫助識別同一個意思的實體,如:
auntie其實和aunt一個意思:姨媽
Mikey實際上是Mike的暱稱,都是人名github

今天所講的這篇卡內基梅隆大學的論文,用RNN神經網絡的相關技術避開使用這些人工特徵,並能達到與之至關的準確率。算法

爲了獲取上述的前綴,後綴,詞根等相關特徵,文章對每一個單詞的每一個字母訓練一個雙向LSTM,把雙向LSTM的輸出做爲單詞的特殊embedding,和預訓練eStack LSTM的算法識別命名實體,感興趣能夠繼續閱讀原論文。mbedding合成最後的詞嵌入(final embedding):
當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS網絡

雙向LSTM能夠捕捉字母拼寫的一些規律(前綴,後綴,詞根), 預訓練的embedding能夠捕捉全局上單詞間的類似度。二者結合咱們獲得了更好的詞嵌入(embedding)。架構

有詞嵌入表徵是遠遠不夠的,咱們要有效利用這些embedding處理NER問題,一個NER預測問題和通常的機器學習差異不大:給出一個訓練集(已經標註過命名實體的文檔集),用測試集(未標註命名實體的文檔)上的NER識別率來評價模型。app

論文中爲了提升上述的命名實體識別率,結合了兩方面評估:機器學習

  1. 對於詞性tag的下一個單詞可能詞性tag的建模(如「吃」這個動詞後大機率是相似「食物」(「飯」,「麪條」等)的實體,「吃」後面極少跟「地點」的實體)ide

  2. 對於一個單詞(拋去詞性),同時結合上下文單詞,這個單詞最可能的命名實體。
    上述的第2點能夠用雙向LSTM建模(輸入是咱們以前提到的單詞embedding),第1點能夠用條件隨機場(CRF)建模(與馬爾科夫鏈類似)。兩點結合後的模型架構以下:
    當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS
    其中最底層的(word embedding)就是咱們前面提到的單詞embedding。

中間層(Bi-LSTM)l 表明單詞左側的上下文特徵, r 表明單詞右側的上下文特徵,c 表明了左右兩側的合成。函數

最高層(CRF)把單詞tag之間的關係建模,提升NER準確率。
落實到損失函數,文中也用了上述兩方面的因素(tag到tag的轉移率,單詞是某個tag的機率):
當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS
其中,X=(x1, x2, . . . , xn) , 表明一個序列的句子 ,
y = (y1, y2, . . . , yn), 表明對上述序列的tag預測

s(X,y)即對本次預測的打分(score)

第一部分矩陣 Ayi,yi+1 表明tag yi 轉移到後一個tag yi+1的可能性的打分

第二部分矩陣 Pi,yi 是第i個單詞預測爲tag yi 的可能性。

最後看一下實驗數據:
當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS
如預想的,LSTM-CRF若是沒有使用單字符的embedding提取,結果會稍遜色一些。
另外,出來LSTM-CRF,文章還使用了層疊Stack LSTM的算法識別命名實體,感興趣能夠繼續閱讀原論文。

參考文獻:

  1. Neural Architectures for Named Entity Recognition
  2. http://eli5.readthedocs.io/en/latest/tutorials/sklearn_crfsuite.html
  3. https://github.com/glample/tagger
  4. https://github.com/clab/stack-lstm-ner
  5. http://www.datacommunitydc.org/blog/2013/04/a-survey-of-stochastic-and-gazetteer-based-approaches-for-named-entity-recognition-part-2

當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS

推薦閱讀:

在NLP中深度學習模型什麼時候須要樹形結構?
【深度學習實戰】pytorch中如何處理RNN輸入變長序列padding
【機器學習基本理論】詳解最大後驗機率估計(MAP)的理解

歡迎關注公衆號學習交流~

當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LS

相關文章
相關標籤/搜索