學習NLP的第16天——隱馬爾可夫模型

隱馬爾可夫模型(Hidden Markov Model,HMM)是描述兩個時許序列聯合分佈p(x,y)的概率模型,是一種著名的有向圖模型,也是解決自然語言處理中標註問題的統計機器學模型。

其中x為外界觀測可見的觀測序列,也稱為顯狀態;y是外界不可見的狀態序列,也稱為隱狀態。


下面,我們借用骰子的例子來描述:

假設有3個不同的骰子,分別為D6、D4和D8。其中D6有6個面,D4有4個面,D8有8個面。

學習NLP的第16天——隱馬爾可夫模型

下面我們進行如下過程:從三個骰子中隨機選擇一個,投擲它並得到一個數值,並將此操作執行6次。

學習NLP的第16天——隱馬爾可夫模型

我們會獲得一串數值[1,6,3,5,2,7],這就是觀測序列;而在每次選擇的骰子[D6,D8,D8,D6,D4,D8],則是狀態序列;黑色的箭頭是從狀態序列中的轉換;紅色的箭頭是從狀態序列到觀測序列的輸出。

其中,狀態序列的狀態轉移構成了隱馬爾可夫鏈;而任意時刻的觀測值都只取決於對應時刻狀態,與其他時刻的狀態或觀測獨立無關。

馬爾可夫鏈:每個事件的發生概率只取決於前一個事件,將滿足該假設的多個事件串聯在一起,就構成了馬爾可夫鏈。

在使用{B,M,E,S}標註集做中文分詞時,可以將字視作觀測值,將{B,M,E,S}的狀態視作狀態值。

BMES標註集:B = 詞語開頭,M = 詞語中間,E = 詞語結尾,S = 單字成詞

隱馬爾可夫模型是由初始狀態概率向量、狀態轉移概率矩陣和觀測概率矩陣共同決定的,下面我們分開了解。

初始狀態概率向量

系統啟動時進入的第一個狀態稱為初始狀態,是一個離散型隨機變量,其概率分佈的參數向量,稱為初始狀態概率向量。

在三個骰子的例子中,三個骰子被選中的概率都是一樣的,因此其初始狀態概率向量如下:

<code>D4 = 1/3
D6 = 1/3
D8 = 1/3/<code>

而在中文分詞的例子中,在句子開頭不可能是詞語中間或詞語結尾,只能是詞語開頭和單字成詞,因此其初始狀態概率向量可能如下:

<code>P(B) = 0.7
P(M) = 0
P(E) = 0
P(S) = 0.3/<code>

狀態轉移概率矩陣

根據馬爾可夫假設,t+1時的狀態僅僅取決於t時的狀態。因為一共有N中狀態,因此從狀態si到狀態sj的概率就構成了一個N×N的矩陣,稱為狀態轉移概率矩陣。

在三個骰子的例子中,三個骰子被選中的概率實際上不受前一次的影響,因此狀態轉移概率矩陣中所有的值均為1/3。

而在中文分詞的例子中,單字成詞後不可能是詞語結尾,詞語結尾後也不可能是詞語結尾,因此可以用P(E|S)=0和P(E|E)=0來表示。

這些概率分佈的參數在自然語言領域都是通過對語料庫的統計自動學習。

觀測概率矩陣

因為觀測值僅取決於當前的狀態值,因此觀測值和狀態值都是獨立的離散型隨機變量。假設觀測值一共有M種可能的取值,狀態值一共有N中可能的矩陣的,那麼這些參數向量就構成了N×M的矩陣,稱為觀測概率矩陣,也稱發射概率矩陣。

在三個骰子的例子中,觀測值共有8個可能的取值{1,2,3,4,5,6,7,8},狀態值共有3個可能的取值(D4,D6,D8);此時的觀測概率矩陣為3×8的矩陣。其中D4不可能得到觀測值5,因此p(x=8,y=D4)=0。

在中文分詞的例子中,“忑”通常作為“忐忑”的詞語結尾(E)出現,因此p(x=忑,y=E)的概率較高,而p(x=忑,y=B)的概率較小。

學習參考文獻:

詳解隱馬爾可夫模型(HMM) 小修 《自然語言處理技術》

《自然語言處理入門》(何晗):4.2


分享到:


相關文章: