【NLP】條件隨機場知識擴展延伸(五)


條件隨機場知識擴展延伸

作者:白寧超

2016年8月3日19:47:55

【摘要】:條件隨機場用於序列標注,數據分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標注過程中,對條件隨機場的了解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對CRF介紹的相關的相關,最后進行大量研究整理匯總成體系知識。文章布局如下:第一節介紹CRF相關的基礎統計知識;第二節介紹基於自然語言角度的CRF介紹;第三節基於機器學習角度對CRF介紹,第四節基於統計學習角度對相關知識介紹;第五節對統計學習深度介紹CRF,可以作為了解內容。(本文原創,轉載請注明出處條件隨機場知識擴展延伸。)

目錄


【自然語言處理:漫步條件隨機場系列文章(一)】:前戲:一起走進條件隨機場

【自然語言處理:漫步條件隨機場系列文章(二)】:基於自然語言處理角度談談CRF

【自然語言處理:漫步條件隨機場系列文章(三)】:基於機器學習角度談談CRF

【自然語言處理:漫步條件隨機場系列文章(四)】:基於統計學習角度談談CRF

【自然語言處理:漫步條件隨機場系列文章(五)】:條件隨機場知識擴展延伸

1 隨機場的矩陣形式


矩陣表示形式前提條件:假設P(y|x)是線性鏈條件隨機場,給定觀測序列x,相應的標記序列y的條件概率。引進特殊的起點和終點狀態標記y0 = start,yn+1 = stop,這時Pw(y|x) 可以通過矩陣形式表示。(實際上,特殊點的引用大家都有接觸,諸如學習隱含馬爾科夫模型中向前算法解決了似然度問題,viterbi算法解決解碼問題,向前向后算法解決學習參數。

對觀測序列x的每一個位置i=1, 2,..., n+1,定義一個m階矩陣(m是標記yi取值的個數)

                                 

這樣給定觀測序列x,標記序列y的非規范化概率可以通過n+1個矩陣的乘積

              

表示。於是,條件概率Pw(y|x)是

 

中,Zw(x)為規范化因子,是n+1個矩陣的乘積的(start,stop)元素:

注意,y0= start,yn+1 = stop表示開始狀態與終止狀態,規范化因子Zw(x)是以start為起點stop為重點通過狀態的所有路徑y1y2...yn的非規范化概率

          

之和。

下面通過一個例子來說明“范化因子Zw(x)是以start為起點stop為重點通過狀態的所有路徑y1y2...yn的非規范化概率之和”這個事實

實例解析

              

給定一個如上圖所示的線性鏈條件隨機場,觀測序列x,狀態序列y,i=1,2,3,n=3,標記yi∈{1,2},假設y0=start=1,y4=stop=1,各個位置的隨機矩陣M1(x),M2(x),M3(x),M4(x)分別是

              

試求狀態序列y以start為起點stop為終點所有路徑的非規范化概率及規范化因子。

實例解答:

從start到stop對應於y=(1,1,1),y=(1,1,2), ..., y=(2,2,2)個路徑的非規范化概率分別是:

                            a01b11c11,a01b11c12,a01b12c21,a01b12c22

                            a02b21c11,a01b21c12,a02b22c21,a02b22c22

然后按式11.12求規范化因子,通過計算矩陣乘積M1(x) M2(x) M3(x) M4(x)可知,其第一行第一列的元素為a01b11c11+ a01b11c12 + a01b12c21+ a01b12c22+a02b21c11 + a01b21c12+ a02b22c21 + a02b22c22,恰好等於從start到stop的所有路徑的非規范化概率之和,即規范化因子Z(x)。

在之前的介紹中我們已近知道,條件隨機場的概率計算問題是給定條件隨機場P(Y|X),輸入序列x和輸出序列y,計算條件概率P(Yi=yi | x),P(Yi-1 =yi-1, Yi=yi | x)以及相應數學期望的問題。為了方便起見,像隱馬爾可夫模型那樣,引進前向-后向向量,遞歸的計算以上概率及期望值。這樣的算法稱為前向-后向算法。

2 前向-后向算法


對每個指標i =0,1,...,n+1,定義前向向量ai(x):

    

遞推公式為

          

又可表示為

       

ai(yi|x)表示在位置i的標記是yi並且到位置i的前部分標記序列的非規范化概率,若yi可取的值有m個,那ai(x)就是m維的列向量。同樣,對每個指標i =0,1,...,n+1,定義后向向量βi(x):

            

又可表示為

               

βi(yi|x)表示在位置i的標記為yi並且從i+1到n的后部分標記序列的非規范化的概率。

由前向-后向定義不難得到:

           

這里,若ai(x)是m維的列向量,那1就是元素均為1的m維列向量。

概率計算

按照前向-后向向量的定義,很容易計算標記序列在位置i是標記yi的條件概率和在位置i-1與i是標記yi-1和yi的條件概率:

其中,   Z(x)= anT(x)·1

 期望值計算

利用前向-后向向量,可以計算特征函數關於聯合分布P(X, Y)和條件分布P(Y | X)的數學期望。特征函數fk關於條件分布P(Y |X)的數學期望是

其中,Z(x)= anT(x)·1

則特征函數fk關於聯合分布P(X, Y)的數學期望是

    

其中, Z(x)= anT(x)·1

特征函數數學期望的一般計算公式。對於轉移貼紙tk(yi-1, yi, x, i),k=1,2,...,K1,可以將式中的fk換成tk;對於狀態特征,可以將式中的fk換成si,表示sl(yi, x, i),k = K1 +1,l = 1,2,...,K2有了式11.32 ~11.35,對於給定的觀測序列x和標記序列y,可以通過一次前向掃描計算ai及Z(x),通過一次后向掃描計算βi,從而計算所有的概率和特征的期望。

 3 CRF的學習算法


條件隨機場模型實際上是定義在時序數據上的對數線性模型,其學習方法包括極大似然估計和正則化的極大似然估計。

具體的優化實現算法有改進的迭代尺度法IIS、梯度下降法以及擬牛頓法。

1)進的迭代尺度法(IIS)

