命名實(shí)體識別【NeuroNER】

命名實(shí)體識別(Named Entity Recognition, NER)是NLP領(lǐng)域一個非常非常重要的方向,比如人名、地名通用性的實(shí)體識別,還有像車型名、車款名這些垂直領(lǐng)域的實(shí)體,在這借著實(shí)體識別的案例整理下相關(guān)的模型以及如何結(jié)合這些模型與深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)效果更好的NER。

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

NER、分詞都可以看作是序列的標(biāo)注問題,而這一類問題比較傳統(tǒng)的方法是以以馬爾科夫模型(HMM)、條件隨機(jī)場(CRF)為代表的概率圖模型,還有最大熵隱馬爾可夫模型(MEMM),這三者在之前都取得了非常不錯的結(jié)果,近幾年隨著深度學(xué)習(xí)的興起,深度神經(jīng)網(wǎng)絡(luò)也加入到NLP的任務(wù)中,跟CV一樣,網(wǎng)絡(luò)層起到的作用依然是特征提取的過程,深度神經(jīng)網(wǎng)絡(luò)+概率圖模型成為處理NLP任務(wù)的一個非常好的解決方案。在這粗略的梳理下HMM, MEMM,CRF三個概率圖模型。(MEMM 需要先理解最大熵模型,在李航老師的《統(tǒng)計(jì)學(xué)習(xí)方法》中,最大熵模型是跟邏輯斯蒂回歸放到了統(tǒng)一章節(jié)中,理解該節(jié)的時(shí)候不妨參照著概率圖模型中的條件隨機(jī)場一塊理解)


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

齊次馬爾科夫性:即某時(shí)刻的狀態(tài)只跟前一狀態(tài)有關(guān);
觀測獨(dú)立性假設(shè):t時(shí)刻的觀測結(jié)果只與該時(shí)刻的狀態(tài)有關(guān);


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

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

MEMM 拋棄了HMM中的觀測獨(dú)立性假設(shè),保留了齊次馬爾科夫性,是對HMM的一個改進(jìn)。

  • CRF(discriminative model)

    對比CRF與MEMM兩個模型,會發(fā)現(xiàn)二者在歸一化存在差異,MEMM對每一項(xiàng)進(jìn)行局部歸一化后連乘,而CRF則是對全局歸一化,也正因?yàn)檫@一項(xiàng)改進(jìn),CRF克服了標(biāo)注偏移的問題。在這的特征函數(shù)f(),包括轉(zhuǎn)移特征以及狀態(tài)特征,在tensorflow的contrib.crf.crf_log_likelihood中的實(shí)現(xiàn)方式跟上邊說的這些不太一致,后邊會有解釋。

NeuroNER 網(wǎng)絡(luò)結(jié)構(gòu)分析

假設(shè)大家對上邊的內(nèi)容都已經(jīng)熟悉了,在這看下NeuroNER的網(wǎng)絡(luò)結(jié)構(gòu)


此圖盜自小孔同學(xué)

有兩點(diǎn)需要說一下

  • 來看下tensorflow中 crf.py目標(biāo)函數(shù)的實(shí)現(xiàn),跟《統(tǒng)計(jì)學(xué)習(xí)方法》中介紹的以及crf++中的實(shí)現(xiàn)完全不一樣,為什么要這么定義呢?
#crf_sequence_score函數(shù)定義:
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函數(shù)定義:
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的損失函數(shù)定義使用了一元損失值、二元損失值的和,分別代表了標(biāo)簽以及跳轉(zhuǎn)矩陣的誤差值。在論文中有介紹[1]

  • crf 的定義中即有狀態(tài)特征函數(shù),又有轉(zhuǎn)移特征函數(shù),但是在lstm+crf的模塊中沒有體現(xiàn)出來? 在看NeuroNER的時(shí)候也按照之前的理論去理解,一直不吻合。其實(shí)在項(xiàng)目中的crf layer,并不是完整的crf過程,在前邊的NN網(wǎng)絡(luò)中,包含了特征函數(shù)的自學(xué)習(xí)過程!除此外,轉(zhuǎn)移概率矩陣也是通過模型主動學(xué)習(xí)得到,屬于模型輸出,稱之為full-rank NeuroNER。個人感覺NeuroCRF整體的思路更貼近HMM,最終將模型拆分成為發(fā)射概率以及轉(zhuǎn)移概率,區(qū)別,其一是NeuroCRF針對條件概率建模[p(y|x)],其二是模型的輸出—發(fā)射概率矩陣其實(shí)也包含了上下文信息,而這正好是HMM兩個本質(zhì)假設(shè)之一的觀測獨(dú)立性假設(shè)!

low-rank NeuroNER: 用NN來學(xué)習(xí)label emissions[4]
full-rank NeuroNER: 用NN來學(xué)習(xí)transitions,以及emissions


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

結(jié)束

NLP不是主要的方向,最近用到了所以多關(guān)注了一下,有一些地方?jīng)]有很好的理解,但大致的思路應(yīng)該就是這樣了,后邊是以上四篇論文的出處,感興趣的可以看下。

【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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容