婁 培,胡佳慧,趙琬清,陳凌云,方 安
知識圖譜作為一個結構化的圖模型,可以很好地描述現實中各種實體及相互之間的關系,在信息檢索等領域有著非常重要的作用。知識圖譜也被廣泛用于醫療領域,利用知識圖譜描述病歷中相關的醫療知識,可以提高數據的利用率,推動智能醫療的發展,為醫生的決策支持起到重要的輔助作用[1]。
知識圖譜的構建流程包括本體構建、數據抽取、數據融合、數據存儲、可視化展示。由于構建醫學知識圖譜的數據來源廣泛,從異構數據源中抽取的醫學名詞差異化嚴重,導致圖譜中存在實體重復、冗余等問題,進而無法很好地完成檢索、知識推理、圖譜問答等一系列任務,因此需要進行數據融合,使其成為一個有機整體,有利于進行更全面的知識共享[2]。本文以醫學知識圖譜為切入點,將電子病歷數據與網絡資源進行融合,以期構建一個內容更全面的知識圖譜,在此過程中,提出了一種基于多維特征的實體融合方法,可以更好地適用于醫學知識圖譜知識融合。
知識圖譜實例層的融合主要以實體對齊任務為主,即將知識庫中含義相同但標識符不同的實體進行知識發現和合并。實體對齊方法主要分為基于實體屬性的方法和基于表示學習的方法兩大類[3]。有學者設計了融合屬性信息的雙向對齊圖卷積網絡模型,通過融合更多的圖譜信息提高了實體對齊準確率[4]。有學者利用度量空間的數學特征過濾掉大量不滿足映射條件的實例對,使用三角形不等式計算實體間相似性[5]。有學者開發了Silk Linking Framework 工具包,用于發現Web 數據源之間的數據鏈接,允許用戶定義規則并基于字符、數字、日期相似度進行實體對齊[6]。還有學者使用機器學習方法進行實體對齊,如有學者使用詞頻-逆文檔頻度(term frequency-inverse document frequency,TF-IDF)、隱含狄利克雷分布(latent Dirichlet allocation,LDA)計算文本型實體的相似度,使用支持向量機(support vector machine,SVM)、Logistic 回歸等方法進行建模,得到了較好的結果[7];有學者使用主動學習方法訓練一個分類器對記錄進行匹配[8];有學者提出了一種簡單貪婪匹配算法(SiGMa),適用于大規模知識庫的實體對齊,利用圖的結構信息和局部實體屬性進行相似性度量[9]。
近年來,基于表示學習的實體對齊算法受到了廣泛的關注。該算法將知識圖譜中的實體映射到低維的向量空間,在低維空間中可以高效地計算實體、關系及其之間的聯系,解決知識圖譜數據稀疏性問題[10]。通過將實體映射成向量以便使用公式計算各實體間的相似度,在知識融合時具有很好的效果。有學者使用語義和結構特征訓練基于聯合表示學習的實體對齊模型,以提升實體對齊的效果[11]。有學者使用有監督實體對齊方法,通過TransE 算法把實體和關系表示成向量,計算向量之間的語義距離判斷兩個實體是否對齊[12]。有學者提出了一種基于表示學習的知識圖嵌入和實體對齊算法,基于預先對齊的實體對,將頭、尾實體與相應的上下文向量建模,將實體嵌入到公共空間中,在統一框架下解決了實體的嵌入和對齊問題[13]。有學者提出了一種利用聯合知識嵌入實現實體對齊的方法,根據一個小的對齊實體種子集,將不同圖譜的實體和關系聯合編碼到一個統一的低維語義空間中,根據實體的語義距離在這個聯合語義空間中進行對齊[14]。有學者提出一種融入實體描述的知識圖譜表示學習模型(description-embodied knowledge representation learning,DKRL),利用連續詞袋模型(continuous bag of words,CBOW)和卷積神經網絡(convolutional neural networks,CNN)將實體的描述信息轉換成向量,然后利用TransE 進行訓練[15]。
通用領域的實體對齊任務已受到廣泛關注,醫學領域也在逐漸開展相關研究。有學者提出了一種通過挖掘Web 數據建立糖尿病知識庫的方法,從垂直門戶的半結構化內容中提取知識,然后進一步將它們映射到統一的知識圖中,使用基于距離的期望最大化(expectation maximization,EM)算法進行知識融合[16]。有學者構建了中文癥狀知識庫,以從醫療網站中提取的數據和中文百科網站中提取的癥狀為補充,利用實體類型對齊、實體映射和屬性映射融合抽取到的數據,以解決不同數據源之間的數據重復問題[17]。有學者構建了一個生物醫學知識圖譜,從出版物、百科全書、醫療門戶網站和在線社區中提取和融合了數據,并使用邏輯推理進行了一致性檢查[18]。
醫學領域數據專業性強,多以臨床術語記述,且包含醫學習慣用語、縮略語等。其中,疾病名稱和癥狀名稱的不規范表述現象尤為嚴重,在圖譜構建過程中容易造成歧義和冗余。因此,本文針對醫學知識圖譜結構和醫學術語表述的特點,提出了一種基于多維特征融合的實體對齊方法。
針對醫學數據的特點,在構建醫學知識圖譜過程中習慣將圖譜本體層劃分為疾病、癥狀、治療、病因等實體類型,圖譜呈現為以疾病為中心的一階發散結構,根據這類圖結構特點,本文提出一種融合多維特征的醫學知識圖譜分步實體對齊方法。在待對齊的數據三元組中,將疾病類型定義為頭實體,其他類型歸類為尾實體,首先對齊尾實體節點,對齊后得到語義一致的尾實體表達,然后進行頭實體對齊。
廣義上的實體對齊方法分為成對對齊和集體對齊兩種,成對對齊只根據一個實體對中兩個實體本身的信息進行匹配,集體對齊會考慮整個知識圖譜的信息進行實體匹配[19]。本文綜合考慮頭、尾實體本身的相似度和鄰居節點的相似度,從實體的語義、結構、字符3 方面提取特征,利用監督學習方法訓練實體對齊模型,模型框架見圖1。

