王延達,陳煒通,皮德常,岳 琳
(1. 南京航空航天大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇南京 211106;2. 昆士蘭大學(xué)信息技術(shù)與電子工程學(xué)院,澳大利亞昆士蘭布里斯班 4072)
隨著機器學(xué)習(xí)技術(shù)的快速發(fā)展,相關(guān)研究成果在多個學(xué)科交叉融合領(lǐng)域取得了令人矚目的研究成果,例如智能交通、智慧城市以及智慧醫(yī)療等[1~5]. 其中,智慧醫(yī)療旨在借助人工智能技術(shù),以病人臨床數(shù)據(jù)為基礎(chǔ),做出疾病診斷與治療建議,為醫(yī)生提供臨床決策支持,提升診療質(zhì)量與治療效率. 與此同時,電子醫(yī)療記錄(Electronic Healthcare Records,EHRs)系統(tǒng)的廣泛應(yīng)用,為臨床決策支持相關(guān)研究的開展提供了充足的數(shù)據(jù).EHRs 記錄了病人入院后各項生理指標的變化情況,以及使用的藥物和接受的治療手段等數(shù)據(jù),能夠滿足不同臨床應(yīng)用研究對數(shù)據(jù)的需求. 借助深度學(xué)習(xí)對EHRs 開展分析,協(xié)助醫(yī)護人員應(yīng)對復(fù)雜多變的病人健康狀況,是提升診療質(zhì)量的重要手段.作為構(gòu)建智慧醫(yī)療體系的重要一環(huán),相關(guān)研究成果是提升醫(yī)療效率、節(jié)省醫(yī)療資源及應(yīng)對人口老齡化的關(guān)鍵所在.
針對臨床決策支持的研究克服了EHRs 帶來的種種挑戰(zhàn),已經(jīng)在疾病診斷、死亡預(yù)測以及藥物推薦等問題上取得了諸多進展[6~9],涉及的研究議題包括EHRs信息提取、EHRs 表示學(xué)習(xí)以及輸出預(yù)測等.EHRs 信息提取的目標,是從數(shù)據(jù)中提取結(jié)構(gòu)化的醫(yī)學(xué)概念,例如疾病和藥品名稱,并通過對縮寫進行擴展和標準化來統(tǒng)一概念名稱,作為概念之間關(guān)系提取的基礎(chǔ),用以明確不同概念之間的影響方式,例如藥品A 能夠緩解疾病B 的癥狀. EHRs 包含兩方面的內(nèi)容表示學(xué)習(xí),即針對醫(yī)學(xué)概念的表示學(xué)習(xí)和針對病人的表示學(xué)習(xí). 針對醫(yī)學(xué)概念的表示學(xué)習(xí),目標是以不同概念之間的相似性為基礎(chǔ),提取具有臨床意義的概念表示向量. 針對病人的表示學(xué)習(xí),則是以病人對應(yīng)的各項概念表示向量為基礎(chǔ),構(gòu)建其對應(yīng)的綜合表示向量,作為輸出預(yù)測的依據(jù). 輸出預(yù)測依據(jù)病人表示向量對病人對應(yīng)的臨床輸出進行預(yù)測,例如診斷病人所患疾病或疾病發(fā)作時間. 根據(jù)模型使用數(shù)據(jù)的時間跨度,相關(guān)研究可以分為兩類,即不考慮時序模式的靜態(tài)預(yù)測和考慮時序模式的趨勢預(yù)測.
藥物推薦作為臨床決策支持相關(guān)研究中的重要課題[7,10],目標是以EHRs為依據(jù),預(yù)測病人的藥物使用情況,作為醫(yī)生開具處方的參考,其所涉及的研究內(nèi)容包括獲取EHRs 中蘊含的病人健康狀況變化規(guī)律,消解因藥物反應(yīng)(Drug-Drug Interaction,DDI)造成的副作用,以及利用反事實推理評估藥物治療效果. 為獲取病人健康狀況變化規(guī)律,以往研究大多使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對EHRs 中的時序模式進行編碼,并基于注意力機制對存儲歷史編碼結(jié)果的記憶神經(jīng)網(wǎng)絡(luò)(Memory Neural Network,MemNN)進行多跳讀取,提取其中的上下文信息[7]. 為消解DDI 引起的副作用,相關(guān)研究使用DDI 信息構(gòu)建圖結(jié)構(gòu)數(shù)據(jù)[10],并利用圖卷積網(wǎng)絡(luò)(Graph Convolutional Networks,GCN)[11]獲取節(jié)點表示向量,為模型提供藥物不良反應(yīng)信息. 另一些研究基于強化學(xué)習(xí)(Reinforcement Learning,RL)或生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)對藥物推薦過程進行修正,避免生成會引起不良反應(yīng)的藥物組合[7,12]. 反事實推理通常將病人接受某項治療方案的情形稱為事實,將沒有接受治療的情形稱之為反事實,并通過對比兩種場景下病人群體的輸出結(jié)果,明確藥物與疾病之間的因果關(guān)系[13]. 干擾因素(Confounder)是該過程面臨的主要問題[14],已有研究的應(yīng)對方法包括基于逆治療概率加權(quán)(Inverse Probability of Treatment Weighting,IPTW)的邊際結(jié)構(gòu)模型(Marginal Structural Models,MSMs)、循環(huán)邊際結(jié)構(gòu)網(wǎng)絡(luò)(Recurrent Marginal Structural Networks,RMSNs)以及反事實循環(huán)網(wǎng)絡(luò)(Counterfactual Recurrent Network,CRN)[15,16].
在藥物推薦涉及的各項研究內(nèi)容中,準確獲取EHRs 中蘊含的病人健康狀況變化規(guī)律以構(gòu)建病人表示向量是藥物推薦成功與否的關(guān)鍵所在. 然而,以往方法使用的常規(guī)MemNN 多跳讀取使用同一固定數(shù)值作為所有病人的MemNN 讀取次數(shù),忽略了不同病人所對應(yīng)的入院次數(shù)以及所患疾病等數(shù)據(jù)存在差異這一情況. 當MemNN 讀取次數(shù)不足時,模型無法獲得全部的上下文信息,而對MemNN 的不必要讀取,則會導(dǎo)致讀取結(jié)果中包含冗余數(shù)據(jù). 此外,常規(guī)注意力機制對注意力權(quán)重的分布沒有限制,應(yīng)用于MemNN 多跳讀取時很有可能重復(fù)關(guān)注MemNN 的相同位置,從而讀取冗余數(shù)據(jù). 為神經(jīng)機器翻譯(Neural Machine Translation,NMT)設(shè)計的覆蓋度機制(Coverage Mechanism)是解決該問題的一種方案[17]. 但是,NMT 與藥物推薦對注意力機制的使用存在顯著差異.NMT 任務(wù)要求將注意力權(quán)重分散到所有待翻譯詞匯,確保語句中的所有詞匯均被準確翻譯. 藥物推薦模型則需要通過變換注意力機制的關(guān)注重點,有選擇地讀取MemNN 中的上下文信息. 因此,對于藥物推薦問題,合理的MemNN 讀取方法是將注意力權(quán)重的調(diào)整與分布限定在選定的重要數(shù)據(jù)范圍內(nèi).
為解決上述問題,本文提出自適應(yīng)MemNN 多跳讀取機制與選擇性覆蓋度機制,結(jié)合二者構(gòu)建藥物推薦模型AMHSC(Adaptive Multi-Hop reading with Selective Coverage mechanism). 該模型根據(jù)病人自身情況決定對應(yīng)的MemNN 多跳讀取次數(shù),取代了常規(guī)方法使用單一數(shù)值作為全局讀取次數(shù)的做法. 同時,AMHSC 模型使用門控循環(huán)單元(Gated Recurrent Unit,GRU)對多跳讀取過程中MemNN 數(shù)據(jù)的覆蓋度進行記錄和更新,基于覆蓋度信息對MemNN 數(shù)據(jù)進行選擇,并對注意力權(quán)重進行調(diào)整,保證注意力權(quán)重合理地分散于所選定的重要數(shù)據(jù)范圍內(nèi). 兩種機制的結(jié)合保證了AMHSC 對EHRs 的合理讀取,避免了重要數(shù)據(jù)缺失或冗余數(shù)據(jù)造成的消極影響. 同時,為每個病人構(gòu)建獨有的MemNN并自適應(yīng)地決定MemNN 讀取次數(shù)的做法,能夠考慮病人獨有的生理特征,準確獲取病人健康狀況表示向量,作為藥物推薦的依據(jù).
AMHSC模型整體框架如圖1所示.
圖1 AMHSC模型整體框架
AMHSC 模型首先對病人的歷史EHRs 進行編碼,獲取病人健康狀況表示向量qt,并在此過程中構(gòu)建記憶神經(jīng)網(wǎng)絡(luò)KV. 然后,模型針對KV開展基于注意力機制的多跳讀取,并對覆蓋度進行更新. 在進行J輪讀取后,依據(jù)覆蓋度CJ對KV 進行過濾以獲取. 接著,模型針對進行基于注意力機制的多跳讀取,并在計算注意力權(quán)重時將覆蓋度作為依據(jù). 在依據(jù)推薦結(jié)果獲取多跳讀取的最佳次數(shù)后,將其作為監(jiān)督信息,用于訓(xùn)練MemNN 讀取次數(shù)的自適應(yīng)決定模塊,得到最佳讀取次數(shù)預(yù)測結(jié)果?,完成最后的藥物推薦.
病人對應(yīng)的EHRs 可看作是一個序列x=[x1,x2,…,xT],其中T為總?cè)朐捍螖?shù),xt為第t次入院對應(yīng)的數(shù)據(jù). 原始EHRs 使用ICD(International Classification of Diseases)代碼記錄病人的疾病診斷結(jié)果和手術(shù)治療方案,使用(National Drug Codes)NDC 代碼記錄病人服用的藥物. 這些代碼在分別經(jīng)過字典化處理后,均被轉(zhuǎn)化為唯一的整數(shù)數(shù)值,得到對應(yīng)的整數(shù)集合Sd,Sp和Sm,其中包含的整數(shù)數(shù)量分別為|Sd|,|Sp|和|Sm|.xt中包含了第t次入院時的疾病診斷結(jié)果、手術(shù)治療方案以及服用的藥物,分別對應(yīng)三個整數(shù)集合dt∈Sd,pt∈Sp和mt∈Sm. 在使用x作為輸入數(shù)據(jù)時,模型會將dt,pt和mt分別轉(zhuǎn)化為multi-hot向量和.
基于EHRs編碼結(jié)果構(gòu)建的MemNN中包含T-1對鍵-值,第t對鍵-值對應(yīng)第t次入院時的數(shù)據(jù),分別是由連續(xù)型數(shù)值構(gòu)成的病人健康狀況表示向量qt和以整數(shù)集合形式存在的藥物mt. 使用注意力機制對MemNN 進行多跳讀取時,模型會計算當前的查詢條件uk-1與MemNN 中各個鍵對應(yīng)的注意力權(quán)重ak,以此權(quán)重為依據(jù),從MemNN 中讀取內(nèi)容ok,用以完成查詢條件從uk-1到uk的更新. 同時,模型會依據(jù)讀取過程中的各項數(shù)據(jù),對MemNN 中qt對應(yīng)的覆蓋度信息進行更新,得到.
AMHSC 模型針對藥品的共同使用情況構(gòu)建關(guān)系圖,基于藥品的臨床醫(yī)學(xué)關(guān)系獲取對應(yīng)的表示向量. 模型使用矩陣CG表示關(guān)系圖,CG維度為|Sm|×|Sm|. 若某次入院記錄對應(yīng)的EHRs 中同時包含藥品i與j,則CGi,j=CGj,i=1,否則CGi,j=CGj,i=0.
給定病人對應(yīng)的EHRs,AMHSC 模型的目標是預(yù)測病人需要服用的藥物mT.
對EHRs 進行編碼的目的在于獲取病人每次入院對應(yīng)的健康狀況表示向量,作為構(gòu)建MemNN 和藥物推薦的基礎(chǔ). 首先,模型分別借助嵌入矩陣和,將與轉(zhuǎn)換為對應(yīng)的特征向量,如式(1)和式(2)所示,其中dim表示轉(zhuǎn)化后特征向量的長度. 得到的特征向量與將作為GRU 當前時刻的輸入數(shù)據(jù),依據(jù)式(3)和式(4)進行更新,獲取與中蘊含的時序模式. 二者對應(yīng)的GRU狀態(tài)htd與將在被連接為單一特征向量后,經(jīng)線性轉(zhuǎn)換得到第t次入院對應(yīng)的病人健康狀況表示向量qt. 隨后,qt和對應(yīng)的藥品集合mt一起組成一對鍵-值,存儲于MemNN 中. 在完成對所有EHRs 的編碼后,MemNN 中共包含T-1 對鍵-值,分別對應(yīng)第1次至第T-1次入院的數(shù)據(jù).
對MemNN 進行的多跳讀取分兩階段進行. 第一階段,模型基于常規(guī)注意力機制讀取數(shù)據(jù),不考慮覆蓋度信息對注意力權(quán)重計算的影響. 對于第k輪讀取,模型首先依據(jù)上一輪讀取結(jié)果uk-1與MemNN 的鍵qt(t<T)之間的交互信息,計算注意力權(quán)重ak,計算過程如式(5)和式(6)所示. 隨后,模型使用權(quán)重ak從MemNN 讀取藥品數(shù)據(jù),并依據(jù)各藥品對應(yīng)的表示向量Zk對讀取結(jié)果進行轉(zhuǎn)化,得到本次讀取的內(nèi)容ok,如式(7)所示.讀取結(jié)果ok會被用于對uk-1依照式(8)進行更新,并將讀取結(jié)果uk作為下一輪讀取的查詢依據(jù).
AMHSC 模型使用GCN 處理藥品關(guān)系矩陣CG,獲取式(7)使用的藥品表示向量Zk,計算過程如式(9)所示. 其中為對角矩陣,計算方式為則為單位矩陣. 模型會對CG使用兩層GCN 操作,所獲取的節(jié)點特征即為藥品的表示向量,計算過程如式(10)所示.
第二階段MemNN 多跳讀取過程中,模型使用覆蓋度機制對注意力權(quán)重的計算進行調(diào)整,將其作為注意力權(quán)重的計算依據(jù)之一. 具體計算細節(jié)將在2.3 節(jié)介紹.
AMHSC 模型使用覆蓋度信息記錄MemNN 中鍵-值對被讀取的程度,并基于覆蓋度信息完成兩項工作:篩選MemNN 中的重要數(shù)據(jù),以及對MemNN 讀取過程中的注意力權(quán)重進行調(diào)整,確保模型關(guān)注所有重要數(shù)據(jù).
2.3.1 基于GRU的覆蓋度信息更新
基于GRU 對覆蓋度信息進行更新的過程如圖2 所示. 對于第k輪讀取過程,模型對截至k-1 輪的覆蓋度信息Ck-1更新時使用的數(shù)據(jù)包括qt,uk-1以及注意力權(quán)重ak.ak是第k輪讀取時uk-1與qt(t<T)之間的注意力權(quán)重,其計算過程如式(11)及式(12)所示,其中Ctk-1表示第t對鍵-值對應(yīng)的覆蓋度信息. 相比于常規(guī)注意力權(quán)重只考慮qt與uk-1的做法,該計算過程通過對concat 注意力機制的修改[18],將覆蓋度信息納入考慮之中.
圖2 基于GRU的覆蓋度信息計算流程
將Ck-1更新至Ck的過程如式(13)至式(16)所示,其中σ(·)為sigmoid 函數(shù). 根據(jù)GRU 的計算過程可知,式(13)和式(14)首先分別基于sigmoid函數(shù)構(gòu)建更新門(update gate)和重置門(reset gate),用于決定原覆蓋度信息Ck-1中被保留以及被去除的數(shù)據(jù)量. 接著,式(15)基于輸入數(shù)據(jù)以及Ck-1生成當前時刻的新數(shù)據(jù)最后,式(16)基于更新門結(jié)合Ck-1與,生成更新后的覆蓋度信息Ck.
2.3.2 選擇性覆蓋度機制
AMHSC 模型根據(jù)病人歷史入院次數(shù)決定是否使用選擇性覆蓋度機制. 當病人入院次數(shù)較少時,對應(yīng)EHRs 包含的數(shù)據(jù)量有限,模型需要充分利用所有數(shù)據(jù),因此不對MemNN 進行數(shù)據(jù)過濾和注意力權(quán)重調(diào)整,僅依據(jù)常規(guī)注意力權(quán)重進行MemNN 多跳讀?。ň唧w見第2.2節(jié)). 當病人入院次數(shù)超過L時,模型啟動選擇性覆蓋度機制,依據(jù)覆蓋度信息對存儲在MemNN 中的數(shù)據(jù)進行過濾,并對注意力權(quán)重進行調(diào)整,避免注意力機制重復(fù)關(guān)注MemNN相同位置的數(shù)據(jù).
選擇性覆蓋度機制工作流程如圖3 所示,以MemNN數(shù)據(jù)選擇為界,分為兩步進行.
圖3 結(jié)合選擇性覆蓋度機制的MemNN多跳讀取
首先,模型依照第2.2 節(jié)的描述,基于常規(guī)注意力機制對MemNN 進行多跳讀取. 在此過程中,模型會使用GRU 對鍵-值對的覆蓋度信息進行記錄和更新,但不會使用Ctk調(diào)整注意力權(quán)重.Ctk記錄了MemNN 中不同鍵-值對被讀取和使用的情況,反應(yīng)了相應(yīng)數(shù)據(jù)對于藥物推薦的重要性. 因此,在對MemNN 進行J輪讀取后,模型以CtJ為依據(jù)計算qt中各元素對應(yīng)的門(element-wise gate),利用門控機制對qt進行數(shù)據(jù)篩選,以達到保留重要數(shù)據(jù)并去除冗余數(shù)據(jù)的目的. 計算過程如式(17)所示:.
完成MemNN 數(shù)據(jù)篩選后,模型繼續(xù)基于注意力權(quán)重對MemNN 進行讀取,并使用覆蓋度信息對注意力權(quán)重進行調(diào)整,保證其適當?shù)胤稚⒂贛emNN 不同位置.計算過程如式(18)和式(19)所示. 得到的注意力權(quán)重將被用于從過濾后的MemNN 中讀取數(shù)據(jù)會被用于將更新為,計算過程如式(20)和式(21)所示:
自適應(yīng)MemNN 多跳讀取根據(jù)病人自身情況,確定對應(yīng)的MemNN 讀取次數(shù),用以取代常規(guī)方法使用單一數(shù)值作為所有病人MemNN 讀取次數(shù)的做法. 不同病人對應(yīng)的入院次數(shù)、住院時間以及所患疾病種類等數(shù)據(jù)存在差異,對應(yīng)的EHRs 中包含的數(shù)據(jù)量不盡相同. 根據(jù)病人自身EHRs 的數(shù)據(jù)量確定MemNN 讀取次數(shù),能夠在獲取充足數(shù)據(jù)完善病人健康狀況表示向量的同時,避免讀取冗余數(shù)據(jù).
監(jiān)督信息的缺失是實現(xiàn)自適應(yīng)讀取的難點,即缺少病人對應(yīng)的最佳MemNN 讀取次數(shù). 為解決該問題,AMHSC 模型首先使用單一固定數(shù)值作為所有病人的MemNN 讀取次數(shù),用以完成數(shù)據(jù)讀取以及藥物推薦.然后,依據(jù)每輪MemNN 讀取結(jié)果生成藥物,評估推薦性能,以最佳性能對應(yīng)的讀取次數(shù)作為自適應(yīng)讀取的監(jiān)督信息,用于模型訓(xùn)練.
2.4.1 監(jiān)督信息獲取
在使用固定數(shù)值K作為所有病人的MemNN 讀取次數(shù)時,模型首先按照2.2 節(jié)介紹的常規(guī)讀取方式,基于注意力機制對MemNN 進行J輪讀取. 若病人住院次數(shù)超過L次,模型會使用2.3 節(jié)介紹的選擇性覆蓋度機制繼續(xù)對MemNN 進行讀取,直至完成K輪讀取. 否則,模型將繼續(xù)使用常規(guī)讀取模式,完成剩余讀取.
在完成K輪讀取后,模型將得到最終讀取結(jié)果uK.該讀取結(jié)果將與病人最后一次入院對應(yīng)的健康狀況表示向量qT,以及qT與藥品表示向量ZK之間的關(guān)聯(lián)信息r一起,作為生成最終藥品推薦結(jié)果的依據(jù). 關(guān)聯(lián)信息r反映了病人健康狀況與藥品之間的關(guān)聯(lián),其計算過程同樣依據(jù)注意力機制進行. 模型首先依據(jù)式(22)和式(23)計算注意力權(quán)重ar,然后依照式(24)使用ar整合藥品表示向量ZK,得到結(jié)果r.
獲取上述qT,uK以及r三項數(shù)據(jù)后,模型對三者進行連接,并利用全連接層處理,作為sigmoid函數(shù)的輸入數(shù)據(jù),用以計算每種藥品被推薦的概率,得到概率向量. 計算過程如式(25)所示,其中f(·)表示全連接層,σ(·)為sigmoid 函數(shù). 若藥品i對應(yīng)的概率? 大于預(yù)先設(shè)定的概率閾值pr,則該藥品會被選取作為推薦藥品之一,包含在最終生成的藥品集合中,否則該藥品不會被推薦.
在以固定數(shù)值K作為所有病人MemNN 讀取次數(shù)完成模型訓(xùn)練后,AMHSC 模型會依據(jù)每一輪MemNN讀取結(jié)果生成藥物集合,用于與真實藥物集合mT進行對比. 對比時使用F1 作為評價指標,選取對應(yīng)最高數(shù)值的MemNN 讀取次數(shù)K′作為病人對應(yīng)的MemNN 最佳讀取次數(shù). 生成藥物集合的過程如式(26)所示,其中uk是MemNN第k輪讀取得到的結(jié)果,rk是qT與第k輪讀讀取后的藥品表示向量Zk之間的關(guān)聯(lián)信息,計算過程參照式(22)至式(24)進行.
2.4.2 自適應(yīng)MemNN讀取
為完成自適應(yīng)MemNN 讀取,AMHSC 模型需要依據(jù)病人自身數(shù)據(jù),預(yù)測對應(yīng)的MemNN 最佳讀取次數(shù).模型首先以qT為初始查詢條件,進行基于常規(guī)注意力機制的MemNN 讀取,得到讀取結(jié)果u1.u1在經(jīng)過全連接層和sigmoid 函數(shù)處理后,得到概率向量?,處理過程如式(27)所示. 概率向量?維度為K,包含的元素表示i+1 作為MemNN 最佳讀取次數(shù)的概率. 隨后,模型選取中概率最高的數(shù)值,以其對應(yīng)位置作為MemNN自適應(yīng)讀取次數(shù),完成MemNN讀取以及藥物推薦.
AMHSC 訓(xùn)練過程分為兩步. 首先,模型使用單一固定數(shù)值作為所有病人的MemNN 讀取次數(shù),進行藥物推薦,并根據(jù)每一輪MemNN 讀取后對應(yīng)的推薦結(jié)果,確定每一位病人對應(yīng)的最佳MemNN 讀取次數(shù). 然后,使用得到的最佳MemNN 讀取次數(shù)作為監(jiān)督信息,訓(xùn)練模型自適應(yīng)地決定每一位病人的MemNN 讀取次數(shù),完成最終的模型訓(xùn)練.
第一步訓(xùn)練使用的損失函數(shù)如式(28)所示,由二元交叉熵損失函數(shù)(Binary Cross Entropy Loss)Lb以及多標簽邊際損失函數(shù)(Multi-label Margin Loss)Lm的加權(quán)和組成.Lb計算過程如式(29)所示,其中y即為則是藥品對應(yīng)的預(yù)測概率向量.Lm計算過程如式(30)所示,公式中包含的?是模型預(yù)測得到的藥品集合. 在使用常規(guī)損失函數(shù)Lb的基礎(chǔ)上使用Lm的原因在于,Lm能夠擴大真實標簽對應(yīng)的預(yù)測概率與錯誤標簽對應(yīng)的預(yù)測概率之間的差距,提升正確標簽對應(yīng)的預(yù)測概率并降低錯誤標簽對應(yīng)的概率,從而能使用預(yù)先設(shè)定的概率閾值為界限,更容易的區(qū)分二者.
第二步訓(xùn)練使用的損失函數(shù)如式(31)所示,其中是由自適應(yīng)讀取監(jiān)督信息K′轉(zhuǎn)化得到的one-hot向量,即=1,其余位置元素數(shù)值為零. 該損失函數(shù)只會對式(27)描述的全連接層進行訓(xùn)練,模型其余部分的參數(shù)不會收到影響,仍然為使用固定MemNN 讀取次數(shù)K時得到的訓(xùn)練結(jié)果. 這么做的目的是保證基于固定讀取次數(shù)獲取的監(jiān)督信息始終有效,可用于自適應(yīng)模型的訓(xùn)練.
本文所有實驗均基于真實的臨床醫(yī)療數(shù)據(jù)集Medical Information Mart for Intensive Care-III v1.4(MIMIC-III)[19]完成. AMHSC 模型使用PyTorch 編寫**https://github.com/yanda-wang/AMHSC,其訓(xùn)練借助英偉達TITAN XP GPU完成.
MIMIC-III v1.4 收集了超過四萬名病人住院期間的各項臨床數(shù)據(jù),從不同角度描述和記錄了病人健康狀況變化過程,涉及的數(shù)據(jù)包括生命指征、診斷結(jié)果、服用藥物以及手術(shù)治療等.AMHSC 模型選取具有至少兩次住院記錄的病人,選取的數(shù)據(jù)包括病人的疾病診斷結(jié)果、接受的手術(shù)治療方案以及服用的藥物等. 該過程共計選取了6 350 名病人的數(shù)據(jù),這些病人被隨機劃分為訓(xùn)練集、測試集以及驗證集,各集合占比分別為80%、10%和10%,其中不同性別及年齡段病人統(tǒng)計情況如表1所示.
表1 不同性別及年齡段病人數(shù)量統(tǒng)計信息
選取以下方法與AMHSC模型進行對比:
(1)ARMR[7]:ARMR 使用MemNN 對歷史EHRs 的編碼結(jié)果進行存儲,并對MemNN 進行基于注意力機制的多跳讀取,通過每次讀取時注意力權(quán)重的變化關(guān)注不同數(shù)據(jù),獲取EHRs 中蘊含的上下文信息,用于藥物推薦.
(2)DMNC[20]:EHRs中包含多種從不同角度描述病人健康狀況的數(shù)據(jù),DMNC 模型使用MemNN 存儲不同角度數(shù)據(jù)之間的交互信息,并將其用于自身數(shù)據(jù)的更新,以此提升藥物推薦性能.
(3)GAMENet[10]:GAMENet 使用MemNN 存儲歷史EHRs 的編碼結(jié)果,基于注意力機制從中讀取數(shù)據(jù),并基于圖數(shù)據(jù)表示藥物之間的相互聯(lián)系,使用GCN 獲取其表示向量用于藥物推薦.
(4)Leap[12]:Leap 將藥物推薦看作序列決策問題,基于藥物不良反應(yīng)信息制定獎勵函數(shù),使用強化學(xué)習(xí)對序列式的藥物推薦過程進行修正.
(5)RETAIN[21]:RETAIN 基于雙層級注意力機制,從歷史醫(yī)療記錄中獲取對當前藥物推薦具有重大影響的歷史數(shù)據(jù),用于提升藥物推薦性能.
AMHSC 模型及各對比方法的性能,通過以下三項評價指標進行比較:Jaccard 相似度(Jaccard)、Precision Recall AUC(PRAUC)及F1值.
3.3.1 性能比較與分析
AMHSC 模型與各對比方法的比較結(jié)果如表2 所示. 由表2 可知,AMHSC 模型性能在各指標上均優(yōu)于對比方法,其Jaccard,PRAUC 和F1 值分別為0.5080,0.7704 和0.6646. 在幾種不同對比方法中,DMNC 使用了與AMHSC 相似的數(shù)據(jù)編碼方法,對數(shù)據(jù)中從不同角度描述病人健康狀況的臨床記錄分別進行建模及結(jié)合,但其性能相較于AMHSC 有一定差距,這說明以鍵-值對形式的MemNN 對歷史數(shù)據(jù)建模,有利于提升藥物推薦性能. 此外,GAMENet 采用了類似的鍵-值對形式MemNN 對歷史EHRs 進行存儲,并基于注意力機制從中讀取數(shù)據(jù). 但是,對于所有病人,GAMENet均只進行一次MemNN 讀取,而不是由模型根據(jù)不同病人的健康狀況,自適應(yīng)地決定讀取次數(shù). 這種設(shè)定使得GAMENet的性能與AMHSC 相比有一定差距,同時也與進行MemNN 多跳讀取的ARMR 存在差距.ARMR 模型與AMHSC 模型均使用鍵-值對形式的MemNN 對歷史EHRs 進行建模,并通過對MemNN 進行多跳讀取獲取數(shù)據(jù). 但是,ARMR 沒有使用覆蓋度對注意力權(quán)重進行調(diào)整,注意力權(quán)重有可能重復(fù)關(guān)注MemNN中若干個鍵-值對,使得所讀取數(shù)據(jù)包含冗余信息. 同時,ARMR 針對所有病人均進行相同次數(shù)的MemNN 讀取,忽略了不同病人EHRs 數(shù)據(jù)量不同,從而需要進行不同次數(shù)MemNN 讀取. 上述原因?qū)е翧RMR 的性能雖然優(yōu)于其他對比方法,但與AMHSC相比仍然存在差距.
表2 AMHSC模型與對比方法性能比較結(jié)果
使用不同性別及年齡段病人所對應(yīng)數(shù)據(jù)對AMHSC 模型的有效性進行測試,結(jié)果如表3 所示. 針對模型有效性的測試結(jié)果表明,AMHSC 模型對于MIMIC 數(shù)據(jù)集中不同群體的病人均可以取得較好的藥物推薦效果. 其中,60~79 歲年齡段女性病人對應(yīng)的Jaccard,PRAUC 以及F1 三項指標的數(shù)值最高,分別達到0.5320,0.7873 和0.6878;其次為針對40~59 歲年齡段女性病人的測試結(jié)果,對應(yīng)的Jaccard,PRAUC 以及F1 達到了0.5167,0.7733 和0.6719. 相比之下,應(yīng)用于20~39 歲以及80 歲以上女性病人群體時所取得的效果稍差. 模型針對男性病人的藥物推薦效果呈現(xiàn)出類似的規(guī)律,即針對40~59 歲以及60~79 歲病人取得的推薦效果,要優(yōu)于對20~39 以及80 歲以上病人取得的推薦效果. 同時,對比不同性別病人的數(shù)據(jù)可知,模型對于女性病人表現(xiàn)出更加良好的整體推薦性能.
表3 AMHSC針對不同性別及年齡段病人的藥物推薦性能
為進一步測試當AMHSC 被應(yīng)用于不同類型疾病時的有效性,選取了9種人體不同器官或系統(tǒng)特有的疾病,并從MIMIC 數(shù)據(jù)集中選取患有相應(yīng)疾病的病人,使用他們對應(yīng)的數(shù)據(jù)對AMHSC 進行測試,結(jié)果如表4 所示,模型對于MIMIC 數(shù)據(jù)集中患有不同類型疾病的病人均可以取得較好的藥物推薦效果. 模型對絕大多數(shù)疾病可以取得0.67 以上的F1,其中最高數(shù)值0.6860 出現(xiàn)在敗血癥病人對應(yīng)的推薦結(jié)果中,糖尿病和腦血管疾病對應(yīng)的F1 數(shù)值也分別達到了0.6852 以及0.6811.此外,針對心臟病、高血壓、肺部疾病以及胰腺疾病的F1 數(shù)值也在0.67 以上,僅有肝臟疾病和胃部疾病的F1數(shù)值小于0.66.
表4 AMHSC針對患有不同類別疾病病人的藥物推薦性能
3.3.2 AMHSC模型消融實驗
為評估AMHSC 中各組件的必要性,模型被拆解為不同形式的變型. 每次拆解會去除模型中包含的某一組件,并保留其余組件. 去除單一組件后,組件負責(zé)的相應(yīng)功能也隨之消除,無法在藥物推薦過程中發(fā)揮作用. 因此,各種變型與AMHSC的對比,能夠說明不同組件對于模型的重要性,以及是否對提升藥物推薦性能發(fā)揮了積極作用. 同時,為說明自適應(yīng)決定MemNN 讀取次數(shù)的重要性,各變型會被進一步去除該功能,改為對所有病人使用相同的MemNN 讀取次數(shù). 拆解后得到的不同變型具體情況如下.
(1)Single-GRU:AMHSC 模型使用GRU 對診斷結(jié)果以及病人接受的手術(shù)治療手段分別進行編碼,然后對編碼結(jié)果進行整合,而Single-GRU 則將兩種數(shù)據(jù)作為單一序列數(shù)據(jù)處理.
(2)No-Coverage:該變型放棄使用覆蓋度信息對注意力權(quán)重進行調(diào)整,在MemNN 多跳讀取過程中不會對注意力權(quán)重施加任何限制條件.
(3)Arbitrary Coverage(Arb-Coverage):AMHSC 模型根據(jù)病人歷史入院次數(shù)決定是否使用覆蓋度信息對讀取MemNN 時使用的注意力權(quán)重進行調(diào)整,而Arb-Coverage 忽略對歷史入院次數(shù)的限制,處理所有病人數(shù)據(jù)時均使用覆蓋度信息對注意力權(quán)重進行調(diào)整.
(4)No-Selection:AMHSC 模型會依據(jù)覆蓋度信息,對MemNN 中的數(shù)據(jù)進行選擇,隨后依據(jù)覆蓋度信息對過濾后數(shù)據(jù)對應(yīng)的注意力權(quán)重進行調(diào)整,而No-Selection變型則舍棄數(shù)據(jù)過濾這一步驟,對原始MemNN 的注意力權(quán)重直接進行調(diào)整.
(5)No-GCN:AMHSC 模型使用GCN 獲取藥品表示向量,對MemNN 讀取結(jié)果進行編碼,而No-GCN 使用嵌入矩陣替代GCN,舍棄藥品之間的關(guān)系對獲取表示向量的影響.
(6)No-Adaptability(No-Adap):AMHSC 模型依據(jù)病人自身數(shù)據(jù),自適應(yīng)地決定MemNN 讀取次數(shù),而No-Adap不具備自適應(yīng)MemNN 讀取功能,使用單一固定數(shù)值作為所有病人的讀取次數(shù).
上述變型與AMHSC的比較結(jié)果如表5所示.
表5 AMHSC模型與不同變型性能比較結(jié)果
實驗結(jié)果顯示,AMHSC 能夠取得最佳的藥物推薦效果,對應(yīng)的Jaccard,PRAUC 以及F1 指標數(shù)值分別為0.508 0,0.770 4和0.664 6,證明了模型各組件對于藥物推薦的必要性. 具體來說,No-Coverage 缺少覆蓋度信息對注意力權(quán)重進行調(diào)整,在Jaccard 和F1 兩項指標上取得的數(shù)值最低,分別為0.490 8 和0.648 9. 與之相對的Arb-Coverage 則是對所有病人均使用覆蓋度機制,忽略了病人自身數(shù)據(jù)量對使用覆蓋度機制的影響,得到的性能同樣欠佳. 上述結(jié)果說明覆蓋度機制對MemNN讀取效果影響顯著,但需要具備足夠數(shù)據(jù)量時才能夠發(fā)揮預(yù)期作用. 合理使用覆蓋度機制的Single-GRU 相較于上述兩種變型在Jaccard 和F1 兩項指標上有所提升,但仍然與AMHSC 有一定差距. 這說明EHRs 中包含的數(shù)據(jù)從不同角度對病人健康狀況變化過程進行了記錄,相關(guān)時序模式應(yīng)當被分別處理后再予以合并.No-Adap 在各項指標上的表現(xiàn)與AMHSC 最為接近,是除AMHSC 模型外推薦性能最佳的變型. 但是,使用單一固定數(shù)值作為所有病人MemNN 讀取次數(shù)的做法,令其表現(xiàn)沒有能超越AMHSC. 其余兩種變型No-Selection與No-GCN 的表現(xiàn)比較相似,各項指標對應(yīng)數(shù)據(jù)均不如AMHSC. 上述結(jié)果驗證了AMHSC 模型中各組件對提升模型性能的必要性,同時也說明根據(jù)病人數(shù)據(jù)自適應(yīng)決定MemNN 讀取次數(shù)有助于獲取更佳的藥物推薦效果.
3.3.3 MemNN讀取次數(shù)對推薦性能的影響
AMHSC 模型自適應(yīng)決定的MemNN 讀取次數(shù)統(tǒng)計情況如表6所示,表中匯總了不同MemNN 讀取次數(shù)對應(yīng)的病例數(shù)目. 由該表可知,對MemNN 進行單次讀取的情況占據(jù)絕大多數(shù),對應(yīng)病例數(shù)目為3 251,其次是進行兩次讀取的情況,對應(yīng)病例數(shù)目為1 180. 剩余讀取次數(shù)對應(yīng)的病例數(shù)目呈現(xiàn)出一定起伏,但對應(yīng)病例數(shù)目相對較少,均沒有超過500. 該統(tǒng)計結(jié)果顯示,由于自身數(shù)據(jù)量的差異,病人對應(yīng)的最佳MemNN讀取次數(shù)并不相同,應(yīng)當根據(jù)病人具體情況,自適應(yīng)決定MemNN 讀取次數(shù).
表6 最佳MemNN讀取次數(shù)對應(yīng)病例數(shù)目
若對所有病人均使用同一數(shù)值作為MemNN 讀取次數(shù),則模型No-Adap 推薦性能隨數(shù)值變化的情況如表7 所示. 表7 包含了MemNN 讀取次數(shù)由1 次至14 次時,No-Adap 模型在各項性能評價指標上的表現(xiàn). 與AMHSC 的性能對比可知,采用自適應(yīng)方法的AMHSC模型能夠取得最佳的藥物推薦結(jié)果. 此外,隨著統(tǒng)一的固定MemNN 讀取次數(shù)的增加,No-Adap 模型性能呈現(xiàn)先上升后下降的趨勢. 在MemNN 讀取次數(shù)為5 時,其取得的效果相對最佳. 隨后No-Adap 模型性能整體呈現(xiàn)出下降趨勢,并在MemNN 讀取次數(shù)為14 時,表現(xiàn)相對最差. 這種對比和變化說明,根據(jù)病人自身特定情況,自適應(yīng)決定MemNN 讀取次數(shù),能夠從MemNN 中獲取最佳推理信息,用于完善病人健康狀況表示向量,提升藥物推薦性能.
表7 不同MemNN讀取次數(shù)下No-Adap對應(yīng)推薦性能
本文針對藥物推薦問題,提出了選擇性覆蓋度機制與自適應(yīng)MemNN 讀取機制,在此基礎(chǔ)上構(gòu)建了一種新穎的藥物推薦模型AMHSC. AMHSC 模型使用GRU對MemNN 所存儲數(shù)據(jù)對應(yīng)的覆蓋度信息進行記錄和更新,作為選取MemNN 重要數(shù)據(jù)的依據(jù),并利用覆蓋度信息對MemNN 讀取過程中的注意力權(quán)重進行調(diào)整,保證其適當?shù)胤稚⒂贛emNN 中的重要數(shù)據(jù)范圍內(nèi),避免了常規(guī)注意力機制重復(fù)關(guān)注MemNN 相同區(qū)域的問題. 此外,AMHSC 模型根據(jù)每個病人自身數(shù)據(jù)的不同情況,自適應(yīng)地決定病人對應(yīng)的MemNN 讀取次數(shù),保證模型在充分利用重要數(shù)據(jù)的同時,避免從MemNN 讀取冗余數(shù)據(jù). 基于真實臨床數(shù)據(jù)集MIMIC- III 對模型的有效性進行測試,結(jié)果顯示,AMHSC 在各項指標上的表現(xiàn)均優(yōu)于對比方法. 同時,消融實驗證明模型各組件發(fā)揮了預(yù)期作用,保證了數(shù)據(jù)讀取和推理過程的有效性和高效性.
AMHSC 模型對于疾病與藥物之間對應(yīng)關(guān)系的利用,以及對病人健康狀況和用藥過程個體化差異的考慮仍然存在不足,未來仍需要進一步研究. 利用疾病與藥物之間的對應(yīng)關(guān)系直接生成備選方案,能夠提升藥物推薦效率與準確性. 該過程需要考慮如何獲取藥物與疾病之間的對應(yīng)關(guān)系,以及如何有效利用該對應(yīng)關(guān)系. 同時,由于病理的復(fù)雜性以及病人自身獨特的生理特性,疾病癥狀的表現(xiàn)往往復(fù)雜多變,對應(yīng)的藥物使用情況也呈現(xiàn)出高度的個體化差異. 對這種個體化差異的考慮能夠進一步提升推薦模型性能.
未來研究中,計劃以醫(yī)學(xué)知識數(shù)據(jù)庫中疾病與藥物的映射關(guān)系以及藥物不良反應(yīng)相關(guān)知識等為依據(jù),構(gòu)建疾病與藥物之間的對應(yīng)關(guān)系. 同時,嘗試構(gòu)建圖形式的數(shù)據(jù),以節(jié)點表示疾病或者藥物,以節(jié)點之間的邊表示對應(yīng)關(guān)系,使用圖神經(jīng)網(wǎng)絡(luò)或知識圖譜獲取節(jié)點表示向量,為模型提供疾病與藥物對應(yīng)關(guān)系的相關(guān)知識. 針對病人的個體化差異,計劃在依據(jù)病人所患疾病對病人健康狀況進行編碼的同時,使用病人對應(yīng)的生理監(jiān)測數(shù)據(jù)以及各項化驗指標作為模型輸入,例如心率、血氧含量和血液白細胞數(shù)目等,從而使模型能夠以病人健康狀況的變化為依據(jù),考慮個體之間的差異性和疾病所表現(xiàn)癥狀的復(fù)雜性.