深度學習模型在序列標註任務中的應用
背景
序列標註任務是中文自然語言處理(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”。
第一個改進方向是,探索詞語內部的資訊。以“工程師”這個詞為例,可以拆解為“工”、“程”、“師”三個字元序列。通過疊加一層雙向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] 對標註樣本中的不合理樣本進行修正。
參考文獻
- Huang Z, Xu W, Yu K. BidirectionalLSTM-CRF models for sequence tagging[J]. arXiv preprint arXiv:1508.01991, 2015.
- Chiu J P C, Nichols E.Named entity recognitionwith bidirectionalLSTM-CNNs[J]. arXiv preprint arXiv:1511.08308, 2015.
- Rei, Marek, Gamal KO Crichton, and Sampo Pyysalo. "Attending to characters in neural sequence labeling models." arXiv preprint arXiv:1611.04361 (2016).
- Zhang, Yue, and Jie Yang. "Chinese NER Using LatticeLSTM." arXiv preprint arXiv:1805.02023 (2018).
- Shao, Yan, et al. "Character-based joint segmentation and POS tagging for Chinese using bidirectional RNN-CRF." arXiv preprint arXiv:1704.01314 (2017).
- Strubell E, Verga P, Belanger D, et al. Fast and accurate entity recognition with iterated dilated convolutions[J]. arXiv preprint arXiv:1702.02098, 2017.
- Reimers N, Gurevych I. Optimal hyperparameters for deep lstm-networks for sequence labeling tasks[J]. arXiv preprint arXiv:1707.06799, 2017.
- Radford A, Narasimhan K, Salimans T, et al. Improving Language Understanding by Generative Pre-Training[J]. 2018.
- Peters M E, Neumann M, Iyyer M, et al. Deep contextualized word representations[J]. arXiv preprint arXiv:1802.05365, 2018.
- Howard J, Ruder S. Universal language model fine-tuning fortext classification[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018, 1: 328-339.
- 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.
ofollow,noindex">e成科技
e成科技作為助力人才戰略成功的AI平臺, 開創性地將AI技術與人才戰略升級場景深度結合,並基於畫像和Bot(智慧對話機器人),形成AI諮詢、 AI招聘和AI產業三大支柱產品線,為企業和政府提供智慧數字化決策解決方案。 e成科技始終秉持“打造人與任務新型連線平臺” 的願景,將“科技驅動人才升級” 作為自身使命不懈奮鬥。
理論 深度學習 NLP NER 神經網路 LSTM CRF 強化學習 OCR
相關資料
Neural Network
(人工)神經網路是一種起源於 20 世紀 50 年代的監督式機器學習模型,那時候研究者構想了「感知器(perceptron)」的想法。這一領域的研究者通常被稱為「聯結主義者(Connectionist)」,因為這種模型模擬了人腦的功能。神經網路模型通常是通過反向傳播演算法應用梯度下降訓練的。目前神經網路有兩大主要型別,它們都是前饋神經網路:卷積神經網路(CNN)和迴圈神經網路(RNN),其中 RNN 又包含長短期記憶(LSTM)、門控迴圈單元(GRU)等等。深度學習是一種主要應用於神經網路幫助其取得更好結果的技術。儘管神經網路主要用於監督學習,但也有一些為無監督學習設計的變體,比如自動編碼器和生成對抗網路(GAN)。
來源:機器之心
Conditional random field
條件隨機場(conditional random field,簡稱 CRF),是一種鑑別式機率模型,是隨機場的一種,常用於標註或分析序列資料,如自然語言文字或是生物序列。 如同馬爾可夫隨機場,條件隨機場為無向性之圖模型,圖中的頂點代表隨機變數,頂點間的連線代表隨機變數間的相依關係,在條件隨機場當中,隨機變數 Y 的分佈為條件機率,給定的觀察值則為隨機變數 X。原則上,條件隨機場的圖模型佈局是可以任意給定的,一般常用的佈局是連結式的架構,連結式架構不論在訓練(training)、推論(inference)、或是解碼(decoding)上,都存在有效率的演算法可供演算。 條件隨機場跟隱馬爾可夫模型常被一起提及,條件隨機場對於輸入和輸出的機率分佈,沒有如隱馬爾可夫模型那般強烈的假設存在。 線性鏈條件隨機場應用於標註問題是由Lafferty等人與2001年提出的。
來源: 維基百科
baseline
一種簡單的模型或啟發法,用作比較模型效果時的參考點。基準有助於模型開發者針對特定問題量化最低預期效果。
來源: sary" target="_blank" rel="nofollow,noindex">Google ML Glossary
Long-Short Term Memory
長短期記憶(Long Short-Term Memory) 是具有長期記憶能力的一種時間遞迴神經網路(Recurrent Neural Network)。 其網路結構含有一個或多個具有可遺忘和記憶功能的單元組成。它在1997年被提出用於解決傳統RNN(Recurrent Neural Network) 的隨時間反向傳播中權重消失的問題(vanishing gradient problem over backpropagation-through-time),重要組成部分包括Forget Gate, Input Gate, 和 Output Gate, 分別負責決定當前輸入是否被採納,是否被長期記憶以及決定在記憶中的輸入是否在當前被輸出。Gated Recurrent Unit 是 LSTM 眾多版本中典型的一個。因為它具有記憶性的功能,LSTM經常被用在具有時間序列特性的資料和場景中。
Language models
語言模型經常使用在許多自然語言處理方面的應用,如語音識別,機器翻譯,詞性標註,句法分析和資訊檢索。由於字詞與句子都是任意組合的長度,因此在訓練過的語言模型中會出現未曾出現的字串(資料稀疏的問題),也使得在語料庫中估算字串的機率變得很困難,這也是要使用近似的平滑n元語法(N-gram)模型之原因。
來源: 維基百科
Named entity recognition
命名實體識別(NER)是資訊提取(Information Extraction)的一個子任務,主要涉及如何從文字中提取命名實體並將其分類至事先劃定好的類別,如在招聘資訊中提取具體招聘公司、崗位和工作地點的資訊,並將其分別歸納至公司、崗位和地點的類別下。命名實體識別往往先將整句拆解為詞語並對每個詞語進行此行標註,根據習得的規則對詞語進行判別。這項任務的關鍵在於對未知實體的識別。基於此,命名實體識別的主要思想在於根據現有例項的特徵總結識別和分類規則。這些方法可以被分為有監督(supervised)、半監督(semi-supervised)和無監督(unsupervised)三類。有監督學習包括隱形馬科夫模型(HMM)、決策樹、最大熵模型(ME)、支援向量機(SVM)和條件隨機場(CRF)。這些方法主要是讀取註釋語料庫,記憶例項並進行學習,根據這些例子的特徵生成針對某一種例項的識別規則。
來源: David, N. & Satoshi, S. (2007). A survey of named entity recognition and classification
Planning
人工智慧領域的「規劃」通常是指智慧體執行的任務/動作的自動規劃和排程,其目的是進行資源的優化。常見的規劃方法包括經典規劃(Classical Planning)、分層任務網路(HTN)和 logistics 規劃。
來源:機器之心
Reinforcement learning
強化學習是一種試錯方法,其目標是讓軟體智慧體在特定環境中能夠採取回報最大化的行為。強化學習在馬爾可夫決策過程環境中主要使用的技術是動態規劃(Dynamic Programming)。流行的強化學習方法包括自適應動態規劃(ADP)、時間差分(TD)學習、狀態-動作-回報-狀態-動作(SARSA)演算法、Q 學習、深度強化學習(DQN);其應用包括下棋類遊戲、機器人控制和工作排程等。
來源:機器之心
text classification
該技術可被用於理解、組織和分類結構化或非結構化文字文件。文字挖掘所使用的模型有詞袋(BOW)模型、語言模型(ngram)和主題模型。隱馬爾可夫模型通常用於詞性標註(POS)。其涵蓋的主要任務有句法分析、情緒分析和垃圾資訊檢測。
來源:機器之心
Vanishing Gradient Problem
梯度消失指的是隨著網路深度增加,引數的梯度範數指數式減小的現象。梯度很小,意味著引數的變化很緩慢,從而使得學習過程停滯,直到梯度變得足夠大,而這通常需要指數量級的時間。這種思想至少可以追溯到 Bengio 等人 1994 年的論文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人們對深度神經網路的訓練困難的偏好解釋。
來源:機器之心 Vanishing gradient problem
Weight
線性模型中特徵的係數,或深度網路中的邊。訓練線性模型的目標是確定每個特徵的理想權重。如果權重為 0,則相應的特徵對模型來說沒有任何貢獻。
來源:Google AI Glossary
Accuracy
分類模型的正確預測所佔的比例。在多類別分類中,準確率的定義為:正確的預測數/樣本總數。 在二元分類中,準確率的定義為:(真正例數+真負例數)/樣本總數
Noise
噪音是一個隨機誤差或觀測變數的方差。在擬合數據的過程中,我們常見的公式$y=f(x)+\epsilon$中$\epsilon$即為噪音。 資料通常包含噪音,錯誤,例外或不確定性,或者不完整。 錯誤和噪音可能會混淆資料探勘過程,從而導致錯誤模式的衍生。去除噪音是資料探勘(data mining)或知識發現(Knowledge Discovery in Database,KDD)的一個重要步驟。
來源:Han J.; Kamber M.; Pei J. (2011). Data mining: concepts and techniques. Morgan Kaufman.