HanLP《自然語(yǔ)言處理入門》筆記--6.條件隨機(jī)場(chǎng)與序列標(biāo)注

筆記轉(zhuǎn)載于GitHub項(xiàng)目https://github.com/NLP-LOVE/Introduction-NLP

6. 條件隨機(jī)場(chǎng)與序列標(biāo)注

本章介紹一種新的序列標(biāo)注模型條件隨機(jī)場(chǎng)适揉。這種模型與感知機(jī)同屬結(jié)構(gòu)化學(xué)習(xí)大家族石咬,但性能比感知機(jī)還要強(qiáng)大篮幢。為了厘清該模型的來(lái)龍去脈,我們先對(duì)機(jī)器學(xué)習(xí)模型做番柿理淀弹。然后結(jié)合代碼介紹條件隨機(jī)場(chǎng)理論,探究它與結(jié)構(gòu)化感知機(jī)的異同庆械。

6.1 機(jī)器學(xué)習(xí)的模型譜系

機(jī)器學(xué)習(xí)的模型譜系圖如下圖所示:

image

根據(jù)建模的究竟是聯(lián)合概率分布 P(x,y) 還是條件概率分布 P(y|x)垦页。派生出生成式模型與判別式模型。

  1. 生成式模型

    生成式模型:模擬數(shù)據(jù)的生成過程干奢,兩類隨機(jī)變量存在因果先后關(guān)系痊焊,先有因素 y,后有結(jié)果 x忿峻,這種因果關(guān)系由聯(lián)合分布模擬:

    P(x,y)=P(y)P(x|y)

    通過聯(lián)合分布 P(x,y)薄啥,生成式模型其實(shí)間接建模了 P(x):

    P(x)=\sum_{y\in{Y}}P(x,y)

    這里有兩個(gè)缺陷:

    • P(x) 很難準(zhǔn)確估計(jì),因?yàn)樘卣髦g并非相互獨(dú)立逛尚,而是存在錯(cuò)綜復(fù)雜的依賴關(guān)系垄惧。
    • P(x) 在分類中也沒有直接作用。

    為了克服這兩個(gè)問題绰寞,判別式模型出現(xiàn)到逊。

  2. 判別式模型

    判別式模型直接跳過了 P(x),直接對(duì)條件概率 P(y|x) 建模滤钱。不管 x 內(nèi)部存在多復(fù)雜的關(guān)系觉壶,也不影響判別式模型對(duì) y 的判斷,于是就能夠放心大膽的利用各種各樣豐富的件缸、有關(guān)聯(lián)的特征铜靶。 所以我們會(huì)看到感知機(jī)分詞的準(zhǔn)確率高于隱馬爾可夫模型。

    P(y|x)=\frac{exp(score(x,y))}{\sum_{x,y}exp(score(x,y))}

    其中他炊,exp 為指數(shù)函數(shù)争剿。隨機(jī)變量關(guān)系錯(cuò)綜復(fù)雜,為了分析這些關(guān)系痊末,使用概率圖模型蚕苇。

  3. 有向概率圖模型

    概率圖模型( Probabilistic Graphical Model, PGM)是用來(lái)表示與推斷多維隨機(jī)變量聯(lián)合分布 p(x,y) 的強(qiáng)大框架,被廣泛用于計(jì)算機(jī)視覺凿叠、知識(shí)表達(dá)涩笤、貝葉斯統(tǒng)計(jì)與自然語(yǔ)言處理疮丛。它利用節(jié)點(diǎn) V 來(lái)表示隨機(jī)變量,用邊 E 連接有關(guān)聯(lián)的隨機(jī)變量辆它,將多維隨機(jī)變量分布表示為圖 G=(V,E)誊薄。這樣就帶來(lái)了一個(gè)好處,那就是整個(gè)圖可以分解為子圖再進(jìn)行分析.子圖中的隨機(jī)變量更少锰茉,建模更加簡(jiǎn)單呢蔫。具體如何分解,據(jù)此派生出有向圖模型和無(wú)向圖模型飒筑。

    有向圖模型按事件的先后因果順序?qū)⒐?jié)點(diǎn)連接為有向圖片吊。如果事件 A 導(dǎo)致事件 B,則用箭頭連接兩個(gè)事件 A-->B协屡。

    image

    有向圖模型都將概率有向圖分解為一系列條件概率之積俏脊,有向圖模型經(jīng)常用生成式模型來(lái)實(shí)現(xiàn)。定義 π(v) 表示節(jié)點(diǎn) v 的所有前驅(qū)節(jié)點(diǎn)肤晓,則分布為:
    p(\boldsymbol{x}, \boldsymbol{y})=\prod_{v=V} p(v | \boldsymbol{\pi}(v))

  4. 無(wú)向概率圖模型

    相反爷贫,無(wú)向圖模型則不探究每個(gè)事件的因果關(guān)系,也就是說(shuō)不涉及條件概率分解补憾。無(wú)向圖模型的邊沒有方向漫萄,僅僅代表兩個(gè)事件有關(guān)聯(lián)。

    image

    無(wú)向圖模型將概率分解為所有最大團(tuán)上的某種函數(shù)之積盈匾。

    在圖論中腾务,最大團(tuán)指的是滿足所有節(jié)點(diǎn)相互連接的最大子圖。因?yàn)樽畲髨F(tuán)需要考慮所有變量削饵,為此岩瘦,無(wú)向圖模型定義了一些虛擬的因子節(jié)點(diǎn),每個(gè)因子節(jié)點(diǎn)只連接部分節(jié)點(diǎn)窿撬,組成更小的最大團(tuán)启昧。

    image

