1. 程式人生 > >NLP-初學條件隨機場(CRF)

NLP-初學條件隨機場(CRF)

  • 說明:學習筆記,內容參考《機器學習》《數學之美》和七月線上課件

條件隨機場

定義1:

條件隨機場(conditional random field,簡稱CRF)是一種判別式無向圖模型。生成式模型是直接對聯合分佈進行建模,而判別式模型則是對條件分佈進行建模,隱馬爾可夫模型就是生成式模型。——周志華《機器學習》

定義2:

條件隨機場模型是Lafferty於2001年,在最大熵模型和隱馬爾可夫模型的基礎上,提出的一種判別式概率無向圖學習模型,是一種用於標註和切分有序資料的條件概率模型。

普遍意義上的條件隨機場:
這裡寫圖片描述
模型解釋:
①條件隨機場保留了隱含馬爾可夫模型的一些特性,比如圖中的

y1,y2,..等狀態的序列還是一個馬爾可夫鏈。
②在圖中,頂點x1,y1代表一個個隨機變數,頂點之間的弧代表他們之間的依賴關係,採用概率分佈P(x1,y1)來描述。
③它的特殊性在於變數之間要遵守馬爾可夫假設,即每個狀態的轉移概率只取決於相鄰的狀態,這一點,它和貝葉斯網路相同。不同之處在於貝葉斯網路是有向圖,而條件隨機場是無向圖,

1.生成式模型和判別式模型

o,s分別代表觀測序列和標記序列

生成式模型
構建o和s的聯合分佈p(s,o),可以根據聯合概率來生成樣本,如HMM,BNs,MRF。
缺點:目標分類問題中容易產生較大的錯誤率
優點:
實際上帶的資訊比判別模型豐富;能更充分利用先驗知識;模型可以通過增量學習得到
判別式模型
構建o和s的條件分佈p(s|o),因為沒有s的知識無法生成樣本,只能判斷分類,如SVM,CRF,MEMM。
缺點:不能反映訓練資料本身的特性
優點:分類邊界更靈活;能清晰分辨出多類或某一類與其他類之間的差異特徵;適用於較多類別的識別
二者關係
由生成模型可以得到判別模型,但由判別模型得不到生成模型。

2.詞性標註

除了上一章介紹的HMM進行詞性標註外,也可以使用條件隨機場進行詞性標註。正如分類器所做,首先需要設定一組特徵方程。

①CRF的特徵函式

每個特徵函式的輸入包括:

  • 一個句子
    s
  • 詞在句子中的位置i
  • 當前詞的標籤li
  • 前一個詞的標籤li1

②從特徵到概率

  • 為我們每個特徵函式fi設定一個權重值λj(通過訓練學習得到這些權重值),給定一個句子s,可以通過累加句中所有詞加權後的特徵來為s的打標結果打分:

    score(l|s)=j=1mi=1nλjfj(s,i,li,li1)
    注:第一個求和是對遍歷特徵方程j的求和,第二個球和是對句子裡面的每一個位置i進行遍歷求和。
  • 最終,通過求指數與歸一的方式將得分轉化為0,1之間的概率值:

    p(l|s)=exp[score(l|s)lexp[score(l|s)]=exp[j=1mi=1nλjfj(s,i,li,li1)]lexp[j=1mi=1nλjfj(s,i,li,li1)]
    注:邏輯迴歸是分類問題的對數線性模型,CRF是序列標註問題的對數線性模型。

③權重學習

學習CRF權重,以梯度上升方法為例:
有一組訓練樣本(包括句子和相關的詞性標註標籤結果);先為我們的CRF模型隨機初始化權重值;為了使這些隨機初始的權重最終調整為正確的值,需要遍歷每個訓練樣本,然後執行:
  • 遍歷每個特徵函式fi,併為λi計算訓練樣本的對數概率梯度值: