深度學習模型在序列標註任務中的應用

e成科技發表於2018-11-01

作者 丨e成科技NLP部門自然語言理解小組 王奕磊


背景

序列標註任務是中文自然語言處理(NLP)領域在句子層面中的主要任務,在給定的文字序列上預測序列中需要作出標註的標籤。常見的子任務有命名實體識別(NER)、Chunk提取以及詞性標註(POS)等。序列標註任務在e成的主要應用有,簡歷解析時的欄位切分、抽取工作經歷(CV)和職位描述(JD)中的實體名詞等。


更具體的任務有,在解析一段工作經歷長文字的時候,我們希望提取其中的動賓組合來表示該應聘者之於此段工作經歷的主要工作內容。以“瞭解市場情況 , 進行一些專案的商務談判”為例,HanLP分詞器的結果為“瞭解市場情況 , 進行一些專案的商務談判”,此時可以提取的粗動賓組合有“瞭解-情況”和“進行-談判”,而我們更希望得到更加完整且意義更加豐富的賓語,因此需要將“市場 情況”合併為“市場情況”,將“商務 談判”合併為“商務談判”。因此,我們需要一個能夠準確提取名詞短語(Noun Pharse)的序列標註模型來克服NP字典召回不足的問題。


基礎模型及擴充套件


很長一段時間,條件隨機場(CRF)是序列標註任務的標準模型。CRF將句子中每個標記的一組特徵作為輸入,並學習預測完整句子的最佳標籤序列。以命名實體識別為例,一些常見的特徵有:標記本身、它的bi-gram和tri-gram、詞性資訊、chunk型別等。


目前主流的序列標註模型已經被神經網路所替代,基礎的框架一般為迴圈神經網路(RNN)+CRF[1]。這裡我們使用雙向RNN來提取序列中每一個標記的完整的過去和未來的上下文資訊,而長短期記憶網路作為有效改進RNN梯度消失問題的網路已經成為RNN的標配。雙向LSTM的層數一般設定為1-3層,也可以作為一個可調整的超參。


深度學習模型在序列標註任務中的應用我們不再使用逐幀softmax的預測方法,而是將雙向LSTM在每個時間步的輸出作為CRF層的輸入。CRF與softmax的最大差別在於,前者會學習各個預測標籤之間的聯絡,比如“B-Chunk”的下一個標籤必須是“I-Chunk”。

https://image.jiqizhixin.com/uploads/editor/6526959f-8886-450d-9f00-40fa57b0a0d2/1527042479585.png第一個改進方向是,探索詞語內部的資訊。以“工程師”這個詞為例,可以拆解為“工”、“程”、“師”三個字元序列。通過疊加一層雙向LSTM或者卷積網路(CNN)來提取詞語內部序列的資訊[2]。新的內部序列向量可以直接拼接在詞向量後面,也可以通過attention的方式來決定詞向量和內部序列向量的重要性程度,如下圖右邊所示。Attention方式通過學習權重係數z來獲得全新的線性加權後的向量[3]


深度學習模型在序列標註任務中的應用第二個改進方向是,基於字元粒度的輸入,以其為基礎輸入的中文序列標註模型在很多論文中被證明是十分有效的。但是,只是使用字元資訊往往是不夠的,引入分詞標記的資訊能夠大幅提升模型表現。另外,字元的bi-gram資訊也是不錯的補充資訊。這裡,我們將分詞標籤和字元bi-gram以同樣的方式構建embedding的lookup表來獲得對應的向量表示,與字元向量拼接在一起,組成綜合的特徵輸入[4]


深度學習模型在序列標註任務中的應用另外,中文作為象形文字,較字母文字會有獨有的形狀特徵[5]。如字形特徵,或通過卷積網路來提取中文文字的圖片資訊。卷積後的向量表示即拼接在字元向量後。


深度學習模型在序列標註任務中的應用中文的偏旁部首也是不錯的特徵,比如“釒”字旁表示該字元表示的是金屬,來給予模型有效的字元資訊。通過將每個中文字元對映成部首ID,隨機初始化部首ID的詞向量拼接在字元向量後面,來作為輸入向量的補充。

深度學習模型在序列標註任務中的應用

其他模型框架

一般的卷積網路也可以來嘗試序列標註任務,但是卷積網路的特性決定它只能觀察到N-gram的資訊,無法考慮更遠的上下文資訊。而膨脹卷積[6]在保持引數個數不變的情況下增大了卷積核的感受野,同時它可以保證輸出的特徵對映(feature map)的大小保持不變。其中,亮黃色卷積核在最右邊的膨脹卷積的視野為“法-工-程-師-職”,在中間的卷積網路需要再增加一層,才有5個字元的視野,但這樣引數就變多了。同時,改善了卷積網路在提取序列特徵時只能考慮區域性窄視野的缺陷。

