LSTM+CRF相關理論的知識的理解——學習筆記

      在做NLP算法工程師的時候,瞭解到了NER命名實體識別中LSTM+CRF是目前主流的方法,一直對CRF不是很理解,最近抽時間對CRF進行了較爲全面的學習。寫這篇博客特此記錄,以供後續複習,同時也加深自己對這些理論知識的理解。

目錄

一、聯合概率和條件概率的回顧

二、判別式模型和生成式模型

三、HMM隱馬爾科夫模型

四、CRF——條件隨機場


一、聯合概率和條件概率的回顧

聯合概率和條件概率是概率論裏面的兩個基本概念,這裏就對它們的公式和含義進行簡單的回顧。

以上就是聯合概率和條件概率知識的簡單整理,連續變量也是一樣的道理。接下來看看判別式模型和生成式模型。

二、判別式模型和生成式模型

說實話,以前在機器學習中看到過這兩個詞也瞭解過它們,但是並沒有引起重視。當時只是覺得了解機器學習算法模型的原理,應用調參,數據處理特徵工程和模型融合,應該差不多了。最近才發現必須得好好理解這兩個概念,纔會對這些算法模型瞭解的更深刻,同時也纔會對後面的概率圖CRF的理解有很大的幫助。

我個人認爲,從字面上能夠有一定的可鑑別性。判別式模型,可以直接用來進行判斷,得到結果;生成式模型則必須得經過一個生成的過程然後再才能進行判斷得到結果。看看具體的一些描述(添加公式功能出了Bug,那就上圖片。。。。。)——參考自判別式模型和產生式模型

簡而言之,判別式模型就是對自變量x和輸出y的條件概率P(y|x)做建模分析——x決定y;生成式模型則是對自變量x和因變量y的聯合概率做建模分析——y決定x。

最後對經常用到的一些算法模型做一個分類,從判別式和生成式的角度來說的:

判別式模型常用的有:

LR,SVM,NN(神經網絡),CRF,LDA——線性判別式,Boosting,迴歸樹

生成模型常用的有:

貝葉斯算法、HMM隱馬爾科夫模型、信念網絡、貝葉斯網絡、KNN、深度信念網絡、LDA——潛在狄利克雷分配、馬爾科夫隨機場

三、HMM隱馬爾科夫模型

隱馬爾可夫模型(Hidden Markov Model, HMM)是一種統計模型,在語音識別、行爲識別、NLP、故障診斷等領域具有高效的性能。

HMM是關於時序的概率模型,描述一個含有未知參數的馬爾可夫鏈所生成的不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。

HMM是一個雙重隨機過程---具有一定狀態的隱馬爾可夫鏈和隨機的觀測序列。

HMM隨機生成的狀態隨機序列被稱爲狀態序列;每個狀態生成一個觀測,由此產生的觀測隨機序列,被稱爲觀測序列。


 

思考:z1,z2...,zn是不可觀測的狀態,x1,x2,...xn是可觀測到的序列;不可觀測的狀態決定可觀則序列的值(z的取值決定X的取值);

1、在z1、z2 不可觀測的情況下,x1和z2獨立嗎?x1和x2獨立嗎?

回答:這個問題可以回顧之前的貝葉斯網絡來理解。
首先z1,z2都是離散的值,但x1的值可能是離散的也可能是連續的。比如z是天氣情況,每天天氣的改變是離散的。x是因爲天氣而改變的一些其他狀態,比如x=(地面是否潮溼、路上行人數量、雨傘銷售數量...);
在z1和z2不可觀測的情況下,x1和z2不獨立,x1和x2也是不獨立的。

2、 在z1、z2可觀測的情況下,x1和z2獨立嗎?x1和x2獨立嗎?

回答: 在z1和z2可觀測的情況下,因爲x1和z2的取值只和z1有關,所以就獨立了。同樣在給定了z1和z2的情況下,x1和x2也獨立。

HMM由隱含狀態S、可觀測狀態O、初始狀態概率矩陣π、隱含狀態轉移概率矩陣A、可觀測值轉移矩陣B(又稱爲混淆矩陣,Confusion Matrix);

π和A決定了狀態序列,B決定觀測序列,因此HMM可以使用三元符號表示,稱爲HMM的三元素:

S可以統計歷史出現的所有狀態;
初始概率分佈π,統計S中各個狀態各自出現的概率作爲我們的初始概率分佈π向量值;

HMM的兩個性質

p(it | .....) 表示在從t-1時刻的觀測值qt-1,一直到第1時刻觀測值q1的條件下,在第t時刻發生狀態的概率。

