黃兆孟,徐 旭,張立言
(南京航空航天大學 計算機科學與技術學院,南京 210016)
近年來,電子病歷系統在全國迅速普及應用,已經在患者信息歸檔和計費統計等醫院行政任務方面發揮了巨大的積極的作用.與此同時,這些電子病歷系統中記錄了各種臨床信息,這為進一步開發利用臨床醫療數據提供了數據支撐,醫療數據挖掘與分析[1]這一新興領域因此快速發展.
醫療數據挖掘與分析涉及多個領域,事實上,電子病歷系統中的數據已經成功應用于疾病檢測與分類、表型分析、信息提取、數據增強、數據隱私保護、臨床事件順序預測等多個臨床應用類型的任務[2].在這分析任務中,臨床事件的順序預測[3]是一項重要的任務,該任務基于過去的縱向醫療事件序列來預測未來的臨床事件,例如藥物處方的預測等.
本文旨在開發一種治療引擎,它可以對病患的多種歷史住院信息建模,以自動預測病人下一個療程的治療藥物處方.該想法是通過學習隱藏在大規模數據中的知識來預測下一期處方,包括人口統計學,疾病狀況,實驗室結果,診斷和患者的歷史治療記錄.該引擎利用資深醫生提供的治療記錄和滿意治療結果患者的EMRs提供的知識,不僅可以提高醫療效率,還可以通過引導所有醫生避免意外故障,做出明智的臨床決策,從而提高醫療質量 .
然而,建立這樣一個治療引擎并不容易,臨床的電子系統數據具有時間性和多模態特征,這為治療引擎的有效預測帶來了挑戰.如圖1所示,EMRs包含豐富的數據信息,包括患者人口統計信息、住院疾病類型診斷、每個療程的藥物處方和身體檢測數據等[4].不同模態的醫療信息可能存在內在聯系,如何提取多模態數據的關系是一個具有挑戰性的問題.另外,如何正確地對這些時間性的高維的EMR數據進行建模,從而顯著地提高預測性能,也是一個具有挑戰性的問題.

