李 勇,馮 俐,王 霞
(1.西北師范大學計算機科學與工程學院,甘肅 蘭州 730070;2.新疆理工學院信息工程學院,新疆 阿克蘇 843100;3.甘肅省人民醫院藥劑科,甘肅 蘭州 730000)
電子病歷EMRs(Electronic Medical Records)是醫療機構的電子設備中保存、管理的數字化的病人診療記錄,主要包含患者在就診過程中產生并被記錄的完整、詳細的臨床信息,電子病歷的積累為健康醫療領域的研究和智能應用奠定了堅實基礎。近年來,基于深度學習模型的電子病歷分析在健康醫療領域得到廣泛應用,例如疾病風險評估[1]、表型分析[2]和藥物推薦[3]等。疾病預測[4-6]是深度學習模型在健康醫療領域重要的應用場景之一,常用于預測患者是否患有某種疾病,以便進一步提高個性化診療的質量。然而,已有的疾病預測模型都存在不足。
首先,EMRs數據存在不平衡問題。現有的臨床決策支持系統CDS(Clinical Decision Support)大多基于人工構建的知識庫,通過規則匹配進行輔助診斷,由于隱私保護等原因,公開發布的電子病歷數據量非常有限。而且不同病癥因發病率不同[7],導致電子病歷數據中不同病癥數據分布也存在不平衡問題,訓練一個健壯且可靠的分類器需要收集大量的電子病歷數據,這些數據必須滿足完整性、一致性和可理解性等特征,在實踐中,對于數據的這些要求極難做到。
其次,EMRs數據存在異構性。EMRs數據中蘊含的多種實體和實體間不同的語義關系,表現出明顯的異構性[8],傳統的同構建模方法無法有效處理這些復雜的結構信息,無法識別出有意義的實體和路徑關系信息。在疾病預測中,如何選擇患者節點最有意義的鄰居節點和語義關系,并為它們賦予適當的權重是一個尚未解決的難題。
最后,EMRs情境信息多源,除了包含患者的病情描述之外,還包含患者基本信息、診療過程和生理記錄等情境信息[9]。這些信息對細化患者病情診斷有輔助作用,但由于其既不規則且又無序,很難對其進行結構化處理[10],以往的研究丟棄了這些情境信息,降低了預測準確率。
針對以上問題,本文主要進行了以下3方面研究:(1)提出了一種基于異構圖病歷注意力網絡的臨床輔助診斷HCAD(Clinical Assistant Diagnosis based on Heterogeneous graph)模型,基于外部醫學知識圖譜,將領域知識與電子病歷的內部信息進行融合,解決了數據不平衡問題;(2) HCAD模型中增加了分層注意力機制,使得患者節點的嵌入表示能更精確地捕捉到異構圖病歷網絡的結構信息和語義信息;(3) 將電子病歷中多種情境信息納入患者節點嵌入表示,有效提高了預測準確率。在真實電子病歷數據集上進行實驗,結果表明,在高血壓、心臟病等10種常見疾病預測任務上,本文提出的HCAD模型在F1值和其他評價指標上均優于基準模型。
對電子病歷中蘊含的豐富信息進行挖掘、分析與應用是一個跨學科且十分重要的研究問題,近年來,代表性的工作主要體現在3個方面。
圖神經網絡的目標是學習網絡中每個節點的低維向量表示,將其用于節點分類、節點聚合和鏈路預測等下游任務,其基本原理是每個節點向量均是由自身的特征和周圍鄰居節點的信息所構成。文獻[11]提出了一種非常有影響力的模型GCN(Graph Convolutional Network),該模型簡化了以前譜域中的圖卷積。文獻[12]提出了一種新的算法GraphSage,利用采樣和聚合函數學習歸納生成節點嵌入。文獻[13]在GCN的基礎上增加了注意力機制,實現了對不同鄰居權重的自適應分配。文獻[14]研究了如何將患者病歷中的時間序列信息融入到預測中,利用反向時間注意力機制來提高模型的預測準確性和可解釋性。然而,GraphSage雖能適應大規模網絡更新變化,但其精確度相比GCN有一定程度降低。GAT(Graph ATtention network)在提高精確度的同時也使得復雜度大幅度增加。
近年來,許多學者用圖神經網絡來分析EMRs,這些模型可以從原始的EMRs中捕獲結構信息。但是,由于電子病歷文本的專業性較強[15],術語中存在大量的同義詞或上下位詞,傳統的圖網絡模型并不適用。基于此,學術界提出了多個改進模型,以便學習節點更為合理的嵌入表示,并用于預測任務。文獻[16]用醫學本體固有的層次信息來補充EMRs,它可以學習到節點的合理嵌入,并用于下游預測任務。文獻[17]是在結構信息缺失的情況下聯合學習EMRs底層結構,在執行預測的同時聯合學習EMRs隱藏的因果結構。但是,以上研究僅限于同構圖,沒有利用EMRs數據中有利于細化患者表示的多源情境信息。原始的EMRs中包含著多種實體和實體間的各種關系,具有天然的、客觀事實存在的異構性,基于同構圖嵌入的電子病歷分析的方法不能充分利用網絡復雜的結構信息和豐富的語義信息。
異質信息網絡是含有多種實體和多種關系的信息網絡,充分學習異質信息網絡的核心是處理好該網絡的異構性,先前很多研究中也給出了消除網絡異構性的方法。文獻[18]將異構圖分割成多個同構圖,以相似矩陣作為輸入,使用注意力機制來衡量每個元路徑的影響,每個同構圖包含原始EMRs圖的部分信息進行預測分析。為了更好地建模分析復雜的異構圖,文獻[19]利用注意力機制從多方面表示節點并進行加權融合,但是,這種方法忽略了元路徑中間節點的信息。為了充分考慮元路徑上所有節點的信息,文獻[20]提出了元路徑內聚合器和元路徑間聚合器對異構圖進行建模分析。然而,這些方法在特定的復雜醫療網絡中,既沒有考慮異構圖病歷網絡中各類實體節點的重要性,也沒有考慮實體之間語義關系的重要性。
定義1(異構圖病歷網絡) 若節點類型數|C|和節點之間關系類型數|R|滿足|C|+|R|>2,則稱之為異構圖病歷網絡G={V,E},其中,V表示節點集合,E表示邊集合, 如圖1a所示。

