CRAAP測試是什么,NLP硬核入門-條件隨機場CRF

 2023-12-09 阅读 24 评论 0

摘要:點擊上方,選擇星標或置頂,每天給你送干貨!閱讀大概需要12分鐘跟隨小博主,每天進步一丟丟來自:數論遺珠? 本文需要的前序知識儲備是:隱馬爾科夫模型HMM。CRAAP測試是什么、? ? 鏈接:NLP硬核入門-隱馬爾科夫模型HMM? ? 實際上

點擊上方,選擇星標置頂,每天給你送干貨

閱讀大概需要12分鐘

跟隨小博主,每天進步一丟丟

來自:數論遺珠

? 本文需要的前序知識儲備是:隱馬爾科夫模型HMM

CRAAP測試是什么、? ? 鏈接:NLP硬核入門-隱馬爾科夫模型HMM

? ? 實際上HMM和CRF的學習沒有先后順序。但是兩者很相似,在學習了HMM后更容易上手CRF,所以建議先學習HMM后學習CRF

1 CRF概述

1.1隨機場的定義

在這一小節,我們將會由泛化到特例,依次介紹隨機場、馬爾科夫隨機場、條件隨機場、線性鏈條件隨機場的概念。

crf條件隨機場?(1)隨機場是一個圖模型,是由若干個結點(隨機變量)和邊(依賴關系)組成的圖模型,當給每一個結點按照某種分布隨機賦予一個值之后,其全體就叫做隨機場。

(2)馬爾科夫隨機場是隨機場的特例,它假設隨機場中任意一個結點的賦值,僅僅和它的鄰結點的取值有關,和不相鄰的結點的取值無關。用學術語言表示是:滿足成對、局部或全局馬爾科夫性。

(3)條件隨機場CRF是馬爾科夫隨機場的特例,它假設模型中只有X(輸入變量,觀測值)和Y(輸出變量,狀態值)兩種變量。輸出變量Y構成馬爾可夫隨機場,輸入變量X不具有馬爾科夫性。

條件隨機場原理詳解,(4)線性鏈條件隨機場,是狀態序列是線性鏈的條件隨機場。

注1:馬爾科夫性:隨機過程中某事件的發生只取決于它的上一事件,是“無記憶”過程。

?

任務態fMRI。我們的應用領域是NLP,所以本文只針對線性鏈條件隨機場進行討論。

線性鏈條件隨機場有以下性質:

(1)對于狀態序列y,y的值只與相鄰的y有關系,體現馬爾科夫性。

(2)任意位置的y與所有位置的x都有關系。

(3)我們研究的線性鏈條件隨機場,假設狀態序列Y和觀測序列X有相同的結構,但是實際上后文公式的推導,對于狀態序列Y和觀測序列X結構不同的條件隨機場也適用。

(4)觀測序列X是作為一個整體,去影響狀態序列Y的值,而不是只影響相同或鄰近位置(時刻)的Y。

(5)線性鏈條件隨機場的示意圖如下:

注二:李航老師的《統計學習方法》里,使用了兩種示意圖來描述線性鏈條件隨機場,一種是上文所呈現的,這張圖更能夠體現性質(4),另一種如下圖,關注點是X和Y同結構:

?

1.2CRF的應用

線性鏈條件隨機場CRF是在給定一組隨機變量X(觀測值)的條件下,獲取另一組隨機變量Y(狀態值)的條件概率分布模型。在NLP領域,線性鏈條件隨機場被廣泛用于標注任務(NER、分詞等)。

?

1.3 構建CRF的思路(重要)

我們先給出構建CRF模型的核心思路,現在暫不需要讀懂這些思路的本質思想,但是我們要帶著這些思路去閱讀后續的內容。

(1)CRF是判別模型,是黑箱模型,不關心概率分布情況,只關心輸出結果。

(2)CRF最重要的工作,是提取特征,構建特征函數

(3)CRF使用特征函數給不同的標注網絡打分,根據分數選出可能性最高的標注網絡。

(4)CRF模型的計算過程,使用的是以e為底的指數。這個建模思路和深度學習輸出層的softmax是一致的。先計算各個可能情況的分數,再進行softmax歸一化操作

?

?

2 CRF模型的概率計算