圖1 EMRs數據
Retain[5]、Dipole[6]、LSTM-DE[7]是目前預測藥物處方的先進模型.LSTM-DE在LSTM的基礎上將實驗室檢測序列作為額外的序列輸入通過稀疏連接加入到藥物處方預測序列中,取得了較好的預測效果.Retain使用一個具有反向時間順序的EMR序列的RNN,具有較好的預測精度.然而它們仍然受到RNN[8]和LSTM[9]的健忘性的限制,當時間序列長度較大時,這些模型的預測能力明顯下降.Dipole使用雙向神經網絡(BRNN)利用了過去的和未來的所以可用的輸入信息進行訓練,緩解了長序列問題的影響.然而,Retain和Dipole均沒有考慮到多模態數據對結果預測性能的影響.
注意力模型(AM)[10]在序列建模方面是一種有效的方法,不同階段的治療對未來的治療方案有著不同的影響,基于注意力的神經網絡可以學習數據樣本與任務的相關性.例如,Retain使用基于位置的反向注意力進行預測,Dipole以時間順序和反向時間順序的方式對病人的就診信息進行建模 .我們認為,對全局的前向的時間信息和后向的時間信息給予不同的時間關注度可以幫助預測模型提高預測性能.
為了解決上述問題和挑戰,文中提出了一種基于注意力的雙向異構LSTM的治療引擎(ATBH-LSTM),模型同時關注到了數據的時間性和多模態性.該方法提出一個端到端的神經網絡,通過引入異構LSTM結構(H-LSTM)對多模態數據信息進行建模,在此基礎上,使用雙向結構(Bidirectional Structure)保留了全局的時間信息并通過Attention機制加強時間信息建模,有效提升了模型的預測性能.特別的是,雙向遞歸神經網絡可以利用過去和未來所有可用的輸入信息進行訓練,用于緩解長序列問題的影響,并且該模型對時間順序和反向時間順序使用分開的Attention機制,有效保留了雙向LSTM結構的前向和后向的信息.在一個大型的真實的重癥醫療數據集MIMIC-III[11]上進行了測試,實驗結果表明,與最先進的方法相比,該方法具有優越性.
本文的其余部分組織如下:我們在第2節中介紹了與治療引擎相關的工作進展,并在第3節中給出了所提出的主要模型框架.第4節對提出的方法進行了實證評價.最后,我們總結了我們工作的要點、不足和對未來工作的展望.
電子病歷系統中沉淀了大量的數據和醫療知識,然而直到最近今年,分析豐富的EMR數據的技術大多數是基于傳統的機器學習和統計技術,如邏輯回歸(LR)、支持向量機(SVM)、隨機森林(RF)等[12].近年來,循環神經網絡(RNN)[8,12-14]、長-短期記憶單元(LSTM)[7,9,15]、卷積神經網絡(CNN)和圖卷積神經網絡(GCN)等深度學習技術通過構建數據的深度層次特征,有效捕獲數據的長期依賴關系,在許多領域取得了巨大的成功,如圖像處理、自然語言處理等領域.
在醫療數據挖掘和數據分析領域中,由于有豐富的海量的數據支撐,深度學習方法越來越多地應用于各種分析任務,已經成功應用于疾病檢測與分類、表型分析、臨床事件順序預測等多個臨床應用類型的任務.據Shickel B等人[2]的統計,該領域的出版物數量呈指數式增長,并預計今后每年都會出現大幅度的增長.醫療數據挖掘和數據分析已然成為醫療信息技術領域的研究熱點.
RNN及其變體包括長短時記憶(LSTM)和門控遞歸單元(GRU)模型等門控RNNs是序列建模的常見模型[7-9,12-15].除了RNN外,許多非序列模型被引入序列建模問題.Fang S.等人[16]提出了一個完全基于卷積神經網絡的架構用于場景文本識別,其編碼器為二維殘差CNN,解碼器為深度一維CNN.Vaswani等人[17]則將具有注意機制的卷積神經網絡應用于序列建模任務.雖然當輸入數據具有清晰的空間結構時,卷積神經網絡是合乎邏輯的選擇,然而,對于序列化數據這種方式學習到的只是淺層的數據特征[18].RNNs旨在處理序列數據長時間依賴性.
在醫療數據挖掘的眾多應用領域中,臨床事件序列預測[3]是的一個重要領域.EMR數據已被用于對多個醫學臨床事件的序列預測任務建模,包括輔助診斷[6,19]、疾病進展[15]、預后預測[13]、治療過程分析[20].然而,電子病案數據挖掘也面臨著許多挑戰,如時間性、不規則性、多模態性等.
治療引擎對病患的多種歷史住院信息建模,以自動預測病人下一個療程的治療藥物處方.Retain[5]使用一個具有兩層反向時間順序的EMR序列的RNN預測藥物處方.LSTM-DE[7]改造基礎的LSTM的內部結構,將實驗室檢測序列作為額外的序列輸入通過稀疏連接加入到藥物處方預測序列中,取得了較好的預測效果.LSTM-DE的結構如圖2所示,LSTM-DE納入了多種模態的EMR數據.然而,LSTM-DE沒有充分考慮EHRs中的時間信息,單向的神經網絡結構無法全面捕捉全局的時態數據特征.Dipole[6]使用雙向神經網絡(BRNN)利用了過去的和未來的所以可用的輸入信息進行訓練,緩解了長序列問題的影響.Retain和Dipole和之前的大多數研究都只關注EMR記錄的部分信息,均沒有考慮到多模態數據對結果預測性能的影響.臨床醫療數據的異質性和時間性仍然是臨床事件序列預測以及治療引擎成功建模的難點和關鍵.我們同時關注了數據的時間性和多模態性.

圖2 LSTM-DE的結構
注意力機制能夠使神經網絡從復雜的數據中識別和聚焦于和任務相關的信息,在圖像處理[21]和自然語言處理[22]等多個領域都有很多的應用.在醫療數據挖掘領域,注意力機制也得到了廣泛的應用[5,6,15,17,23].與這些注意機制不同的是,我們對全局的前向的時間信息和后向的時間信息給予不同的時間關注度,這樣可以充分學習到EMR的時間信息特征,從而提高預測性能.
EMRs數據通常包含多種數據模式,包括數值型數據(如實驗室指標檢測值)、自由文本臨床筆記、連續監測數據(如心電圖(ECG))、用于診斷的、用藥的離散代碼等. 圖1顯示了我們研究中使用的4類EMRs數據,包括靜態的人口統計信息和診斷信息、時態性的實驗室指標和縱向藥物治療記錄.
人口統計信息 記錄在患者訪問醫院時,包括患者的年齡、性別、體重、保險、語言、宗教、婚姻狀況、種族和其他信息.這些信息在臨床決策中起著重要的作用,如治療方案的設計和劑量的選擇.患者的人口統計信息可以形式化為xde.
診斷信息 由醫生提供.它包括疾病名稱和疾病的嚴重程度.對于不同的診斷會有完全不同的治療方案.診斷信息可以形式化為xdi.一般一次訪視診斷信息是固定不變的.我們使用xs=[xde,xdi]為住院期間靜態信息.