Figure 1 Heterogeneous graph medical record network


從患者的電子病歷原始文本中提取出患者的年齡、性別、主訴、現病史和生理記錄等重要信息,將每個患者及其癥狀表示為病歷記錄網絡,形式化表示為P=(Vp∪Vs′,Eps′),其中,Vp是患者節點集,Vs′是癥狀節點集,Eps′表示患者與其表現出的癥狀之間的邊集,若癥狀s∈Vs′與患者p∈Vp相關聯,則2個節點之間存在一條連邊,即Eps′=1。圖1a右側展示了1個患者病歷網絡。
本文選取10種常見疾病進行分析,疾病名稱均采用國際疾病分類標準ICD-10表示,參考海量知識圖譜CMeKG(Chinese Medical Knowledge Graph)中疾病臨床癥狀等信息,將每種疾病與其對應的癥狀提取出來表示為一個概念圖,形式化表示為D=(Vd∪Vs,Eds),其中,Vd是疾病節點集,Vs是癥狀節點集,Eds是邊的集合。若癥狀s∈Vs與疾病d∈Vd相關聯,則2個節點之間存在一條連邊,即Eds=1。如圖1a左側所示,以高血壓d1和慢性肺源性心臟病d2這2種疾病為例,兩者有共同的癥狀s1和s3,則將疾病與癥狀進行連邊,以此類推構建所有疾病和癥狀的外部醫學知識圖譜。本文以外部醫學知識圖譜作為領域知識,與3.2節構建的患者病歷網絡中的癥狀節點進行融合,以解決因發病率不同造成的數據不平衡的問題。
本文提出的模型框架如圖2所示,在生成患者節點嵌入表示時,主要融合了2種分層注意力機制:節點級注意力機制和語義關系級注意力機制。節點級注意力機制可以篩選出有意義的鄰居節點,并將其聚合在一起形成節點的嵌入表示。

Figure 2 Framework of HCAD model
將3.2節構建的異構圖病歷網絡P和3.3節構建的外部醫學知識圖譜D進行數據集成,構成異構圖病歷網絡G作為模型的輸入。為方便起見,對于G中節點的特征向量矩陣表示為(A,X),其中,A是根據邊集合E生成的鄰接矩陣,當(vi,vj)∈E時,Aij=1;信息矩陣X是從電子病歷原文中提取的患者年齡、性別和生理記錄等信息進行區間變量向量化構成的,矩陣中的每一個行向量對應一個患者節點的初始嵌入表示。
由于異構圖病歷網絡中不同類型節點都有不同的特征表示t,對每種類型節點vi的鄰居節點信息聚合之前,需將不同類型節點的特征經節點類型的變換矩陣Hvi投影到相同的特征空間中,投影過程可描述為式(1):
t′vi=Hvi·tvi
(1)
此外,為了有效分辨出起決定性作用的鄰居節點,模型引入了節點級注意力機制,將有意義的基于元路徑的鄰居節點信息聚合在一起,形成節點的低維嵌入表示。