藍(lán)色虛線表示最大團(tuán),黑色方塊表因子節(jié)點(diǎn)尤仍,圓圈則表示變量節(jié)點(diǎn)箫津,無(wú)向圖模型將多維隨機(jī)變量的聯(lián)合分布分解為一系列最大團(tuán)中的因子之積:
p(x, y)=\frac{1}{Z} \prod_{a} \Psi_{a}\left(x_{a}, y_{a}\right)
其中狭姨,a 是因子節(jié)點(diǎn)宰啦,Ψa 則是一個(gè)因子節(jié)點(diǎn)對(duì)應(yīng)的函數(shù),參數(shù) Xa,Ya 是與因子節(jié)點(diǎn)相連的所有變量節(jié)點(diǎn)饼拍。為了將式子約束為概率分布赡模,定義常數(shù) Z 為如下歸一化因子:
Z=\sum_{x, y} \prod_{a} \Psi_{a}\left(x_{a}, y_{a}\right)
在機(jī)器學(xué)習(xí)中,常用指數(shù)家族的因子函數(shù):
\Psi_{a}\left(x_{a}, y_{a}\right)=\exp \left\{\sum_{k} w_{a k} f_{a k}\left(x_{a}, y_{a}\right)\right\}
其中师抄,k 為特征的編號(hào)漓柑,F(xiàn)ak 是特征函數(shù),Wak 為相應(yīng)的特征權(quán)重。

判別式模型經(jīng)常用無(wú)向圖來(lái)表示辆布,只需要在歸一化時(shí)瞬矩,對(duì)每種 x 都求一個(gè)歸一化因子:
Z(\boldsymbol{x})=\sum_{y} \prod_{a} \Psi_{a}\left(\boldsymbol{x}_{a}, \boldsymbol{y}_{a}\right)
然后 P(x,y) 就轉(zhuǎn)化為判別式模型所需的條件概率分布:
p(\boldsymbol{y} | \boldsymbol{x})=\frac{1}{Z(\boldsymbol{x})} \prod_{a} \boldsymbol{\Psi}_{a}\left(\boldsymbol{x}_{a}, \boldsymbol{y}_{a}\right)
到這里,最后一個(gè)公式就是條件隨機(jī)場(chǎng)的一般形式锋玲。

6.2 條件隨機(jī)場(chǎng)

條件隨機(jī)場(chǎng)( Conditional Random Field, CRF)是一種給定輸入隨機(jī)變量 x景用,求解條件概率 p(y| x) 的概率無(wú)向圖模型。用于序列標(biāo)注時(shí)惭蹂,特例化為線性鏈( linear chain )條件隨機(jī)場(chǎng)伞插。此時(shí),輸人輸出隨機(jī)變量為等長(zhǎng)的兩個(gè)序列盾碗。

  1. 線性鏈條件隨機(jī)場(chǎng)

    線性鏈條件隨機(jī)場(chǎng)如下圖所示:

    image

每個(gè) Xt 上方有 3 個(gè)灰色節(jié)點(diǎn)媚污,代表 Xt 的 3 個(gè)特征,當(dāng)然還可以是任意數(shù)量的特征廷雅,體現(xiàn)了特征的豐富性耗美,黑色方塊是因子節(jié)點(diǎn),可以理解為一個(gè)特征函數(shù) f_k(y_{t-1},y_t,x_t)航缀。其中僅僅利用了 Xt 和 Yt 的特征稱作狀態(tài)特征幽歼,利用了 Yt-1 的特征則稱作轉(zhuǎn)移特征,與感知機(jī)的特征函數(shù)相同谬盐。

