基于条件随机场的命名实体识别
我們知道HMM將分詞作為字標(biāo)注問(wèn)題來(lái)解決,其中有兩條獨(dú)立性假設(shè):一個(gè)是輸出觀察值之間嚴(yán)格獨(dú)立,二是狀態(tài)的轉(zhuǎn)移過(guò)程中當(dāng)前狀態(tài)只與前一個(gè)狀態(tài)有關(guān)(一階馬爾可夫型)。通過(guò)這兩種假設(shè),使得HMM的計(jì)算成為可能。但是實(shí)際應(yīng)用中多是交互特征表現(xiàn)出來(lái)的,同時(shí)觀察元素之間存在長(zhǎng)程相關(guān)性,這時(shí)HMM就收到了制約。
這時(shí)的條件隨機(jī)場(chǎng),其主要思想來(lái)源于HMM,也是一種用來(lái)標(biāo)記和切分序列化數(shù)據(jù)的統(tǒng)計(jì)模型。但是這里要注意的是:條件隨機(jī)場(chǎng)是在給定觀察的標(biāo)記序列下,計(jì)算整個(gè)標(biāo)記序列的聯(lián)合概率,而HMM是在給定當(dāng)前狀態(tài)下,定義下一個(gè)狀態(tài)的分布。
條件隨機(jī)場(chǎng)的定義:設(shè)X=(X1,X2,X3...,Xn)X=(X_1,X_2,X_3...,X_n)X=(X1?,X2?,X3?...,Xn?)和Y=(Y1,Y2,...,Yn)Y=(Y_1,Y_2,...,Y_n )Y=(Y1?,Y2?,...,Yn?)是聯(lián)合隨機(jī)變量,若隨機(jī)變量YYY構(gòu)成一個(gè)無(wú)向圖G=(V,E)G=(V,E)G=(V,E)表示的馬爾可夫模型,則條件概率分布P(Y∣X)P(Y|X)P(Y∣X)稱為條件隨機(jī)場(chǎng)(Conditional random field,CRF),即:
P(Yv∣X,Yw,w≠v)=P(Yv∣X,Yw,w~v)P(Y_v|X,Y_w, w \neq v)=P(Y_v|X,Y_w, w \sim v)P(Yv?∣X,Yw?,w??=v)=P(Yv?∣X,Yw?,w~v)
其中w~vw \sim vw~v表示圖G=(V,E)G=(V,E)G=(V,E)中與結(jié)點(diǎn)vvv有邊連接的所有結(jié)點(diǎn),w≠vw \neq vw??=v表示結(jié)點(diǎn)vvv以外的所有結(jié)點(diǎn)。
簡(jiǎn)單舉例說(shuō)明:現(xiàn)有若干個(gè)位置組成的整體,當(dāng)給某一個(gè)位置按照某種分布,隨機(jī)賦一個(gè)值后,該整體就被稱為隨機(jī)場(chǎng)。
這里假設(shè)定義了如下的地名識(shí)別規(guī)則:
| B | 當(dāng)前詞為地理命名實(shí)體的首部 |
| M | 當(dāng)前詞為地理命名實(shí)體的內(nèi)部 |
| E | 當(dāng)前詞為地理命名實(shí)體的尾部 |
| S | 當(dāng)前詞單獨(dú)構(gòu)成地理命名實(shí)體 |
| O | 當(dāng)前詞不是地理命名實(shí)體或組成部分 |
當(dāng)有由n個(gè)字符組成的NER的句子,每個(gè)字符的標(biāo)簽都在上面的標(biāo)簽集合(B,M,E,S,O)(B,M,E,S,O)(B,M,E,S,O)中,當(dāng)為每個(gè)字符選定標(biāo)簽后,就形成了一個(gè)隨機(jī)場(chǎng),此時(shí)如果加一些約束(如所有字符的標(biāo)簽只和相鄰的字符標(biāo)簽有關(guān)),那么就轉(zhuǎn)換成了馬爾可夫隨機(jī)場(chǎng)問(wèn)題。在馬爾可夫隨機(jī)場(chǎng)的基礎(chǔ)上,這時(shí)如果有XXX和YYY兩種變量,XXX一般是給定的,YYY是在給定XXX條件下的輸出,上述的例子中,XXX是字符,YYY是標(biāo)簽,P(Y∣X)P(Y|X)P(Y∣X)就是條件隨機(jī)場(chǎng)。
在實(shí)際自然語(yǔ)言處理中,多假設(shè)變量X和Y具有相同的結(jié)構(gòu),即
一般將這種結(jié)構(gòu)稱為線性鏈條件隨機(jī)場(chǎng),其定義如下:
設(shè)X=(X1,X2,X3...,Xn)X=(X_1,X_2,X_3...,X_n)X=(X1?,X2?,X3?...,Xn?)和Y=(Y1,Y2,...,Yn)Y=(Y_1,Y_2,...,Y_n)Y=(Y1?,Y2?,...,Yn?)均為線性鏈表示的隨機(jī)變量序列,若在給定的隨機(jī)變量序列X的條件下,隨機(jī)序列變量Y的條件概率分布p(Y∣X)p(Y|X)p(Y∣X)構(gòu)成條件隨機(jī)場(chǎng),且滿足馬爾可夫性:
P(Yi∣X,Y1,Y2,...Yn)=P(Yi∣X,Yi?1,Yi+1)P(Y_i|X,Y_1,Y_2,...Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})P(Yi?∣X,Y1?,Y2?,...Yn?)=P(Yi?∣X,Yi?1?,Yi+1?)
則稱P(Y∣X)P(Y|X)P(Y∣X)為線性鏈的條件隨機(jī)場(chǎng)。
這里線性鏈CRF不僅考慮了上一個(gè)狀態(tài)Yi?1Y_{i-1}Yi?1?,還考慮了后續(xù)的狀態(tài)結(jié)果Yi+1Y_{i+1}Yi+1?,下面各網(wǎng)絡(luò)的對(duì)比:
從上圖可以看出HMM是一個(gè)有向圖,而線性鏈CRF是一個(gè)無(wú)向圖。因此HMM處理時(shí),每個(gè)狀態(tài)依賴上一個(gè)狀態(tài),而線性鏈CRF依賴于當(dāng)前狀態(tài)的周?chē)Y(jié)點(diǎn)狀態(tài)。
這里以地名識(shí)別為例,對(duì)句子“我來(lái)到上海”進(jìn)行標(biāo)注,正確的標(biāo)注為“我/O 來(lái)/O到/O上/B海/E”。采用CRF來(lái)進(jìn)行解決,那么(O,O,O,B,E)是其中一種標(biāo)注序列,(O,O,O,M,E)也是一種選擇,類似的還有很多,在NER任務(wù)中就是在如此多的可選擇序列中,找出最靠譜的句子的標(biāo)注。
下面就是如何找到最靠譜的句子標(biāo)注?
假如給每個(gè)標(biāo)注序列打分,分值代表標(biāo)注序列的靠譜程度,越高代表越靠譜,這里的給每個(gè)標(biāo)注序列打分的規(guī)則就是特征函數(shù),可以定義很多條特征函數(shù),在CRF中,定義一個(gè)特征函數(shù)集合,然后根據(jù)這個(gè)特征函數(shù)集合給序列進(jìn)行打分,據(jù)此選出最靠譜的標(biāo)注序列。
在CRF中有兩種特征函數(shù),分別是轉(zhuǎn)移函數(shù)tk(yi?1,yi,i)t_k(y_{i-1},y_i,i)tk?(yi?1?,yi?,i)和狀態(tài)函數(shù)sl(yi,X,i)s_l(y_i,X,i)sl?(yi?,X,i)。其中tk(yi?1,yi,i)t_k(y_{i-1},y_i,i)tk?(yi?1?,yi?,i)依賴于當(dāng)前和前一位置,表示從標(biāo)注序列中位置(i?1)(i-1)(i?1)的標(biāo)記yi?1y_{i-1}yi?1?轉(zhuǎn)移到位置(i)(i)(i)上的標(biāo)記為yiy_iyi?的概率。sl(yi,X,i)s_l(y_i,X,i)sl?(yi?,X,i)依賴于當(dāng)前位置,表示標(biāo)記序列在位置iii上標(biāo)記為yiy_iyi?的概率。并通過(guò)取值為1或者0,表示符不符合該條規(guī)則的約束。
下面是完整的線性鏈CRF參數(shù)化形式:
P(y∣x)=1Z(x)exp(∑i,kλktk(yi?1,yi,i)+∑i,lulsl(yi,X,i))P(y|x)=\frac{1}{Z(x)}exp(\sum _{i,k} \lambda_kt_k(y_{i-1},y_i,i)+\sum _{i,l}u_l s_l (y_i,X,i))P(y∣x)=Z(x)1?exp(i,k∑?λk?tk?(yi?1?,yi?,i)+i,l∑?ul?sl?(yi?,X,i))
其中:Z(x)=∑yexp(∑i,kλktk(yi?1,yi,i)+∑i,lulsl(yi,X,i))Z(x)=\sum _y exp(\sum _{i,k} \lambda_kt_k(y_{i-1},y_i,i)+\sum _{i,l}u_l s_l (y_i,X,i))Z(x)=y∑?exp(i,k∑?λk?tk?(yi?1?,yi?,i)+i,l∑?ul?sl?(yi?,X,i))
Z(x)Z(x)Z(x)是規(guī)范化因子,其求和是在所有可能的輸出序列上求和。λk\lambda_kλk?和ulu_lul?為轉(zhuǎn)移函數(shù)和狀態(tài)函數(shù)對(duì)應(yīng)的權(quán)值。
在經(jīng)過(guò)化簡(jiǎn)和合并將上式改為下式:
P(y∣x)=1Z(x)exp(∑j∑iwjfj(yi?1,yi,x,i))P(y|x)=\frac{1}{Z(x)}exp(\sum _{j} \sum _{i} w_j f_j(y_{i-1},y_i,x,i))P(y∣x)=Z(x)1?exp(j∑?i∑?wj?fj?(yi?1?,yi?,x,i))
其中,fj(yi?1,yi,x,i)f_j(y_{i-1},y_i,x,i)fj?(yi?1?,yi?,x,i)為tk(yi?1,yi,i)t_k(y_{i-1},y_i,i)tk?(yi?1?,yi?,i)和sl(yi,X,i))s_l (y_i,X,i))sl?(yi?,X,i))的統(tǒng)一符號(hào)表示。
使用CRF做命名實(shí)體識(shí)別時(shí),目標(biāo)是求argmaxyP(y∣x)arg \underset{y}{max}P(y|x)argymax?P(y∣x)。該問(wèn)題的求解和HMM求解最大可能序列路徑一樣,也是采用Veterbi算法。相比于HMM,CRF能夠捕捉全局的信息,并能進(jìn)行靈活的特征設(shè)計(jì)。
以上只是CRF的簡(jiǎn)介,要詳細(xì)了解理論推導(dǎo)可以參考下面兩個(gè)鏈接:
https://www.cnblogs.com/Determined22/p/6750327.html
https://www.cnblogs.com/Determined22/p/6915730.html
以上是某大牛的講解,值得多讀幾遍。
實(shí)戰(zhàn)可以參考:
CRF++地名識(shí)別
總結(jié)
以上是生活随笔為你收集整理的基于条件随机场的命名实体识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 租房子的不交物业费和暖气费怎么办?
- 下一篇: mac下anaconda安装seleni