已知訓練數據集,由此可知經驗概率分布

  

可以通過極大化訓練數據的對數似然函數來求模型參數。訓練數據的對數似然函數為

  

當Pw是一個由

給出的條件隨機場模型時,對數似然函數為

              

IIS通過迭代的方法不斷優化對數似然函數改變量的下界,達到極大化對數似然函數的目的。

假設模型的當前參數向量為w=(w1,w2, ..., wK)T,向量的增量為δ=(δ1,δ2, ..., δK)T,更新參數向量為w +δ=(w1+δ1, w2 +δ2, ..., wk+δk)T。在每步迭代過程中,IIS通過一次求解下面的11.36和11.37,得到δ=(δ1,δ2, ..., δK)T關於轉移特征tk的更新方程為:

關於狀態特征sl的更新方程為:

這里T(x, y)是在數據(x, y)中出現所有特征數的綜合:

         

於是算法整理如下。

算法:條件隨機場模型學習的改進的迭代尺度法

輸入:特征函數t1,t2, ..., tK1,s1, s2, ..., sK2;經驗分布

輸出:參數估計值  ;模型 。

過程

2)擬牛頓法

對於條件隨機場模型

 

學習的優化目標函數是

其梯度函數是

 

擬牛頓法的BFGS算法如下:算法:條件隨機場模型學習的BFGS算法

4 基於條件隨機場CRF的中文命名實體識別效率如何?


【知乎】北京航空航天大學 計算機專業博士在讀33 人贊同
大致命名實體識別的方法可以可以分為四個大類型:
有監督學習方法:
HMM http://www.nlpr.labs.gov.cn/2005papers/gjhy/gh71.pdf
SVM Biomedical named entity recognition using two-phase model based on SVMs
CRF http://psb.stanford.edu/psb11/conference-materials/proceedings%201996-2010/psb08/leaman.pdf
當然還有決策樹最大熵等方法。基本每個模型都會在這個問題上試一遍的。
無監督學習方法:Unsupervised named-entity extraction from the Web: An experimental study
半監督學習方法:Minimally-supervised extraction of entities from text advertisements
混合方法:多種模型結合 Recognizing named entities in tweets

