陳 杰,奚雪峰,2,皮 洲,盛勝利,崔志明,2
(1.蘇州科技大學電子與信息工程學院,江蘇 蘇州 215009)(2.蘇州智慧城市研究院,江蘇 蘇州 215009)(3.Computer Science Department,Texas Tech University,Texas 79431,USA)
隨著電子病歷的應用范圍越來越廣,各級醫院和研究機構產生了海量的電子病歷. 如何對電子病歷中的自然語言文本進行分析,從而生成有效的醫療信息,逐漸成為近年來的研究熱點. 其中,醫療病歷命名實體識別(named entity recognition,NER)就是該領域的基礎性研究工作,其研究成果能夠為醫學知識庫的構建、藥物安全性檢測、臨床決策及個性化患者精準醫療服務提供支撐.
目前國內外關于命名實體識別的絕大部分研究都是基于英文[1-3],面向中文的命名實體識別相對較少[4-6],尤其在電子病歷文本分析處理領域[7-8]. 針對電子醫療病歷命名實體識別任務,本文基于ALBERT模型,融合雙向長短記憶網絡(BiLSTM)及條件隨機場模型,構建了一個ALBERT-BiLSTM-CRF(ALBBC)模型,并針對中文醫療病歷命名實體識別任務,開展了多個模型的比對實驗,發現所構建的ALBBC模型在識別精度及時間開銷上均優于同類模型.
Bikel等[1]最早提出了基于隱馬爾可夫模型的英文命名實體識別方法,其在 MUC-6 測試文本集的測試結果為:英文地名、機構名和人名的識別精度分別達到了97%、94%和95%,召回率分別達到了95%、94%和94%. Liao等[2]提出了基于條件隨機場模型,采用半監督的學習算法進行命名實體識別. Ratinov等[3]采用未標注文本訓練詞類模型(word class model)的辦法,有效提高了NER系統的識別效率,并針對 CoNLL-2003數據集開發出精確度和召回率的調和平均數F1值達到90.8%的命名實體識別系統. 中文的命名實體識別也獲得了廣泛關注. Tsai 等[4]提出基于最大熵的混合的方法. 陳鈺楓等[5]提出了漢英雙語命名實體識別的對齊交互式方法. 面向中文病歷文本命名實體識別的工作不多,楊錦鋒等[7]于2016年開始研究中文電子病歷的命名實體方法,并構建了一個實體關系語料庫.
目前針對命名實體識別任務的常用方法包括支持向量機(support vector machines,SVM)[9]、條件隨機場(conditional random field,CRF)[10]、結構化支持向量機(structured support vector machines,SVM)[11]、遞歸神經網絡(recurrent neural network,RNN)及其變體模型[12]、卷積神經網絡(Convolutional Neural Networks,CNN)及其變體模型[13]等. Liu等[14]設計不同特征模板和上下文窗口進行條件隨機場的學習訓練,并比對分析模型實體識別效率,以尋找最佳的電子病歷特征模板和上下文窗口. Liu 等[15]通過實驗對比了BiLSTM-CRF與傳統的CRF實體識別算法的性能,結果表明前者性能較好. Qiu等[16]為提高循環神經網絡模型的訓練速度,提出了殘差卷積神經網絡條件隨機場模型,在 CCKS開放測試語料上獲得了更好的訓練速度和F1值. 隨著近年Contextualized embedding研究的突飛猛進,出現了ELMO[17]、BERT等[18]可以生成上下文相關的詞向量表示模型. 相較于word2vec而言,上述模型表達準確率有大幅提高,同時克服了word2vec存在的多意詞無法用單一詞向量表示的問題.
對于給定的一組電子病歷純文本文檔,目標是識別并抽取出與醫學臨床相關的命名實體并將其歸類到預定義類別中. 本文給出了1 500份標注好的訓練數據用于模型的訓練和調優,共需識別包括疾病和診斷、影像檢查、實驗室檢驗、手術、藥物及解剖部位在內的6種實體. 一般而言,中文電子病歷命名實體識別是一個序列標注問題. 本文使用BIO(Begin,Inside,Other)標簽方案將數據集給出的標簽映射到每一個字符上,進行字符級別(char level)的標記,如表1所示.

