天天看點

《阿裡雲天池大賽賽題解析(深度學習篇)》學習筆記(2)實體識别實體識别任務BIOES資料标注方式傳統機器學習方法

實體識别任務

實體通常可分三類:

  1. 實體類:人名、機構名、地名等。
  2. 時間類:時間、日期等。
  3. 數字類:貨币、百分比等。

動詞為非實體。

  • 英文實體識别工具:斯坦福NER(Named Entity Recognition,命名實體識别)。
  • 中文實體識别工具:哈爾濱工業大學語言雲。

    實體識别任務是一個序列标注(Sequence Tagging)任務。

BIOES資料标注方式

Begin/Intermediate/Other/End/Single。

開頭/中間/非實體/結尾/單獨。

傳統機器學習方法

包括基于規則的方法、聚類方法與監督學習方法。

基礎知識:機率圖模型

監督學習方法。

使用圖表示随機變量之間互相作用的一種機率模型。

每個節點代表一個随機變量。

每條邊代表随機變量之間的直接關系。

一般分為有向圖模型和無向圖模型。

  1. 有向圖模型

    又稱貝葉斯網絡(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​)

  1. 無向圖模型

    又稱馬爾可夫随機場(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)=Z1​c∏​ϕ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的兩個假設:

  1. 觀測獨立性假設:任意時刻的觀測隻依賴于該時刻的狀态,與其他無關。
  2. 一階馬爾可夫假設:任意時刻的狀态隻依賴于前一時刻的狀态,與其他時刻的狀态無關。

    生成式模型的本質是先學習聯合機率分布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∏n​P(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​=∑j​Aij​Aij​​
  • 設狀态為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=1​Bjk​Bjk​​
  • 初始機率的估計為初始狀态的頻率。

    由Viterbi算法進一步解碼求出 a r g m a x y P ( y ∣ x ) argmax_yP(y|x) argmaxy​P(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​)=Z1​e∑λ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)=Z1​c∏​ϕ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​λk​fk​(yt​,yt−1​,xt​)+μk​sk​(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++。

繼續閱讀