馮鳳翔 任慧玲 李曉瑛 王巍潔 王 勖 張 穎
(中國醫(yī)學(xué)科學(xué)院/北京協(xié)和醫(yī)學(xué)院醫(yī)學(xué)信息研究所/圖書館 北京 100020)
隨著計算機技術(shù)和生物技術(shù)的飛速發(fā)展,電子病歷(electronic medical record,EMR)、醫(yī)學(xué)報告、醫(yī)學(xué)文獻等生物醫(yī)學(xué)文本的數(shù)量迅速增長,積累了海量有價值的醫(yī)學(xué)數(shù)據(jù)[1],如EMR記錄患者全部診療過程,包括所患疾病、藥物、檢查和治療結(jié)果等[2]。隨著命名實體識別技術(shù)成熟,可實現(xiàn)從中抽取疾病、藥物、手術(shù)操作等特定實體[3],但實體存在表述口語化、多樣化等問題,如“狼瘡腦炎”可能被表述為“狼瘡腦病”,“氯硝柳胺”可能被寫作“滅絳靈”等。如果未經(jīng)處理就加以利用或者儲存入庫可能導(dǎo)致各醫(yī)療信息系統(tǒng)標(biāo)準(zhǔn)不一,難以實現(xiàn)醫(yī)院間資源互聯(lián)互通[2]。因而需要根據(jù)實體在文中語義表達將其映射到知識庫中對應(yīng)的標(biāo)準(zhǔn)實體上,以解決概念內(nèi)涵不清、語義表達和邏輯不一致等問題,促進獨立醫(yī)療信息系統(tǒng)間的互操作,實現(xiàn)醫(yī)療信息和數(shù)據(jù)共享[4]。
目前中文電子病歷實體映射研究主要由中國健康信息處理會議(China Health Information Processing Conference,CHIP)中的臨床術(shù)語標(biāo)準(zhǔn)化評測任務(wù)推動,該任務(wù)使用來自真實醫(yī)療數(shù)據(jù)中的手術(shù)原詞,由專業(yè)人員依據(jù)《ICD 9—2017協(xié)和臨床版》手術(shù)詞表進行訓(xùn)練數(shù)據(jù)標(biāo)注。目前已有多支隊伍完成手術(shù)實體映射任務(wù),CHIP 2019任務(wù)最佳結(jié)果F1值為94.83%,由Dolphin-ICI團隊取得[5]。實體映射作為一項重要的生物醫(yī)學(xué)技術(shù),近年來取得較大進步。但由于生物醫(yī)學(xué)領(lǐng)域本身的復(fù)雜性以及真實醫(yī)療應(yīng)用場景的高標(biāo)準(zhǔn)、嚴(yán)要求,該領(lǐng)域研究還存在一些提升空間,如現(xiàn)有研究大都以預(yù)訓(xùn)練語言模型BERT為基礎(chǔ)進行任務(wù)構(gòu)造,相關(guān)研究主要圍繞CHIP任務(wù)中標(biāo)注的手術(shù)實體進行[6],還需增加基于多類型實體的映射方法研究、改進方法模型以提升實體映射效果。
本文依靠專家知識與標(biāo)準(zhǔn)詞表,標(biāo)注涵蓋多種類型實體的自標(biāo)注標(biāo)準(zhǔn)數(shù)據(jù)集。結(jié)合傳統(tǒng)文本匹配方法與深度學(xué)習(xí)的優(yōu)勢,提出融合傳統(tǒng)相似度算法與深度學(xué)習(xí)模型的聯(lián)合模型改進實體映射效果。并在此基礎(chǔ)上提出基于別名間相似性映射標(biāo)準(zhǔn)實體的方法,為提升較短字符類實體映射效果提供思路。本文提出的方法在自標(biāo)注數(shù)據(jù)集中F1值達到94.87%,可幫助抽取和規(guī)范化醫(yī)療數(shù)據(jù)以擴充中文臨床醫(yī)學(xué)術(shù)語體系的實體覆蓋度,更好地支持臨床輔助診療系統(tǒng)、精準(zhǔn)醫(yī)學(xué)研究和疾病監(jiān)控等應(yīng)用。
從“愛愛醫(yī)” “眾意好醫(yī)師”“病歷網(wǎng)”中抽取20 000余條中文電子病歷,采用命名實體識別模型對疾病診斷、解剖部位、臨床檢查、手術(shù)操作和藥物5類實體進行識別[7]。每類實體分別抽取約500個樣例,邀請3位臨床專家根據(jù)《國際疾病分類第10次修訂本》(International Classification of Disease V 10,ICD 10)和《常用臨床醫(yī)學(xué)名詞(2019年版)》,人工標(biāo)注標(biāo)準(zhǔn)實體,數(shù)據(jù)清洗后,形成共包含2 390對數(shù)據(jù)的自標(biāo)注標(biāo)準(zhǔn)數(shù)據(jù)集,訓(xùn)練集與測試集數(shù)據(jù)按照7∶3的比例進行分配,見表1。
表1 自標(biāo)注標(biāo)準(zhǔn)數(shù)據(jù)集內(nèi)容統(tǒng)計
實體映射任務(wù)可分成候選實體生成(candidate entity generation,CEG)和實體消歧(entity disambiguation,ED)兩個階段,為此設(shè)計兩個實驗。
實驗1為候選實體生成實驗,即為待標(biāo)準(zhǔn)實體找到標(biāo)準(zhǔn)詞表中所有可能與之對應(yīng)的實體,生成候選標(biāo)準(zhǔn)實體集合,高效簡便的相似度算法可以較好地完成這一任務(wù)。具體而言,針對每個待標(biāo)準(zhǔn)實體,計算其與標(biāo)準(zhǔn)詞表中每個標(biāo)準(zhǔn)實體的文本相似度并排序,選取結(jié)果中前15位作為候選標(biāo)準(zhǔn)實體集合。采用目前應(yīng)用較廣泛的中文短文本相似度算法進行實驗,對召回率進行比較以選取最佳算法,包括Cosine余弦相似度、BM 25(best match,BM)相關(guān)性評分、Jaccard相似系數(shù)、編輯距離(minimum edit distance,MED)與Dice系數(shù)。
實驗2為實體消歧實驗,生成候選標(biāo)準(zhǔn)實體集后,需要從中預(yù)測最可能與待標(biāo)準(zhǔn)實體相對應(yīng)的實體作為映射結(jié)果,這一過程便是實體消歧。將該任務(wù)視為一個二分類任務(wù),采用深度學(xué)習(xí)模型進行預(yù)訓(xùn)練,學(xué)習(xí)實體間語義關(guān)系并輸出預(yù)測結(jié)果。谷歌推出的BERT模型能結(jié)合文本上下文信息并從中提取豐富全面的語義特征,出色完成二分類任務(wù),在其基礎(chǔ)上還衍生出如RoBERTa、ALBERT、RoBERTa-wwm等在各項自然語言處理任務(wù)中取得較好效果的模型。采用以上4種模型進行實體消歧,并比較模型性能,得到表現(xiàn)最好的算法模型組合,見圖1。
圖1 本文技術(shù)路線
采用準(zhǔn)確率(accuracy,A)、精確率(precision,P)、召回率(recall,R)和F1值(F1 score)作為評價指標(biāo)。準(zhǔn)確率指所有預(yù)測正確的結(jié)果所占比例,精確率指預(yù)測正確的正例占所有被預(yù)測為正例的比例,召回率指所有正例樣本中預(yù)測正確的樣本所占比例。F1值用來衡量二分類模型精確度,可以看作是模型精準(zhǔn)率和召回率的調(diào)和平均,其最大值是1,最小值是0。預(yù)測結(jié)果有真陽性(true positive,TP),假陽性(false positive,F(xiàn)P),真陰性(true negative,TN),假陰性(false negative,F(xiàn)N)4種類型。其中,真陽性指預(yù)測結(jié)果為正,實際亦為正,其他同理。各指標(biāo)計算方式如下:
(1)
(2)
(3)
(4)
3.1.1 Cosine余弦相似度 通過將文本矢量化,計算同個向量空間中兩個向量夾角間的余弦值Cos(θ)來衡量相似度大小,夾角越小則相似度越高。在生成每個文本矢量時根據(jù)詞頻-逆向文件頻率(term frequency-inverse document frequency,TF-IDF)原理,用詞頻向量V代替文本矢量每個維度的值[8]:
(5)
3.1.2 BM 25相關(guān)性評分 主要原理是先對句子q分詞,生成若干特征詞qi。Wi為每個qi的權(quán)重。之后對要與句子q進行比較的句子D計算每個qi與D的相關(guān)性得分,最后將qi相對于D的相關(guān)性得分進行加權(quán)求和,得到q與D的相關(guān)性得分[9]:
(6)
3.1.3 Jaccard相似系數(shù) 用于比較兩個有限樣本集之間的相似性,兩個集合A和B交集元素的個數(shù)在A、B并集中所占比例稱為這兩個集合的Jaccard系數(shù),Jaccard系數(shù)值越大則相似度越高[10]:
(7)
3.1.4 編輯距離 是對兩個字符串差異程度的測量,其原理是計算一個字符串S1經(jīng)過多少次處理才能變成另一個字符串S2,允許的編輯操作有替換一個字符、插入一個字符、刪除一個字符3種[11]:
(8)
其中l(wèi)en代表字符串的字符個數(shù),d(S1,S2)為字符串S1和S2的編輯距離。
3.1.5 Dice系數(shù) 是一種集合相似度度量指標(biāo),可將字符串理解為集合,因此Dice系數(shù)也可用于計算兩個字符串的相似度,其范圍為0~1,值越大表示相似度越高[12]。對于給定字符串S1和S2,其Dice系數(shù)算法如下:
(9)
3.2.1 BERT 是一個無監(jiān)督雙向模型,可以使用純文本語料庫進行訓(xùn)練,并預(yù)測受左右上下文制約的單詞。BERT能夠在各種自然語言處理任務(wù)中表現(xiàn)出優(yōu)異的性能[13]。經(jīng)過調(diào)整,BERT可用于進行二分類任務(wù),其模型原理,見圖2。其中[CLS]位于開頭,用于預(yù)測文本類別,[SEP]用于分割兩個句子,ClassLabel為模型輸出的類別標(biāo)簽。
圖2 BERT模型二分類任務(wù)原理
3.2.2 RoBERTa 是在BERT預(yù)訓(xùn)練模型基礎(chǔ)上進行改進的復(fù)制研究,其中包括對超參數(shù)調(diào)整和對訓(xùn)練集大小的影響進行仔細評估。同時該任務(wù)使用新數(shù)據(jù)集CCNEWS,并使用更多數(shù)據(jù)進行預(yù)訓(xùn)練,進一步提高下游任務(wù)性能[14]。
3.2.3 ALBERT 采用因子嵌入?yún)?shù)化和跨層參數(shù)共享兩種參數(shù)簡化技術(shù)解決BERT內(nèi)存消耗高和訓(xùn)練速度慢的問題。此外,模型還提出句子順序預(yù)測(sentence order prediction,SOP)任務(wù)來代替?zhèn)鹘y(tǒng)的下一句預(yù)測(next sentence prediction,NSP)預(yù)訓(xùn)練任務(wù),從而獲得更好的性能[15]。
3.2.4 RoBERTa-wwm 由哈工大訊飛聯(lián)合實驗室發(fā)布,結(jié)合中文全詞掩碼(whole word masking,wwm)技術(shù)與RoBERTa模型的優(yōu)勢,在RoBERTa模型基礎(chǔ)上采用全詞掩碼來屏蔽漢語單詞進行預(yù)訓(xùn)練。由于這些模型將應(yīng)用于中文文本分類,全詞掩碼將允許這些模型結(jié)合中文場景,以提供更多有關(guān)中文語義的信息[16]。
為對比分析不同相似度算法對候選實體生成效果的影響,基于5種相似度算法進行候選實體生成,選取相似度概率值前15位作為候選實體,并計算其召回率,見表2。為方便理解,下文待標(biāo)準(zhǔn)實體稱為原始詞,標(biāo)準(zhǔn)實體稱為標(biāo)準(zhǔn)詞。從結(jié)果中可以看出,基于Jaccard相似度算法匹配的效果優(yōu)于其他4種算法,因此選擇Jaccard算法進行候選實體生成能較好地保證候選標(biāo)準(zhǔn)實體集質(zhì)量,有利于進行后續(xù)實體消歧工作。Cosine余弦相似度算法和BM25算法的生成效果明顯低于其他相似度算法,是因為余弦相似度算法依賴高質(zhì)量的詞向量,BM25算法需要精準(zhǔn)分詞,本文并未人工進行特征構(gòu)建,因此二者效果較差。
表2 候選實體生成實驗召回率統(tǒng)計結(jié)果
從本實驗中Jaccard算法未召回準(zhǔn)確標(biāo)準(zhǔn)詞的樣例中可以看出,對字數(shù)過短或者原始詞與標(biāo)準(zhǔn)詞之間差異較大的實體,單純使用相似度算法無法獲取詞中的語義信息,會導(dǎo)致召回失敗,見表3。
表3 Jaccard算法未召回標(biāo)準(zhǔn)詞樣例
4.2.1 模型訓(xùn)練集構(gòu)建 基于預(yù)訓(xùn)練模型的實體消歧需要構(gòu)建包含正負例的訓(xùn)練集用于訓(xùn)練模型。根據(jù)相似度算法性能對比實驗,基于Jaccard相似度算法,計算原詞i與標(biāo)準(zhǔn)詞詞表中的每個標(biāo)準(zhǔn)詞的Jaccard相似度系數(shù),取相似度值前15位作為候選詞表,將標(biāo)準(zhǔn)詞i從候選詞表中去除后剩下的候選標(biāo)準(zhǔn)詞j用于構(gòu)建負例[17]。訓(xùn)練集正例為:<原詞i,標(biāo)準(zhǔn)詞i,1>。負例為:<原詞i,標(biāo)準(zhǔn)詞j,0>。由于正樣本數(shù)較少,與負樣本數(shù)相差較大,為了擴充正樣本,構(gòu)建10*(標(biāo)準(zhǔn)-原始+原始-標(biāo)準(zhǔn))共33 460條正樣本。
4.2.2 實驗環(huán)境及參數(shù) 本實驗代碼使用Python 3.6和Tensorflow 1.8編寫,模型詳細訓(xùn)練參數(shù)包括學(xué)習(xí)率(learning_rate)、每個樣本處理成的長度(pad_size)、隱藏層中節(jié)點個數(shù)(hidden_size)、單次訓(xùn)練選取樣本數(shù)(batch_size)、樣本訓(xùn)練輪次(num_epochs),見表4。
表4 預(yù)訓(xùn)練模型參數(shù)設(shè)置
4.2.3 實體消歧實驗結(jié)果 在基于Jaccard算法生成候選實體集的基礎(chǔ)上,選取4種在二分類任務(wù)中表現(xiàn)較好的深度學(xué)習(xí)預(yù)訓(xùn)練模型作為基準(zhǔn)進行實驗,以對比分析不同模型的性能,見表5。從結(jié)果可知,采用RoBERTa-wwm模型的準(zhǔn)確率最高,ALBERT模型的精確率和F1值最高,BERT模型的召回率最高,RoBERTa模型的各項指標(biāo)效果都接近理想,因此難以確定最佳模型。同時還注意到,4個模型整體的準(zhǔn)確率、精確率和F1值仍不太理想。對輸出結(jié)果文檔進行分析后發(fā)現(xiàn)除藥物分類之外的其他分類各項指標(biāo)均已大于86%,但是藥物分類的原始詞和標(biāo)準(zhǔn)詞之間差異性過大,導(dǎo)致召回率較低,還需對此問題進行解決。
表5 實體消歧實驗結(jié)果指標(biāo)統(tǒng)計
4.2.4 優(yōu)化后實體消歧實驗結(jié)果 針對藥物原始詞和標(biāo)準(zhǔn)詞差異過大問題,提出通過別名間相似性來進行知識補全從而提高實體映射效果的方法。標(biāo)準(zhǔn)詞的別名間大多存在字符相似關(guān)系,如“甲硝唑”的別名有“滅滴靈”和“滅滴唑”,“布地奈德”的別名有“普米克”和“普米克令舒”。因此,本文針對藥物實體采集第2批共9 481條標(biāo)準(zhǔn)實體-別名語料,構(gòu)建藥品別名映射庫,增加藥品原始詞與藥品標(biāo)準(zhǔn)詞別名的匹配,若匹配到藥品別名,將其鏈接至標(biāo)準(zhǔn)詞。從結(jié)果可知,方法優(yōu)化后,4個模型組合的實驗結(jié)果均有較大提升,召回率均超過98%。采用Jaccard+BERT方法進行實體映射的各項指標(biāo)均優(yōu)于其他模型,F(xiàn)1值達到94.87%,見表6。
表6 優(yōu)化后實體消歧實驗結(jié)果指標(biāo)統(tǒng)計
本文標(biāo)注了一個中文電子病歷實體映射數(shù)據(jù)集,結(jié)合相似度算法與深度學(xué)習(xí)預(yù)訓(xùn)練模型,探究進行海量實體映射的最佳算法與模型組合。采用相似度算法進行候選實體生成,采用預(yù)訓(xùn)練模型進行實體消歧,并比較不同算法模型效果。結(jié)果顯示采用Jaccard相似度算法與BERT模型的組合能夠達到最優(yōu)效果。同時本文提出通過別名間相似性改進實體映射效果的方法,各組合模型較改進前的F1值平均提高15.69%,達到較理想的實體映射效果,為未來相關(guān)研究提供思路。但是本文標(biāo)注樣本量較少,缺乏對不同類型實體映射效果的分別比較,未詳細探究術(shù)語構(gòu)成特點,未來可增加對不同類型實體的對照研究,針對性探究改進方案,以提升中文電子病歷實體映射效果。