(2)
滿足此元路徑的2個節點均共享self_attnodes,self_attnodes表示執行節點級注意力機制的深度神經網絡。

(3)


(4)
為充分利用注意力機制的表達能力,HCAD模型調用K組相互獨立的注意力機制,使得訓練更加穩定,將學習到的輸出結果拼接在一起,如式(5)所示:
(5)

Figure 3 Stratified attention mechanism
異構圖病歷網絡中的節點包含多種類型語義信息,基于某一條元路徑的節點嵌入,只表示異構圖中某一方面的語義信息。為了更有效、更穩健地聚集節點鄰居的信息,學習得到更為全面的節點嵌入表示,本文設計了一種新的語義關系級注意力機制,以自動學習不同元路徑的重要性,選擇起決定性作用的元路徑并進行語義融合。語義關系級注意力機制以式(5)學習到的U組具有特定語義信息的節點嵌入為輸入,獲得每條元路徑的權重,如式(6)所示:


(6)

(7)
(8)
其中,W表示權重矩陣,b表示偏置向量,q表示語義融合向量,計算所有元路徑的權重系數時均共享上述參數。
最后,對所有元路徑下的節點嵌入表示進行融合,得到最終的節點嵌入Z,如式(9)所示:
(9)
本文將最終的節點嵌入應用到臨床預測問題中,在整個預測模型訓練的過程中,通過式(10)量化預測誤差:
(10)
其中,Yp表示患者節點p的標簽,Zp表示患者節點p的最終嵌入表示,Q用來攜帶分類器的參數,通過反向傳播來更新參數、優化模型。
基于異構圖病歷注意力網絡的臨床輔助診斷算法如算法1所示。
算法1基于異構圖病歷注意力網絡的臨床輔助診斷算法。

輸出:最終節點嵌入表示Z,節點級注意力系數λ,語義關系級注意力系數γ。

2.fork←1 toKdo
3. 節點特征轉換t′vi←Hvi·tvi;
4.forvi∈Vdo
8.endfor

10.endfor

12.endfor
13. 計算語義關系級注意力系數γ;

15.endfor
16.計算交叉熵損失函數L;
17.模型優化,參數更新;
18.ReturnZ,λ,γ
本文基于某三甲醫院的真實電子病歷數據和CCKS2017 Shared Task2開源中文電子病歷標準數據集進行實驗。真實電子病歷數據共有8 000多份電子病歷,包含每個科室最常見的疾病,即高血壓、糖尿病和慢性阻塞性肺病等多種疾病,根據本文研究內容篩選符合要求的電子病歷4 228份作為研究對象,每種疾病的數量和比例如圖4所示。原始電子病歷數據都是純文本形式,包含患者的個人信息(已去除隱私信息)、主訴、現病史、家族史、體征檢查和診斷結果等內容。基于這些數據構建一個干凈高效的異構圖病歷網絡,本文對數據進行以下處理:

