訂閱
糾錯(cuò)
加入自媒體

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

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

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

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

1.概率模型

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

1.1.生成模型和判別模型

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

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

1.2.概率圖模型

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

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

image.png

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

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

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

2.1.序列模型

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

image.png

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

2.2.基本假設(shè)

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

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

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

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

P( …… …… )= P( )

2.3.HMM確定條件

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

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

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

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

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

2.4.HMM解決問(wèn)題

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

· 概率計(jì)算問(wèn)題,即評(píng)價(jià)問(wèn)題,對(duì)給定模型設(shè)置參數(shù) 后,給定觀測(cè)序列,來(lái)求其與模型之間的匹配度。

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

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

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

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

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

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

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

image.png

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

image.png

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

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

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

4.總結(jié)

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

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

作者介紹

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

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

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

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

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

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