圖1 多維特征融合的頭尾實體對齊模型框架
在尾實體對齊中,通過尋找異構數據源中相同類型實體之間的最佳對齊方式來融合數據。選取實體的3 個特征(即語義、結構、字符特征)構建模型。通過基于Transformer 的雙向編碼模型(bidirectional encoder representations from transformer,BERT)、Word2Vec 模型得到實體語義信息的向量表示,利用TransR 模型得到實體結構信息的向量表示,進行向量拼接并計算余弦距離得到相似度,通過Jaccard 系數獲得實體的字符相似度特征。將多個特征送入分類模型訓練得到尾實體對齊結果(圖2)。

圖2 尾實體對齊模型
2.2.1 語義特征
文本型數據對齊中廣泛使用到語義相似度計算,通過詞向量中攜帶的語義信息進行特征提取。本文使用兩種語義模型對實體構造嵌入,將異構數據源實體映射到同一向量空間,通過度量空間距離衡量語義上的相似度。
Word2Vec 模型是一種分布式的向量表示方法,通過從大數據集中學習高質量的詞嵌入計算單詞的矢量表示[20]。由于Word2Vec 訓練的準確率與訓練數據有直接關系,且醫學知識圖譜有很強的領域專業性,因此結合通用語料和醫學領域專業語料作為訓練語料。本文使用CBOW 模型將詞映射到固定維度空間,對實體詞xi使用隨機梯度下降的優化方法,最小化目標函數,更新并輸出向量,得到實體的向量表示w2v_vec(xi)。
基于BERT 模型的自然語言處理任務通過預訓練過程和微調過程兩個過程實現[21]。將訓練語料輸入BERT 模型中,通過訓練Next Sentence Prediction和Masked 語言模型兩個任務得到詞語的表達。模型的輸入是位置信息、詞、句子3 種向量的疊加。通過微調預訓練模型將語料中的知識遷移至向量BERT_vec(xi)中(圖3)。

