目錄
如果說,你有一天生活中的一連串快照,你想在這些照片上面打上活動內容的標籤(吃睡、睡覺、開車等)。你會怎麼做?
一種方式是忽略這些快照的本質, 建立一個圖片分類器。舉個例子,事先給定一個月的打標快照,你可能會了學到在早上6點拍的較暗的照片很可能是在睡覺,有很多明亮顏色的照片,很可能是關於跳舞等等。
然而,忽略順序關聯,你會丟失很多信息。
例如,如果你看到一張嘴張的特寫照片,那它應該打標成吃飯還是唱歌呢?如果上一張照片中你在吃飯或者做菜,那當前這張照片很可能是他在吃飯;但如果上一張照片中你在唱歌或者跳舞,那這張很可能是在說你也在唱歌。
因此,爲了提高我們打標的準確率, 我們應該結合參考相近照片,這正是條件隨機場( condition random field)所做的事情
我主要討論的是自然語言處理方面的,來看下在詞性標註中的應用:
讓我們通過更常用的詞性標註的例子來了解更多細節。
詞性標註( POS Tagging)的目標是使用標籤對句子(一連串的詞或短語)進行打籤,
那麼就讓我們建立一個條件隨機場來爲句子做詞性標註。正如分類器所做,我們首先要設定一組特徵方程
1. CRF的特徵函數
在CRF中,每個特徵函數以下列信息作爲輸入: f(s, i, Li, Li-1) 當前詞的標籤是假設給與的標籤Li
- 一個句子s
- 詞在句子中的位置i
- 當前詞的標籤Li
- 前一個詞的標籤Li-1
輸出的是一個實數值(儘管這些值一般是0或1)。
(注意: 通過限制我們的特徵只依賴於當前與之前的詞的標籤,而不是句子中的任意標籤, 實際上我建立了一種特殊的線性CRF, 爲簡單起見, 本文不討論更廣義的CRF)
例如,某個特徵函數就可以用來衡量當上一個詞是"very'時,當前詞有多少程度可以被標爲一個形容詞。
2. 從特徵到概率
接下來, 爲我們的每個特徵函數f 設置一個權重值λ (後面我會介紹如何通過訓練學習得到這些權重值)。
給定一個句子s,現在我們可以通過累加句中所有詞加權後的特徵來爲s的打標結果:
第一個求合是對遍歷特徵方程J的求和, 而內層的求合是對句子裏面的每一個位置 i 進行遍歷進行求和。
最終,我們通求指數與歸一化的方式將轉換這些得分轉換爲0、1之間的概率值
是不是看起來會有些眼熟。(分母就是把所有情況加起來,使得總體等於1)
這是因爲實際上CRF就是序列版本的邏輯迴歸( logistic regression)。
正如邏輯迴歸是分類問題的對數線性模型, CRF是序列標註問題的對數線性模型。
3. CRF和隱馬科夫模型HMM
上面的CRF 的概率公式有沒有一點感覺有點像HMM
回顧隱馬可夫模型( Hidden Markov Model)定義如下:
那麼:HMM與CRF比較會是如何?
CRF更加強大。 CRF可以爲任何HMM能夠建模的事物建模,甚至更多。以下的介紹就可以說明這一點。
設HMM概率的對數爲
如果我們將這些對數概率值看作二進制的轉換指示符與發射指示符的權重, 這就完全具備了CRF的對數線性形式。也就是說,我們可以對任意的HMM建立等價的CRF
(下圖是對於‘對任意的HMM建立等價的CRF’的數學解釋,有點難,可以不看,記住結果即可)
但是,出於以下兩個原因, CRF同樣可以爲更爲豐富的標籤分佈建模:
4. 關鍵總結