HMM 中,有5個基本元素:{N,M,A,B,π},結合 序列標誌任務(NER) 對其的概念定義為:
而以上的這些元素,都是可以從訓練語料集中統計出來的。最後根據這些統計值,應用 維特比(viterbi) 算法,算出詞語序列背後的標註序列了,命名實體識別本質上就是序列標註,只需要定義好對應的標簽以及模式串,就可以從標註序列中提取出實體
假設對於t時刻的壹個詞 公式就可寫作:
齊次馬爾科夫性假設:隱藏的馬爾科夫鏈在任意時刻t的狀態只依賴於其前壹時刻的狀態,與其他時刻的狀態及觀測無關,也與時刻t無關
觀測獨立性假設:假設任意時刻的觀測只依賴於該時刻的馬爾科夫鏈的狀態,與其他觀測即狀態無關.觀測概率的公式可以表達如下:
將發射概率和轉移概率相結合,得到整個句子最後的公式:
相對於HMM,CRF有兩個優勢
令 是觀測序列, 是狀態序列, 是 CRF 模型的參數,則 的條件概率是:
其中 是 CRF 特征函數集,加上正則化項,在做對數變換就得到
CRF 訓練的目的是求解令 最大化的
應用於NER中的BiLSTM-CRF模型主要由Embedding層(主要有詞向量,字向量以及壹些額外特征),雙向LSTM層,以及最後的CRF層構成。 實驗結果表明biLSTM-CRF已經達到或者超過了基於豐富特征的CRF模型,成為目前基於深度學習的NER方法中的最主流模型。 在特征方面,該模型繼承了深度學習方法的優勢,無需特征工程,使用詞向量以及字符向量就可以達到很好的效果,如果有高質量的詞典特征,能夠進壹步獲得提高
正常 CNN 的filter,都是作用在輸入矩陣壹片連續的區域上,不斷sliding做卷積。 dilated CNN 為這個filter增加了壹個 dilation width ,作用在輸入矩陣的時候,會skip所有 dilation width 中間的輸入數據;而filter本身的大小保持不變,這樣filter獲取到了更廣闊的輸入矩陣上的數據, 看上去就像是膨脹了壹般。 具體使用時, dilated width 會隨著層數的增加而指數增加。這樣隨著層數的增加,參數數量是線性增加的,而 receptive field 卻是指數增加的,可以很快覆蓋到全部的輸入數據。
圖中可見感受域是以指數速率擴大的。原始感受域是位於中心點的1x1區域:
對應在文本上,輸入是壹個壹維的向量,每個元素是壹個 character embedding :
IDCNN 對輸入句子的每壹個字生成壹個 logits ,這裏就和 BiLSTM 模型輸出 logits 完全壹樣,加入 CRF 層,用 Viterbi 算法解碼出標註結果,在 BiLSTM 或者 IDCNN 這樣的網絡模型末端接上 CRF 層是序列標註的壹個很常見的方法。 BiLSTM 或者 IDCNN 計算出的是每個詞的各標簽概率,而 CRF 層引入序列的轉移概率,最終計算出loss反饋回網絡
BERT模型+全連接層 :BERT的encoding vector通過 FC layer 映射到標簽集合後,單個token的output vector經過Softmax處理,每壹維度的數值就表示該token的詞性為某壹詞性的概率。基於此數據便可計算loss並訓練模型。但根據 BiLSTM+CRF 模型的啟發,在 BERT+FC layer 的基礎上增加 CRF layer 加入壹些約束來保證最終的預測結果是有效的。這些約束可以在訓練數據時被CRF層自動學習得到,從而減少預測錯誤的概率
BiLSTM+CRF 優點是泛化能力強;缺點是 需要大量的標註樣本 。在樣本很少的情況下,效果會很不理想。為了更快速地實現壹個實體提取器,提高系統易用性,可以采用 遷移學習 的思想,在先驗知識的基礎上進行模型訓練,從而使用 BERT+BiLSTM+CRF
同樣的,輸入是wordPiece tokenizer得到的 tokenid ,進入Bert預訓練模型抽取豐富的文本特征得到 的輸出向量,輸出向量過 BiLSTM 從中提取實體識別所需的特征,得到 的向量,最終進入 CRF 層進行解碼,計算最優的標註序列
NLP新人,歡迎大家壹起交流,互相學習,***同成長~~