Figure 4 Number of diseases in EMRs
(1)數據消歧:首先,進行文本分割、分詞處理和癥狀提取,形成半結構化的中文病歷數據集,獲得500多種癥狀實體。然后,在臨床專家的指導下,針對部分癥狀實體存在不同的表述或縮寫形式,進行清洗以消除歧義,最終得到405種有效癥狀實體。
(2)數據融合:本文使用的數據中不同疾病的電子病歷數量不平衡,高血壓有501份,而肺源性心臟病只有249份。從電子病歷中提取10種疾病對應的癥狀,且癥狀也存在不平衡問題。為解決電子病歷數據量有限且不同病癥數據分布不平衡等問題,本文構建外部醫學知識圖譜,將患者病歷記錄網絡中能夠與知識圖譜中的癥狀實體匹配的節點進行融合。
(3)多源情境信息向量化:電子病歷中患者的性別、年齡和體征檢查結果的可能取值較多,需要對這類情境信息進行分段處理,分段的依據包括:生活常識,如性別分為男女;數據特征,如血壓正常值一般為:90<收縮壓<140,60<舒張壓<90;根據年齡分段法對年齡進行分段,這種分段方式更貼近人們對于生活的認知[21]。以此將這類情境信息進行向量化處理并集成到患者節點的特征向量中,對于細化患者表示和預測診斷有重要的輔助作用。
為了驗證本文提出的HCAD模型的效果,選擇8種基準模型進行對比實驗,這8種模型主要分為3類:同構圖網絡嵌入模型GCN[11]和GAT[13],異構圖網絡嵌入模型HIN2Vec[22]、HeGAN(Heterogeneous information network inspired by Generative Adversarial Network)[23]、DHNE(Deep Hyper-Network Embedding)[24]和MetaGraph2Vec[25],以及與本文模型相近的2種變體模型HCADnode和HCADpath。
實驗過程中,參數學習率設置為0.005,Epochs設置為200。如果損失函數在連續50個Epochs上沒有減少,則模型停止訓練。異構圖病歷網絡中節點的初始向量維度R設定為491,模型最終嵌入的節點向量維度Z為64,語義融合注意力向量q的維度設置為32,注意力頭數K設置為8。所有模型使用的電子病歷數據按照7∶1∶2劃分訓練集、驗證集和測試集。
臨床診斷預測問題本質上既可以看作是一個分類任務[26],也可以看作是一個聚類任務。針對分類任務,本文采用通用的評價標準對實驗結果進行評估:Precision、Recall和F1值,計算方法分別如式(11)~式(13)所示:
(11)
(12)
(13)
其中,TP表示預測為正的正樣本個數,FP表示預測為正的負樣本個數,FN表示預測為負的正樣本個數。
在聚類任務中,本文使用歸一化互信息NMI(Normalized Mutual Information)評估聚類質量[27],NMI值越大表示性能越好。
5.4.1 分類結果分析
本文將每個患者節點的低維向量表示作為下游任務的輸入,將患者疾病診斷問題轉化為節點分類任務。為了保證預測結果更加穩定可靠,分類過程重復10次取其平均值。實驗結果如表1所示。根據表1可知,本文提出的HCAD模型具有以下優點:(1) 在所有模型中,HCAD模型的預測效果最好,F1值相比基準模型至少提高了4.86%;(2) 本文設計的2個消融實驗的預測效果相比其他基準模型均有提高,但低于HCAD的預測準確率,這充分證明了本文模型中分層注意力機制的有效性;(3) 與基準模型相比,結合圖結構信息和語義信息的HCAD模型在分類效果上有明顯優勢。這也表明HCAD模型不僅可以捕獲重要的基于元路徑的鄰居節點,還可以捕獲異構病歷網絡中更豐富的語義信息。

Table 1 Quantitative results on the node classification task
5.4.2 聚類結果分析
臨床診斷問題也可以看成是一個聚類任務,聚類效果可以用NMI來評價。由于聚類任務的性能受初始質點的影響,本文在聚類過程中重復實驗10次取評價結果的平均值。聚類結果如圖5所示,可以發現:(1)HCAD的表現始終優于所有基準模型,NMI值提高了8.23%;(2)HCAD模型能夠識別具有較大影響力的鄰居節點,能夠有效解決語義混淆的問題;(3)GCN、GAT和傳統異質模型MetaGraph2Vec的聚類效果相對較差;(4)增加了分層注意力機制的2種模型HCADnode和HCADpath在聚類效果上有不同程度的提高。

Figure 5 Quantitative results on the node clustering task
5.4.3 參數敏感度
本文進一步通過實驗分析了模型對關鍵超參數的敏感度,主要發現:
(1)隨著多頭注意力K值的增加,預測準確性有較大改善,如圖6a所示,多頭注意力可使得訓練過程更加穩定。

Figure 6 Parameter sensitivities of HCAD model
(2)增加患者多種情境信息后預測性能有較大提升。如圖6b所示,患者節點的初始嵌入維度R為405,增加了患者情境信息后R達到491,使得預測效果有近2%的提高,這表明HCAD模型利用了更多的潛在結構信息。
(3)隨著患者節點最終嵌入維度Z的增加,預測性能先增后減,如圖6b所示。這是因為較大的節點嵌入維度會帶來更多的噪聲,從而導致預測性能下降,同時也增加了計算復雜性。
(4)隨著語義融合向量q維度的增加,模型的預測性能也在提升,如圖6c所示,當q維度大于32時,預測性能由最高點開始緩慢下降。這是因為較大的語義融合向量維度可能會導致模型產生過擬合現象。
5.4.4 分層注意力機制分析
(1)節點級注意力機制分析。患者節點的嵌入表示不僅依靠節點自身信息,還需要聚合基于元路徑的鄰居節點的信息,一些重要的鄰居節點在聚合過程中需要更大的關注度。以圖7a為例,中心節點507是一名慢性肺源性心臟病患者,其基于元路徑PSP的鄰居節點有163,6和545等。從圖7b中模型為所有節點自動分配的權重值可以發現,中心節點507在聚合鄰居信息過程中,更關注該節點自身以及具有相同疾病類別的患者節點,例如患有慢性肺源性心臟病的患者節點503,545和579,即節點級注意力機制更能區分鄰居之間的差異,將較高的權重分配給重要的鄰居節點。

