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

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

3.2 數(shù)據(jù)預(yù)處理
4 基于ALBERT的中文醫(yī)療病歷命名實(shí)體識(shí)別模型
4.1 ALBERT

4.2 條件隨機(jī)場(chǎng)(CRF)
4.3 BiLSTM-CRF

4.4 ALBBC模型

5 實(shí)驗(yàn)結(jié)果與比較
5.1 實(shí)驗(yàn)設(shè)置
5.2 評(píng)價(jià)指標(biāo)


5.3 實(shí)驗(yàn)比對(duì)






6 結(jié)論