李 怡,楊 丹
(遼寧科技大學(xué) 計算機與軟件工程學(xué)院,遼寧 鞍山 114051)
病人相似性[1]是利用病人的醫(yī)療實體作為特征進(jìn)行學(xué)習(xí),把具有相似特征的病人劃分為一個病人相似組。正確識別具有相似臨床特征的病人可以為診斷和用藥提供臨床參考。因此,有效利用醫(yī)療實體提高病人相似性度量的精準(zhǔn)性,對提升醫(yī)療服務(wù)水平,推動個性化醫(yī)療建設(shè)具有重要意義。
圖神經(jīng)網(wǎng)絡(luò)(Graph neural networks,GNN)[2]能夠很好地處理像醫(yī)療這樣復(fù)雜的數(shù)據(jù),通過聚合鄰居信息有效學(xué)習(xí)節(jié)點的向量表示。但圖神經(jīng)網(wǎng)絡(luò)研究大部分是基于半監(jiān)督學(xué)習(xí),需要大量的節(jié)點標(biāo)簽,現(xiàn)實生活中獲取節(jié)點標(biāo)簽費時費力,且大部分圖神經(jīng)網(wǎng)絡(luò)通過構(gòu)建鄰接矩陣來表示學(xué)習(xí)并不能充分學(xué)習(xí)到結(jié)構(gòu)和語義信息。而自監(jiān)督對比[3]無需標(biāo)簽也可以學(xué)習(xí)有意義的節(jié)點向量表示,利用不同的對比視圖提取節(jié)點正樣本與負(fù)樣本,最大程度上使正樣本相近而負(fù)樣本相遠(yuǎn),這樣不僅能夠充分挖掘數(shù)據(jù)中結(jié)構(gòu)和語義信息,也無需依賴標(biāo)簽。但將自監(jiān)督對比學(xué)習(xí)應(yīng)用于圖神經(jīng)網(wǎng)絡(luò)以提高病人向量的精準(zhǔn)性,還需要解決兩個問題:(1)電子病歷(Electronic medical record,EMR)[4]中含有多種類型的節(jié)點,節(jié)點間含有豐富的結(jié)構(gòu)信息及語義信息,將這些節(jié)點嵌入低維向量空間具有一定挑戰(zhàn)性。(2)僅通過圖神經(jīng)網(wǎng)絡(luò)來聚合節(jié)點信息還遠(yuǎn)遠(yuǎn)不夠,還要考慮節(jié)點間存在一致及差異的特點,學(xué)習(xí)節(jié)點間復(fù)雜的相關(guān)性。
針對上述問題,本文提出基于自監(jiān)督對比學(xué)習(xí)的病人相似性框架SCO4PS。該框架首先從EMR 中構(gòu)建醫(yī)療屬性異構(gòu)信息網(wǎng)絡(luò)[5],保留數(shù)據(jù)間豐富的異構(gòu)關(guān)系,從中選取藥物視圖和程序視圖,通過圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)兩個病人特征表示。然后利用自監(jiān)督對比機制進(jìn)行視圖內(nèi)與視圖間的對比學(xué)習(xí),捕獲視圖中病人節(jié)點表示的相互關(guān)聯(lián)、互補的關(guān)系信息,提高圖編碼后的效果。最后,將病人向量表示輸入到相似性度量函數(shù)中進(jìn)行病人相似性計算。
傳統(tǒng)的病人相似性方法一般是通過機器學(xué)習(xí)進(jìn)行病人相似性研究。例如,Huang等[6]提出一種基于Jaccard系數(shù)和歐氏距離的病人相似性度量方法,以此建立預(yù)測模型,用于糖尿病的預(yù)測。Lee等[7]利用基于余弦的病人相似度度量來測量病人間的相似性,通過識別和分析過去相似的病人來構(gòu)建動態(tài)個性化決策支持系統(tǒng)。王妮等[8]提出基于半監(jiān)督學(xué)習(xí)的病人相似性度量,并與傳統(tǒng)的歐氏距離和余弦距離結(jié)果進(jìn)行比較,證明所提出的病人相似性度量方案的有效性。Chan等[9]使用支持向量機進(jìn)行病人相似性加權(quán),以此進(jìn)行相似性分析。Sun 等[10]提出局部監(jiān)督度量學(xué)習(xí)的病人相似性方法,通過調(diào)整距離找到相似病人。然而,機器學(xué)習(xí)應(yīng)用于病人相似性研究具有一定的局限性,既未充分利用各種類型的醫(yī)療數(shù)據(jù),也未有效學(xué)習(xí)醫(yī)療數(shù)據(jù)中豐富的結(jié)構(gòu)及語義信息。
圖神經(jīng)網(wǎng)絡(luò)通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖結(jié)構(gòu)數(shù)據(jù),對圖中相鄰節(jié)點信息進(jìn)行傳播和聚合,能夠很好地處理像醫(yī)療這樣節(jié)點類型多樣且復(fù)雜的數(shù)據(jù)。因此,圖神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于醫(yī)療領(lǐng)域并取得了不錯的成果。例如,Huang等[11]提出一種利用患者疾病和藥物數(shù)據(jù)的患者相似度計算方法,通過注釋異構(gòu)信息網(wǎng)絡(luò)建立模型,并使用S-PathSim來衡量患者的相似性。Gu等[12]提出一種新的深度學(xué)習(xí)框架SSGNet,將電子病歷構(gòu)建成圖來學(xué)習(xí)節(jié)點嵌入和節(jié)點間的相似性,并優(yōu)化病人的圖結(jié)構(gòu),增強模型容量進(jìn)行病人相似性學(xué)習(xí),減少病人間潛在關(guān)系的稀疏性給相似性帶來的困難。Wei 等[13]提出一個端到端鑒別學(xué)習(xí)框架SparGE,通過聯(lián)合稀疏編碼和圖嵌入來度量相似性。Sun 等[14]提出一種新的基于深度學(xué)習(xí)的動態(tài)患者相似性分析模型,用于計算病人相似性。
SCO4PS框架主要分為三部分:第一部分為病人的醫(yī)療屬性異構(gòu)信息網(wǎng)絡(luò)構(gòu)建,第二部分為病人的多視圖對比學(xué)習(xí)模塊,第三部分為病人相似性度量模塊??蚣芙Y(jié)構(gòu)如圖1所示。
圖1 基于自監(jiān)督對比學(xué)習(xí)的病人相似性框架圖Fig.1 Patient similarity framework based on self-supervised contrastive learning
從EMR 中提取病人實體及病人相關(guān)的醫(yī)療實體(藥物、程序),構(gòu)建病人的醫(yī)療屬性異構(gòu)信息網(wǎng)絡(luò)。該網(wǎng)絡(luò)由病人P={p1,p2,…},藥物D={d1,d2,…},程序T={t1,t2,…}三類節(jié)點組成,有病人-程序、病人-藥物兩條類型邊,同時每個病人包含一段醫(yī)療文本作為病人屬性,該文本描述病人的年齡、性別、手術(shù)情況、用藥情況等基本信息。
從病人的醫(yī)療屬性異構(gòu)信息網(wǎng)絡(luò)中提取藥物視圖及程序視圖進(jìn)行多視圖學(xué)習(xí)。多視圖學(xué)習(xí)是基于病人不同的視圖來捕獲視圖間相互關(guān)聯(lián)、互補的關(guān)系信息以及自身的信息,使用自監(jiān)督對比學(xué)習(xí)來平衡不同視角學(xué)習(xí)特征,從而得到更準(zhǔn)確的病人節(jié)點表示。
2.2.1 元路徑視圖 藥物視圖和程序視圖內(nèi)部又劃分為元路徑視圖和網(wǎng)絡(luò)模式視圖,如圖1 中a和b 所示,元路徑視圖能夠聚合高階的結(jié)構(gòu)信息,可以學(xué)習(xí)到二階或者更高階的信息。在病人的醫(yī)療屬性異構(gòu)信息網(wǎng)絡(luò)中,兩個節(jié)點可以通過不同的語義路徑進(jìn)行連接,稱為元路徑。
給定一條元路徑Rn∈{R1,R2},其中R1和R2分別表示病人-藥物-病人元路徑和病人-程序-病人元路徑,以病人目標(biāo)節(jié)點i開始,得到基于元路徑的鄰居。而后,通過聚合鄰居信息學(xué)習(xí)其不同語義及其相關(guān)性,使用特定元路徑的圖卷積神經(jīng)網(wǎng)絡(luò)(Graph convolutional networks,GCN)來編碼聚合,計算式
式中:di,dj是節(jié)點i,j 的度;pi,pj是節(jié)點i,j的投影特征;pRni表示元路徑Rn下病人pi的嵌入表示,
2.2.2 網(wǎng)絡(luò)模式視圖 網(wǎng)絡(luò)模式視圖通過節(jié)點間的直接聚合,學(xué)習(xí)病人的一階鄰居信息,考慮病人異構(gòu)信息網(wǎng)絡(luò)中的局部結(jié)構(gòu)信息。病人目標(biāo)節(jié)點i連接不同類型鄰居Φs∈{Φ1,Φ2},其中Φ1={d1,d2,…,dm}表示藥物類型節(jié)點,Φ2={t1,t2,…,tm}表示程序類型節(jié)點,目標(biāo)節(jié)點通過Φs類型連接的鄰居節(jié)點被定義為NiΦs。通過聚合這些一階節(jié)點學(xué)習(xí)病人的局部結(jié)構(gòu)特征,采用GCN聚合方法,計算式
式中:pj為節(jié)點j的投影特征;為聚合不同類型節(jié)點后病人pi的嵌入表示。
2.2.3 視圖注意力聚合 分別得到藥物視圖下的病人嵌入表示和,以及程序視圖下的病人嵌入表示和后,對元路徑視圖和網(wǎng)絡(luò)模式視圖進(jìn)行視圖注意力聚合學(xué)習(xí)兩個視圖的重要性,得到最終的嵌入表示zi
其中,βΦs和βRn分別表示Φs類型鄰居和元路徑Rn對目標(biāo)節(jié)點i的重要性,以βΦs為例,其計算式
其中,V表示目標(biāo)節(jié)點集,W∈Rd×d,b∈Rd×1是可學(xué)習(xí)參數(shù),a是視圖級注意向量。
2.2.4 視圖間對比學(xué)習(xí) 通過編碼聚合分別學(xué)習(xí)到藥物視圖和程序視圖的最終病人嵌入表示zdrugi和zproi后,將它們輸入到含有隱藏層的多層感知器中,以此將它們映射到對比損失空間中
式中:W2,W1,b2,b1為可學(xué)習(xí)參數(shù),在兩個視圖中共享;σ表示RELU激活函數(shù)。
在計算對比損失函數(shù)時需要進(jìn)行正負(fù)樣本的選擇,且異構(gòu)信息網(wǎng)絡(luò)中兩個節(jié)點之間連接數(shù)越多,越能說明這兩個節(jié)點高度相關(guān)。因此,如果兩個病人節(jié)點間由多個醫(yī)療實體連接,那么把這類節(jié)點設(shè)為正樣本,其他則為負(fù)樣本。假設(shè)有目標(biāo)病人節(jié)點i與病人節(jié)點j,定義一個函數(shù)Ci(j)統(tǒng)計兩個病人節(jié)點連接醫(yī)療實體的總數(shù),計算式為
設(shè)置一個正樣本閾值Kpos,若Ci(j)>Kpos,則為正樣本,記作K+ ,否則為負(fù)樣本記作K- 。目標(biāo)節(jié)點病人Pi與Pj共同使用的醫(yī)療實體(藥物、程序)個數(shù)超過所設(shè)定的閾值Kpos,那么病人Pj就是病人Pi的正樣本,如圖2所示。
圖2 正樣本閾值設(shè)定Fig.2 Threshold setting of positive samples
選好正負(fù)樣本后,進(jìn)行藥物視圖和程序視圖間的對比學(xué)習(xí),計算藥物視角下的對比損失
同理把程序視圖作為目標(biāo)嵌入,從藥物視圖中選取正負(fù)樣本,得到在程序視角下的對比損失Lpro。
將藥物視角下的對比損失和程序視角下的對比損失結(jié)合,得到視圖間的對比損失Linter,這樣既保留了藥物視圖與程序視圖之間的相關(guān)性,也以此實現(xiàn)跨視圖自監(jiān)督對比學(xué)習(xí)。
式中:V表示節(jié)點集合;α是平衡兩個視圖的超參數(shù),這里將α設(shè)置為0.5。
2.2.5 視圖內(nèi)對比學(xué)習(xí) 視圖內(nèi)對比學(xué)習(xí)僅考慮單個視圖本身,從自身選取正負(fù)樣本進(jìn)行學(xué)習(xí),以此保留自身結(jié)構(gòu)及語義信息,具體計算式
其中,Kdrug+表示在藥物視圖內(nèi)選取的正樣本;Kdrug-表示在藥物視圖內(nèi)選取的負(fù)樣本;sim(·)計算視圖內(nèi)兩個病人間的相似度。
程序視圖的對比損失與藥物視圖對比損失計算方法相同,由此分別得到兩個視圖自身的對比損失和。為了最終全面學(xué)習(xí)視圖內(nèi)和視圖間的病人表示,計算多視圖編碼模型優(yōu)化整體損失L
其中,β是平衡不同損失函數(shù)的超參數(shù),在實驗過程中對β使用不同數(shù)值進(jìn)行測試,通過實驗證明參數(shù)β為0.5時模型效果最好。
將模型優(yōu)化后得到的藥物視圖病人表示和程序視圖病人表示相融合,得到病人的低維向量表示,以此進(jìn)行病人相似性度量。
病人相似性度量通過病人間兩相比較,病人的特征向量由藥物、程序、醫(yī)療文本組合而成。給定一個目標(biāo)病人,通過將病人的嵌入向量輸入到相似性度量函數(shù)中,以此計算目標(biāo)病人與其他病人的相似度。相似度越高,說明兩位病人間具有相同標(biāo)簽的可能性越高;反之,說明病人之間具有不同標(biāo)簽的可能性越高。病人Pi和病人Pj的相似度記作
其中,ZP表示病人的嵌入向量。
為了評估SCO4PS 在病人疾病分類任務(wù)中的效 果,將SCO4PS 與Metapath2Vec、GCN、GAT(Graph attention networks)、HAN(Heterogeneous graph attention network)方法進(jìn)行對比實驗。
MIMIC-Ⅲ(Medical information mart for intensive care Ⅲ)[15]是一個免費向公眾開放的重癥監(jiān)護(hù)醫(yī)學(xué)信息的大型數(shù)據(jù)集。本文從數(shù)據(jù)集中提取出呼吸衰竭(Respiratory failure)、冠心?。–oronary disease)、心臟?。℉eart failure)、敗血癥(Septicemia)、胃炎(Gastritis)這5類疾病后,從患有這些疾病的病人中提取出藥物、程序以及病人的醫(yī)療文本數(shù)據(jù)。對這些數(shù)據(jù)進(jìn)行缺失值處理,將預(yù)處理后的數(shù)據(jù)用于后續(xù)實驗。
對比模型Metapath2vec 的窗口大小設(shè)為5,行走長度為100,每個節(jié)點的行走長度為40,負(fù)樣本數(shù)量為5。所有模型的學(xué)習(xí)率統(tǒng)一設(shè)為0.001,Drouput 為0.5,采用Adam 優(yōu)化器,嵌入維度為128。SCO4PS的藥物視圖和程序視圖都使用兩層GCN。
將SCO4PS 與其他基線模型得到的病人節(jié)點向量作為病人分類器的輸入,進(jìn)行病人疾病分類任務(wù)。采用宏觀F1(Macro-F1)、準(zhǔn)確率(Accuracy)作為分類任務(wù)的評價指標(biāo),結(jié)果如表1 所示。SCO4PS 各指標(biāo)都優(yōu)于其他方法,其準(zhǔn)確率為0.879,F(xiàn)1 值為0.850。HAN 模型各指標(biāo)次之。因為SCO4PS考慮了節(jié)點間的異構(gòu)性,能夠更好地保留異構(gòu)圖中豐富的語義及其相關(guān)性,因此要優(yōu)于同構(gòu)圖GCN 和GAT;同時,通過自監(jiān)督對比學(xué)習(xí)的預(yù)訓(xùn)練提取了豐富的語義及結(jié)構(gòu)信息,最終效果優(yōu)于HAN。節(jié)點特征對下游任務(wù)起著至關(guān)重要的作用,因此通過圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練節(jié)點特征要優(yōu)于隨機游走的模型Metapath2vec。
表1 疾病分類Tab.1 Disease categories
聚類分析可以觀察到不同疾病分布情況。將SCO4PS 與其他基線模型進(jìn)行聚類對比,采用蘭德指數(shù)(RI)、純度(Purity)、標(biāo)準(zhǔn)化互信息(NMI)三個聚類指標(biāo)對病人聚類任務(wù)進(jìn)行評估,結(jié)果如圖3所示。
圖3 病人聚類分析結(jié)果Fig.3 Clustering analysis results of patients
SCO4PS 在各指標(biāo)中都優(yōu)于其他基線模型。SCO4PS 的NMI指標(biāo)為0.716,比HAN 高出2.1%,比GAT 模型高出2.7%,比Metapath2vec 高出10.5%,比GCN高出11.8%。SCO4PS的RI指標(biāo)和Purity指標(biāo)分別為0.796 和0.879,其他基線的RI指標(biāo)和Purity指標(biāo)分別為0.689、0.717、0.743、0.759和0.823、0.827、0.853、0.855。這說明從多視圖中能夠更有效地學(xué)習(xí)異構(gòu)圖中病人的節(jié)點表示,并且通過自監(jiān)督對比學(xué)習(xí)能夠提取病人節(jié)點豐富的語義和結(jié)構(gòu)信息,進(jìn)一步提高病人的聚類效果。
本文提出一個通過自監(jiān)督對比學(xué)習(xí)來捕獲異構(gòu)信息網(wǎng)絡(luò)中病人的局部結(jié)構(gòu)信息和豐富的異構(gòu)語義及其相關(guān)性的病人相似性框架SCO4PS。首先構(gòu)建藥物視圖和程序視圖,對兩個視圖進(jìn)行編碼后,通過兩個視圖提取到的病人正負(fù)樣本進(jìn)行視圖內(nèi)對比學(xué)習(xí)及視圖間對比學(xué)習(xí),使視圖能夠?qū)W習(xí)自身信息的同時也能夠互相交互監(jiān)督,以此進(jìn)一步學(xué)習(xí)到病人的節(jié)點嵌入表示,最后將學(xué)習(xí)到的病人表示輸入到病人相似度量函數(shù)中計算病人相似性。與其他基線模型在MIMIC-III 數(shù)據(jù)集中進(jìn)行對比實驗,SCO4PS 指標(biāo)均好于其他模型,表明本文提出的病人相似性框架的有效性。