本文的任務就是對這4種數據進行統一建模,以便更準確地預測患者下一步的藥物處方.即:
(1)

我們首先根據MIMIC-Ⅲ的結構特點,從重癥醫療數據庫中篩選出病人的人口統計學信息、疾病狀況、實驗室結果、診斷和患者的歷史治療記錄.將這些數據處理成兩組時態數據和一組靜態數據,分別饋送到雙向的異構LSTM中,異構LSTM能夠有效處理多模態的數據,從而學習到病人每個時刻的實際隱藏狀態.通過注意力機制可以學習到每個時刻對當前狀態的影響程度,從而挑選出對治療有用的狀態信息.模型的本質是一個多標簽分類器,我們使用每個醫學記錄的多模序列來端到端地訓練多標簽分類模型,通過學習隱藏在大規模數據中的知識來預測下一療程的治療處方.


圖3 基于注意力的雙向異構LSTM的治療引擎的網絡結構


(2)

當給病人開藥時,醫生檢查病人住院期間的所有醫院記錄.醫生回顧病人的生理變化和用藥歷史,并基于他的廣泛知識和經驗,為病人開出合適的藥物.我們模擬了醫生給病人開藥的過程,并利用雙向注意力機制反復考查縱向信息.
我們選擇了基于位置的注意力方法[6]結合多層感知機(MLP)來計算注意力權重,我們將每個時刻的實隱藏狀態和權重矩陣W相乘獲得每個時刻的潛在矢量,tanh為激活函數,vα為輸入權重.計算得到每個時刻的注意力得分:
(3)
其中,v,W,b是需要學習的參數,根據公式(3),我們可以使用softmax函數獲得注意力權重向量 ,如下所示:
α=Softmax([α1,α2,…,αt)]
β=Softmax([β1,β2,…,βt)]
(4)
(5)
我們使用兩個具有不同激活功能的全連接層和上下文向量c來預測下一個治療處方.
(6)
為了驗證該治療引擎的有效性,文中方法在一個大型的真實的重癥醫療數據集MIMIC-III上進行了測試.MIMIC-III[11]是由麻省理工學院維護的開源數據集.它詳細記錄了53423名患者的實際住院健康狀況,這些患者在2001年-2012年的10年間入住醫院的重癥監護室.表1顯示了數據庫所創建和提供的26個原始數據表.盡管醫療數據豐富,但公開的真實數據集卻很少.MIMIC-III重癥醫療數據集為所有的醫療數據挖掘研究提供了堅實的數據支持,有利于方法的復現和比較.

表1 數據類型
我們從數據集中提取實驗室檢測值和治療藥物處方兩個時間序列、人口統計數據靜態表.對于患有不同疾病的患者,治療過程是完全不同的.因此在本文中,我們只考慮被診斷為同一種疾病的患者的子集.我們選取了出現頻率最高的5個ICU診斷數據子集來進行實驗,包括充血性心力衰竭、冠心病、冠狀動脈旁路移植、上消化道出血、胸痛5種診斷,如表2、表3所示.在本研究中,我們將每個ICU住院日作為一個治療療程,這與現實是相符的,ICU病人每天的治療藥物處方都需要重新審定.
我們在按一天為單位重新采樣,建立了體檢序列和藥物處方序列.這些異構序列的記錄時間可以是可變的.即使是一個病人,不同來源的臨床事件也可能有不同的記錄時間.例如,患者一天進行一些實驗室檢查,但結果在第2天測量,然后患者獲得有效的處方.雖然這些臨床事件記錄在不同的日子,但它們緊密相連.為了使這些序列同時同步,我們選擇一個序列作為基序列,而將其他序列作為協同序列.基序列與協同序列之間采用時間對齊,即時間對齊后所有序列的時間步長都與基序列保持一致.考慮到這些異構序列的記錄時間不同,我們使用相同長度的序列生成訓練和測試批次,而不是將原始序列填充到一個固定的長度.為了獲得更好的泛化能力,將過短或過長的序列剔除.
4.2.1 基線方法
將我們的方法與以下基線進行比較:
1)LSTM,基礎的LSTM模型.我們使用歷史藥物序列(歷史治療)作為輸入預測藥物處方.
2)LSTM-FC,將所有異構序列簡單串聯作為輸入的模型.
3)LSTM-DE,Jin,B.等人[7]改進的LSTM模型,使用稀疏連接將附加序列添加到主序列中,有效的對多模態數據進行了建模.
4)Retain,Choi等人[5]提出的反向注意力模型用于臨床序列預測.
5)Dipole,Ma,F.等人[6]提出的雙向RNN模型對全局時間信息進行了有效建模.
4.2.2 本文的方法
1)ATH-LSTM在異構LSTM上添加注意力機制.
2)BiH-LSTM為雙向異構LSTM.
3)ATBH-LSTM:本文提出的基于注意力的雙向異構LSTM的治療引擎.
4.2.3 參數設置
所有這些模型都是用在Tensorflow中的mini-batch stochastic Adam optimizer實現的.我們將相同診斷的患者數據隨機分為訓練數據(80%)和測試數據(20%).所有的模型使用相同的網絡設置和參數進行比較.具體來說,學習率設置為0.01.對所有模型進行100個epoch的訓練,并對結果進行5個倍數的交叉驗證.為了避免梯度爆炸,我們將L2范數添加到損失函數中,參數為10-5.時間序列長度均大于3.由于將全連接層添加到了所有模型中,所以我們將其設定為固定值512維.
為了確定最佳的隱藏狀態的維度,如圖4、圖5所示,我們比較了在診斷為胸痛的數據子集下每個維度的ROC曲線下面積(AUROC)和P-R曲線下面積(AUPR)的值.在各個維度上的比較,我們所提出的方法ATBH-LSTM均在其他基線方法之上.并且LSTM單元的維度沒有影響所提方法的預測性能,這說明我們的方法具有更高的魯棒性.

