訂閱
糾錯
加入自媒體

自然語言處理序列模型——HMM隱馬爾可夫模型

2022-04-13 16:28
51CTO
關(guān)注

在上一篇中主要講了對于文本語料的提取和預(yù)處理的過程,接下來就要進(jìn)入到核心步驟,即對于處理模型的掌握,處理模型這塊的篇幅會很長,對于不同的模型,其優(yōu)缺點各不相同,因此有必要對這一塊進(jìn)行一個全方面的掌握。

在深度學(xué)習(xí)技術(shù)還未應(yīng)用到自然語言處理領(lǐng)域中之前,在自然語言處理領(lǐng)域中最通用的模型都是基于概率統(tǒng)計的。而其中最為核心的模型就是HMM(隱馬爾可夫模型)。下面就讓本篇文章為讀者揭開HMM的面紗吧,提前說明,對于這一塊模型的掌握需要具備一定的概率論的基礎(chǔ)知識,對于這一塊內(nèi)容,本文不再作過多的贅述,因為大學(xué)本科的高數(shù)基本都包含了概率論這門課程。

1.概率模型

在掌握HMM模型之前,首先需要對概率模型進(jìn)行一個掌握。概率模型,顧名思義,就是將學(xué)習(xí)任務(wù)歸結(jié)到計算變量的概率分布的模型。針對于自然語言處理領(lǐng)域,即通過概率分布的形式來表達(dá)不同詞匯之間的關(guān)聯(lián)和區(qū)別。概率模型的提出是基于生活中一些觀察到的現(xiàn)象來推測和估計未知的事務(wù)這一任務(wù)的,在概率模型中這種推測和估計也叫推斷。推斷的本質(zhì)也就是利用已經(jīng)有的或者可觀測到的變量,來推測未知變量的條件分布。

1.1.生成模型和判別模型

目前概率模型又可以分為兩類,即生成模型和判別模型。由上文可知,概率模型是通過可觀測變量來推斷未知變量分布,因此為了更好的掌握生成模型和判別模型之間的差異,可以將可觀測的變量命名為X,而需要推斷的未知的變量命名為Y。那么對于生成模型,其需要學(xué)習(xí)的是X和Y之間的聯(lián)合概率分布P(X,Y),而判別模型學(xué)習(xí)的是條件概率分布P(Y|X)。而對于聯(lián)合概率分布和條件概率分布已經(jīng)是概率論的基礎(chǔ)理論知識,在這不再贅敘了,望不了解的讀者自行查閱。

對于這兩種不同概率分布的模型,其各自模型的能力不同。例如,對于某一個給定的觀測值X,運用條件概率分布P(Y|X),即可以很容易的得出未知Y的值(P(Y)=P(X)*P(Y|X))。因此對于分類問題,就可以直接運用判別模型,即觀測對于給定的X,得到的Y的概率哪一個最大,就可以判別為哪一個類別。因此判別模型更適用于分類任務(wù),其在分類任務(wù)上具備顯著的優(yōu)勢。而對于生成模型,直接用該模型來做分類任務(wù)是比較困難的,除非將聯(lián)合概率分布轉(zhuǎn)化為條件概率分布,即將生成模型轉(zhuǎn)化為判別模型去做分類任務(wù)。但是,生成模型主要并不是處理分類問題的,其有專門的用途,之后講的HMM就是一種生成模型,在這先賣個小關(guān)子。

1.2.概率圖模型

在掌握生成模型和判別模型的主要過程和任務(wù)之后,還需要對概率圖模型有個基本的掌握。它是一種用圖結(jié)構(gòu)作為表示工具,來表達(dá)變量之間的關(guān)系的概率模型。這里的圖與數(shù)據(jù)結(jié)構(gòu)中圖的結(jié)構(gòu)是類似的,即由節(jié)點和連接節(jié)點的邊組成。在概率圖模型中,一般會用節(jié)點來表示某一隨機變量,而節(jié)點之間的邊則表示不同變量之間的概率關(guān)系。同時類比于數(shù)據(jù)結(jié)構(gòu),邊也是分為有方向和無方向的,從而也就分為有向圖模型(貝葉斯網(wǎng)絡(luò))和無向圖模型(馬爾可夫網(wǎng))。雖然HMM的名字里有“馬爾可夫”,但是HMM模型是貝葉斯網(wǎng)絡(luò)的一種,在這里不要弄混淆了。

HMM是最為普遍的動態(tài)貝葉斯網(wǎng)絡(luò),即對變量序列建模的貝葉斯網(wǎng)絡(luò),屬于有向圖模型。為了后續(xù)HMM模型更好的理解,在這里先對馬爾可夫鏈進(jìn)行介紹,馬爾可夫鏈?zhǔn)且粋隨機過程模型,該模型描述了一系列可能的事件,而這一系列中的每一個事件的概率僅僅依賴于前一個事件。如下圖所示:

image.png

