自然語(yǔ)言處理序列模型——HMM隱馬爾可夫模型
在上一篇中主要講了對(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è)事件。如下圖所示:
該圖就是一個(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)系):
上圖中,狀態(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)移概率 為:
當(dāng)樣本狀態(tài)為 ,觀測(cè)為 的頻數(shù)為 ,則可以用該頻數(shù)來(lái)表示觀測(cè)概率 為:
而初始狀態(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隱馬爾可夫模型
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書(shū)》
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 1 【一周車話】沒(méi)有方向盤(pán)和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無(wú)人駕駛車,還未迎來(lái)“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國(guó)產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰(shuí)是盈利最強(qiáng)企業(yè)?
- 8 比蘋(píng)果偉大100倍!真正改寫(xiě)人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬(wàn)億獨(dú)角獸,AI人才之爭(zhēng)開(kāi)啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門(mén)市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市