1. 程式人生 > >【NLP】條件隨機場知識擴充套件延伸(五)

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

作者:白寧超

2016年8月3日19:47:55

【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理、機器學習、統計學習方法和部分網上資料對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的中文命名實體識別效率如何?

主要介紹三種主流演算法,CRF,字典法和混合方法。
CRF
用過CRF的都知道,CRF是一個序列標註模型,指的是把一個詞序列的每個詞打上一個標記。一般通過,在詞的左右開一個小視窗,根據窗口裡面的詞,和待標註詞語來實現特徵模板的提取。最後通過特徵的組合決定需要打的tag是什麼。
而在CRF for Chinese NER這個任務中,提取的特徵大多是該詞是否為中國人名姓氏用字,該詞是否為中國人名名字用字之類的,True or false的特徵。所以一個可靠的百家姓的表就十分重要啦~在國內學者做的諸多實驗中,效果最好的人名可以F1測度達到90%,最差的機構名達到85%

字典法:
字典法需要掌握的是一種快速搜尋演算法trie-tree,我相信很多人應該對這個演算法已經有所瞭解。在NER中就是把每個字都當開頭的字放到trie-tree中查一遍,查到了就是NE。中文的trie-tree需要進行雜湊,因為中文字元太多了,不像英文就26個。
混合法:
對六類不同的命名實體採取不一樣的手段進行處理,例如對於人名,進行字級別的條件概率計算。
例如我們需要算
其中Sur代表中國人姓氏,Dgb代表中國人名首字,Dge代表中國人名尾字。
而機構則在詞級別進行此概率計算。
我知道的系統有:
中文


英文:
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條件隨機知識擴充套件延伸

作者:白寧超 2016年8月3日19:47:55 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

原始碼條件隨機訓練的非均勻隨機平均梯度法