性質1: 最終分析結果發現,在第t時刻發生狀態的概率it只和t-1時刻有關。
性質2: 第t時刻的觀測值qt只和第t時刻的狀態it有關。

HMM模型用來解決什麼樣的問題呢?

1、概率計算問題

前向-後向算法 給定模型λ=(A,B,π)和觀測序列Q={q1,q2,...,qT},計算模型λ下觀測到序列Q出現的概率P(Q|λ);

2、學習問題

Baum-Welch算法(狀態未知) 已知觀測序列Q={q1,q2,...,qT},估計模型λ=(A,B,π)的參數——也就是參數λ是未知的,使得在該模型下觀測序列P(Q|λ)最大。

3、預測問題

Viterbi算法 給定模型λ=(A,B,π)和觀測序列Q={q1,q2,...,qT},求給定觀測序列條件概率P(I|Q,λ)最大的狀態序列I。

那麼關於HMM問題怎麼求解呢?

具體內容參考我轉載的博客:

1、馬爾科夫系列——一、隱馬爾可夫模型 - 馬爾可夫鏈、HMM參數和性質

2、馬爾科夫系列——二、隱馬爾可夫模型 - HMM的三個問題 - 概率計算問題

3、馬爾科夫系列——三、隱馬爾可夫模型 - 學習問題 - Baum-Welch算法

4、馬爾科夫系列——四、預測問題Viterbi算法、案例和代碼實現

以上就是HMM——隱馬爾科夫模型的知識點了。

四、CRF——條件隨機場

條件隨機場(Conditional Random Fields, 以下簡稱CRF)是給定一組輸入序列條件下另一組輸出序列的條件概率分佈模型。這裏的定義與HMM其實是很類似的,HMM也是解決這個問題的,但是CRF比HMM更加先進,它能解決HMM不能解決的問題。簡單的來說CRF捨棄掉了HMM有限歷史性的假設——當前觀測值與N個隱含狀態有關,同時CRF是判別式模型而HMM是生成式模型。下面來詳細說明條件隨機場。

隨機場:由若干個位置組成的整體,當給每一個位置中按照某種分佈隨機賦予一個值之後,其全體就叫做隨機場。舉詞性標註的例子:假如我們有一個十個詞形成的句子需要做詞性標註。這十個詞每個詞的詞性可以在我們已知的詞性集合(名詞,動詞...)中去選擇。當我們爲每個詞選擇完詞性後,這就形成了一個隨機場。

馬爾科夫隨機場:它是隨機場的一個特例——假設隨機場中某一個位置的賦值僅僅與和它相鄰的位置的賦值有關,和與其不相鄰的位置的賦值無關。上面的例子中我們假設所有詞的詞性只和它相鄰的詞的詞性有關時,這個隨機場就特化成一個馬爾科夫隨機場。

條件隨機場CRF:設X與Y是隨機變量,P(Y|X)是給定X時Y的條件概率分佈,若隨機變量Y構成的是一個馬爾科夫隨機場,則稱條件概率分佈P(Y|X)是條件隨機場。

對於X和Y有相同結構的CRF,我們稱之爲線性鏈條隨機場,如下,X和Y是相同的結構。

對於linear-CRF的數學定義:

設X=(X1,X2,...Xn),Y=(Y1,Y2,...Yn)X=(X1,X2,...Xn),Y=(Y1,Y2,...Yn)均爲線性鏈表示的隨機變量序列,在給定隨機變量序列X的情況下,隨機變量Y的條件概率分佈P(Y|X)構成條件隨機場,即滿足馬爾科夫性:

則稱P(Y|X)爲線性鏈條件隨機場。

線性鏈條件隨機場的參數化

在HMM中有狀態轉移概率和發射概率,類似的在CRF中也存在的。這裏就用特徵函數來定義它,一種是Y也就是狀態序列節點上的函數,這種特徵函數只和當前的節點有關,如下圖:

第二種就是定義在Y上下文的局部特徵函數,這個函數只是和當前節點以及上一個節點有關。

以上就是CRF的一些知識,最後CRF求解問題,也是和HMM類似有3個。。用的算法也是類似。

關於CRF的應用可以用來做標註任務,如詞性標註、NER等。目前主流的NER方案有LSTM+CRF和Bert+CRF

後面繼續學習怎麼使用CRF來做NER

另外推薦幾篇CRF講解的非常好的文章:

一文輕鬆搞懂-條件隨機場CRF

知乎上CRF的高贊回答

條件隨機場CRF系列

 

 

 

 

 

 

參考文章:

如何區分條件概率和聯合概率?

判別式模型和產生式模型

條件隨機場CRF(一)從隨機場到線性鏈條件隨機場

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章