概念
隐馬爾可夫模型描述的是兩個時序序列聯合分布p(x,y)的機率模型,其中包含了兩個序列:
x序列外界可見(外界指的是觀測者),稱為觀測序列(obsevation seuence)
y序列外界不可見,稱為狀态序列( state sequence)
如觀測x為單詞,狀态y為詞性,我們需要根據單詞序列去猜測它們的詞性。
隐馬爾可夫模型之是以稱為“隐”, 是因為從外界來看,狀态序列(例如詞性)隐藏不可見,是待求的因變量。
從這個角度來講,人們也稱狀态為隐狀态(hidden state ),而稱觀測為顯狀态( visible state )。
為什麼叫“馬爾可夫模型”?是因為它滿足馬爾可夫假設。
馬爾可夫假設認為:每件事情的發生機率僅與前一件事有關
當有多個滿足上述假設的事件形成串聯時,就構成了馬爾可夫鍊,在NLP的領域中就稱為一個二進制文法模型
注:
一進制文法模型:
我考上大學隻與考試當天的我有關,與前一天模拟考的我沒有半毛錢關系
二進制文法模型:
我考上大學與我前一天模拟考的我有關
書接上回
我們先做一些約定:
Qhidden為所有隐藏狀态種類的合集,有N種
例如我們之前定義了七個标簽(https://www.cnblogs.com/DAYceng/p/14923065.html),那麼N = 7
Vobs表示可觀測的序列的合集(這裡由漢字組成)
其中,V為單個的字,M為已知字的個數
有一串自然語言文本O,共T個字,則觀測合集可表示為
而觀測到的實體對應的實體标記就是隐狀态合集I
I與O一一對應并且長度一緻
注:常稱T為時刻,如上式***有T個時刻(T個字)
HMM的假設
圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml
假設一:
目前第

個隐狀态(實體标簽)隻跟前一時刻的
隐狀态(實體标簽)有關,連續多個狀态構成隐馬爾可夫鍊I(隐狀态合集),與除此之外的其他隐狀态無關。
例如,上圖中:藍色的部分指的是
隻與
有關,而與藍色區域之外的所有内容都無關,而
指的是隐狀态
從
時刻轉向t時刻的機率。
假設二:
觀測獨立的假設,我們上面說過,HMM模型中是由隐狀态序列(實體标記)生成可觀測狀态(可讀文本)的過程,觀測獨立假設是指在任意時刻觀測
隻依賴于目前時刻的隐狀态i,與其他時刻的隐狀态無關。
例如上圖中:粉紅色的部分指的是
隻與
有關,跟粉紅色區域之外的所有内容都無關。
至此,我們确定了狀态與觀測之間的關系。
接下來将介紹HMM用于模拟時序序列生成過程的三個要素(即HMM模型的三個參數):
- 初始狀态機率向量
- 狀态轉移機率矩陣
- 發射機率矩陣
初始狀态機率向量
初始隐狀态機率通常用π表示(不是圓周率!!)
該表達式的含義:
自然語言序列的第一個字
的實體标簽是
的機率,即初始隐狀态機率
而初始狀态可表示如下:p(y1丨π),給定π,初始狀态y1的取值分布就确定了
狀态轉移機率矩陣
初始狀态确定之後,如何轉移到初始狀态的下一個狀态呢?
還記得馬爾可夫假設第一條嗎?t+1時刻的狀态隻取決于t時刻狀态
我們上面提到了
指的是隐狀态
從
時刻轉向

時刻的機率
比如說我們現在實體标簽一共有
種, 也就是
(注意
是所有可能的實體标簽種類的集合), 也就是
(注意我們實體标簽編号從
算起)。
假設在
時刻任何一種實體标簽都可以在

時刻轉換為任何一種其他類型的實體标簽
由排列組合不難得出以下結論:總共可能的轉換的路徑有
種, 是以我們可以做一個
的矩陣來表示所有可能的隐狀态轉移機率.
圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml
如圖所示即為狀态轉移機率矩陣,設矩陣為矩陣, 則
表示矩陣中第i行第j列:
該表達式的含義:
某時刻實體具有一個标簽,而下一時刻該标簽轉換到某标簽的機率,即

時刻實體标簽為
, 而在
時刻實體标簽轉換到
的機率
發射機率矩陣
回到最初的問題,有了(隐)狀态yt之後,如何确定觀測xt的機率分布呢?
根據爾可夫假設第二條,任意時刻觀測
隻依賴于目前時刻的隐狀态
, 也叫做發射機率,描述了隐狀态生成觀測結果的過程
設我們的字典裡有
個字,
(注意這裡下标從0算起, 是以最後的下标是
, 一共有
種觀測), 則每種實體标簽(隐狀态)可以生成
種不同的漢字(也就是觀測), 這一過程可以用一個發射機率矩陣來表示, 它的次元是
圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml
設這個矩陣為
矩陣, 則
表示矩陣中第
行第
列:
該表達式的含義:
在

時刻由實體标簽(隐狀态)
生成漢字(觀測結果)
的機率.
至此,HMM的概念部分基本介紹完畢