陳 燕,龔慶悅,李鐵軍,王紅云,鮑劍洋,胡孔法
(1.南京中醫(yī)藥大學人工智能與信息技術(shù)學院,江蘇南京 210023;2.南京中醫(yī)藥大學第二附屬醫(yī)院(江蘇省第二中醫(yī)院),江蘇 南京 210017;3.南京中醫(yī)藥大學 護理學院,江蘇 南京 210023)
自神經(jīng)網(wǎng)絡[1]提出以來,相關學者從多角度拓展神經(jīng)網(wǎng)絡研究,如在深度神經(jīng)網(wǎng)絡中加入殘差塊[2]、利用深度神經(jīng)網(wǎng)絡模型分析少樣本數(shù)據(jù)[3]、含注意力機制的卷積神經(jīng)網(wǎng)絡識別語音情感[4]、保持聚類結(jié)構(gòu)的屬性網(wǎng)絡表示學習[5]等。2005 年,圖神經(jīng)網(wǎng)絡(Graph Neural Network,GNN)[6]被提出,GNN 是一種可直接應用于圖的神經(jīng)網(wǎng)絡,即利用神經(jīng)網(wǎng)絡分析圖結(jié)構(gòu)數(shù)據(jù)、圖表示學習[7]等。它有多種類型,如圖卷積神經(jīng)網(wǎng)絡(Graph Convolutional Net?works,GCNs)[8]、圖注意力網(wǎng)絡[9]、圖時空網(wǎng)絡[10]等。相關研究表明,卷積神經(jīng)網(wǎng)絡[11-12]適用于分析中醫(yī)數(shù)據(jù),例如分析患者聲音數(shù)據(jù)[13]以輔助聞診決策,分析舌象數(shù)據(jù)以獲得患者中醫(yī)體質(zhì)類別[14],對中醫(yī)舌苔顏色進行分類研究[15]。
乙肝小三陽、乙肝大三陽在一定情況下易相互轉(zhuǎn)化[16],若未及時確診,將增加患肝癌等疾病的風險。近年來,針對算法模型輔助診斷乙肝的研究引起了醫(yī)學界關注,例如構(gòu)建ARIMA 模型與BP 神經(jīng)網(wǎng)絡模型預測乙型肝炎發(fā)病率[17]、通過貝葉斯網(wǎng)絡模型分析美沙酮維持治療門診患者特征和HBsAg 陽性影響因素[18]等。與傳統(tǒng)復雜網(wǎng)絡分析方法[19]相比,圖卷積神經(jīng)網(wǎng)絡[20-21]可解決實體間時序關聯(lián)信息無法充分學習等問題。
本文選取江蘇省名醫(yī)整理的182 例乙肝患者診治臨床醫(yī)案,進行中西醫(yī)指標特征分析[22],通過XGBoost 與GCNs相結(jié)合的疾病輔助模型(Disease Auxiliary Monitoring Model Based on XGBoost and GCNs,DAM_XGCN)分析異常指標網(wǎng)絡(含有同一位患者多次診治時指標的波動信息)。該模型可輔助醫(yī)生診斷決策,且推薦波動顯著的指標項,便于醫(yī)生快速掌握患者疾病異常變化,以期為中西醫(yī)診療研究提供新的技術(shù)路線與研究思路。
利用圖卷積神經(jīng)網(wǎng)絡進行分類時,輸入數(shù)據(jù)為N 個節(jié)點對應F 個特征的0-1 矩陣H∈RN×F、P 個節(jié)點連邊的拓撲表A∈RN×P,輸出結(jié)果為各節(jié)點屬于不同類別的概率Z∈RN×2。其定義為:
本文采用兩層圖卷積神經(jīng)網(wǎng)絡,網(wǎng)絡結(jié)構(gòu)分為3 個部分:輸入層、兩個卷積層、輸出層。
1.1.1 輸入層
由醫(yī)案信息經(jīng)過格式化處理得到醫(yī)案節(jié)點的特征表信息,每個節(jié)點對應1 次就診記錄,附有異常指標特征值(異常值取1,正常值取0);同一位患者前后就診醫(yī)案具有相關性,由此構(gòu)建醫(yī)案拓撲表A。
1.1.2 卷積層
為使孤立點(沒有任意1 個節(jié)點與之相連接,即該患者有且僅有1 次就診記錄)也可獲取相似鄰近節(jié)點信息,本文采取雙層圖卷積層。圖卷積層第一層設置如下:輸入為N個節(jié)點、d 個特征信息(參數(shù)d 的值由XGBoost 模型得到的重要性指標數(shù)確定),輸出為d 個16 維特征并作為圖卷積層第二層輸入;第二層輸出為16 個2 維特征(第一維對應乙肝小三陽,第二維對應乙肝大三陽)。
1.1.3 輸出層
根據(jù)訓練后的模型給出驗證集中每一節(jié)點屬于兩種疾病的概率,根據(jù)“優(yōu)準確率”原則得到驗證集中各醫(yī)案節(jié)點疾病診斷結(jié)果(0 表示乙肝小三陽,1 表示乙肝大三陽)。
圖卷積神經(jīng)網(wǎng)絡不僅對特征矩陣信息進行卷積處理,還對拓撲表A 進行拉普拉斯處理,具體操作步驟如下:
(1)拉普拉斯變化。增加節(jié)點自連接,以獲取自身信息,計算如式(3)所示。
(2)拉普拉斯歸一化。消除離群特征值,使特征值更加均勻化,計算如式(4)所示。
本文在圖卷積神經(jīng)網(wǎng)絡第二層設計前反饋機制,有3個關鍵步驟:①通過修正線性單元(Rectified Linear Unit,ReLU)激活函數(shù)[11],在第一卷積層訓練后得到的節(jié)點特征值中所有負數(shù)作歸0 化處理;②進入第二卷積層訓練后,得到節(jié)點特征值存為message;③計算message 損失值,如式(5)所示。
為多次迭代訓練后得到最佳訓練模型,在每次迭代后增加1 個后反饋機制,評價當前迭代得到的模型梯度值,從而進一步優(yōu)化網(wǎng)絡模型。
圖卷積神經(jīng)網(wǎng)絡中需要更新的參數(shù)主要有兩個:權(quán)重W 和偏移量B。模型在第1、2 卷積層中設計各層需要的參數(shù),即W1、B1和W2、B2,并通過ReLu 函數(shù)激活。在神經(jīng)網(wǎng)絡模型中一般采用梯度下降法[23]更新權(quán)重,即在一個方向上調(diào)整模型參數(shù)值,更新公式為:
在梯度下降基礎上,為使訓練的網(wǎng)絡穩(wěn)定收斂,Mo?mentum 算法[24-25]基于梯度移動指數(shù)作加權(quán)平均,優(yōu)化相同方向的訓練、弱化相反方向的震蕩,加速隨機梯度下降。更新公式為:
本文采用自適應矩估計(Adaptive Moment Estimation,Adam)算法[26],Adam 同時具有Momentum 算法與均方根傳遞算法優(yōu)點,根據(jù)各參數(shù)學習速率動態(tài)調(diào)整該參數(shù)梯度一階矩估計與二階矩估計。更新公式為:
DAM_XGCN 模型構(gòu)建主要分為3 個階段,詳見圖1。階段一為異常指標網(wǎng)絡圖構(gòu)建,通過XGBoost 模型篩選重要性大于100 的異常指標特征,并進行格式轉(zhuǎn)化得到數(shù)據(jù)集H 與A;階段二為疾病診斷決策,依次設計d×16 卷積層、16×2 卷積層,并通過前/后反饋機制篩選得到最優(yōu)模型;階段三為最優(yōu)指標組合篩選,通過“優(yōu)準確率”原則得到診斷疾病的關鍵指標組合。
Fig.1 DAM_XGCN model structure圖1 DAM_XGCN 模型結(jié)構(gòu)
本文實驗所用數(shù)據(jù)取自三甲醫(yī)院名醫(yī)精心篩選的乙肝診治臨床醫(yī)案,預處理后構(gòu)建中西醫(yī)異常指標網(wǎng)絡圖,包括556 條診次記錄。每條診次記錄中含有4 類指標,共計30 種指標項(頻次大于10,見表1)。
Table 1 Index items表1 指標項
對由指標類兩兩組成的58 種二維指標組合(頻次大于10)、由指標類三三組合的8 種三維指標組合(頻次大于4),以及一維指標組合共計96(58+8+30)種診斷指標組合作XGBoost 重要性排序分析。1 個節(jié)點代表1 位患者的1 次診斷記錄,節(jié)點屬性特征即指標組合信息,節(jié)點連邊記錄患者前后診斷關系,由此構(gòu)建特征表H 與拓撲表A,具體操作見算法1。
算法1:異常指標網(wǎng)絡構(gòu)建
圖卷積神經(jīng)網(wǎng)絡經(jīng)多次調(diào)試,確定最優(yōu)初始化參數(shù)值,如表2 所示。
Table 2 GCNs training parameters表2 GCNs 訓練參數(shù)
該階段核心是對兩層圖卷積層作訓練,利用Pytorch 工具將訓練參數(shù)加入到訓練模型中進行迭代epoch=2 400 次,獲得最佳參數(shù)值。具體操作如算法2 所示。
算法2:疾病診斷決策
指標組合篩選采用“優(yōu)準確率”原則,從階段2 得到的所有指標組合中篩選出診斷乙肝小/大三陽最優(yōu)的指標組合。具體操作如算法3 所示。
算法3:最優(yōu)指標組合篩選
Input:一、二、三維指標組合的劃分結(jié)果評價指標
Output:最佳指標組合
a)遍歷一、二維指標組合
(a)獲得每維組合在驗證集得到的準確率集合acc_val,并做升序處理;
(b)按照“優(yōu)準確率”法取出該維最佳指標組合GOOD。
b)遍歷GOOD、三維指標組合
同a)中的(a)(b)步驟得出所求的最佳結(jié)果。
篩選重要性大于100 的一、二、三維指標組合,即所求差集,如圖2 所示。一維指標組合有虛脈、淡紅舌、細脈等,二維指標組合有數(shù)脈+膩苔、弦脈+肝(肝結(jié)節(jié)、肝光點密等)、虛脈+淡紅舌等,三維指標組合有弦脈+ALT+肝、薄苔+r-GT+脾等。
Fig.2 Combination association of different set index圖2 差集指標組合關聯(lián)
表1 中未出現(xiàn)在圖2 中的指標(重要性小于100)是在兩大患者群中波動區(qū)分度不顯著的異常指標,即所求交集。比較一、二、三維指標交集結(jié)果,發(fā)現(xiàn)包含緩脈指標,由此分析得出,兩大患者群前、中期均出現(xiàn)緩脈現(xiàn)象。
對比分析DAM_XGCN 與支持向量機、邏輯回歸、貝葉斯、隨機森林、XGBoost 等傳統(tǒng)機器學習模型診斷結(jié)果準確率,如圖3 所示,得出DAM_XGCN 模型效果最優(yōu),準確率最高為二維指標組合的0.72。
Fig.3 Histogram of prediction accuracy of 7 models圖3 7 種模型預測準確率直方圖
二維指標組合的重要性排序等級如圖4 所示,統(tǒng)計前20 種指標組合,其中90%為脈診指標與舌診指標組合,由此推斷乙肝小、大三陽病情波動與患者脈象、舌象變化關系更為密切。其中,排名前三對應的臨床醫(yī)案診斷特點:數(shù)脈+膩苔組合,幾乎全部出現(xiàn)在乙肝大三陽中,且診治中、后期出現(xiàn)頻次較多;弦脈+肝(肝結(jié)節(jié)、肝光點密等)組合,以乙肝小三陽患者為主;虛脈+淡紅舌組合,主要出現(xiàn)在乙肝小三陽患者診治前、后期及乙肝大三陽患者中期。
Fig.4 Two-dimensional index combination classification圖4 二維指標組合分級
本文整理三甲醫(yī)院名醫(yī)記載的乙肝小、大三陽患者醫(yī)案數(shù)據(jù),以中西醫(yī)指標(舌診指標、脈診指標、肝功能生化指標、彩超指標)作為圖節(jié)點特征,采用DAM_XGCN 模型作診斷預測。
DAM_XGCN 輔助醫(yī)生從多指標異常變化及時診斷乙肝小/大三陽患者程度,可用于確診前的乙肝小/大三陽篩查工作。將XGBoost 與GCNs 有機組合的DAM_XGCN 模型同時具有XGBoost 特征選擇優(yōu)點和GCNs 學習網(wǎng)絡圖中特征實體屬性與實體間關聯(lián)的優(yōu)勢。一方面,可以將臨床醫(yī)案中縱向時序信息(同一位患者的前后診斷醫(yī)案)與橫向關聯(lián)信息(不同指標類組合的關聯(lián)信息)加入到模型中訓練學習;另一方面,在訓練過程中可視化階段性結(jié)果,例如指標重要性排序結(jié)果、一/二/三維指標組合的交/差集結(jié)果。較傳統(tǒng)機器學習診斷預測模型,本文采用DAM_XGCN 模型劃分效果最佳,準確率高達72%。
為進一步提高基于DAM_XGCN 模型劃分兩大患者群的準確率,接下來將一方面細化數(shù)據(jù)實體信息,擴充數(shù)據(jù);另一方面優(yōu)化DAM_XGCN 模型,考慮結(jié)合元路徑異質(zhì)網(wǎng)絡、重疊患者群發(fā)現(xiàn)等技術(shù),對中西醫(yī)診療中的相關問題作進一步研究。