Figure 7 Analysis of node level attention mechanism
(2)語義關系級注意力機制分析。不同元路徑在特定任務中表現出不同的有效性,若將每條元路徑看作同等重要,則模型的預測性能就無法得到有效提升。語義關系級注意力機制可以為每條元路徑賦予不同的權重,并對各個元路徑代表的語義信息進行適當的融合。在聚類分析中,NMI值越高,表明元路徑越有效,如圖8所示。實驗發現:①在異構圖病歷網絡中,元路徑PSP相比PSDSP更為重要,因而其權值較高;②雖然元路徑PSP的權重比PSDSP的大,但兩者差異并不明顯,這可以解釋為什么在圖5中消融實驗HCADpath通過簡單加和平均計算也可以獲得相對較好的預測結果;(3)元路徑PSDSP在語義傳播過程中,匹配到的鄰居節點相比PSP更多,但大多數都不是同類型疾病的節點,使得通過元路徑PSDSP得到的節點向量表示預測效果較差,因而其重要性相對較低。

Figure 8 Analysis of semantic relational level attention mechanism
節點級注意力機制和語義關系級注意力機制為本文提出的HCAD模型的可解釋性帶來便利。由于節點級注意力機制能更加有效地區分鄰居節點之間的差異,將較高的權重分配給更為重要的鄰居節點;語義關系級注意力機制可以為每條元路徑賦予不同的權重。當再次輸入相同或者類似的數據時,通過回溯不同節點和元路徑的重要性,可對HCAD模型的疾病預測結果給出一個合理的邏輯解釋。
5.4.5 算法的復雜度分析
本文提出的HCAD模型與幾種基準模型都是基于圖神經網絡,為了對比方便,用于訓練模型的數據以相同的形式存儲,處理過程涉及到的最大矩陣均為二維矩陣,所以空間復雜度一致。算法一次正向傳播過程的時間復雜度對比如表2所示,其中,|V|表示異構圖病歷網絡中節點的數量,|E|表示網絡中邊的數量,且該網絡滿足|E|>|V|,d表示節點向量的維度。本文HCAD模型的時間復雜度為O((|V|+|E|)d),與異構圖病歷網絡的節點數和邊數成線性關系。對比模型中時間復雜度最低的為DHNE。在實驗中,本文HCAD模型的實際運行時間略大于GCN的實際運行時間。

Table 2 Comparison of model time complexities
本文提出了一種基于異構圖病歷注意力網絡的臨床輔助診斷模型HCAD,主要工作為:(1)利用電子病歷中有效信息構建異構圖病歷網絡,并建立外部醫學知識圖譜來解決數據不平衡問題;(2)模型能統一利用異構圖病歷網絡中復雜的結構信息和豐富的語義信息來生成更完整且更具有區分度的患者節點表示,以達到更好的預測效果;(3)模型中設置了分層注意力機制,包括節點級注意力機制和語義關系級注意力機制,分別學習鄰居節點和不同元路徑的重要程度。實驗表明,本文提出的臨床輔助診斷模型在10種常見疾病的分類和聚類效果上都表現出明顯的優越性,且具有較好的可解釋性。
HCAD模型還存在以下不足之處:(1)本文所構建的異構圖病歷網絡規模相對較小,模型僅對常見的10種疾病實驗有效,針對其它疾病是否有效還需進一步實驗分析;(2)本文提出的HCAD模型引入了分層注意力機制,使得準確率顯著提升,但同時也造成了時間復雜度略高的問題。在未來的工作中,將從10種常見疾病擴展到其他疾病,并擴大患者異構圖病歷網絡的數據規模,在本文提出的模型基礎上尋找更佳的建模方法,提高準確率的同時降低時間復雜度,為臨床輔助診斷,促進個性化診療,提升智慧醫療的服務水平提供技術支撐。