圖3 BERT 模型語義相似度計算
2.2.2 圖結構特征
自然語言處理模型通常需要對大規模語料進行訓練,學習隱含的語義信息,知識表示學習不依賴于文本信息,而是通過將實體映射到低維空間來獲得數據的深度特征。TransE 模型借鑒了Word2Vec 的平移不變性思想,對實體和關系進行分布式表示,但由于模型設計簡單只能學習“一對一”關系,而醫學知識圖譜中包含眾多“一對n”關系。因此,本文使用了將不同關系分別映射至不同空間的TransR 模型[22]。
將抽取的三元組數據作為正例(h,r,t),對每個正例三元組,隨機替換頭實體或尾實體生成負例{(h′,r,t) ∪ (h,r,t′)}。通過映射矩陣將關系r映射到不同空間,對每個三元組,將其損失函數定義為公式(1)。利用梯度下降法對參數進行更新,得到含有實體圖結構特征的向量表示Trans_vec(xi)。

2.2.3 字符集合特征
Jaccard 系數可以比較樣本集之間的相似性和差異性。將異構數據源中的每個實體分別映射到集合M、W,Jaccard 系數定義為集合M與W交集的大小與并集大小的比值,Jaccard 值越大說明相似度越高。使用Jaccard 系數計算一個實體對中相同字符數與總字符數之比,得到實體對的字符集合特征Sim_symjac。

2.2.4 相似度計算
通過對異構數據源中的實體構造嵌入,得到了實體的語義特征和結構特征向量。利用向量的運算特性將上述w2v_vec、BERT_vec、Trans_vec向量橫向拼接。通過計算拼接后向量在二維空間的夾角余弦值評估它們的相似度,夾角θ越小,余弦值越大,得到兩個數據源中實體對的相似度Sim_symcos,計算公式為公式(3)和公式(4)。在實體對齊任務中,因為數據的類別注釋只有相同或不同兩種類型,因此將其轉換為二分類問題,將實體對的余弦相似度值和Jaccard 系數值作為分類模型的輸入進行訓練,得到融合結果,計算公式為公式(5)。

尾實體融合完成后,對頭實體(疾病)進行融合。當三元組中尾實體類型和關系類型相同而對應的頭實體名稱不同時,考慮頭實體的屬性相似性和結構相似性進行實體對齊(圖4)。

圖4 頭實體對齊模型
2.3.1 屬性相似性
利用疾病的別名屬性和英文名稱屬性可以進行實體對齊,如果兩個數據源中頭實體具有相同的疾病名稱、別稱、英文名稱,即可認為兩個實體相同,如垂體生長激素腺瘤的英文別名為Marie,中文別名包括生長激素腺瘤、GH 腺瘤等。
2.3.2 結構相似性
當實體不能通過別名進行對齊時,根據結構相似度判斷兩實體的相似性。以異構數據源中的兩個疾病集合為例,對頭實體x,y的相似度需考慮以下3 個因素:兩頭實體包含的相同尾節點個數Num_tail,計算公式為公式(6);兩個數據源中頭實體對應的所有尾實體集合中相同字符數與總字符數的比值,計算公式為公式(7);通過TransR 模型計算頭實體所得的向量余弦相似度Sim_TransR。在相似度特征值計算完成后,仍將結果輸入到分類模型進行頭實體分類,計算公式為公式(8)。

由于醫學知識圖譜實體對齊研究中沒有先驗數據集,因此本文以垂體瘤專病知識圖譜構建為例驗證所提出的分步實體對齊方法的有效性(圖5)。數據來源包括兩個部分。一部分數據來源于我國某三甲醫院神經外科治療中心,包含300 名垂體瘤患者的臨床診療信息。在臨床醫生的指導下對疾病、癥狀實體進行標注,使用基于單字特征的條件隨機場(conditional random field,CRF)進行實體識別[23],最終得到80 種疾病和762 個相關癥狀實體。另一部分數據從醫學網站和質量較高的百科類網站中選取。將電子病歷中抽取的疾病實體作為檢索詞,在醫學網站進行檢索。由于單一的門戶網站包含的疾病種類有限,信息檢索不全面,因此選取了“尋醫問藥網”[24]、UpToDate 臨床顧問[25]、百度百科[26]、“春雨醫生”[27]4 個數據質量較高、結構化程度較好的網站。通過設計正則等規則構建數據抽取器,實現對網站中疾病和癥狀數據的自動化抽取,得到58 種疾病和435 個相關癥狀實體。