(對數學公式推導沒興趣的童鞋,只需要看2.1和2.2

2.1 標記符號和參數

先約定一下CRF的標記符號:

觀測值序列:?

狀態值序列:?

轉移(共現)特征函數及其權重:?

狀態(發射)特征函數及其權重:?

簡化后的特征函數及其權重:?

特征函數t的下標:k1

特征函數s的下標:k2

簡化后的特征函數f的下標:k

?

2.2 一個栗子

在進行公式推導前,我們先通過一個直觀的例子,初步了解下CRF。

例:輸入觀測序列為X=(x1,x2,x3),輸出狀態序列為Y=(y1,y2,y3),狀態值集合為{1,2}。在已知觀測序列后,得到的特征函數如下。求狀態序列為Y=(y1,y2,y3)=(1,2,2)的非規范化條件概率。

解:參照狀態序列取值和特征函數定義,可得特征函數t1,t5,s1,s2,s4取值為1,其余特征函數取值為0。乘上權重后,可得狀態序列(1,2,2)的非規范化條件概率為:1+0.2+1+0.5+0.5=3.2

?

2.3特征函數

在這一小節,我們描述下特征函數,以及它的簡化形式和矩陣形式。

(1)線性鏈條件隨機場的原始參數化形式

分數:?

歸一化概率:?

其中,歸一項為:?

t為定義在邊上的特征函數,通常取值0或1,依賴于兩個相鄰結點的狀態,λ為其權重。t有時被稱為轉移特征,其實稱為共現特征更合適些。因為圖模型更強調位置關系而不是時序關系

s為定義在節點上的特征函數,通常取值0或1,依賴于單個結點的狀態,μ為其權重。s有時被稱為狀態特征。

要強調的是:CRF模型中涉及的條件概率,不是真實的概率,而是通過分值softmax歸一化成的概率。

?

(2)線性鏈條件隨機場的簡化形式

特征函數:?

權重:?

對特征函數在各個位置求和,將局部特征函數轉化為全局特征函數:?

歸一化概率:?

向量化:?

?

(3)線性鏈條件隨機場的矩陣形式

構建矩陣Mi(x)。位置i和觀測值序列x是矩陣的自變量。

矩陣的維度是m*m,m為狀態值y的集合的元素個數,矩陣的行表示的是位置i-1的狀態,矩陣的列表示的是位置i的狀態,矩陣各個位置的值表示位置i-1狀態和位置i狀態的共現分數,并以e為底取指數。

?

?

2.4 前向后向算法

(1)前向算法模型

(a)αi(yi=s|x)表示狀態序列y在位置i取值s,在位置1~i取值為任意值的可能性分數的非規范化概率。

定義:?

(b)遞歸公式:?

(c)人為定義:?

(d)歸一項:?

?

(2)后向算法模型

(a)βi(yi=s|x)表示狀態序列y在位置i取值s,在位置i+1~n取值為任意值的可能性分數的非規范化概率。

定義:?

(b)遞歸公式:?

(c)人為定義:?

(d)歸一化項:?

注:在前向算法和后向算法中,人為地定義了α(0)和β(n+1),采用的是李航老師書里的定義方法。但是,我認為采用先驗概率(類似HMM中的初始概率分布)或者全部定義成1更合適。因為這里的概率模型應該表現得更通用一點,而不要引入實際預測序列的第一項和最后一項的信息。

?

2.5 一些概率和期望的計算

(1)兩個常用的概率公式

狀態序列y,位置i的取值為特定值,其余位置為任意值的可能性分數的歸一化條件概率:?

狀態序列y,位置i-1,i的取值為特定值,其余位置為任意值的可能性分數的歸一化條件概率:?

(1)兩個常用的期望公式

特征函數f關于條件分布P(Y|X)的數學期望:?

特征函數f關于聯合分布P(X,Y)的數學期望:?

?

?

3 CRF模型的訓練和預測

3.1學習訓練問題

CRF模型采用正則化的極大似然估計最大化概率。

采用的最優化算法可以是:迭代尺度法IIS,梯度下降法,擬牛頓法。

相應的知識可以通過最優化方法的資料進行學習,本文篇幅有限,就不作展開了。

?

3.2預測解碼問題

和HMM完全一樣,采用維特比算法進行預測解碼,這里不作展開。

?

?

4 CRF的優缺點(重要)

4.1CRF相對于HMM的優點

(1)規避了馬爾科夫性(有限歷史性),能夠獲取長文本的遠距離依賴的信息。

(2)規避了齊次性,模型能夠獲取序列的位置信息,并且序列的位置信息會影響預測出的狀態序列。

(3)規避了觀測獨立性,觀測值之間的相關性信息能夠被提取。

(4)不是單向圖,而是無向圖,能夠充分提取上下文信息作為特征。

(5)改善了標記偏置LabelBias問題,因為CRF相對于HMM能夠更多地獲取序列的全局概率信息。

(6)CRF的思路是利用多個特征,對狀態序列進行預測。HMM的表現形式使他無法使用多個復雜特征。

?

4.2條件隨機場CRF的缺點

(1)CRF訓練代價大、復雜度高。

(2)每個特征的權重固定,特征函數只有0和1兩個取值。

(3)模型過于復雜,在海量數據的情況下,業界多用神經網絡。

(4)需要人為構造特征函數,特征工程對CRF模型的影響很大。

(5)轉移特征函數的自變量只涉及兩個相鄰位置,而CRF定義中的馬爾科夫性,應該涉及三個相鄰位置。

?

4.3標記偏置LabelBias

在HMM中的體現:對于某一時刻的任一狀態,當它向后一時進行狀態刻轉移時,會對轉移到的所有狀態的概率做歸一化,這是一種局部的歸一化。即使某個轉移概率特別高,其轉移概率也不超過1。即使某個轉移概率特別低,如果其它幾個轉移概率同樣低,那么歸一化后的轉移概率也不會接近0。

在CRF被規避的原因:CRF使用了全局的歸一化。在進行歸一化之前,使用分數來標記狀態路徑的可能性大小。待所有路徑所有位置的分數都計算完成后,再進行歸一化。某些某個狀態轉移的子路徑有很高的分數,會對整條路徑的概率產生很大的影響。

?

?

5 基于TensorFlow的BiLSTM-CRF

BiLSTM-CRF是當前用得比較廣泛的序列標注模型。

BiLSTM-CRF模型由BiLSTM和CRF兩個部分組成。

BiLSTM使用的是分類任務的配置,最終輸出一個標注好的序列。也就是說,即使沒有CRF,BiLSTM也能獨立完成標注任務。

CRF接收BiLSTM輸出的標注序列,進行計算,最后輸出修正后的標注序列。

TensorFlow提供了CRF的開發包,路徑為:tf.contrib.crf。需要強調的是,TensorFlow的CRF,提供的是一個嚴重簡化后的CRF,和原始CRF差異較大。雖然減小了模型復雜度,但是在準確率上也一定會有所損失。

下面簡要介紹下TensorFlow中CRF模塊的幾個關鍵函數。

(1)crf_log_likelihood

BiLSTM模塊輸出的序列,通過參數inputs輸入CRF模塊。

CRF模塊通過crf_sequence_score計算狀態序列可能性分數,通過crf_log_norm計算歸一化項。

最后返回log_likelihood對數似然。

(2)crf_sequence_score

crf_sequence_score通過crf_unary_score計算狀態特征分數,通過crf_binary_score計算共現特征分數。

(3)crf_unary_score

crf_unary_score利用掩碼的方式,計算得出一個類似交叉熵的值。

(4)crf_binary_score

crf_binary_score構造了一個共現矩陣transition_params,表示不同狀態共現的概率,這個矩陣是可訓練的。最后通過共現矩陣返回共現特征分數。

(5)crf_log_norm

歸一化項。

?

知乎文章地址:

https://zhuanlan.zhihu.com/p/87638630

由于微信公眾號文章有修改字數的限制,故本文后續的糾錯和更新將呈現在知乎的同名文章里。

?

參考文獻

[1]? 李航? 統計學習方法? 清華大學出版社

[2]? 條件隨機場CRF(一/二/三) ?劉建平Pinard? https://www.cnblogs.com/pinard/p/7048333.html

?

?


方便交流學習,備注:昵稱-學校(公司)-方向,進入DL&NLP交流群。

方向有很多:機器學習、深度學習,python,情感分析、意見挖掘、句法分析、機器翻譯、人機對話、知識圖譜、語音識別等。

記得備注呦

推薦閱讀:

【ACL 2019】騰訊AI Lab解讀三大前沿方向及20篇入選論文

【一分鐘論文】IJCAI2019 | Self-attentive Biaf?ne Dependency? Parsing

【一分鐘論文】 NAACL2019-使用感知句法詞表示的句法增強神經機器翻譯

【一分鐘論文】Semi-supervised Sequence Learning半監督序列學習

【一分鐘論文】Deep Biaffine Attention for Neural Dependency Parsing

詳解Transition-based Dependency parser基于轉移的依存句法解析器

經驗 | 初入NLP領域的一些小建議

學術 | 如何寫一篇合格的NLP論文

干貨?|?那些高產的學者都是怎樣工作的?

一個簡單有效的聯合模型

近年來NLP在法律領域的相關研究工作


讓更多的人知道你“在看”

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/193436.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息