黃兆孟,徐 旭,張立言
(南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 210016)
近年來,電子病歷系統(tǒng)在全國迅速普及應(yīng)用,已經(jīng)在患者信息歸檔和計費統(tǒng)計等醫(yī)院行政任務(wù)方面發(fā)揮了巨大的積極的作用.與此同時,這些電子病歷系統(tǒng)中記錄了各種臨床信息,這為進(jìn)一步開發(fā)利用臨床醫(yī)療數(shù)據(jù)提供了數(shù)據(jù)支撐,醫(yī)療數(shù)據(jù)挖掘與分析[1]這一新興領(lǐng)域因此快速發(fā)展.
醫(yī)療數(shù)據(jù)挖掘與分析涉及多個領(lǐng)域,事實上,電子病歷系統(tǒng)中的數(shù)據(jù)已經(jīng)成功應(yīng)用于疾病檢測與分類、表型分析、信息提取、數(shù)據(jù)增強(qiáng)、數(shù)據(jù)隱私保護(hù)、臨床事件順序預(yù)測等多個臨床應(yīng)用類型的任務(wù)[2].在這分析任務(wù)中,臨床事件的順序預(yù)測[3]是一項重要的任務(wù),該任務(wù)基于過去的縱向醫(yī)療事件序列來預(yù)測未來的臨床事件,例如藥物處方的預(yù)測等.
本文旨在開發(fā)一種治療引擎,它可以對病患的多種歷史住院信息建模,以自動預(yù)測病人下一個療程的治療藥物處方.該想法是通過學(xué)習(xí)隱藏在大規(guī)模數(shù)據(jù)中的知識來預(yù)測下一期處方,包括人口統(tǒng)計學(xué),疾病狀況,實驗室結(jié)果,診斷和患者的歷史治療記錄.該引擎利用資深醫(yī)生提供的治療記錄和滿意治療結(jié)果患者的EMRs提供的知識,不僅可以提高醫(yī)療效率,還可以通過引導(dǎo)所有醫(yī)生避免意外故障,做出明智的臨床決策,從而提高醫(yī)療質(zhì)量 .
然而,建立這樣一個治療引擎并不容易,臨床的電子系統(tǒng)數(shù)據(jù)具有時間性和多模態(tài)特征,這為治療引擎的有效預(yù)測帶來了挑戰(zhàn).如圖1所示,EMRs包含豐富的數(shù)據(jù)信息,包括患者人口統(tǒng)計信息、住院疾病類型診斷、每個療程的藥物處方和身體檢測數(shù)據(jù)等[4].不同模態(tài)的醫(yī)療信息可能存在內(nèi)在聯(lián)系,如何提取多模態(tài)數(shù)據(jù)的關(guān)系是一個具有挑戰(zhàn)性的問題.另外,如何正確地對這些時間性的高維的EMR數(shù)據(jù)進(jìn)行建模,從而顯著地提高預(yù)測性能,也是一個具有挑戰(zhàn)性的問題.
圖1 EMRs數(shù)據(jù)
Retain[5]、Dipole[6]、LSTM-DE[7]是目前預(yù)測藥物處方的先進(jìn)模型.LSTM-DE在LSTM的基礎(chǔ)上將實驗室檢測序列作為額外的序列輸入通過稀疏連接加入到藥物處方預(yù)測序列中,取得了較好的預(yù)測效果.Retain使用一個具有反向時間順序的EMR序列的RNN,具有較好的預(yù)測精度.然而它們?nèi)匀皇艿絉NN[8]和LSTM[9]的健忘性的限制,當(dāng)時間序列長度較大時,這些模型的預(yù)測能力明顯下降.Dipole使用雙向神經(jīng)網(wǎng)絡(luò)(BRNN)利用了過去的和未來的所以可用的輸入信息進(jìn)行訓(xùn)練,緩解了長序列問題的影響.然而,Retain和Dipole均沒有考慮到多模態(tài)數(shù)據(jù)對結(jié)果預(yù)測性能的影響.
注意力模型(AM)[10]在序列建模方面是一種有效的方法,不同階段的治療對未來的治療方案有著不同的影響,基于注意力的神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)數(shù)據(jù)樣本與任務(wù)的相關(guān)性.例如,Retain使用基于位置的反向注意力進(jìn)行預(yù)測,Dipole以時間順序和反向時間順序的方式對病人的就診信息進(jìn)行建模 .我們認(rèn)為,對全局的前向的時間信息和后向的時間信息給予不同的時間關(guān)注度可以幫助預(yù)測模型提高預(yù)測性能.
為了解決上述問題和挑戰(zhàn),文中提出了一種基于注意力的雙向異構(gòu)LSTM的治療引擎(ATBH-LSTM),模型同時關(guān)注到了數(shù)據(jù)的時間性和多模態(tài)性.該方法提出一個端到端的神經(jīng)網(wǎng)絡(luò),通過引入異構(gòu)LSTM結(jié)構(gòu)(H-LSTM)對多模態(tài)數(shù)據(jù)信息進(jìn)行建模,在此基礎(chǔ)上,使用雙向結(jié)構(gòu)(Bidirectional Structure)保留了全局的時間信息并通過Attention機(jī)制加強(qiáng)時間信息建模,有效提升了模型的預(yù)測性能.特別的是,雙向遞歸神經(jīng)網(wǎng)絡(luò)可以利用過去和未來所有可用的輸入信息進(jìn)行訓(xùn)練,用于緩解長序列問題的影響,并且該模型對時間順序和反向時間順序使用分開的Attention機(jī)制,有效保留了雙向LSTM結(jié)構(gòu)的前向和后向的信息.在一個大型的真實的重癥醫(yī)療數(shù)據(jù)集MIMIC-III[11]上進(jìn)行了測試,實驗結(jié)果表明,與最先進(jìn)的方法相比,該方法具有優(yōu)越性.
本文的其余部分組織如下:我們在第2節(jié)中介紹了與治療引擎相關(guān)的工作進(jìn)展,并在第3節(jié)中給出了所提出的主要模型框架.第4節(jié)對提出的方法進(jìn)行了實證評價.最后,我們總結(jié)了我們工作的要點、不足和對未來工作的展望.
電子病歷系統(tǒng)中沉淀了大量的數(shù)據(jù)和醫(yī)療知識,然而直到最近今年,分析豐富的EMR數(shù)據(jù)的技術(shù)大多數(shù)是基于傳統(tǒng)的機(jī)器學(xué)習(xí)和統(tǒng)計技術(shù),如邏輯回歸(LR)、支持向量機(jī)(SVM)、隨機(jī)森林(RF)等[12].近年來,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[8,12-14]、長-短期記憶單元(LSTM)[7,9,15]、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)等深度學(xué)習(xí)技術(shù)通過構(gòu)建數(shù)據(jù)的深度層次特征,有效捕獲數(shù)據(jù)的長期依賴關(guān)系,在許多領(lǐng)域取得了巨大的成功,如圖像處理、自然語言處理等領(lǐng)域.
在醫(yī)療數(shù)據(jù)挖掘和數(shù)據(jù)分析領(lǐng)域中,由于有豐富的海量的數(shù)據(jù)支撐,深度學(xué)習(xí)方法越來越多地應(yīng)用于各種分析任務(wù),已經(jīng)成功應(yīng)用于疾病檢測與分類、表型分析、臨床事件順序預(yù)測等多個臨床應(yīng)用類型的任務(wù).據(jù)Shickel B等人[2]的統(tǒng)計,該領(lǐng)域的出版物數(shù)量呈指數(shù)式增長,并預(yù)計今后每年都會出現(xiàn)大幅度的增長.醫(yī)療數(shù)據(jù)挖掘和數(shù)據(jù)分析已然成為醫(yī)療信息技術(shù)領(lǐng)域的研究熱點.
RNN及其變體包括長短時記憶(LSTM)和門控遞歸單元(GRU)模型等門控RNNs是序列建模的常見模型[7-9,12-15].除了RNN外,許多非序列模型被引入序列建模問題.Fang S.等人[16]提出了一個完全基于卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)用于場景文本識別,其編碼器為二維殘差CNN,解碼器為深度一維CNN.Vaswani等人[17]則將具有注意機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于序列建模任務(wù).雖然當(dāng)輸入數(shù)據(jù)具有清晰的空間結(jié)構(gòu)時,卷積神經(jīng)網(wǎng)絡(luò)是合乎邏輯的選擇,然而,對于序列化數(shù)據(jù)這種方式學(xué)習(xí)到的只是淺層的數(shù)據(jù)特征[18].RNNs旨在處理序列數(shù)據(jù)長時間依賴性.
在醫(yī)療數(shù)據(jù)挖掘的眾多應(yīng)用領(lǐng)域中,臨床事件序列預(yù)測[3]是的一個重要領(lǐng)域.EMR數(shù)據(jù)已被用于對多個醫(yī)學(xué)臨床事件的序列預(yù)測任務(wù)建模,包括輔助診斷[6,19]、疾病進(jìn)展[15]、預(yù)后預(yù)測[13]、治療過程分析[20].然而,電子病案數(shù)據(jù)挖掘也面臨著許多挑戰(zhàn),如時間性、不規(guī)則性、多模態(tài)性等.
治療引擎對病患的多種歷史住院信息建模,以自動預(yù)測病人下一個療程的治療藥物處方.Retain[5]使用一個具有兩層反向時間順序的EMR序列的RNN預(yù)測藥物處方.LSTM-DE[7]改造基礎(chǔ)的LSTM的內(nèi)部結(jié)構(gòu),將實驗室檢測序列作為額外的序列輸入通過稀疏連接加入到藥物處方預(yù)測序列中,取得了較好的預(yù)測效果.LSTM-DE的結(jié)構(gòu)如圖2所示,LSTM-DE納入了多種模態(tài)的EMR數(shù)據(jù).然而,LSTM-DE沒有充分考慮EHRs中的時間信息,單向的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)無法全面捕捉全局的時態(tài)數(shù)據(jù)特征.Dipole[6]使用雙向神經(jīng)網(wǎng)絡(luò)(BRNN)利用了過去的和未來的所以可用的輸入信息進(jìn)行訓(xùn)練,緩解了長序列問題的影響.Retain和Dipole和之前的大多數(shù)研究都只關(guān)注EMR記錄的部分信息,均沒有考慮到多模態(tài)數(shù)據(jù)對結(jié)果預(yù)測性能的影響.臨床醫(yī)療數(shù)據(jù)的異質(zhì)性和時間性仍然是臨床事件序列預(yù)測以及治療引擎成功建模的難點和關(guān)鍵.我們同時關(guān)注了數(shù)據(jù)的時間性和多模態(tài)性.
圖2 LSTM-DE的結(jié)構(gòu)
注意力機(jī)制能夠使神經(jīng)網(wǎng)絡(luò)從復(fù)雜的數(shù)據(jù)中識別和聚焦于和任務(wù)相關(guān)的信息,在圖像處理[21]和自然語言處理[22]等多個領(lǐng)域都有很多的應(yīng)用.在醫(yī)療數(shù)據(jù)挖掘領(lǐng)域,注意力機(jī)制也得到了廣泛的應(yīng)用[5,6,15,17,23].與這些注意機(jī)制不同的是,我們對全局的前向的時間信息和后向的時間信息給予不同的時間關(guān)注度,這樣可以充分學(xué)習(xí)到EMR的時間信息特征,從而提高預(yù)測性能.
EMRs數(shù)據(jù)通常包含多種數(shù)據(jù)模式,包括數(shù)值型數(shù)據(jù)(如實驗室指標(biāo)檢測值)、自由文本臨床筆記、連續(xù)監(jiān)測數(shù)據(jù)(如心電圖(ECG))、用于診斷的、用藥的離散代碼等. 圖1顯示了我們研究中使用的4類EMRs數(shù)據(jù),包括靜態(tài)的人口統(tǒng)計信息和診斷信息、時態(tài)性的實驗室指標(biāo)和縱向藥物治療記錄.
人口統(tǒng)計信息 記錄在患者訪問醫(yī)院時,包括患者的年齡、性別、體重、保險、語言、宗教、婚姻狀況、種族和其他信息.這些信息在臨床決策中起著重要的作用,如治療方案的設(shè)計和劑量的選擇.患者的人口統(tǒng)計信息可以形式化為xde.
診斷信息 由醫(yī)生提供.它包括疾病名稱和疾病的嚴(yán)重程度.對于不同的診斷會有完全不同的治療方案.診斷信息可以形式化為xdi.一般一次訪視診斷信息是固定不變的.我們使用xs=[xde,xdi]為住院期間靜態(tài)信息.
本文的任務(wù)就是對這4種數(shù)據(jù)進(jìn)行統(tǒng)一建模,以便更準(zhǔn)確地預(yù)測患者下一步的藥物處方.即:
(1)
我們首先根據(jù)MIMIC-Ⅲ的結(jié)構(gòu)特點,從重癥醫(yī)療數(shù)據(jù)庫中篩選出病人的人口統(tǒng)計學(xué)信息、疾病狀況、實驗室結(jié)果、診斷和患者的歷史治療記錄.將這些數(shù)據(jù)處理成兩組時態(tài)數(shù)據(jù)和一組靜態(tài)數(shù)據(jù),分別饋送到雙向的異構(gòu)LSTM中,異構(gòu)LSTM能夠有效處理多模態(tài)的數(shù)據(jù),從而學(xué)習(xí)到病人每個時刻的實際隱藏狀態(tài).通過注意力機(jī)制可以學(xué)習(xí)到每個時刻對當(dāng)前狀態(tài)的影響程度,從而挑選出對治療有用的狀態(tài)信息.模型的本質(zhì)是一個多標(biāo)簽分類器,我們使用每個醫(yī)學(xué)記錄的多模序列來端到端地訓(xùn)練多標(biāo)簽分類模型,通過學(xué)習(xí)隱藏在大規(guī)模數(shù)據(jù)中的知識來預(yù)測下一療程的治療處方.
圖3 基于注意力的雙向異構(gòu)LSTM的治療引擎的網(wǎng)絡(luò)結(jié)構(gòu)
(2)
當(dāng)給病人開藥時,醫(yī)生檢查病人住院期間的所有醫(yī)院記錄.醫(yī)生回顧病人的生理變化和用藥歷史,并基于他的廣泛知識和經(jīng)驗,為病人開出合適的藥物.我們模擬了醫(yī)生給病人開藥的過程,并利用雙向注意力機(jī)制反復(fù)考查縱向信息.
我們選擇了基于位置的注意力方法[6]結(jié)合多層感知機(jī)(MLP)來計算注意力權(quán)重,我們將每個時刻的實隱藏狀態(tài)和權(quán)重矩陣W相乘獲得每個時刻的潛在矢量,tanh為激活函數(shù),vα為輸入權(quán)重.計算得到每個時刻的注意力得分:
(3)
其中,v,W,b是需要學(xué)習(xí)的參數(shù),根據(jù)公式(3),我們可以使用softmax函數(shù)獲得注意力權(quán)重向量 ,如下所示:
α=Softmax([α1,α2,…,αt)]
β=Softmax([β1,β2,…,βt)]
(4)
(5)
我們使用兩個具有不同激活功能的全連接層和上下文向量c來預(yù)測下一個治療處方.
(6)
為了驗證該治療引擎的有效性,文中方法在一個大型的真實的重癥醫(yī)療數(shù)據(jù)集MIMIC-III上進(jìn)行了測試.MIMIC-III[11]是由麻省理工學(xué)院維護(hù)的開源數(shù)據(jù)集.它詳細(xì)記錄了53423名患者的實際住院健康狀況,這些患者在2001年-2012年的10年間入住醫(yī)院的重癥監(jiān)護(hù)室.表1顯示了數(shù)據(jù)庫所創(chuàng)建和提供的26個原始數(shù)據(jù)表.盡管醫(yī)療數(shù)據(jù)豐富,但公開的真實數(shù)據(jù)集卻很少.MIMIC-III重癥醫(yī)療數(shù)據(jù)集為所有的醫(yī)療數(shù)據(jù)挖掘研究提供了堅實的數(shù)據(jù)支持,有利于方法的復(fù)現(xiàn)和比較.
表1 數(shù)據(jù)類型
我們從數(shù)據(jù)集中提取實驗室檢測值和治療藥物處方兩個時間序列、人口統(tǒng)計數(shù)據(jù)靜態(tài)表.對于患有不同疾病的患者,治療過程是完全不同的.因此在本文中,我們只考慮被診斷為同一種疾病的患者的子集.我們選取了出現(xiàn)頻率最高的5個ICU診斷數(shù)據(jù)子集來進(jìn)行實驗,包括充血性心力衰竭、冠心病、冠狀動脈旁路移植、上消化道出血、胸痛5種診斷,如表2、表3所示.在本研究中,我們將每個ICU住院日作為一個治療療程,這與現(xiàn)實是相符的,ICU病人每天的治療藥物處方都需要重新審定.
我們在按一天為單位重新采樣,建立了體檢序列和藥物處方序列.這些異構(gòu)序列的記錄時間可以是可變的.即使是一個病人,不同來源的臨床事件也可能有不同的記錄時間.例如,患者一天進(jìn)行一些實驗室檢查,但結(jié)果在第2天測量,然后患者獲得有效的處方.雖然這些臨床事件記錄在不同的日子,但它們緊密相連.為了使這些序列同時同步,我們選擇一個序列作為基序列,而將其他序列作為協(xié)同序列.基序列與協(xié)同序列之間采用時間對齊,即時間對齊后所有序列的時間步長都與基序列保持一致.考慮到這些異構(gòu)序列的記錄時間不同,我們使用相同長度的序列生成訓(xùn)練和測試批次,而不是將原始序列填充到一個固定的長度.為了獲得更好的泛化能力,將過短或過長的序列剔除.
4.2.1 基線方法
將我們的方法與以下基線進(jìn)行比較:
1)LSTM,基礎(chǔ)的LSTM模型.我們使用歷史藥物序列(歷史治療)作為輸入預(yù)測藥物處方.
2)LSTM-FC,將所有異構(gòu)序列簡單串聯(lián)作為輸入的模型.
3)LSTM-DE,Jin,B.等人[7]改進(jìn)的LSTM模型,使用稀疏連接將附加序列添加到主序列中,有效的對多模態(tài)數(shù)據(jù)進(jìn)行了建模.
4)Retain,Choi等人[5]提出的反向注意力模型用于臨床序列預(yù)測.
5)Dipole,Ma,F.等人[6]提出的雙向RNN模型對全局時間信息進(jìn)行了有效建模.
4.2.2 本文的方法
1)ATH-LSTM在異構(gòu)LSTM上添加注意力機(jī)制.
2)BiH-LSTM為雙向異構(gòu)LSTM.
3)ATBH-LSTM:本文提出的基于注意力的雙向異構(gòu)LSTM的治療引擎.
4.2.3 參數(shù)設(shè)置
所有這些模型都是用在Tensorflow中的mini-batch stochastic Adam optimizer實現(xiàn)的.我們將相同診斷的患者數(shù)據(jù)隨機(jī)分為訓(xùn)練數(shù)據(jù)(80%)和測試數(shù)據(jù)(20%).所有的模型使用相同的網(wǎng)絡(luò)設(shè)置和參數(shù)進(jìn)行比較.具體來說,學(xué)習(xí)率設(shè)置為0.01.對所有模型進(jìn)行100個epoch的訓(xùn)練,并對結(jié)果進(jìn)行5個倍數(shù)的交叉驗證.為了避免梯度爆炸,我們將L2范數(shù)添加到損失函數(shù)中,參數(shù)為10-5.時間序列長度均大于3.由于將全連接層添加到了所有模型中,所以我們將其設(shè)定為固定值512維.
為了確定最佳的隱藏狀態(tài)的維度,如圖4、圖5所示,我們比較了在診斷為胸痛的數(shù)據(jù)子集下每個維度的ROC曲線下面積(AUROC)和P-R曲線下面積(AUPR)的值.在各個維度上的比較,我們所提出的方法ATBH-LSTM均在其他基線方法之上.并且LSTM單元的維度沒有影響所提方法的預(yù)測性能,這說明我們的方法具有更高的魯棒性.
圖4 隱藏狀態(tài)為每個維度時各個模型的AUROC的值
圖5 隱藏狀態(tài)為每個維度時各個模型的AUPR的值
為了便于進(jìn)行對比實驗,在接下來的實驗,我們選擇512維的隱藏狀態(tài)維度.我們在5個數(shù)據(jù)子集上所有方法的AUROC和AUPR的平均性能.結(jié)果如表2、表3所示.
表2 使用AUROC比較LSTM、、LSTM- FC、LSTM-DE、Dipole、Retain、ATB-LSTM、BH-LSTM、ATBH-LSTM的性能
表3 使用AUPR比較LSTM、、LSTM- FC、LSTM-DE、Dipole、Retain、ATB-LSTM、BH-LSTM、ATBH-LSTM的性能
首先,通過對LSTM、LSTM-FC和LSTM-DE的比較,驗證了異構(gòu)LSTM能有效處理多模態(tài)數(shù)據(jù).LSTM-FC在大多數(shù)疾病上的性能均低于LSTM,說明將數(shù)據(jù)的簡單混合反而混淆了數(shù)據(jù)隱藏的信息,LSTM-DE的異構(gòu)組織有效的處理了多模態(tài)信息,然而在上消化道出血診斷集上的LSTM-DE的效果并不好,這可能是數(shù)據(jù)的時間長度過長,單向LSTM結(jié)構(gòu)遺忘了部分信息.
其次,LSTM-DE和擬議的BiH-LSTM均未使用任何注意機(jī)制,但在所有疾病數(shù)據(jù)集上,BiH-LSTM的性能均高于LSTM-DE. 結(jié)果表明,從兩個方向?qū)υL問信息進(jìn)行建模可以提高預(yù)測性能. 因此,將雙向遞歸神經(jīng)網(wǎng)絡(luò)用于診斷預(yù)測任務(wù)是合理的.
另外,ATH-LSTM、Retain、Dipole使用注意力機(jī)制,3個方法的AUROC和AUROC均高于沒有使用注意力的基線模型LSTM、LSTM-FC和LSTM-DE.這說明,注意力模型的使用有效提升了預(yù)測性能.ATH-LSTM的表現(xiàn)明顯優(yōu)于Retain、Dipole方法,這可能是對前向信息和后向信息的分別處理使得模型學(xué)習(xí)到了更加全面的隱藏信息.
通過消融實驗,可以發(fā)現(xiàn)ATH-LSTM、BiH-LSTM在所有數(shù)據(jù)集上均優(yōu)于LSTM-DE說明雙向結(jié)構(gòu)和注意力機(jī)制起到了預(yù)期效果.方法ATBH-LSTM在這些數(shù)據(jù)子集上的表現(xiàn)都優(yōu)于其他方法,這說明基于注意力的雙向異構(gòu)LSTM的治療引擎能有效預(yù)測下一療程的治療藥物處方.
與AUROC相比,AUPR評分越高,說明預(yù)測所用的處方越有可能被采用,因為陽性結(jié)果少于陰性結(jié)果.特別的是,從表3中可以發(fā)現(xiàn),本文所提出的方法在AUPR性能指標(biāo)上提升很大,遠(yuǎn)優(yōu)于其他方法.這說明,本治療引擎的推薦的治療處方更加有效,這對提升醫(yī)療決策質(zhì)量有重要意義.
綜上,我們的模型相比基線模型具有更高的魯棒性和預(yù)測性能,同時我們預(yù)測的結(jié)果更加有可能在臨床決策中被醫(yī)生采用,這表明本文提出的治療引擎的可行性和有效性.
為了準(zhǔn)確預(yù)測病患下一療程的治療藥物處方,必須對豐富的患者住院信息進(jìn)行建模.本文提出了一種基于注意力的雙向異構(gòu)LSTM的治療引擎,通過引入異構(gòu)LSTM和雙向注意力機(jī)制來解決多模態(tài)EMR數(shù)據(jù)帶來的挑戰(zhàn).在真實EMR數(shù)據(jù)集上的實驗表明,我們提出的方法在預(yù)測治療處方任務(wù)方面取得了很好的效果,提升了預(yù)測精度和藥物處方的可用性.這項工作的一個局限性是我們簡化了預(yù)測任務(wù),即只預(yù)測了治療藥物的類型而忽略了藥物的劑量.此外,推薦藥物的安全性也是未來值得研究的問題.