圖5 無功能垂體腺瘤數據對齊實例
最終,得到垂體瘤疾病相關的3 154 個“疾病-癥狀”三元組進行模型實驗,訓練集與測試集按7∶3 進行劃分。本文使用了監督學習模型,在專業醫生的幫助下對實體對的相似性進行人工標注,如果該實體對可以融合,標記為1,否則標記為0。
實驗在Windows 10 環境下進行,模型基于TensorFlow 框架構建。在訓練基于Word2Vec 的語義相似度模型時,使用Python 的gensim 庫提供的方法進行詞向量訓練。使用CBOW 模型,參數定義如下:min_count=1,hs=1,window=10,dim=150維。對谷歌預訓練好的BERT 模型進行微調,參數定義如下:epoch=100,batchsize=100,λ=0.001,dim=768 維。將構建好的正負例“疾病-癥狀”三元組輸入TransR 模型,定義向量維度dim=50 維。
分類模型訓練調用Sklearn.linear_model 子類下的回歸模型、Sklearn.tree.DecisionTreeClassifier子類下的決策樹模型和深度神經網絡(deep neural networks,DNN)模型。使用DNN 模型時設置輸入層3 個神經元,隱藏層4 個神經元,輸出層2 個神經元,設置參數為n_epoch=30,batch_size=32,show_metric=True。
在尾實體對齊模型中,采用logistic 回歸、決策樹和神經網絡3 種不同的分類模型進行訓練,結果如表1 所示。訓練結果顯示,神經網絡表現最好,準確率為99.58%,F1 值為99.58%。模型可以很好地將具有相似特征的實體進行合并。

表1 融合多維特征的醫學知識圖譜分步實體對齊模型結果
將尾實體融合后的三元組用于頭實體融合實驗。其中17 個實體可直接映射,6 個實體可通過別名屬性進行融合,包括垂體生長激素腺瘤、垂體微腺瘤、庫欣綜合征、甲狀腺功能減退等。仍利用上述3 種分類模型進行頭實體對齊訓練,模型對齊了42 個頭實體。實驗結果顯示,頭實體對齊實驗中決策樹的分類效果更好,其準確率達到97.47%,F1值達到97.32%。
使用Logistic 回歸作為基線模型,在頭實體、尾實體融合中,基線模型的準確率達到了83.92%,說明本文選擇的特征可以很好地表達實體信息。相較于尾實體,頭實體數據量小,神經網絡在訓練過程中出現過擬合,決策樹在頭實體對齊實驗中表現更好;而隨著數據量的增加,在尾實體對齊時,神經網絡的優勢則體現出來。
本文介紹了一種融合多維特征的醫學知識圖譜分步實體對齊方法,利用抽取到的電子病歷和網絡資源中的疾病和癥狀信息,對實體對齊模型進行了研究。根據醫學數據特征,本文提出了分步的頭實體、尾實體對齊方法,并全面考慮到了數據的語義、結構、字符相似度特征。實驗結果顯示,頭實體、尾實體融合的準確率都很高,均達到了97%以上,說明該方法可以有效將異構數據源融合在一起,適用于多源異構醫學知識圖譜的構建。
本文也存在一定的局限,由于數據量較小,在實體對相似度計算時沒有考慮計算復雜度,今后將考慮引入分塊的思想,將知識圖譜劃分成n 個小規模的圖譜進行匹配以降低計算復雜度,同時還將嘗試把知識圖譜用在醫療決策支持等場景中,幫助醫生和患者解決實際問題。