主要介紹三種主流算法,CRF,字典法和混合方法。
CRF
用過CRF的都知道,CRF是一個序列標注模型,指的是把一個詞序列的每個詞打上一個標記。一般通過,在詞的左右開一個小窗口,根據窗口里面的詞,和待標注詞語來實現特征模板的提取。最后通過特征的組合決定需要打的tag是什么。
而在CRF for Chinese NER這個任務中,提取的特征大多是該詞是否為中國人名姓氏用字,該詞是否為中國人名名字用字之類的,True or false的特征。所以一個可靠的百家姓的表就十分重要啦~在國內學者做的諸多實驗中,效果最好的人名可以F1測度達到90%,最差的機構名達到85%
基於條件隨機場的中文命名實體識別特征比較研究--《第四屆全國信息檢索與內容安全學術會議論文集(上)》2008年
字典法:
字典法需要掌握的是一種快速搜索算法trie-tree,我相信很多人應該對這個算法已經有所了解。在NER中就是把每個字都當開頭的字放到trie-tree中查一遍,查到了就是NE。中文的trie-tree需要進行哈希,因為中文字符太多了,不像英文就26個。
混合法:
對六類不同的命名實體采取不一樣的手段進行處理,例如對於人名,進行字級別的條件概率計算。
例如我們需要算
其中Sur代表中國人姓氏,Dgb代表中國人名首字,Dge代表中國人名尾字。
而機構則在詞級別進行此概率計算。
我知道的系統有:
中文
1、哈工大 語言雲(語言技術平台雲 LTP-Cloud)
2、上海交大 趙海 主頁 分詞 自然語言 計算語言學 機器學習
英文:
Stanford NER
BANNER(生物醫學)
Minor Third

5 條件隨機場(crf)是否可以將分類問題都當作序列標注問題解決?


知乎】標注看上去好像就是在序列上做分類。
然而實際上標注跟分類最大的區別就是:標注采的特征里面有上下文分類結果,這個結果你是不知道的,他在“分類”的時候是跟上下文一起"分類的"。因為你要確定這個詞的分類得先知道上一個詞的分類,所以這個得整句話的所有詞一起解,沒法一個詞一個詞解。
而分類是根據當前特征確定當前類別,分類的時候不需要考慮上下文的分類結果,但可以引入上下文的特征。
比如說命名實體識別,你采的特征如果是:{當前詞,當前詞性,當前詞語義角色,上一個詞,上一個詞的詞性}

那這樣跟分類沒有什么區別。如果你采的特征是:{當前詞,當前詞性,當前詞語義角色,上一個詞,上一個詞的標簽,上一個詞的詞性}

那就是序列標注了,

作者:趙孽
鏈接:http://www.zhihu.com/question/26405809/answer/74191113
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

6 參考文獻


【1】 數學之美 吳軍 著

【2】 機器學習  周志華 著

【3】 統計自然語言處理 宗成慶 著(第二版)

【4】 統計學習方法(191---208) 李航

【5】 知乎 網絡資源

7 然語言相關系列文章


【自然語言處理】:【NLP】揭秘馬爾可夫模型神秘面紗系列文章

【自然語言處理】:【NLP】大數據之行,始於足下:談談語料庫知多少

【自然語言處理】:【NLP】驀然回首:談談學習模型的評估系列文章

【自然語言處理】:【NLP】快速了解什么是自然語言處理

【自然語言處理】:【NLP】自然語言處理在現實生活中運用

聲明:關於此文各個篇章,本人采取梳理扼要,順暢通明的寫作手法。系統閱讀相關書目和資料總結梳理而成,旨在技術分享,知識沉淀。在此感謝原著無私的將其匯聚成書,才得以引薦學習之用。其次,本人水平有限,權作知識理解積累之用,難免主觀理解不當,造成讀者不便,基於此類情況,望讀者留言反饋,便於及時更正。本文原創,轉載請注明出處條件隨機場知識擴展延伸。 


免責聲明!

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



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