實體識别任務
實體通常可分三類:
- 實體類:人名、機構名、地名等。
- 時間類:時間、日期等。
- 數字類:貨币、百分比等。
動詞為非實體。
- 英文實體識别工具:斯坦福NER(Named Entity Recognition,命名實體識别)。
-
中文實體識别工具:哈爾濱工業大學語言雲。
實體識别任務是一個序列标注(Sequence Tagging)任務。
BIOES資料标注方式
Begin/Intermediate/Other/End/Single。
開頭/中間/非實體/結尾/單獨。
傳統機器學習方法
包括基于規則的方法、聚類方法與監督學習方法。
基礎知識:機率圖模型
監督學習方法。
使用圖表示随機變量之間互相作用的一種機率模型。
每個節點代表一個随機變量。
每條邊代表随機變量之間的直接關系。
一般分為有向圖模型和無向圖模型。
-
有向圖模型
又稱貝葉斯網絡(Bayesian Network)。
所有邊均有向。
邊代表随機變量間的條件機率。
圖模型的聯合分布機率:
P ( x ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 2 ) P ( x 4 ∣ x 2 ) P ( x 5 ∣ x 3 , x 2 ) P(x)=P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_2)P(x_5|x_3,x_2) P(x)=P(x1)P(x2∣x1)P(x3∣x2)P(x4∣x2)P(x5∣x3,x2)
-
無向圖模型
又稱馬爾可夫随機場(Markov Random Field,MRF)模型。
圖中所有邊均無向。
無向圖模型的聯合分布不能通過條件機率計算。
首先,定義:
團C:圖中節點的一個子集,且該自己中的點是全連結的。
最大團:如果子團無法通過增加一個節點變為更大的團,則該子團就被稱為最大團。
團勢能 ϕ c \phi_c ϕc:衡量團中變量的每一種可能的聯合狀态所對應的密切程度(非負)。
無向圖模型的聯合機率分布定義為歸一化的最大團團勢能之積:
P ( x ) = 1 Z ∏ c ϕ c ( x ) P(x)=\frac{1}{Z}\prod_c\phi_c(x) P(x)=Z1c∏ϕc(x)
Z = ∑ x ∏ c ϕ c ( x ) Z=\sum_x\prod_c\phi_c(x) Z=x∑c∏ϕc(x)
Z為歸一化函數。
上圖包含的最大團:(x1,x2,x3)與(x2,x4,x5)。
其聯合分布機率可表示為:
P ( x ) = ∏ ( x 1 , x 2 , x 3 ) ∏ ( x 2 , x 4 , x 5 ) Z P(x)=\frac{\prod_{(x_1,x_2,x_3)}\prod_{(x_2,x_4,x_5)}}{Z} P(x)=Z∏(x1,x2,x3)∏(x2,x4,x5)
通常而言,無向圖模型聯合機率求解的最大難點在于歸一化函數的計算。
隐馬爾可夫模型
Hidden Markov Model,HMM。一種生成式有向圖模型。
隐藏狀态,即BIOES标注序列。
觀測,即輸入的句子序列。
馬爾可夫一詞,源于馬爾可夫随機過程:若随機變量X在t時刻的狀态隻與前一時刻t-1的狀态有關,則稱該随機變量的變化過程為馬爾可夫随機過程。
HMM的兩個假設:
- 觀測獨立性假設:任意時刻的觀測隻依賴于該時刻的狀态,與其他無關。
-
一階馬爾可夫假設:任意時刻的狀态隻依賴于前一時刻的狀态,與其他時刻的狀态無關。
生成式模型的本質是先學習聯合機率分布P(X,Y),再推斷P(Y|X),是以HMM的聯合機率分布:
P ( X , Y ) = P ( y 0 ) ∏ t = 1 n P ( y t ∣ y t − 1 ) P ( x t ∣ y t ) P(X,Y)=P(y_0)\prod_{t=1}^{n}P(y_t|y_{t-1})P(x_t|y_t) P(X,Y)=P(y0)t=1∏nP(yt∣yt−1)P(xt∣yt)
P ( y 0 ) P(y_0) P(y0)為初始機率矩陣, P ( y t ∣ y t − 1 ) P(y_t|y_{t-1}) P(yt∣yt−1)為轉移矩陣, P ( x t ∣ y t ) P(x_t|y_t) P(xt∣yt)為觀測矩陣。
序列标注任務中,首先可根據訓練集的輸入序列和标注資料,通過極大似然估計,求這三個矩陣。
- 設由t-1時刻狀态i轉移到t時刻狀态j的頻數為A_ij,則狀态轉移機率的估計為: a i j = A i j ∑ j A i j a_{ij}=\frac{A_{ij}}{\sum_jA_{ij}} aij=∑jAijAij
- 設狀态為j,觀測為k的頻數為B_jk,則觀測機率的估計為: b j k = B j k ∑ k = 1 B j k b_{jk}=\frac{B_{jk}}{\sum_{k=1}B_{jk}} bjk=∑k=1BjkBjk
-
初始機率的估計為初始狀态的頻率。
由Viterbi算法進一步解碼求出 a r g m a x y P ( y ∣ x ) argmax_yP(y|x) argmaxyP(y∣x)。
Viterbi算法的本質:對于給定觀測序列,尋找機率最大的隐藏狀态序列,該問題可視為在有向無環圖中尋找一條最大路徑。
上圖中,Viterbi算法即尋找S->T最大路徑。
通常采用動态規劃的思想求解最大路徑問題,即周遊t-1時刻狀态k轉移到t時刻狀态j的機率,并取最大值。
轉移方程: D t , j = m a x ( D t , j , D t − 1 , k + Θ k j ) D_{t,j}=max(D_{t,j},D_{t-1,k}+\Theta_{kj}) Dt,j=max(Dt,j,Dt−1,k+Θkj)。
Θ k j \Theta_{kj} Θkj為狀态k轉移到狀态j的機率。
HMM計算友善快捷,常用于分詞任務,如Jieba分詞。
受一階馬爾可夫假設限制,HMM表達能力有限。
為此使用MEMM。
最大熵馬爾可夫模型
Maximum Entropy Markov Models,MEMM。
一種判别式有向圖模型。
判别式模型的本質是學習條件機率分布P(Y|X),是以可将MEMM的條件機率分布寫成:
P ( Y ∣ X ) = ∏ t P ( y t ∣ y t − 1 , x t ) P(Y|X)=\prod_tP(y_t|y_{t-1},x_t) P(Y∣X)=t∏P(yt∣yt−1,xt)
其中, P ( y t ∣ y t − 1 , x t ) P(y_t|y_{t-1},x_t) P(yt∣yt−1,xt)采用最大熵模型直接模組化:
P ( y t ∣ y t − 1 , x t ) = 1 Z e ∑ λ f ( x , y ) P(y_t|y_{t-1},x_t)=\frac{1}{Z}e^{\sum\lambda f(x,y)} P(yt∣yt−1,xt)=Z1e∑λf(x,y)
其中,Z為歸一化函數;f(x,y)為人工定義的任意特征函數,lambda為該特征函數的權重,是待學習的參數。
可以先通過極大似然估計進行學習。
然後通過Viterbi算法進一步解碼。
然而MEMM存在**标注偏置(Labeling Bias)**的問題。
由于歸一化函數在累乘内部,是一種局部歸一化。是以每次狀态轉換,都會傾向于選擇擁有更少轉移的狀态。
為此使用CRF。
條件随機場模型
Conditional Random Field,CRF。
一種判别式無向圖模型。
線性鍊式條件随機場模型的結構如圖所示:
判别式模型的本質是學習條件機率分布P(Y|X),是以根據無向圖模型分布的定義,CRF條件機率分布為:
P ( Y ∣ X ) = 1 Z ∏ c ϕ c ( y c ∣ x ) P(Y|X)=\frac{1}{Z}\prod_c\phi_c(y_c|x) P(Y∣X)=Z1c∏ϕc(yc∣x)
ϕ ( y c ∣ x ) = e ∑ k λ k f k ( y t , y t − 1 , x t ) + μ k s k ( y t , x t ) \phi(y_c|x)=e^{\sum_k\lambda_kf_k(y_t,y_{t-1},x_t)+\mu_ks_k(y_t,x_t)} ϕ(yc∣x)=e∑kλkfk(yt,yt−1,xt)+μksk(yt,xt)
Z = ∑ y ∏ c ϕ c ( y c ∣ x ) Z=\sum_y\prod_c\phi_c(y_c|x) Z=y∑c∏ϕc(yc∣x)
其中, ϕ c ( y c ∣ x ) \phi_c(y_c|x) ϕc(yc∣x)為線性鍊式條件随機場中的團勢函數(最大團為{y_t,x_t});Z為歸一化函數;轉移特征f_k和狀态特征s_k為人工定義的特征函數;lambda與mu為權重,是待學習的參數。
與MEMM相同,先通過極大似然估計學習模型參數,然後通過Viterbi算法進一步解碼。
線性鍊式CRF的Z是全局歸一化函數,是以避免了标注偏置問題。
常用工具:CRF++。