深度學習模型在序列標註任務中的應用


實驗結果

首先,我們需要準備訓練語料。為了考驗模型的真實水平,在構建驗證集和測試集的時候,隨機抽取了一部分名詞短語,確保訓練集中不存在包含這些名詞短語的句子。另外,將工作經歷根據有效的標點進行了短句分句,形成短序列來減小網路的規模,共230萬句短句,平均詞數為20。在字元級別模型的預處理中,將英文單詞和連續數字視為單個字元。


本文采用的標籤標註方案是BIOE,考慮到中文名詞短語中心詞靠後的特點,我們給予末尾詞以End標記以作區分。標註的方式採用前期通過統計方法取得的名詞短語字典對工作經歷文字進行最大匹配標註,來獲得大量略帶噪音的訓練資料。

本文的超參設定參照了這篇論文[7]中推薦的數值。度量標準有兩個,一是準確率Accuracy),即每個詞或字的標籤準確率;其二是Chunk的F1分數,即該Chunk是否被精準預測,Chunk的範圍必須準確被提取。


各個模型的在驗證集上的準確率和F1,如下表所示:

Model

train_acc

dev_acc

dev_f1

word_baseline

94.99

94.11

84.72

word+charLSTM

95.95

94.95

85.21

word+charCNN

95.65

94.32

84.96

word+charLSTM+attention

95.81

94.85

85.01

word+charCNN+attention

95.55

94.20

84.82

char_baseline

91.92

91.97

77.56

char+seg

92.25

92.05

78.54

char+bichar

98.39

94.63

85.09

char+seg+bichar+radical*

98.75

95.62

87.66

word+charLSTM+pre_trained_emb

97.26

95.67

86.63

IDCNN

94.99

93.81

81.82


其中,字元輸入拼接分詞資訊加bi-char加偏旁部首資訊的模型最終取得了87.66的最佳效能。另外,詞級別的模型中,使用預訓練詞向量且拼接通過LSTM提取詞內部字元資訊的模型取得最佳。中文序列標註任務採用本文類似模型框架的相關論文中提及的最佳的F1一般在93-95左右,我們的推測是真實簡歷的工作經歷資料中存在的不少髒資訊和字典標註樣本的缺陷造成了這一差距,也因此我們後續在改進樣本質量和引入預訓練策略上還有不小改進空間。


總結

本文梳理了目前主流的序列標註任務的框架,介紹了中文序列標註模型之於英文不同的特徵輸入,並基於工作經歷文字嘗試使用上文提到的各個模型進行訓練,其中,利用豐富的特徵輸入的字元級別的模型取得了最好的結果。

未來我們規劃中的改進方向有如下的幾點:

進入2018年,語言模型[8-10]有開始取代詞向量作為模型輸入的趨勢,在各項NLP任務中均取得了較為顯著的效能提升;

將char的Ngram資訊通過CNN進行提取,能夠減小模型大小,並引入更多Ngram的資訊;

運用強化學習[11]對標註樣本中的不合理樣本進行修正。



參考文獻

  1. Huang Z, Xu W, Yu K. Bidirectional LSTM-CRF models for sequence tagging[J]. arXiv preprint arXiv:1508.01991, 2015.
  2. Chiu J P C, Nichols E. Named entity recognition with bidirectional LSTM-CNNs[J]. arXiv preprint arXiv:1511.08308, 2015.
  3. Rei, Marek, Gamal KO Crichton, and Sampo Pyysalo. "Attending to characters in neural sequence labeling models." arXiv preprint arXiv:1611.04361 (2016).
  4. Zhang, Yue, and Jie Yang. "Chinese NER Using Lattice LSTM." arXiv preprint arXiv:1805.02023 (2018).
  5. Shao, Yan, et al. "Character-based joint segmentation and POS tagging for Chinese using bidirectional RNN-CRF." arXiv preprint arXiv:1704.01314 (2017).
  6. Strubell E, Verga P, Belanger D, et al. Fast and accurate entity recognition with iterated dilated convolutions[J]. arXiv preprint arXiv:1702.02098, 2017.
  7. Reimers N, Gurevych I. Optimal hyperparameters for deep lstm-networks for sequence labeling tasks[J]. arXiv preprint arXiv:1707.06799, 2017.
  8. Radford A, Narasimhan K, Salimans T, et al. Improving Language Understanding by Generative Pre-Training[J]. 2018.
  9. Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:1802.05365, 2018.
  10. Howard J, Ruder S. Universal language model fine-tuning for text classification[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018, 1: 328-339.
  11. Ji G, Liu K, He S, et al. Distant Supervision for Relation Extraction with Sentence-Level Attention and Entity Descriptions[C]//AAAI. 2017: 3060-3066.

相關文章