該圖就是一個簡單的馬爾可夫鏈,圖中的兩個節(jié)點就分別表示晴天和下雨兩個事件,圖中節(jié)點之間的邊就表示事件之間的轉(zhuǎn)移概率。即:晴天以后,有0.9的概率還是晴天,0.1的概率會下雨;而雨天以后,有0.4的概率是晴天,0.6的概率還會繼續(xù)下雨。因此這個模型對于今天天氣的預(yù)測,只與昨天天氣有關(guān),與前天以及更早的天氣無關(guān)。因此由馬爾可夫鏈可知,只要知道前一天的天氣,即可以推測今天的天氣的可能性了。

2.HMM——隱馬爾可夫模型

在掌握了概率模型的基礎(chǔ)上,進(jìn)一步去掌握HMM模型將會加深讀者對HMM這一模型的理解。HMM屬于概率模型的一種,即時序的概率模型。

2.1.序列模型

HMM是一個時序的概率模型,其中的變量分為狀態(tài)變量和觀測變量兩組,各自都是一個時間序列,每個狀態(tài)或者觀測值都和一個時刻相對應(yīng),如下圖所示(其中箭頭表示依賴關(guān)系):

image.png

上圖中,狀態(tài)變量分別為 , …… ,觀測變量分別為 , …… 。一般情況下,狀態(tài)序列都是隱藏的,也就是不能被觀測到的,所以狀態(tài)變量是隱變量,即HMM中的Hidden的緣由。其中這個隱藏的、不可觀測的狀態(tài)序列就是由一個馬爾可夫鏈隨機生成的,即HMM中的第一個M即馬爾可夫的含義。同時,一般的HMM的狀態(tài)變量取值都是離散的,觀測變量的取值可以是離散的,也可以是連續(xù)的。為了下文進(jìn)行方便地闡述,僅討論狀態(tài)變量和觀測變量都是離散的情況,并且這也是大多數(shù)應(yīng)用中出現(xiàn)的情況。

2.2.基本假設(shè)

HMM模型是建立在兩個基本假設(shè)之上的:

1. 假設(shè)隱藏的馬爾可夫鏈在任意時刻t的狀態(tài)只依賴于前一個時刻(t-1)的狀態(tài),而與其他時刻的狀態(tài)和觀測無關(guān),這一假設(shè)也叫齊次馬爾可夫假設(shè),公式表示為:

P( …… )= P( ),t=1,2,……k

2. 假設(shè)任意時刻的觀測只依賴于該時刻的馬爾可夫鏈狀態(tài),而與其他觀測和狀態(tài)無關(guān),這一假設(shè)也叫觀測獨立性假設(shè),公式表示為:

P( …… …… )= P( )

2.3.HMM確定條件

確定一個HMM模型的條件為兩個空間和三組參數(shù),兩個空間也就是上文提到的觀測值和狀態(tài)值空間,即觀測空間W和狀態(tài)空間S。確定這兩個空間后,還需要三組參數(shù),也就是三個概率矩陣。分別為:

· 初始狀態(tài)概率:模型在初始時刻各個狀態(tài)出現(xiàn)的概率,該概率矩陣即表示每個狀態(tài)初始的概率值,通常定義為=(,……),其中就表示模型初始狀態(tài)為的概率;

· 狀態(tài)轉(zhuǎn)移概率:即模型在不同狀態(tài)之間切換的概率,通常將該概率矩陣定義為A=,矩陣中的就表示在任意時刻下,狀態(tài)到下個時刻狀態(tài)的概率;

· 輸出觀測概率:模型根據(jù)當(dāng)前的狀態(tài)來獲得不同觀測值的概率,通常將該概率矩陣定義為:B=,矩陣中的 就表示在任意時刻下,狀態(tài)為時,觀測值被獲取的概率。(這個概率矩陣針對于有時候已知,而未知的情況)。

有了上述的狀態(tài)空間S、觀測空間O以及三組參數(shù) =[A,B, ]后,一個HMM模型就可以被確定下來了。

2.4.HMM解決問題

確定好HMM模型后,就需要用該模型去解決一系列問題,其中主要包括概率計算問題、預(yù)測問題以及學(xué)習(xí)問題。

· 概率計算問題,即評價問題,對給定模型設(shè)置參數(shù) 后,給定觀測序列,來求其與模型之間的匹配度。

· 預(yù)測問題,即解碼問題,對給定模型設(shè)置參數(shù) 后,給定觀測序列,求最有可能(概率值最大)與其對應(yīng)的裝填序列。

· 學(xué)習(xí)問題,即訓(xùn)練問題,給定觀測序列及狀態(tài)序列,來估計模型的參數(shù),使得在該模型參數(shù)下,觀測序列概率最大。即訓(xùn)練模型,來更好地用模型表示觀測數(shù)據(jù)。

以上三個問題中,前兩個問題都是已知模型參數(shù)(模型已經(jīng)確定),如何使用該模型的問題,而第三個問題則是如何通過訓(xùn)練來得到模型參數(shù)(確定模型)的問題。

3.模型學(xué)習(xí)算法

