BiLSTM-CRF 由 Huang et al. (2015, 百度) 在 Bidirectional LSTM-CRF Models for Sequence Tagging 提出,用於命名實體識別(NER)任務中。相較 BiLSTM,增加 CRF 層使得網路得以學習tag與tag間的條件機率。
對BiLSTM不熟的可先參考
網路
BiLSTM-CRF 顧名思義是BiLSTM和CRF兩方法的結合,利用 Linear CRF 調整BiLSTM序列輸出的結果,得以學習輸出token前後的關聯。Linear CRF在這裡是指1D的CRF。
CRF和HMM、MEMM皆屬於bayesian method的家族,都處理序列對應關係,且長相類似。
HMM (Hidden Markov Model): 有向圖。從隱狀態產生觀測值
CRF (Conditional Random Field): 無向圖。從觀測序列推論隱狀態,一般用node potential和pairwise potential描述。除了輸入輸出方向不同於前者,CRF放寬了每個時間步的狀態與觀測值一對一的假設,而是會參考整個輸入序列。
MEMM (Maximum Entropy Markov Model): 與CRF相同但只用指數機率
從這邊也明白,BiLSTM的最後一層分類器輸出即如同CRF的node potential/emit probability,因為雙向性質的關係,每個時間步的輸出狀態都會參考整個輸入序列,在pairwise potential方面,則用1st order Markov property描述狀態間的移轉。
訓練
CRF透過最大化後驗機率(maximum a posteriori, MAP)的方式提高正確路徑在所有路徑的後驗機率,做為最佳化的條件。
也可視為最小化估計token路徑的 log likelihood 與真實token路徑的 log likelihood 差(Likelihood Ratio)。
實務上使用forward probability (alpha)計算路徑likelihood,如同下圖,首先將prior (pi) 跟 emit probability (beta) 相乘,接下來一步一步轉移到下一個狀態,每次到下一時間步都先加總過去的posterior,取得當下狀態的marginal probability,並乘上當下emit,完成該時間下的事件描述。最後加總得到路徑likelihood。
過程是一種動態規劃(dynamic programming, DP)算法,每次都保留過去與現在的狀態,並不斷前行。
相較全部要探索 Label^T 個路徑,現在只需Label² * T的運算量。
用softmax計算正確路徑占全部路徑的機率後取log,形成negative log likelihood。也就是所謂的 gold score跟normalization constant (partition function)。
計算全部路徑得到normalization constant的過程稱為belief propagation。
這邊常常看到 logsumexp 這個詞彙被提及
是因為 softmax 取 log 會變成 x — logsumexp(x)
但exp容易overflow,故延伸出 (x-max) — logsumexp(x-max)
這個以最大值max移位後再計算的數值trick
預測
用Viterbi最佳路徑作為推論的解碼方法,它是一個前向-後向演算法,前向計算路徑分數,後向取回最佳label。
做法其實與前述段落相同,也是先計算forward probability,但這次不計算marginal probability,而是取出當下最有可能從狀態i轉移到的狀態j及其機率,以此類推得最終得出最佳路徑,再利用最佳路徑反向取回整條路徑的組成。
任務
命名實體識別(Named Entity Recognition, NER)任務與之前介紹的詞性標註(POS Tagging)結構相同,都將輸入序列轉換成等長的輸出序列,不同之處在於前者用於找出文本中的重要字詞、擷取資訊,例如人名、地點,後者用於語言學的語句結構。
資料集
Annotated Corpus for Named Entity Recognition,Kaggle上的NER標記資料集。下表是該資料集含有的標記對象,採用BIO標記方法。
常見的NER標記系統包括BIO, BIOES。
B (begin of tag): 標記的開始
I (inside of tag): 標記內
E (end of tag): 標記的結束
O (outside): 標記外,不屬於任何個體
S (singleton): 單詞
例如,B-PER是人名的開始,B-LOC是地名的開始,I-LOC是地名的延續
Obama was the president of the United States .
B-PER O O O O O B-LOC I-LOC O
更多可以參考以下文章
共47959條句子,17個目標token。從標記的數量可以看出來,如同大多數NER資料集,會有大量標記屬於O,只有少量標記是特定實體。因此在學習上,容易忽略掉重要的目標。
評估
- 訓練集與測試集比例為4比1,未使用stratified sampling,可能導致其中一邊的token不完整。
2. 另外也因為CRF屬於bayesian method,使得在prior的初始化上需要極其小心的調校。
進行推論的過程中發現一種使用方法。雖然直接使用CRF訓練及推論可能會提升或減少準確度,但改用CRF loss作為校正方法與Cross entropy jointly trained,可以增進BiLSTM的表現,且不需要CRF層跟viterbi decode。
下圖是用Cross entropy及CRF loss一同訓練後,只使用BiLSTM預測的結果。準確度從53.6%上升到51.8%。
CRF 的轉移矩陣,很明顯會從其他標記被吸入(absorb) O標記,而無法學習到其他標記間的轉移,不過有微弱的訊號顯示同一標記的begin和inside轉移有被學習到。部分原因是因為字詞級別(word level)標記詞彙通常很短,不會延續很長一段。但在段落標記(paragraph)或字元級別(character level)的標記就能有明顯的關聯,例如POS任務。
儘管在較為稀疏的NER提升較少,但在POS上倒是提升挺多。以下是與另一篇BiLSTM文章相比,準確度從56%提升到66%。
代碼連接
參考