详解BILSTM-CRF模型结构进行命名实体识别
命名實體識別(NER)是什么?
識別出文本中具有特定意義的實體字符串邊界,并歸類到預定義類別,傳統識別時間、機構名、地點等,但隨著應用發展為識別特殊預定義類別。
命名實體識別發展歷程
早期使用基于規則和字典的方法進行命名實體識別,后來使用機器學習方法(如:HMM、CRF等),后來使用深度學習的方法(如BILSTM-CRF、Lattice-LSTM-CRF、CNN-CRF等),近期流行使用注意力學習機制、遷移學習、半監督學習進行命名實體識別任務。本節主要講述使用BILSTM-CRF進行命名實體識別。文章基于百度研究院發布的論文《Bidirectional LSTM-CRF Models for Sequence Tagging》進行介紹。
BILSTM-CRF模型結構
這是一個BILSTM-CRF模型結構圖,具體每步可理解為:
1.句子轉化為字詞向量序列,字詞向量可以在事先訓練好或隨機初始化,在模型訓練時還可以再訓練。
2.經由BILSTM特征提取,輸出是每個單詞對應的預測標簽。
3.經CRF層約束,會對輸出的分數進行校正,輸出是最優標簽序列。
Step1:Word Embedding
定義:
Word Embedding是一個基于分布式假設的預訓練模型。它假設兩個語義相近的詞在高維空間中距離更近。
方法流程:
1.將一個含有n個詞的句子記作:x = (x1,x2,…xn)。
2.利用預訓練的embedding矩陣將每個字映射為低維稠密的向量。
重點理解:
預訓練詞向量為何可以提高模型泛化能力?
因為深度學習能把我們現實事物表示的好,它本身是一種表示學習,而Word Embedding能把字詞表示得很好,用到深度學習模型中就可以提高模型的泛化。舉個例子理解一下,安徽在NER中被識別為地名,那么跟安徽類似的比如江蘇出現在文本中,因為我們已經訓練了安徽的embedding它很容易被識別成location,那么江蘇的embedding跟安徽的embedding比較相近,那么經過相同的前向傳播,江蘇為location的概率比較大。因此,在訓練集中你只見到了安徽,在測試集中就可以泛化到江蘇了。因此預訓練詞向量可以提高模型泛化能力。
Step2:BILSTM提取文本特征
方法流程:
1.將一個句子各個字的embedding序列作為雙向LSTM各個時間步的輸入。
2.將正反向輸出的隱狀態進行拼接,得到完整的隱狀態序列。
RNN
RNN不同于DNN,CNN網絡之處在于它賦予了網絡對于前面內容的"記憶能力",NER任務的起初,是使用RNN計算預測標簽序列之間的依賴關系并完成標注任務。
如圖所示:在t時刻隱藏層和輸出層的如公式(1)和(2)所示:
St = f(Uxt + WSt-1) (1)
Ot = g(VSt) (2)
Ot = g(VSt) = g(V(f(Uxt + WSt-1)) = g(V f(Uxt + Wf(Uxt-1 + WSt-2)))) =…(3)
由公式(3)可知,網絡越深,越容易出現梯度消失和梯度爆炸問題。展開之后,梯度更新,也就是回傳的時候,可能第100個梯度就影響不到第0個了。也就是,這種累乘的結構,有著天然的缺陷。于是后面提出了LSTM,解決RNN梯度消失和梯度爆炸問題。
LSTM
LSTM引入了門記憶機制,使用記憶細胞來捕獲長距離依賴。LSTM在每個時刻都選擇性地改變記憶,從而有效解決RNN的長距離依賴。總的來說,LSTM通過訓練過程可以學到記憶哪些信息和遺忘哪些信息。
ft是遺忘門,it是輸入門,ot是輸出門,他們都是來源于當前的輸入xt,以及上一步的隱狀態ht-1,b是偏置,他們都通過非線性的sigmoid函數得到一個-1~1之間值的向量。
ct波浪線是t時刻臨時的cell,它來源于當前的輸入xt,以及上一步的隱狀態ht-1,b是偏置,xt和ht-1都有對應的權重,然后通過一個非線性tanch的函數,得到一個-1-1之間數值向量。
ct是當前cell要存儲的信息。它是通過遺忘門和輸入門來進行控制的。遺忘門ft控制之前的要遺忘掉多少,輸入門cell控制當前的臨時cell有多少要記到這條主線上來,經過非線性的sigmoid函數得到一個-1-1之間值的向量,該向量與輸出門得到的判斷條件相乘就得到了最終該RNN單元的輸出。舉個例子:比如有一個筆記本,看到一本書我們就把好的內容記進筆記本,但是筆記本容量有限,讀著讀著我們發現有比之前筆記本里內容更重要的內容,于是就把之前的遺忘掉,然后寫入新的內容。
LSTM把累乘變成了加法表示,減緩了梯度消失和梯度爆炸問題,緩解了RNN的長距離依賴問題。
從LSTM到BILSTM
綜上所知,LSTM通過記憶元件來解決長距離依賴問題,但LSTM是一種前向傳播算法,因此對命名實體識別而言,需要綜合反向的LSTM進行學習,即BILSTM。
1.一個LSTM網絡計算前向的隱特征(從左到右)。
2.另一個LSTM網絡計算后向的隱特征(從右到左)。
3.我們把這兩個LSTM輸出的結果進行拼接,就得到雙向LSTM網絡,用于特征提取。
雙向LSTM的好處是什么呢?
它可以高效的表示出這個單詞在上下文中的含義,在標準Bi-LSTM中,輸出通過接入SoftMax輸出層預測結點間的分類標簽。如下圖所示,前向的LSTM依次輸入"我",“愛”,“中國”,得到三個向量(hL0,hL1,hL2),后向的LSTM依次輸入"中國",“愛”,“我”,得到三個向量(hR0,hR1,hR2),最后將前向和后向的隱向量進行拼接得到{[hL0,hR0],[hL1,hR1],[hL2,hR0]},即(h0,h1,h2)。
Step3:得到P矩陣
方法流程:
1.將完整的隱狀態序列接入線性層,從n維映射到k維,其中k是標注集的標簽數。
2.從而得到自動提取的句子特征,記作矩陣P=(p1,p2,…pn),注意該矩陣是非歸一化矩陣。其中pi表示該單詞對應各個類別的分數。
如圖所示,雙向BILSTM輸出矩陣1.5(B-Person),0.9(L-Person),0.1(B-Organization),0.08(I-Organization),這些分數將是CRF層的輸入(圖中黃色部分即為P矩陣)。
發射分數
發射分數,來自BILSTM的輸出。用xi,yj代表發射分數,i是單詞的位置索引,yj是類別的索引。如計算xi=1,yj=2 = xw1,B-Organization = 0.1。是不是通過P矩陣找到每一個詞對應的發射分數最大的值,我們就可以得到當前詞所對應的標簽。即,w0的標簽為B-Person,w1的標簽為I-Person…,這樣就可以得到標簽了。
為何還要加CRF來做NER呢?
因為我們怕BILSTM學到的發射分數會與實際有偏差,于是我們需要引入CRF對其進行優化。
左圖可以看出,在BIO模式下,每一步對應的標簽是B-Person,I-Person,O,B-Organization,O。這個P矩陣是完美的,這是模型表現好的時候。假設我們學到的發射分數P矩陣不是很完美,如右圖所示,模型學到的第一步的標簽是I-Organization,后面跟著I-Person,很明顯,這在BIO模式下是不合理的,因為I-Person前面應該跟著B開頭的標簽,而不是I-Organization。正好CRF可以對標簽之間進行約束的,標簽之間是有依賴的,使用CRF可以可以減少出錯的情況。
Step4:CRF的引入
引入原因:
NER是一類特殊的任務,因為表征標簽的可解釋性序列"語法"強加了幾個硬約束,可能的約束比如:NER的開頭應該是B-而不是I-。而CRF層能夠學習到句子的前后依賴,從而加入了一些約束來保證最終預測結果有效。
轉移分數
轉移分數是來自CRF層可以學到的轉移矩陣。
轉移矩陣是BILSTM-CRF模型的一個參數,可隨機初始化轉移矩陣的分數,然后在訓練中更新。
讀圖可知,由B-Person轉移到I-Person的概率為0.9,但轉移到I-Organization的概率為0.0006。
Step5:最終結果的計算
CRF考慮前后標記依賴約束,綜合使用標記狀態轉移概率作為評分:
上式意為對整個序列x,整個序列標注的打分等于各個位置的打分之和,打分為2各部分:
1.前者由LSTM輸出的pi決定。
2.后者由CRF轉移矩陣A決定,其中Ayi-1,yi表示從第yi-1個標簽到第yi個標簽的轉移得分。
路徑分數
Si = EmissionScore(發射分數) + TransitionScore(轉移分數)
EmissionScore
EmissionScore = x0,start + x1,B-Person + x2,I-Person + x3,o + x4,B-Organization + x5,o + x6,END
xindex,label表示第index個單詞被標記為label的score。
x1,B-Person ,x2,I-Person等均為BILSTM的輸出。
x0,start 和 x6,END 可以看作為0。
TransitionScore
TransitionScore = tSTART->B-Person + tB-Person->I-Person + tI-Person->B-Organization + tB-Organization->o + to->END
tlabel1->label2表示從label1到babel2的轉移概率分數,這些轉移分數來自CRF層。
我們從所有可能的路徑中選一個作為最優路徑。如何選呢?
通過損失函數和維特比解碼,我將在下一篇博客為大家講解。
總結
以上是生活随笔為你收集整理的详解BILSTM-CRF模型结构进行命名实体识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows-Server-2012-
- 下一篇: BiLSTM-CRF模型的流程