表1 標注方案Table 1 Labeling schme
輸入:
1.電子病歷的自然語言文本D={d1,…dN},di=〈wi1,…,win〉;
2.預定義類別:C={c1,…cm};
輸出:
實體提及和所屬類別對的集合:{〈m1,cm1〉,〈m2,cm2〉,…,〈mp,cmp〉}.
其中,mi=〈di,bi,ei〉,是出現在文檔中的醫療實體提及(mention);bi和ei分別表示mi在di中的起止位置;cmi∈C表示所屬的預定義類別. 要求實體提及之間不重疊,即ei 預定義類別如表2所示. 表2 預定義類別Table 2 Predefined categories 本論文使用的數據集是醫渡云公開的電子病歷數據集(http://openkg.cn/dataset/yidu-s4k),包含1 500條標注數據、1 000 條非標注數據、6 個類別的實體詞詞表,如表3所示. 表3 數據集Table 3 Dataset 首先數據集(以下稱原始數據集)有部分標注在某些詞上存在一定程度上的標注標準不統一問題,手動對數據集進行了修正(以下稱修正數據集). 同時考慮到標注標準應可由模型從原始數據集中自動學習到,泛化能力也會更強,因此也保留了原始數據集. 此時產生了原始數據集和修正數據集這兩個獨立的數據源. 由于醫學領域的用詞造句較為特殊,目前的公共分詞工具在醫學術語中表現不佳,因而本文使用字符而不是詞語作為序列標注模型的單位. 本文將原始數據集和修正數據集中的每一條數據分別拆分為單個字符,按照BIO標簽方案將數據集給出的標簽映射到每一個字符上. 至此數據預處理流程結束. ALBERT[19]由谷歌AI團隊于2019年發布. BERT模型憑借Masked Language Model(Masked LM)、雙向Transformer encoder以及句子級別的負采樣得到了一個強大的、深度雙向編碼的、包含著充分描述了字符級、詞級、句子級甚至句間關系的特征的預訓練模型,針對特定任務,只需簡單針對任務數據對模型進行微調,即可完成整個模型的構建. BERT因其龐大的參數量,在實際應用中常常受到硬件內存的限制;而增加BERT-large等模型的隱藏層大小也會導致性能下降. 如表4所示,BERT-large的隱藏層大小增加一倍,該模型在RACE基準測試上的準確率顯著降低,ALBERT的準確率基本無影響,ALBERT-large相較BERT-large的參數小得多,只有18M個參數. 表4 預訓練模型對比Table 4 Comparison of pre-trained models 條件隨機場是一種無向概率圖模型,是一種判別模型,長期以來廣泛應用于序列標注問題[2-3,13]. 給定字符序列z={z1,…,zn},zi代表第i個字符及其特征所組成的輸入向量;給定z的標簽序列y={y1,…,yn},γ(z)代表z的所有可能標簽. CRF模型定義了在給定字符序列z時,標簽序列為y的概率公式: 式中,S(yt,zt,θ)為勢函數;θ為CRF模型的參數. Hochreiter和Schmidhuber[20]于1997 年提出了LSTM,最初是為了解決遞歸神經網絡(recurrent neural network,RNN)訓練伴隨的梯度緩慢和梯度爆炸,為保持信息完整引入了記憶細胞[15],記錄歷史上下文信息. 近年 LSTM方法被廣泛應用于自然語言處理領域,目前 NER的主流模型是 BiLSTM-CRF,其結構如圖1所示. Lample等[21]提出了2種神經網絡方法,一種基于 BiLSTM 和 CRF,另一種是受移位歸約解析器(shift-reduce parser)啟發提出的基于轉換(transition)的方法構建和標記分段. 圖1 BiLSTM-CRF模型Fig.1 BiLSTM-CRF model 針對中文醫療病歷原始數據集和修正數據集,本文構建了ALBERT-BiLSTM-CRF(ALBBC)模型. 模型所使用的特征為純字符特征. 利用ALBERT 模型自帶的詞典將數據集的單個字符映射為 ID 后,再經 ALBERT 模型的 Embedding層對字符 ID 進行字向量建模,隨后進入網絡預訓練. 首先對大量的電子病歷進行命名實體的標注規范;然后在中文數據集上測試 ALBERT 預訓練模型,再進入 BiLSTM 提取深層信息,并使用 CRF 進行解碼;最后,分析 ALBERT 模型的不足之處,并針對醫療數據集的特點,微調該模型以優化整個網絡在醫療數據集上的表現. 模型框架如圖2所示. 圖2 ALBERT-BiLSTM-CRF 模型Fig.2 ALBERT-BiLSTM-CRF model 實驗軟件模型基于TensorFlow-gpu1.15.2深度學習框架和keras、numpy、seqeval等第三方庫,使用參數大小為1.8M的中文模型ALBERT_TINY;硬件采用4塊NVIDIA GeForce GTX 2080Ti顯卡加速訓練與預測. 中文電子病歷數據集共包含疾病與診斷、檢查、檢驗、手術、藥物、解剖部位6類命名實體. 將數據集中的80%作為訓練集,10%作為驗證集,10%作為測試集. ALBERT模型的最長序列長度選擇為512,優化算法為Adam算法,學習率設為1e-5,batch_size為16,epoch為60,MAX_SEQ_LEN=128,雙向LSTM層的隱層節點數均為32(這里指單個方向的隱藏層節點數). 本論文所有實驗結果均由多次實驗取均值所得. 本實驗采用命名實體識別通用的評價指標正確率P(precision)、召回率R(recall)、F1值(F-measure)對電子病歷命名實體識別結果進行性能衡量. 具體計算公式為: 如圖3所示,不斷調整參數進行試驗,分別訓練了當epoch值為10,15,20,30,50時的F1值,此處F1值為各個實體F1值的平均值. 可以看到,當epoch值小于30時,模型明顯為欠收斂;epoch為50左右,基本可以收斂;F1值在epoch值為60時達到最高,當epoch值為70時已經開始下降. 進一步調整epoch值,將F1值提高到將總體識別效果提高了1.3個F1值,總體識別的F1值為各個實體F1值的平均值,效果最佳的epoch值為60,其F1值為85.38%,故選擇該epoch值為綜合實驗參數. 以下實驗均在epoch值為60的基礎上展開,其中對“實驗室檢驗”類別實體的識別效果最為突出,F1值從原來的81.76% 提高到84.85%. epoch值和F1值實驗中均采用最佳優化器Adam. 圖3 epoch值與F1值關系圖Fig.3 Graph of epoch value and F1 value 為了得到更適合的參數值,對丟棄率(Dropout)和優化器(Optimizer)也進行了類似的實驗. 對Dropout進行的實驗如表5所示. 表5 不同的 Dropout 對模型效果的影響Table 5 Effect of different Dropout 表5是不同的Dropout值對于模型精度的影響實驗,可以看出Dropout值對實驗識別效果存在較為明顯的影響. 除原先默認參數值0.5 之外,從0.1 到0.8,無論是單個實體識別效果還是整體識別效果均有所提升,說明本實驗中Dropout值設置越小對實驗效果提高越有幫助. 故此,本實驗選擇Dropout值為0.1作為綜合模型參數. 表6所示為不同優化器對模型精度的影響. 由表6結果可以看出,Adam 優化器的識別效果最為突出. Adam、Momentum 和SGD 都是常用的神經網絡優化器. Adam是一類對每個參數的自適應學習率進行計算的算法,結合了Adadelta和Momentum 的優點. 實驗結果顯示,Adam 的效果優于其他兩個優化器. 最傳統的SGD相較于Adam和Momentum 在結果上有一定差距,經過分析SGD多次陷入鞍點,從而只有局部最優解. 因此,本文實驗選擇Adam 作為模型優化器. 表6 不同的優化器對模型效果的影響Table 6 The influence of different optimizers on the model performance 通過與CNN-CRF(CC)[22]、BiLSTM-CRF(BC,該模型還使用了attention機制[23])、BERT-BiLSTM-CRF(BBC)3種模型的實驗結果對比,本文采用的方法在速度與精度上均有所提升. 如圖4所示,ALBERT-BiLSTM-CRF(ALBBC)模型在除疾病與診斷這一個實體上的F1值低于BBC外,其余5類實體上F1值均領先于另外3種模型. BERT的參數量遠高于 ALBERT,其在數據集中屬于疾病與診斷實體的數據量是 6種實體中最多的,因此可以訓練出更好的模型,但BERT的訓練時間也遠超ALBERT. 從表4可以看出,相對于不使用contextual representation的模型來說,ALBERT和BERT這種上下文相關的word representation所得的結果提升明顯. D:藥物;S:手術;li:影像檢查;lt:實驗室檢驗;Dnd:疾病和診斷;As:解剖部位圖4 4個模型F1值散點對比圖Fig.4 F1 scatter comparison chart of the four models 詞之間廣泛存在的語義相關對于提升深度學習模型對于語義的理解至關重要. 含有信息更加豐富的word embedding對于下游的任務來說,更容易讓模型得到更優的結果. 本論文的主要實驗是CC、BC、BBC、ALBBC 4個模型的對比,其中CC、BBC兩個模型是本文實驗的對照組. 模型效果對比如表7所示,實驗結果對比如表8所示. 表7 模型效果對比Table 7 Comparison of models’ effect 表8 實驗結果對比Table 8 Comparison of experimental results 針對中文電子病歷文本,本文提出一種模型融合方法用于文本實體識別任務. 其核心包括基于ALBERT模型微調數據集,采用雙向長短記憶網絡(BiLSTM)來提取文本的全局特征,以及基于條件隨機場模型(CRF)進行命名實體的序列標記. 在標準數據集上的實驗結果表明,本文所提方法進一步提高了醫療文本命名識別精度,并大大減少了時間開銷. BERT和ALBERT等結合了上下文信息的預處理模型意義重大,但均需大量的訓練數據來支持. 相對于其他領域擁有大規模數據的任務來講,電子病歷的數據集相對較小,所以準確率不高,但專業領域上的實體識別更具有研究和現實意義. 針對數據量不足的問題,未來將考慮擴充數據集和結合小樣本學習的方法來進一步提高準確率.
3 數據集與預處理
3.1 數據集

3.2 數據預處理
4 基于ALBERT的中文醫療病歷命名實體識別模型
4.1 ALBERT

4.2 條件隨機場(CRF)
4.3 BiLSTM-CRF

4.4 ALBBC模型

5 實驗結果與比較
5.1 實驗設置
5.2 評價指標


5.3 實驗比對






6 結論