條件隨機場(CRF)的理解


Motivation

學習CRF的過程中,我發現很多資料,教程上來就給一堆公式,並不知道這些公式是怎么來的。 所以我想以面向問題的形式,分享一下自己對CRF用於序列標注問題的理解

問題定義

給定觀測序列\(X=(X_1,X_2,X_3,...X_n)\)

應該注意以下幾點:

  • 輸入\(X=(X_1,X_2,X_3,...X_n)\)是觀測序列,是先驗條件
  • 輸出\(Y=(Y_1,Y_2,Y_3,...Y_n)\)是標注序列,也稱為狀態序列, 與觀測序列具有相同的結構

我們舉個例子:

設有一標注問題:輸入觀測序列為\(X=(X_1,X_2,X_3,X_3)=(Dog caught the cat)\),輸出標記序列為\(Y=(Y_1,Y_2,Y_3,Y_3)\)\(Y_1,Y_2,Y_3,Y_3\)取值於\(\gamma=\{verb, article, noun\}\)

我們可以得到以下模型圖:

當模型輸入句子 ”Dog caught the cat“ 時,我們希望模型能夠輸出標注序列:“n v a n”的概率最大

那么如何根據這個狀態圖計算出序列”n v a n“的出現的概率呢?

這里就引出了概率無向圖模型:(注:個人認為條件隨機場模型是一個概率無向圖模型,而線性鏈條件隨機場是一個有向圖模型)

條件隨機場

這里我們對於上圖中的圖模型,我們定義兩種特征: 狀態特征和轉移特征

  • 狀態特征: 定義在結點上,表示這個結點是否擁有某個屬性
  • 轉移特征: 定義在邊上,表示兩個狀態是否會因為某個特征而轉移

對於上面的問題中,我們可以直覺性地定義一些特征,例如:狀態特征可以是\(\{脊椎動物,哺乳動物,爬行動物,地點, 時間,動作\}\),轉移特征可以理解有\(\{動物后面接動詞jump,人后面接動詞love,名詞后面接代詞,動詞后面接代詞,形容詞后面接名詞\}\),這些就是我們對於一些直觀特征,當然還有很多隱藏特征我們無法用語言來解釋,也沒有必要解釋。

因此我們用數學語言來表達這些特征:
假設我們定義了\(K_1\) 個轉移特征 $ {t_1,t_2,...,t_{K_1}} $ ,定義了\(K_2\)個狀態特征 \(\{s_1,s_2,...,s_{K_2}\}\) ,當一個結點擁有狀態特征\(s_j\)時,\(s_j=1\),否則,\(s_j=0\)
例如:dog 擁有狀態特征:{脊椎動物,哺乳動物}

\[s_l=s_j(y_i,x,i) \in \{0,1\} \quad l=1,2,..K_1,i=1,2,...n \]

一個結點\(y_i\)的狀態特征只與這個結點和觀測序列有關,其他結點無關,同理,轉移特征可以表示如下:

\[t_k=t_k(y_{i-1},y_i,x,i) \in \{0,1\} \quad k=1,2,..K_2,i=2,3,...n \]

當然,這些特征所起到的重要性應該是有差異的,例如單詞:train,它作為動詞時有“訓練,瞄准”的意思。 當我們一篇關於機器學習的論文(觀測序列\(x\))中觀測到了單詞train時

\[s_1=s_1(y_i=verb,x=論文 ,i=index(train) ) \rightarrow 訓練 \\ s_2=s_2(y_i=verb,x=論文 ,i=index(train) ) \rightarrow 瞄准 \]

在train被模型標注為verb的過程中,特征\(s_1\)\(s_2\)應該起到更高的重要性,理應擁有更大的權重,同理對於每個轉移特征,利用也有對應的權重,
這里,我們定義轉移特征的權值為\(\lambda_k\),狀態特征的權值為\(\mu_l\),則當我們得到觀測序列\(X=(x_1,x_2,...x_n)\),狀態序列為\(Y=(y_1,y_2,...y_n)\)時的所有結點的的特征之和為

\[\sum_{i,k}\lambda_k t_k(y_{i-1},y_i,x,i)+ \sum_{i,l} \mu_l s_l(y_i,x,i) \]

由此,我們用這個特征和來計算:

當觀測序列\(X=(x_1,x_2,...x_n)\),狀態序列為\(Y=(y_1,y_2,...y_n)\)的概率

首先概率值不能是負的,所以我們將這個特征和變換為正值,還必須保證各個狀態序列特征和大小關系不變,所以我們使用指數函數exp進行變換得到,再把這個結果規范化后就得到了概率函數了,也是線性鏈條件隨機場的參數化形式定義(《統計學習方法》定理11.2)

\(P(Y|X)\)為線性鏈條件隨機場, 則在隨機變量 取值為x的條件下, 隨機變量Y的取值為 y的條件概率具有如下形式:

\[P(Y|X)= \frac{1}{Z(x)} exp(\sum_{i,k}\lambda_k t_k(y_{i-1},y_i,x,i)+ \sum_{i,l} \mu_l s_l(y_i,x,i)) \]

其中

\[Z(x) = \sum_Y exp(\sum_{i,k}\lambda_k t_k(y_{i-1},y_i,x,i)+ \sum_{i,l} \mu_l s_l(y_i,x,i)) \]

\(t_k\)\(s_l\)是特征函數,\(\lambda_k\)\(\mu_l\)是對應的權值, 是規范化因子,\(Z(x)\)求和是在所有可能的輸出序列上進行的

Reference

《統計學習方法》 李航


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM