主要介紹HMM和CRF在NER序列标注問題中的應用。
HMM
-
例子:O O B I I I(我在浙江大學),狀态序列是【O O B I I I】,觀測序列是【我在浙江大學】
屬于生成模型,包含隐變量,要對x(狀态)和y(觀測)聯合模組化,即P(X,Y)。
- 兩個假設
- 齊次馬爾可夫假設:目前狀态隻有前一個狀态有關,與其他狀态和觀測值無關
- 觀測獨立性假設:目前觀測值隻跟目前狀态有關,跟其他狀态無關也跟其他觀測值無關
-
五元素
觀測集合:所有組成句子的字的集合A
狀态集合這裡是S={B,I,O}(一般還隐式包括start和end兩個特殊狀态)
發射機率:每個狀态轉移到每個字的機率P(Ai|Sj)
狀态轉移機率:狀态之間轉移的機率P(Si|Sj)
初始機率:每個狀态作為第一個狀态的機率
-
訓練
分兩種,一種是訓練集包括句子和标注結果(大多數序列标注任務),這個時候用統計下五元素即可。第二種是隻有觀測序列,要用baum-welch算法預估參數。
- 機率計算:給定觀測集合,發射機率,狀态轉移機率、初始機率計算該觀測集合出現的機率(計算所有可能的狀态序列對應的觀測集合的聯合機率和):前向算法
- 解碼:給定馬爾可夫模型和一個觀測序列,判斷最可能的狀态序列:Viterbi算法
CRF
-
例子 :我在浙江大學(O O B I I I),觀測序列是【我在浙江大學】,狀态序列是【O O B I I I】;X是【我在浙江大學】,Y是【O O B I I I】
直接對P(Y|X)模組化,屬于給定輸入序列對輸出序列的判别模型,給定句子x(觀測),判斷标注序列的機率y(狀态)
- 機率計算:給定條件随機場P(Y|X)和輸入序列x和輸出序列y,計算在目前時刻t觀測值為k的機率:前向算法
- 解碼:給定CRF模型和一個狀态序列,判斷最可能的觀測序列:Viterbi算法