NLP-初学条件随机场(CRF)
- 說明:學習筆記,內容參考《機器學習》《數學之美》和七月在線課件
條件隨機場
定義1:
條件隨機場(conditional random field,簡稱CRF)是一種判別式無向圖模型。生成式模型是直接對聯合分布進行建模,而判別式模型則是對條件分布進行建模,隱馬爾可夫模型就是生成式模型。——周志華《機器學習》
定義2:
條件隨機場模型是Lafferty于2001年,在最大熵模型和隱馬爾可夫模型的基礎上,提出的一種判別式概率無向圖學習模型,是一種用于標注和切分有序數據的條件概率模型。
普遍意義上的條件隨機場:
模型解釋:
①條件隨機場保留了隱含馬爾可夫模型的一些特性,比如圖中的y1,y2,..y1,y2,..等狀態的序列還是一個馬爾可夫鏈。
②在圖中,頂點x1,y1x1,y1代表一個個隨機變量,頂點之間的弧代表他們之間的依賴關系,采用概率分布P(x1,y1)P(x1,y1)來描述。
③它的特殊性在于變量之間要遵守馬爾可夫假設,即每個狀態的轉移概率只取決于相鄰的狀態,這一點,它和貝葉斯網絡相同。不同之處在于貝葉斯網絡是有向圖,而條件隨機場是無向圖,
1.生成式模型和判別式模型
o,s分別代表觀測序列和標記序列
生成式模型2.詞性標注
除了上一章介紹的HMM進行詞性標注外,也可以使用條件隨機場進行詞性標注。正如分類器所做,首先需要設定一組特征方程。
①CRF的特征函數
每個特征函數的輸入包括:
- 一個句子ss
- 詞在句子中的位置ii
- 當前詞的標簽lili
- 前一個詞的標簽li?1li?1
②從特征到概率
為我們每個特征函數fifi設置一個權重值λjλj(通過訓練學習得到這些權重值),給定一個句子s,可以通過累加句中所有詞加權后的特征來為s的打標結果打分:
score(l|s)=∑j=1m∑i=1nλjfj(s,i,li′,li?1′)score(l|s)=∑j=1m∑i=1nλjfj(s,i,li′,li?1′)
注:第一個求和是對遍歷特征方程jj的求和,第二個球和是對句子里面的每一個位置ii進行遍歷求和。最終,通過求指數與歸一的方式將得分轉化為0,1之間的概率值:
p(l|s)=exp[score(l|s)∑l′exp[score(l′|s)]=exp[∑mj=1∑ni=1λjfj(s,i,li,li?1)]∑l′exp[∑mj=1∑ni=1λjfj(s,i,li′,li?1′)]p(l|s)=exp[score(l|s)∑l′exp[score(l′|s)]=exp[∑j=1m∑i=1nλjfj(s,i,li,li?1)]∑l′exp[∑j=1m∑i=1nλjfj(s,i,li′,li?1′)]
注:邏輯回歸是分類問題的對數線性模型,CRF是序列標注問題的對數線性模型。
③權重學習
學習CRF權重,以梯度上升方法為例:遍歷每個特征函數fifi,并為λiλi計算訓練樣本的對數概率梯度值:
??wjlogp(l|s)=∑j=1mfi(s,j,lj,lj?1)?∑l′p(l′|s)∑j=1mfi(s,j,lj′,lj?1′)??wjlogp(l|s)=∑j=1mfi(s,j,lj,lj?1)?∑l′p(l′|s)∑j=1mfi(s,j,lj′,lj?1′)
梯度公式中第一項是特征fifi在正確標注下的貢獻,梯度公式中的第二項是特征fifi在當前模型中的貢獻。
- 將λiλi朝著梯度方向移動:
λi=λi+α[∑j=1mfi(s,j,lj,lj?1)?∑l′p(l′|s)∑j=1mfi(s,j,lj′,lj?1′)]λi=λi+α[∑j=1mfi(s,j,lj,lj?1)?∑l′p(l′|s)∑j=1mfi(s,j,lj′,lj?1′)]
αα是學習率。
重復上述步驟,直到達到某個停止條件,例如低于某一個閾值。
總而言之就是抽取當前模型與我們想要學習到的模型的差異,將λiλi朝著正確的方向移動。
④找到最佳標注
問題:假定訓練好了CRF模型,這時來了一個新的句子,應該如何標注它?
- 最直接的方法:
- 更好的方法:
擴展
詞性標注的方法還有許多,而CRF除了命名實體抽取的其他有趣應用:
eg.圣誕節禮物抽取
①簡單匹配形如‘I want/got xxx for Christmas’的句式
②CRF變種GIFT詞標注:將其轉換為詞性標注問題,基于類似“如果上一個詞是一個GIFT-RECIVER且前一個詞是gave,那么這個詞就是一個GIFT”或者‘如果后面緊跟兩個詞是for Christmas,那么這個詞就是GIFT’的規則去構造特征。
總結
以上是生活随笔為你收集整理的NLP-初学条件随机场(CRF)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源协议是否可以商用(总结)
- 下一篇: 型号LGP970android4升级版本