我們應用隨機平均梯度(SAG)演算法訓練條件隨機場(CRFs)。 We apply stochastic average gradient (SAG)algorithms for training conditional random fields (CR

NLP基於機器學習角度談談CRF

作者:白寧超 2016年8月3日08:39:14 【摘要】:條件隨機場用於序列標註,資料分割等自然語言處理中,表現出很好的效果。在中文分詞、中文人名識別和歧義消解等任務中都有應用。本文源於筆者做語句識別序列標註過程中,對條件隨機場的瞭解,逐步研究基於自然語言處理方面的應用。成文主要源於自然語言處理

ShiroApache Shiro架構之身份認證Authentication

trac pretty asm 安全保障 軟件測試 釋放 model tac 讀取配置文件 Shiro系列文章: 【Shiro】Apache Shiro架構之權限認證(Authorization) 【Shiro】Apache Shiro架構之集成web

整理軟件工程復習提綱維護

評價 描述 nbsp 參考 操作 text 吸引 復習 組織 章魚小年糕整理,如果有錯誤歡迎提出,若要二次修改發布,請留言,謝謝^_^! 概念 軟件維護:軟件在已經交付使用之後,為了改正錯誤或滿足新的需求修改軟件的過程。 文檔:有關計算機程序功能、設計、編制、使用的文字或圖

fetch跨域請求附帶cookiecredentials

allow src ssi ann oct o-c ech .com 頭部 HTTP訪問控制 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 解決跨域的方式有很多種,本文介紹“跨域請

gulp前端自動化工具---gulp的使用------凡塵

app 一起 dex 前端自動化 指定 sass css 文件的 等待 什麽是gulp? 基於node的自動化構建工具 擴展:開發的時候分為2個節點一個是開發階段 另一個是部署階段 開發階段:源文件不會被壓縮

201803122018年03月12日隨想

post 而是 有一個 然而 clas OS you pos 一個 今天有一個熱點事件,在幾個群裏都有提及。 我以為是假的。沒想到是真的。果然還是太young了。 總結: 有的事,你認為是假的,它是真的。比如今天的焦點事件。 有的事,你認為一定是假的,偏偏是真

PAT1135Is It A Red-Black Tree30

earch represent uno nbsp pac ber key strong 節點 There is a kind of balanced binary search tree named red-black tree in the data structure.

Spring Boot幹貨系列:啟動原理解析

無法 time exp 記得 started 打印 ping 正文 exclude 前言 前面幾章我們見識了SpringBoot為我們做的自動配置,確實方便快捷,但是對於新手來說,如果不大懂SpringBoot內部啟動原理,以後難免會吃虧。所以這次博主就跟你們一起一步步揭開

題解 bzoj1503: [NOI2004]郁悶的出納員 Splay

+= 地方 namespace 父親 noi down har str i++ bzoj1503,懶得復制,戳我戳我 Solution: 我知不知道我是那根筋抽了突然來做splay,調了起碼\(3h+\),到第二天才改出來(我好菜啊),當做訓練調錯吧 一個裸的splay,

linuxlinux 環境下 安裝禪道轉載 -- 跟web服務器無關,無視apache、nginx!!!

sdn php 修改 鏈接 net 壓縮 操作 tps 數據庫 參考文章 鏈接 :https://blog.csdn.net/xinxin19881112/article/details/46813991 講的非常完美、透徹,不像其他的文章,都是抄襲的,沒一點註意事項和自己

BZOJ2342: [Shoi2011]雙倍回文Manacher

manacher con spa 滿足 ans gin pac -i 代碼 題目 傳送門:QWQ 分析 (sb如我寫了發不知道什麽東西在洛谷上竟然水了84分 嗯咳 設$ i $為雙重回文的中心 如果$ j~i $ 可以被算作答案,只有滿足如下兩式

Verilog學習筆記簡單功能實現...............異步FIFO

另一個 gif 多個 可靠 基本原理 drs bar next 不同 基本原理: 1.讀寫指針的工作原理   寫指針:總是指向下一個將要被寫入的單元,復位時,指向第1個單元(編號為0)。   讀指針:總是指向當前要被讀出的數據,復位時,指向第1個單元(編號為0)

CodeforcesCF 467 C George and Jobdp

++ clas show mes ces -m col scanf tro 題目 傳送門:QWQ 分析 dp基礎題。 $ dp[i][j] $表示前i個數分成j組的最大和。 轉移顯然。 吐槽:做cf題全靠洛谷翻譯茍活。 代碼 1

Luogu 4777 模板擴展中國剩余定理EXCRT

name space return 同余 pan 自己 pre 圖片 是把 復習模板。 兩兩合並同余方程 $x\equiv C_{1} \ (Mod\ P_{1})$ $x\equiv C_{2} \ (Mod\ P_{2})$ 把它寫成不定方程的形式: $x =

BZOJ2563阿貍和桃子的遊戲貪心

include etc printf define += 桃子 space main efi 【BZOJ2563】阿貍和桃子的遊戲(貪心) 題面 BZOJ 題解 邊權平均分給兩個點就好了。 #include<iostream> #include<cstdi

BZOJ4391[Usaco2015 dec]High Card Low Card貪心

pac 前綴 ble cstring cst getc getch end != 【BZOJ4391】[Usaco2015 dec]High Card Low Card(貪心) 題面 BZOJ 題解 預處理前綴後綴的結果,中間找個地方合並就好了。 #include<i

LUOGU P4777 模板擴展中國剩余定理EXCRT

img lib display begin n) scan %d pen class 傳送門 解題思路 擴展 $crt?$,就是中國剩余定理在模數不互質的情況下,首先對於方程? $\begin{cases} x\equiv a_1\mod m_1\\x\equi

轉載基於rasa的對話系統搭建

生成模型 efi 實體類 total ted twisted -m serve feature 文章介紹使用rasa nlu和 rasa core 實現一個電信領域對話系統demo,實現簡單的業務查詢辦理功能,更完善的實現需要