圖4 隱藏狀態為每個維度時各個模型的AUROC的值

圖5 隱藏狀態為每個維度時各個模型的AUPR的值
為了便于進行對比實驗,在接下來的實驗,我們選擇512維的隱藏狀態維度.我們在5個數據子集上所有方法的AUROC和AUPR的平均性能.結果如表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的比較,驗證了異構LSTM能有效處理多模態數據.LSTM-FC在大多數疾病上的性能均低于LSTM,說明將數據的簡單混合反而混淆了數據隱藏的信息,LSTM-DE的異構組織有效的處理了多模態信息,然而在上消化道出血診斷集上的LSTM-DE的效果并不好,這可能是數據的時間長度過長,單向LSTM結構遺忘了部分信息.
其次,LSTM-DE和擬議的BiH-LSTM均未使用任何注意機制,但在所有疾病數據集上,BiH-LSTM的性能均高于LSTM-DE. 結果表明,從兩個方向對訪問信息進行建模可以提高預測性能. 因此,將雙向遞歸神經網絡用于診斷預測任務是合理的.
另外,ATH-LSTM、Retain、Dipole使用注意力機制,3個方法的AUROC和AUROC均高于沒有使用注意力的基線模型LSTM、LSTM-FC和LSTM-DE.這說明,注意力模型的使用有效提升了預測性能.ATH-LSTM的表現明顯優于Retain、Dipole方法,這可能是對前向信息和后向信息的分別處理使得模型學習到了更加全面的隱藏信息.
通過消融實驗,可以發現ATH-LSTM、BiH-LSTM在所有數據集上均優于LSTM-DE說明雙向結構和注意力機制起到了預期效果.方法ATBH-LSTM在這些數據子集上的表現都優于其他方法,這說明基于注意力的雙向異構LSTM的治療引擎能有效預測下一療程的治療藥物處方.
與AUROC相比,AUPR評分越高,說明預測所用的處方越有可能被采用,因為陽性結果少于陰性結果.特別的是,從表3中可以發現,本文所提出的方法在AUPR性能指標上提升很大,遠優于其他方法.這說明,本治療引擎的推薦的治療處方更加有效,這對提升醫療決策質量有重要意義.
綜上,我們的模型相比基線模型具有更高的魯棒性和預測性能,同時我們預測的結果更加有可能在臨床決策中被醫生采用,這表明本文提出的治療引擎的可行性和有效性.
為了準確預測病患下一療程的治療藥物處方,必須對豐富的患者住院信息進行建模.本文提出了一種基于注意力的雙向異構LSTM的治療引擎,通過引入異構LSTM和雙向注意力機制來解決多模態EMR數據帶來的挑戰.在真實EMR數據集上的實驗表明,我們提出的方法在預測治療處方任務方面取得了很好的效果,提升了預測精度和藥物處方的可用性.這項工作的一個局限性是我們簡化了預測任務,即只預測了治療藥物的類型而忽略了藥物的劑量.此外,推薦藥物的安全性也是未來值得研究的問題.