学习笔记——条件随机场(基于自然语言和机器学习理解)
目錄
一,條件隨機場介紹
????????1.1啥是詞性標注問題?
1.2?機器學習中的生產模型與判別模型
?二,基于自然語言處理理解
1 條件隨機場(Condition Random Fields),簡稱CRFs
2 條件隨機場的形式化表示
3 深度理解條件隨機場
4 公式化表示條件隨機場?
5?本節總結
?三,基于機器學習理解 條件隨機場(可以看作給定觀察值的馬爾科隨機場)
2 鏈式條件隨機場
3?參考文獻
4?自然語言相關系列文章
一,條件隨機場介紹
????????理解條件隨機場最好的辦法就是用一個現實的例子來說明它。
原文在這里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/](英文的)
????????假設你有許多小明同學一天內不同時段的照片,從小明提褲子起床到脫褲子睡覺各個時間段都有(小明是照片控!)。現在的任務是對這些照片進行分類。比如有的照片是吃飯,那就給它打上吃飯的標簽;有的照片是跑步時拍的,那就打上跑步的標簽;有的照片是開會時拍的,那就打上開會的標簽。問題來了,你準備怎么干?
一個簡單直觀的辦法就是,不管這些照片之間的時間順序,想辦法訓練出一個多元分類器。就是用一些打好標簽的照片作為訓練數據,訓練出一個模型,直接根據照片的特征來分類。例如,如果照片是早上6:00拍的,且畫面是黑暗的,那就給它打上睡覺的標簽;如果照片上有車,那就給它打上開車的標簽。
這樣可行嗎?
乍一看可以!但實際上,由于我們忽略了這些照片之間的時間順序這一重要信息,我們的分類器會有缺陷的。舉個例子,假如有一張小明閉著嘴的照片,怎么分類?顯然難以直接判斷,需要參考閉嘴之前的照片,如果之前的照片顯示小明在吃飯,那這個閉嘴的照片很可能是小明在咀嚼食物準備下咽,可以給它打上吃飯的標簽;如果之前的照片顯示小明在唱歌,那這個閉嘴的照片很可能是小明唱歌瞬間的抓拍,可以給它打上唱歌的標簽。
所以,為了讓我們的分類器能夠有更好的表現,在為一張照片分類時,我們必須將與它相鄰的照片的標簽信息考慮進來。這——就是條件隨機場(CRF)大顯身手的地方!
????????1.1啥是詞性標注問題?
非常簡單的,就是給一個句子中的每個單詞注明詞性。比如這句話:“Bob drank coffee at Starbucks”,注明每個單詞的詞性后是這樣的:“Bob (名詞) drank(動詞) coffee(名詞) at(介詞) Starbucks(名詞)”。
下面,就用條件隨機場來解決這個問題。
以上面的話為例,有5個單詞,我們將:(名詞,動詞,名詞,介詞,名詞)作為一個標注序列,稱為l,可選的標注序列有很多種,比如l還可以是這樣:(名詞,動詞,動詞,介詞,名詞),我們要在這么多的可選標注序列中,挑選出一個最靠譜的作為我們對這句話的標注。
怎么判斷一個標注序列靠譜不靠譜呢?
就我們上面展示的兩個標注序列來說,第二個顯然不如第一個靠譜,因為它把第二、第三個單詞都標注成了動詞,動詞后面接動詞,這在一個句子中通常是說不通的。
假如我們給每一個標注序列打分,打分越高代表這個標注序列越靠譜,我們至少可以說,凡是標注中出現了動詞后面還是動詞的標注序列,要給它負分!!
上面所說的動詞后面還是動詞就是一個特征函數,我們可以定義一個特征函數集合,用這個特征函數集合來為一個標注序列打分,并據此選出最靠譜的標注序列。也就是說,每一個特征函數都可以用來為一個標注序列評分,把集合中所有特征函數對同一個標注序列的評分綜合起來,就是這個標注序列最終的評分值
????????1.2?機器學習中的生產模型與判別模型
有監督機器學習方法可以分為生成方法和判別方法:
1)生產式模型:直接對聯合分布進行建模,如:混合高斯模型、隱馬爾科夫模型、馬爾科夫隨機場等
2)判別式模型:對條件分布進行建模,如:條件隨機場、支持向量機、邏輯回歸等。
生成模型優缺點介紹:
優點:
1)生成給出的是聯合分布,不僅能夠由聯合分布計算條件分布(反之則不行),還可以給出其他信息。如果一個輸入樣本的邊緣分布很小的話,那么可以認為學習出的這個模型可能不太適合對這個樣本進行分類,分類效果可能會不好。
2)生成模型收斂速度比較快,即當樣本數量較多時,生成模型能更快地收斂于真實模型。
3)生成模型能夠應付存在隱變量的情況,比如混合高斯模型就是含有隱變量的生成方法。
缺點:
1)天下沒有免費午餐,聯合分布是能提供更多的信息,但也需要更多的樣本和更多計算,尤其是為了更準確估計類別條件分布,需要增加樣本的數目,而且類別條件概率的許多信息是我們做分類用不到,因而如果我們只需要做分類任務,就浪費了計算資源。
2)另外,實踐中多數情況下判別模型效果更好。
判別模型優缺點介紹:
優點:
1)與生成模型缺點對應,首先是節省計算資源,另外,需要的樣本數量也少于生成模型。
2)準確率往往較生成模型高。
3)由于直接學習,而不需要求解類別條件概率,所以允許我們對輸入進行抽象(比如降維、構造等),從而能夠簡化學習問題。
缺點:
1)是沒有生成模型的上述優點。
---------------------------------------------------------------------------------------------------------------------------------
二,基于自然語言處理理解
1 條件隨機場(Condition Random Fields),簡稱CRFs
條件隨機場概念:條件隨機場就是對給定的輸出標識序列Y和觀察序列X,條件隨機場通過定義條件概率P(X|Y),而不是聯合概率分布P(X,Y)來描述模型。
概念解析:
標注一篇文章中的句子,即語句標注,使用標注方法BIO標注,B代表句子的開始,I代表句子中間,O代表句子結束。則觀察序列X就是一個語料庫(此處假設一篇文章,x代表文章中的每一句,X是x的集合),標識序列Y是BIO,即對應X序列的識別,從而可以根據條件概率P(標注|句子),推測出正確的句子標注,顯然,這里針對的是序列狀態,即CRF是用來標注或劃分序列結構數據的概率化結構模型,其在自然語言處理和圖像處理領域得到廣泛的應用,CRF可以看作無向圖模型或者馬爾科夫隨機場。
2 條件隨機場的形式化表示
?設G=(V,E)為一個無向圖,V為結點的集合,E為無向邊的集合,,即V中的每個結點對應一個隨機變量Yv,其取值范圍為可能的標記集合{Y}.如果觀察序列X為條件,每一個隨機變量 都滿足以下馬爾科夫特性:,其中,w – v表示兩個結點在圖G中是鄰近結點,那么,(X,Y)為條件隨機變量。
以語句識別的案例理解條件隨機場的形式化表示。
G=(V,E表示識別語句:【我愛中國】的標注是一個無向圖,X我觀察序列,Y為標注序列,V是每個標注狀態的結點,E的無向邊,邊上的權值為概率值。表示每個X的Y的標注,如:X1:我,y1:O,y2:I,y3:B;取值范圍,而中w—v表示我與愛是相鄰的結點,這樣的(X,Y)為一個條件隨機場,真正的標注再采用Viterbi算法,如:
尋求最大概率即,記錄下我的標注路徑,同理可知:
?
如上便是對條件隨機場與Viterbi算法的綜合運用,其中Viterbi標注問題本質是隱馬爾科夫模型三大問題之解碼問題算法模型,具體參考(揭秘馬爾科夫模型系列文章)
3 深度理解條件隨機場
理論上標記序列描述一定條件的獨立性,G圖結構任意的,對序列進行建模可形成最簡單,最普通的鏈式結構圖,結點對應標記序列X中元素,CRF鏈式圖如下:
?
如上圖兩種表示是一致的,其中圖鏈式句子標注是圖鏈式2的實例化,讀者可能問為什么上面圖是這種而不是廣義的圖,這是因為觀察序列X的元素之間并不存在圖結構,沒有做獨立性假設,這點也非常容易理解,諸如圖中,我愛中國,其中b表示反射概率而t是轉移概率,線上的數值表示權值即概率值。如圖3,我的發射概率0.7,我到愛的轉移概率0.5,通俗講,我和愛兩個字是有關聯的,并非獨立的。
4 公式化表示條件隨機場
在給定的觀察序列X時,某個待定標記序列Y的概率可以定義為
其中是轉移概率,是狀態函數,表示觀察序列X其中i的位置的標記概率,和分別是t和s的權重,需要從訓練樣本中估計出來。
實例解析:
我愛中國,其中x2是愛字,表示在觀察狀態2中,我到愛的轉移概率,其中j∈{B,I,O},可知的生成概率或者發射概率的特征函數.觀察序列{0,1}二值特征b(x,i)來表示訓練樣本中某些分布特征,其中采用{0,1}二值特征即符合條件標為1,反之為0;
為了便于描述,可以將狀態函數書寫以下形式:
?
特征函數:
?
其中每個局部特征表示狀態特征,或者專業函數,由此條件隨機場的定義條件概率如下:
,
其中分母為歸一化因子:
?
5?本節總結
條件隨機場模型也需要解決三個基本問題:特征的選擇,參數訓練和解碼。其中參數訓練過程在訓練數據集上基于對數似然函數最大化進行。
CRF優點:相對于HMM,CRF主要優點是它的條件隨機性,只需要考慮當前出現的觀察狀態的特性,沒有獨立性嚴格要求,CRF具有MEMM一切優點。
CRF與MEMM區別:
MEMM:使用每一個狀態的指數模型來計算給定前一個狀態下當前狀態的條件概率。
CRF:用單個指數模型計算給定觀察序列與整個標記序列聯合概率。
《統計自然語言處理》P128頁有關于隨機場模型的實現工具。
摘自【NLP】基于自然語言處理角度談談CRF(二) - 伏草惟存 - 博客園 (cnblogs.com)
------------------------------------------------------------------------------------------------------------------------------
三,基于機器學習理解 條件隨機場(可以看作給定觀察值的馬爾科隨機場)
CRF是一種判別式無向圖模型
CRF試圖對多個變量在給定觀測值后的條件概率進行建模,具體來說,若令為觀察序列,為與之對應的標記序列,則CRF的目標是構建條件概率模型P(Y|X)。
注意:標記變量y是結構型變量,如在自然語言處理的句子標注任務中,觀測數據為句子,標記為相應的詞性序列,具有線性序列結構,在語法分析中,輸出標記是語法樹,具有樹形結構。
令G=<V,E>表示結點與標記變量y中元素一一對應的無向圖,表示與結點v對應標記變量,n(v)表示結點v的領結點,若圖G的每一個變量 都滿足馬爾科夫性,即
?,則(y,x)構成一個CRF。
上面形式化在第二章已經通過實例解析介紹過。
2 鏈式條件隨機場
如上面句子標注,因為現象應用中,對標記序列建模時,常有鏈式結構(具體鏈式結構前面有介紹)
與馬爾科夫隨機場定義聯合概率概率的方式類似,CRF使用勢函數和圖結構上的團來定義條件概率P(y|x)給定觀察序列X,所謂團即單個標記變量{}以及相鄰標記變量選擇合適的勢函數,即形如:
的條件概率定義,其中與Q對應的勢函數,為規范因子,實際中,往往Z不需要獲得精確值。
在CRF中,通過選用勢函數并引入特征函數,條件概率定義如下:
如上參數在第二章有詳細講解。
特征函數:
句子標注為例的轉移特征函數
表示第i個觀察值為“愛”時,相對的標記分別是B,I,其狀態特征函數如下:
?
表示觀察值x為單字“愛”時,它對應的標注很可能為I
3?參考文獻
【1】?數學之美?吳軍?著
【2】?機器學習??周志華?著
【3】?統計自然語言處理 宗成慶 著(第二版)
【4】?統計學習方法(191---208) 李航
【5】?知乎?網絡資源
沖
4?自然語言相關系列文章
【自然語言處理】:【NLP】揭秘馬爾可夫模型神秘面紗系列文章
【自然語言處理】:【NLP】大數據之行,始于足下:談談語料庫知多少
【自然語言處理】:【NLP】驀然回首:談談學習模型的評估系列文章
【自然語言處理】:【NLP】快速了解什么是自然語言處理
【自然語言處理】:【NLP】自然語言處理在現實生活中運用
摘自【NLP】基于機器學習角度談談CRF(三) - 伏草惟存 - 博客園 (cnblogs.com)
總結
以上是生活随笔為你收集整理的学习笔记——条件随机场(基于自然语言和机器学习理解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis集群搭建及java连接redi
- 下一篇: win10彻底禁用wsappx的方法