命名實體識別【NeuroNER】

命名實體識別(Named Entity Recognition, NER)是NLP領域一個非常非常重要的方向,比如人名舟茶、地名通用性的實體識別柿冲,還有像車型名茬高、車款名這些垂直領域的實體,在這借著實體識別的案例整理下相關的模型以及如何結合這些模型與深度神經網絡實現(xiàn)效果更好的NER假抄。

相關知識梳理(HMM, MEMM, CRF)

NER怎栽、分詞都可以看作是序列的標注問題,而這一類問題比較傳統(tǒng)的方法是以以馬爾科夫模型(HMM)宿饱、條件隨機場(CRF)為代表的概率圖模型熏瞄,還有最大熵隱馬爾可夫模型(MEMM),這三者在之前都取得了非常不錯的結果谬以,近幾年隨著深度學習的興起愧驱,深度神經網絡也加入到NLP的任務中桑滩,跟CV一樣失球,網絡層起到的作用依然是特征提取的過程,深度神經網絡+概率圖模型成為處理NLP任務的一個非常好的解決方案行您。在這粗略的梳理下HMM, MEMM柠座,CRF三個概率圖模型邑雅。(MEMM 需要先理解最大熵模型,在李航老師的《統(tǒng)計學習方法》中妈经,最大熵模型是跟邏輯斯蒂回歸放到了統(tǒng)一章節(jié)中淮野,理解該節(jié)的時候不妨參照著概率圖模型中的條件隨機場一塊理解)


Naive Bayes 跟 HMM 是generative model, LR 跟 CRF 是discriminative model
  • HMM(generative model)

齊次馬爾科夫性:即某時刻的狀態(tài)只跟前一狀態(tài)有關吹泡;
觀測獨立性假設:t時刻的觀測結果只與該時刻的狀態(tài)有關骤星;


jieba分詞工具,其中對未收錄詞的處理就使用HMM來實現(xiàn)的爆哑,通過viterbi算法洞难,有興趣的可以看下jieba的源碼。

  • MEMM(discriminative model)
    最大熵馬爾科夫模型揭朝,是對最大熵模型以及隱馬爾可夫模型的擴展队贱,最大熵模型是在符合所有約束條件下作出最不偏倚的假設,而這些約束條件就是我們所說的特征函數(特征函數的權重w是在通過拉格朗日乘子法求解過程中引入的權重)
    最大熵模型潭袱,與CRF極其相似柱嫌,前者特征函數中并沒有狀態(tài)之間的相互關系
MEMM 是在每個狀態(tài)狀態(tài)節(jié)點都做了歸一化,這也是導致標注偏移的原因

MEMM 拋棄了HMM中的觀測獨立性假設屯换,保留了齊次馬爾科夫性编丘,是對HMM的一個改進。

  • CRF(discriminative model)

    對比CRF與MEMM兩個模型彤悔,會發(fā)現(xiàn)二者在歸一化存在差異嘉抓,MEMM對每一項進行局部歸一化后連乘,而CRF則是對全局歸一化晕窑,也正因為這一項改進抑片,CRF克服了標注偏移的問題。在這的特征函數f()杨赤,包括轉移特征以及狀態(tài)特征蓝丙,在tensorflow的contrib.crf.crf_log_likelihood中的實現(xiàn)方式跟上邊說的這些不太一致,后邊會有解釋望拖。

NeuroNER 網絡結構分析

假設大家對上邊的內容都已經熟悉了,在這看下NeuroNER的網絡結構


此圖盜自小孔同學

有兩點需要說一下

  • 來看下tensorflow中 crf.py目標函數的實現(xiàn)挫鸽,跟《統(tǒng)計學習方法》中介紹的以及crf++中的實現(xiàn)完全不一樣说敏,為什么要這么定義呢?
#crf_sequence_score函數定義:
def crf_log_likelihood(inputs,
                       tag_indices,
                       sequence_lengths,
                       transition_params=None):
  num_tags = inputs.get_shape()[2].value
  if transition_params is None:
    transition_params = vs.get_variable("transitions", [num_tags, num_tags])
  sequence_scores = crf_sequence_score(inputs, tag_indices, sequence_lengths,
                                       transition_params)
  log_norm = crf_log_norm(inputs, sequence_lengths, transition_params)
  # Normalize the scores to get the log-likelihood.
  log_likelihood = sequence_scores - log_norm
  return log_likelihood, transition_params

#crf_sequence_score函數定義:
def crf_sequence_score(inputs, tag_indices, sequence_lengths,
                   transition_params):
    unary_scores = crf_unary_score(tag_indices, sequence_lengths, inputs)
    binary_scores = crf_binary_score(tag_indices, sequence_lengths,
                                   transition_params)
    sequence_scores = unary_scores + binary_scores
    return sequence_scores

tf中crf的損失函數定義使用了一元損失值丢郊、二元損失值的和盔沫,分別代表了標簽以及跳轉矩陣的誤差值医咨。在論文中有介紹[1]

  • crf 的定義中即有狀態(tài)特征函數,又有轉移特征函數架诞,但是在lstm+crf的模塊中沒有體現(xiàn)出來拟淮? 在看NeuroNER的時候也按照之前的理論去理解,一直不吻合谴忧。其實在項目中的crf layer很泊,并不是完整的crf過程,在前邊的NN網絡中沾谓,包含了特征函數的自學習過程委造!除此外,轉移概率矩陣也是通過模型主動學習得到均驶,屬于模型輸出昏兆,稱之為full-rank NeuroNER。個人感覺NeuroCRF整體的思路更貼近HMM妇穴,最終將模型拆分成為發(fā)射概率以及轉移概率爬虱,區(qū)別,其一是NeuroCRF針對條件概率建模[p(y|x)]腾它,其二是模型的輸出—發(fā)射概率矩陣其實也包含了上下文信息跑筝,而這正好是HMM兩個本質假設之一的觀測獨立性假設!

low-rank NeuroNER: 用NN來學習label emissions[4]
full-rank NeuroNER: 用NN來學習transitions携狭,以及emissions


在這兩篇論文中找到了解釋[2][3]继蜡, 通過一些變換將條件概率轉化為emission function 與 transition function的乘積形式,最終的公式形式中逛腿,G為lstm網絡的outputs, F為狀態(tài)之間的跳轉概率矩陣稀并。這個地方也不難理解,作者通過lstm神經網絡去自動的學習特征函數单默,并且由于引入了循環(huán)神經網絡碘举,發(fā)射概率也充分包含了上下文信息。

結束

NLP不是主要的方向搁廓,最近用到了所以多關注了一下引颈,有一些地方沒有很好的理解,但大致的思路應該就是這樣了境蜕,后邊是以上四篇論文的出處蝙场,感興趣的可以看下。

【1】Lample G, Ballesteros M, Subramanian S, et al. Neural architectures for named entity recognition[J]. arXiv preprint arXiv:1603.01360, 2016.
【2】Rondeau M A, Su Y. Full-rank linear-chain neurocrf for sequence labeling[C]//Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015: 5281-5285.
【3】Rondeau M A, Su Y. LSTM-Based NeuroCRFs for Named Entity Recognition[C]//INTERSPEECH. 2016: 665-669.
【4】Huang Z, Xu W, Yu K. Bidirectional LSTM-CRF models for sequence tagging[J]. arXiv preprint arXiv:1508.01991, 2015.

歡迎一塊交流討論粱年,文中有錯誤的地方售滤,還請指正,謝謝~
email: bidai541@foxmail.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市完箩,隨后出現(xiàn)的幾起案子赐俗,更是在濱河造成了極大的恐慌,老刑警劉巖弊知,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阻逮,死亡現(xiàn)場離奇詭異,居然都是意外死亡秩彤,警方通過查閱死者的電腦和手機叔扼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呐舔,“玉大人币励,你說我怎么就攤上這事∩浩矗” “怎么了食呻?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長澎现。 經常有香客問我仅胞,道長,這世上最難降的妖魔是什么剑辫? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任干旧,我火速辦了婚禮,結果婚禮上妹蔽,老公的妹妹穿的比我還像新娘椎眯。我一直安慰自己,他們只是感情好胳岂,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布编整。 她就那樣靜靜地躺著,像睡著了一般乳丰。 火紅的嫁衣襯著肌膚如雪掌测。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天产园,我揣著相機與錄音汞斧,去河邊找鬼。 笑死什燕,一個胖子當著我的面吹牛粘勒,可吹牛的內容都是我干的。 我是一名探鬼主播屎即,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼仲义,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起埃撵,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虽另,沒想到半個月后暂刘,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡捂刺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年谣拣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族展。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡森缠,死狀恐怖,靈堂內的尸體忽然破棺而出仪缸,到底是詐尸還是另有隱情贵涵,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布恰画,位于F島的核電站宾茂,受9級特大地震影響,放射性物質發(fā)生泄漏拴还。R本人自食惡果不足惜跨晴,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片林。 院中可真熱鬧端盆,春花似錦、人聲如沸费封。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孝偎。三九已至访敌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衣盾,已是汗流浹背寺旺。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留势决,地道東北人阻塑。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像果复,于是被迫代替她去往敵國和親陈莽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容