HMM模型的學(xué)習(xí)算法可根據(jù)訓(xùn)練數(shù)據(jù)的不同,分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩種。這兩種學(xué)習(xí)方法在今后深度學(xué)習(xí)技術(shù)模型中也是應(yīng)用最為廣泛的。即對于模型來說,若訓(xùn)練數(shù)據(jù)既包括觀測值(觀測序列),又包括狀態(tài)值(狀態(tài)序列),并且兩者之間的對應(yīng)關(guān)系已經(jīng)標(biāo)注了(即訓(xùn)練之前確定了對應(yīng)關(guān)系),那么采用的學(xué)習(xí)算法就是有監(jiān)督學(xué)習(xí)。否則,對于只有觀測序列而沒有明確對應(yīng)的狀態(tài)序列,則使用的就是無監(jiān)督學(xué)習(xí)算法進(jìn)行訓(xùn)練。

3.1.有監(jiān)督學(xué)習(xí)

在模型訓(xùn)練過程中,訓(xùn)練數(shù)據(jù)是由觀測序列和對應(yīng)的狀態(tài)序列的樣本對組成,即訓(xùn)練數(shù)據(jù)不僅包含觀測序列,同時包含每個觀測值對應(yīng)的狀態(tài)值,這些在訓(xùn)練前都是已知的。這樣就可以頻數(shù)來估計概率。首先通過統(tǒng)計訓(xùn)練數(shù)據(jù)中的狀態(tài)值和觀測值,分別得到狀態(tài)空間( , …… ),觀測變量分別為( , …… )。然后當(dāng)樣本在時刻t時處于狀態(tài) ,等到了t+1時刻,狀態(tài)屬于 的頻數(shù)為 ,則可以用該頻數(shù)來表達(dá)估計狀態(tài)轉(zhuǎn)移概率 為:

image.png

當(dāng)樣本狀態(tài)為 ,觀測為 的頻數(shù)為 ,則可以用該頻數(shù)來表示觀測概率 為:

image.png

而初始狀態(tài)概率 即為訓(xùn)練數(shù)據(jù)中所有初始狀態(tài)為 的樣本的頻率。所以,有監(jiān)督學(xué)習(xí)通過對訓(xùn)練數(shù)據(jù)進(jìn)行統(tǒng)計估計就可以得到模型的相應(yīng)參數(shù) =[A,B, ]。

3.2.無監(jiān)督學(xué)習(xí)

無監(jiān)督學(xué)習(xí)即訓(xùn)練數(shù)據(jù)僅僅只有觀測值(觀測序列),而沒有與其對應(yīng)的狀態(tài)序列,因此狀態(tài)序列S實際上是處于隱藏狀態(tài),也就無法通過頻數(shù)來直接估計概率了。對于這一算法有專門的類似前向-后向算法的Baum-Welch算法來學(xué)習(xí)。該算法與聚類算法中用到的EM算法類似,即運用迭代思想解決數(shù)據(jù)缺失情況下的參數(shù)估計問題,其基本過程是根據(jù)已經(jīng)給出的觀測數(shù)據(jù),估計出模型參數(shù)的值;然后再依據(jù)上一步估計出的參數(shù)值來估計缺失數(shù)據(jù)的值,再根據(jù)估計出的缺失數(shù)據(jù)加上之前己經(jīng)觀測到的數(shù)據(jù)重新再對參數(shù)值進(jìn)行估計,然后反復(fù)迭代,直至最后收斂,迭代結(jié)束。

4.總結(jié)

在深度學(xué)習(xí)模型運用在自然語言處理之前,對于自然語言領(lǐng)域的序列數(shù)據(jù)進(jìn)行處理是采用概率統(tǒng)計模型,具體的概率統(tǒng)計模型有HMM和CRF兩種,其中最為核心的是HMM模型,CRF也是是類似HMM的一個模型。

該篇文章主要針對HMM模型進(jìn)行闡述,有助于讀者更為全面地掌握HMM模型,由于篇幅緣故,CRF模型將在后續(xù)進(jìn)行闡述。該模型也是在HMM基礎(chǔ)上進(jìn)行延申的,適用性低于HMM模型。因此,對于HMM模型的掌握至關(guān)重要,同時目前針對于自然語言處理領(lǐng)域深度學(xué)習(xí)技術(shù)的瓶頸問題(難以取得較大改善的結(jié)果),不妨考慮換個思維,使用下概率統(tǒng)計模型HMM來處理,也許能取得不錯的效果。

作者介紹

稀飯,51CTO社區(qū)編輯,曾任職某電商人工智能研發(fā)中心大數(shù)據(jù)技術(shù)部門,做推薦算法。目前攻讀智能網(wǎng)絡(luò)與大數(shù)據(jù)方向的研究生,主要擅長領(lǐng)域有推薦算法、NLP、CV,使用代碼語言有Java、Python、Scala。

       原文標(biāo)題 : 自然語言處理序列模型——HMM隱馬爾可夫模型

聲明: 本文系OFweek根據(jù)授權(quán)轉(zhuǎn)載自其它媒體或授權(quán)刊載,目的在于信息傳遞,并不代表本站贊同其觀點和對其真實性負(fù)責(zé),如有新聞稿件和圖片作品的內(nèi)容、版權(quán)以及其它問題的,請聯(lián)系我們。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號