線性鏈條件隨機(jī)場(chǎng)的定義如下:
p(\boldsymbol{y} | \boldsymbol{x})=\frac{1}{Z(\boldsymbol{x})} \prod_{t=1}^{T} \exp \left\{\sum_{k=1}^{K} \boldsymbol{w}_{k} f_{k}\left(y_{t-1}, y_{t}, \boldsymbol{x}_{t}\right)\right\}
其中甸私,Z(x)為歸一化函數(shù):
Z(\boldsymbol{x})=\sum_{y} \prod_{t=1}^{T} \exp \left\{\sum_{k=1}^{K} w_{k} f_{k}\left(y_{t-1}, y_{t}, \boldsymbol{x}_{t}\right)\right\}
上式定義在所有可能的標(biāo)注序列上。如果將所有特征函數(shù)與權(quán)重分別寫作向量形式飞傀,則線性鏈條件隨機(jī)場(chǎng)的定義可簡(jiǎn)化為:
\begin{aligned} p(\boldsymbol{y} | \boldsymbol{x}) &=\frac{1}{Z(\boldsymbol{x})} \prod_{t=1}^{T} \exp \left\{\boldsymbol{w} \cdot \phi\left(y_{t-1}, y_{t}, \boldsymbol{x}_{t}\right)\right\} \\ &=\frac{1}{Z(\boldsymbol{x})} \exp \left\{\sum_{t=1}^{T} \boldsymbol{w} \cdot \phi\left(y_{t-1}, y_{t}, \boldsymbol{x}_{t}\right)\right\} \end{aligned}
對(duì)比結(jié)構(gòu)化感知機(jī)的打分函數(shù):
\operatorname{score}(x, y)=\sum_{t=1}^{T} w \cdot \phi\left(y_{t-1}, y_{t}, x_{t}\right)
可以發(fā)現(xiàn)結(jié)構(gòu)化感知機(jī)打分函數(shù)與條件隨機(jī)場(chǎng)的指數(shù)部分完全相同皇型,由于給定實(shí)例 x,Z(x) 就是一個(gè)常數(shù) c砸烦,所以有:
p(y | x)=\frac{1}{c} \exp \{\operatorname{score}(x, y)\}
于是弃鸦,條件隨機(jī)場(chǎng)就和結(jié)構(gòu)化感知機(jī)有以下聯(lián)系:

  • 條件隨機(jī)場(chǎng)和結(jié)構(gòu)化感知機(jī)的特征函數(shù)完全一致。
  • 結(jié)構(gòu)化感知機(jī)預(yù)測(cè)打分越高幢痘,條件隨機(jī)場(chǎng)給予該預(yù)測(cè)的概率也越大唬格。

這種相似性使得我們能夠復(fù)用結(jié)構(gòu)化感知機(jī)的預(yù)測(cè)算法,也就是維特比算法颜说。

條件隨機(jī)場(chǎng)的訓(xùn)練過程詳見《自然語(yǔ)言處理入門》第6章购岗。

  1. 對(duì)比結(jié)構(gòu)化感知機(jī)

    結(jié)構(gòu)化感知機(jī)和條件隨機(jī)場(chǎng)的相同點(diǎn):

    • 特征函數(shù)相同
    • 權(quán)重向量相同
    • 打分函數(shù)相同
    • 預(yù)測(cè)算法相同
    • 同屬結(jié)構(gòu)化學(xué)習(xí)

    不同點(diǎn)

    • 感知機(jī)更新參數(shù)時(shí),只使用一個(gè)訓(xùn)練實(shí)例门粪,沒有考慮整個(gè)數(shù)據(jù)集喊积,難免顧此失彼;而條件隨機(jī)場(chǎng)對(duì)數(shù)似然函數(shù)及其梯度則使用了整個(gè)數(shù)據(jù)集玄妈。

    • 條件隨機(jī)場(chǎng)更新參數(shù)更加合理乾吻,條件隨機(jī)場(chǎng)更新參數(shù)如下:
      w \leftarrow w+\phi\left(x^{(i)}, y^{(i)}\right)-E_{w}\left[\phi\left(x^{(i)}, y\right)\right]
      對(duì)比感知機(jī)的更新參數(shù)表達(dá)式:
      w \leftarrow w+\phi\left(x^{(i)}, y^{(i)}\right)-\phi\left(x^{(i)}, \hat{y}\right)
      兩者的差距一目了然髓梅,感知機(jī)獎(jiǎng)勵(lì)正確答案對(duì)應(yīng)的特征函數(shù) ?,但僅懲罰錯(cuò)誤最厲害的那個(gè) y绎签,而條件隨機(jī)場(chǎng)同時(shí)懲罰所有答案 y枯饿,分?jǐn)倯土P總量。

6.3 條件隨機(jī)場(chǎng)工具包

談到條件隨機(jī)場(chǎng)工具包诡必,最著名的就是 CRF++鸭你,有各大平臺(tái)的安裝方法,HanLP已經(jīng)集成了擒权。

  1. CRF++ 語(yǔ)料格式

    CRF++ 接受純文本語(yǔ)料袱巨,約定為一種空格或制表符分隔的表格格式。每個(gè)序列作為一個(gè)表格碳抄,每行為序列的一個(gè)時(shí)刻 Xt,Yt愉老,除了最后一列為輸出變量 y 之外,其它列都是輸入變量 x剖效,如下所示:

    商 s 中 B
    品 p 中 E
    和 h 中 S
    服 f 中 B
    務(wù) w 中 E
    
    A a 英 B
    K k 英 M
    B b 英 M
    4 s 數(shù) M
    8 b 數(shù) E
    

6.4 HanLP中的CRF++ API

詳細(xì)代碼請(qǐng)見: evaluate_crf_cws.py

https://github.com/NLP-LOVE/Introduction-NLP/tree/master/code/ch06/evaluate_crf_cws.py

訓(xùn)練耗時(shí)很長(zhǎng)嫉入。

標(biāo)準(zhǔn)化評(píng)測(cè)

算法 P R F1 R(oov) R(IV)
最長(zhǎng)匹配 89.41 94.64 91.95 2.58 97.14
二元語(yǔ)法 92.38 96.70 94.49 2.58 99.26
一階HHM 78.49 80.38 79.42 41.11 81.44
二階HHM 78.34 80.01 79.16 42.06 81.04
平均感知機(jī) 96.69 96.45 96.57 70.34 97.16
結(jié)構(gòu)化感知機(jī) 96.67 96.64 96.65 70.52 97.35
條件隨機(jī)場(chǎng) 96.86 96.64 96.75 71.54 97.33

條件隨機(jī)場(chǎng)的各項(xiàng)指標(biāo)全面勝過了結(jié)構(gòu)化感知機(jī),綜合 F1 更達(dá)到 96.8%璧尸, 是傳統(tǒng)方法中最準(zhǔn)確的分詞模型咒林。

6.5 GitHub

HanLP何晗--《自然語(yǔ)言處理入門》筆記:

https://github.com/NLP-LOVE/Introduction-NLP

項(xiàng)目持續(xù)更新中......

目錄


章節(jié)
第 1 章:新手上路
第 2 章:詞典分詞
第 3 章:二元語(yǔ)法與中文分詞
第 4 章:隱馬爾可夫模型與序列標(biāo)注
第 5 章:感知機(jī)分類與序列標(biāo)注
第 6 章:條件隨機(jī)場(chǎng)與序列標(biāo)注
第 7 章:詞性標(biāo)注
第 8 章:命名實(shí)體識(shí)別
第 9 章:信息抽取
第 10 章:文本聚類
第 11 章:文本分類
第 12 章:依存句法分析
第 13 章:深度學(xué)習(xí)與自然語(yǔ)言處理
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市爷光,隨后出現(xiàn)的幾起案子垫竞,更是在濱河造成了極大的恐慌,老刑警劉巖蛀序,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欢瞪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡徐裸,警方通過查閱死者的電腦和手機(jī)遣鼓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)重贺,“玉大人骑祟,你說(shuō)我怎么就攤上這事∑希” “怎么了次企?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)健民。 經(jīng)常有香客問我抒巢,道長(zhǎng),這世上最難降的妖魔是什么秉犹? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任蛉谜,我火速辦了婚禮,結(jié)果婚禮上崇堵,老公的妹妹穿的比我還像新娘型诚。我一直安慰自己,他們只是感情好鸳劳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布狰贯。 她就那樣靜靜地躺著,像睡著了一般赏廓。 火紅的嫁衣襯著肌膚如雪涵紊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天幔摸,我揣著相機(jī)與錄音摸柄,去河邊找鬼。 笑死既忆,一個(gè)胖子當(dāng)著我的面吹牛驱负,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播患雇,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼跃脊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了苛吱?” 一聲冷哼從身側(cè)響起酪术,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翠储,沒想到半個(gè)月后拼缝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彰亥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年咧七,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片任斋。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡继阻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出废酷,到底是詐尸還是另有隱情瘟檩,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布澈蟆,位于F島的核電站墨辛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏趴俘。R本人自食惡果不足惜睹簇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一奏赘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧太惠,春花似錦磨淌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至埃脏,卻和暖如春搪锣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彩掐。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工构舟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人佩谷。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓旁壮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谐檀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抡谐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容