張樂(lè),方之家,王祺,雷麗琪,阮彤*,高炬
(1.華東理工大學(xué) 自然語(yǔ)言處理與數(shù)據(jù)挖掘?qū)嶒?yàn)室,上海 200237;2.上海中醫(yī)藥大學(xué)附屬曙光醫(yī)院,上海 200021)
得益于醫(yī)學(xué)信息化的深入開(kāi)展,醫(yī)院已積累了大量的電子病歷(Eeltronic Health Record,簡(jiǎn)稱(chēng)EHR)數(shù)據(jù)。從簡(jiǎn)單的輔助診療(如患者相似度[1],死亡率預(yù)測(cè)[2])到復(fù)雜的臨床決策支持系統(tǒng)(如IBM的Watson[3-4]),電子病歷數(shù)據(jù)開(kāi)始成為生物醫(yī)學(xué)研究者和人工智能應(yīng)用的重要資源。然而,直接使用電子病歷進(jìn)行數(shù)據(jù)挖掘面臨著諸多挑戰(zhàn),如電子病歷數(shù)據(jù)具有時(shí)序性、高維性、稀疏性、噪音性、偏倚性等特點(diǎn)。就時(shí)序性而言,每個(gè)病人通常有多次醫(yī)院就診記錄,這些序列化的病歷信息對(duì)于臨床診療意義重大。因?yàn)橹鞍l(fā)生的醫(yī)療事件可能會(huì)影響后來(lái)者,如由冠心病或高血壓引起的心力衰竭在病理學(xué)上是不同的。因此,掌握此一時(shí)序性的醫(yī)療數(shù)據(jù)對(duì)輔助診療具有正面效益。再以高維性為例,電子病歷數(shù)據(jù)中常常包含諸多醫(yī)療事件,如診斷、手術(shù)、用藥、化驗(yàn)等,這使得電子病歷的維度非常高。但是,傳統(tǒng)機(jī)器學(xué)習(xí)所使用的特征提取方法難以應(yīng)對(duì)這些挑戰(zhàn)。
隨著深度學(xué)習(xí)方法的普遍應(yīng)用,研究者在一定程度上可以克服電子病歷數(shù)據(jù)的復(fù)雜性所導(dǎo)致的特征學(xué)習(xí)困難。Choi等人[5]和Lipton等人[6]將循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡(jiǎn)稱(chēng)RNN)應(yīng)用于風(fēng)險(xiǎn)預(yù)測(cè)。Cheng等人[7]嘗試將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱(chēng)CNN)應(yīng)用于電子病歷中進(jìn)行表型分型。但他們的模型針對(duì)的是一些特定的任務(wù),而不是一般的用法。即,訓(xùn)練完模型后只能針對(duì)一個(gè)特定任務(wù)進(jìn)行分析,而不能為其他輔助診療任務(wù)所采用。當(dāng)一個(gè)病人需要進(jìn)行各類(lèi)輔助診療時(shí),這些模型就不能很好地適用。
另一方面,表示學(xué)習(xí)作為一個(gè)新興的課題開(kāi)始應(yīng)用到醫(yī)學(xué)領(lǐng)域。一些工作已經(jīng)開(kāi)始著手從電子病歷數(shù)據(jù)中挖掘出常見(jiàn)的醫(yī)學(xué)詞匯,并將這些醫(yī)學(xué)詞匯表示成向量形式。由此,臨床診療中復(fù)雜的醫(yī)療事件、醫(yī)療時(shí)間點(diǎn)等概念就可以轉(zhuǎn)化成數(shù)學(xué)向量進(jìn)行計(jì)算,從而方便輔助診療的開(kāi)展與深入。而且通過(guò)表示學(xué)習(xí),相較于原始的高維數(shù)據(jù),不僅電子病歷的維度降低,而且數(shù)據(jù)變得更稠密。Vine等人[8]通過(guò)純文本的患者記錄和醫(yī)學(xué)期刊摘要,學(xué)習(xí)了醫(yī)療術(shù)語(yǔ)的向量表示。Choi等人[9]開(kāi)始從電子病歷數(shù)據(jù)中學(xué)習(xí)訪問(wèn)的表示。 Ho等人[10]則學(xué)習(xí)了醫(yī)學(xué)表征,其重點(diǎn)是使用張量分解或因式分解以完成特定的預(yù)測(cè)任務(wù)。當(dāng)然,這些面向任務(wù)的表示學(xué)習(xí)方法將注意力集中在特定的目標(biāo)任務(wù)上會(huì)更有效率,但是,當(dāng)給予另一項(xiàng)預(yù)測(cè)任務(wù)時(shí),便需要重新學(xué)習(xí)或重新調(diào)整以得到新的表示。因此,在實(shí)際應(yīng)用中,通用的患者表示變得更為重要。Riccardo等人[11]提出了一種無(wú)監(jiān)督的方法使用自動(dòng)編碼器來(lái)推導(dǎo)出一種通用的病人表示。然而,這項(xiàng)工作受到觀察窗口大小的限制。更重要的是,這些模型沒(méi)有考慮時(shí)間序列特征,而由于多次就診的存在,病歷數(shù)據(jù)往往包含著時(shí)序信息。
因此,從序列化的住院記錄中學(xué)習(xí)出一個(gè)通用的病人表示,并將之應(yīng)用于多個(gè)輔助診療預(yù)測(cè)任務(wù)中變得很有必要。而如何將復(fù)雜多變的電子病歷數(shù)據(jù)整合成統(tǒng)一、通用的向量表示,便是本文任務(wù)的難點(diǎn)所在。本文試圖設(shè)計(jì)一種深度學(xué)習(xí)方法來(lái)訓(xùn)練一個(gè)通用的住院病人表示,并利用這一病人表示進(jìn)行輔助診療任務(wù)。具體來(lái)說(shuō),本文提出了一種RNN自編碼器,將每位患者的住院記錄編碼為一個(gè)低維稠密向量,并以心衰住院病人作為切入點(diǎn),選擇死亡預(yù)測(cè)和并發(fā)癥預(yù)測(cè)作為對(duì)應(yīng)的輔助診療任務(wù)。特別地,在實(shí)驗(yàn)驗(yàn)證方面,本文首先遵從醫(yī)生的建議和指導(dǎo),從上海中醫(yī)藥大學(xué)附屬曙光醫(yī)院的臨床數(shù)據(jù)庫(kù)中構(gòu)建出一個(gè)關(guān)于心力衰竭的二次病歷庫(kù)。然后,將患者的原始電子病歷數(shù)據(jù)轉(zhuǎn)換為張量形式,這一張量形式是一系列院內(nèi)病歷記錄的表示向量組合。這一過(guò)程包含了結(jié)構(gòu)化數(shù)據(jù)的抽取、清洗與融合。最后對(duì)RNN自編碼器模型進(jìn)行訓(xùn)練,并將自編碼器的中間向量提取出來(lái)作為心衰住院病人的表示向量。本質(zhì)上,這一表示學(xué)習(xí)方法也是一個(gè)特征學(xué)習(xí)方法。
實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有的特征學(xué)習(xí)算法相比,本文的方法在死亡預(yù)測(cè)任務(wù)中得到了0.754 8的AUC值(比第2名高了0.15),并在10個(gè)并發(fā)癥預(yù)測(cè)任務(wù)中獲得了4個(gè)第一名和2個(gè)第二名,顯著優(yōu)于其他方法。
本文的主要貢獻(xiàn)如下:
(1)本文使用RNN自編碼器將序列化的電子病歷數(shù)據(jù)編碼為通用的患者表示,可以同時(shí)應(yīng)對(duì)不同的預(yù)測(cè)任務(wù);
(2)本文在表示學(xué)習(xí)時(shí)考慮了時(shí)序信息,以捕獲臨床事件的先后順序所帶來(lái)的不同影響;
(3)本文的方法基于無(wú)監(jiān)督學(xué)習(xí),在進(jìn)行表示學(xué)習(xí)時(shí)無(wú)須進(jìn)行人工標(biāo)注。
本文的任務(wù)目標(biāo)是,給定醫(yī)院各科室、各系統(tǒng)的多次住院的異構(gòu)電子病歷信息,預(yù)處理之后進(jìn)行表示學(xué)習(xí)形成一個(gè)通用的心衰病人表示向量。需要注意的是,相較于以特定任務(wù)為目標(biāo)從電子病歷數(shù)據(jù)中抽取特征并訓(xùn)練模型,本文以通用任務(wù)為目標(biāo),并沒(méi)有指定后續(xù)的輔助診療任務(wù)為何,而以構(gòu)建通用的病人表示為追求。
在實(shí)驗(yàn)驗(yàn)證時(shí),本文的主要研究對(duì)象為心衰病人電子病歷,它具有以下特點(diǎn):
(1) 心衰病人的電子病歷數(shù)據(jù)形式各異,結(jié)構(gòu)復(fù)雜。其中包含有結(jié)構(gòu)化的人口學(xué)信息、入院信息、檢查信息,以及非結(jié)構(gòu)化的醫(yī)囑信息等;
(2) 心衰病人的再入院率較高,導(dǎo)致了序列化的電子病歷的產(chǎn)生;
(3) 心衰病人的信息中包含各類(lèi)空值、臟數(shù)據(jù)。例如性別中出現(xiàn)人名等輸入錯(cuò)誤,入院時(shí)間出現(xiàn)空值等遺漏錯(cuò)誤等;
(4) 心衰病人的輔助診療需求較多,死亡預(yù)測(cè)、并發(fā)癥預(yù)測(cè)等任務(wù)具有較高的實(shí)用價(jià)值,因此需要一個(gè)盡可能通用的特征提取方式來(lái)應(yīng)對(duì)各類(lèi)預(yù)測(cè)任務(wù)。
圖1展示了本文利用醫(yī)院提供的電子病歷數(shù)據(jù)為住院病人及其可能的應(yīng)用生成向量表示的整體流程。首先,本文從醫(yī)院系統(tǒng)中提取并建立了臨床數(shù)據(jù)倉(cāng)庫(kù)(Clinical Data Repository,簡(jiǎn)稱(chēng)CDR),然后進(jìn)一步提取了一個(gè)專(zhuān)注于典型心血管疾病(即心力衰竭)的子庫(kù)。子庫(kù)中的電子病歷數(shù)據(jù)經(jīng)過(guò)預(yù)處理、歸一化、知識(shí)庫(kù)匹配等一系列處理之后,以高維多熱(Multi-hot)的向量形式進(jìn)行表示(即原始表示)。 需要注意的是,多次再入院的患者具有多個(gè)連續(xù)的多熱向量表示記錄。因此,本文使用張量或多路陣列來(lái)表示多次住院的病人病歷信息。最后采用一個(gè)RNN自編碼器來(lái)進(jìn)行表示學(xué)習(xí)。具體地,本文利用RNN自編碼器,將由張量表示的病人信息轉(zhuǎn)化為一個(gè)低維稠密的向量,即本文所提的病人表示形式。獲得了病人表示之后,利用這個(gè)表示向量進(jìn)行一系列輔助診療工作,即死亡預(yù)測(cè)和并發(fā)癥預(yù)測(cè)。
Fig.1 Overview of patient representation learning and application圖1 病人表示學(xué)習(xí)及應(yīng)用的整體流程
本文任務(wù)可以定義為:輸入一個(gè)病人的歷次住院記錄X=[x1,x2,…,xn],輸出一個(gè)可以用來(lái)實(shí)現(xiàn)預(yù)測(cè)任務(wù)的特征向量即病人表示c,其中xi表示該病人第i次住院的住院記錄向量。
RNN模型適合處理序列化的數(shù)據(jù)。給定一個(gè)基于時(shí)間t的序列X=[x1,x2,…xt],RNN模型能不斷迭代計(jì)算t時(shí)刻的狀態(tài)ht:
ht=RNN(ht-1,xt).
(1)
在諸如詞性標(biāo)注[12-14]、機(jī)器翻譯[15-17]、文本摘要[18-20]等領(lǐng)域,RNN已經(jīng)被證明了它在處理序列化數(shù)據(jù)上的優(yōu)越性。長(zhǎng)短時(shí)記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[21]相較于原生的RNN模型,增加了門(mén)控機(jī)制,能夠有效地克服梯度爆炸或者梯度消失問(wèn)題[22-23]。序列到序列(即Seq2Seq)學(xué)習(xí)基于LSTM網(wǎng)絡(luò),在機(jī)器翻譯[24]、文本解析[25]、圖像注釋[26]和會(huì)話建模[27]等方面也取得了實(shí)質(zhì)性進(jìn)展。本文的表示學(xué)習(xí)模型即是對(duì)序列到序列學(xué)習(xí)的一個(gè)擴(kuò)展。
受序列化自編碼器[28]啟發(fā),本文采用LSTM與自編碼器相結(jié)合的方法,構(gòu)建基于RNN 自編碼器的通用病人表示學(xué)習(xí)模型,如圖2所示。
Fig.2 RNN auto-encoder圖2 RNN自編碼器模型
該模型由兩個(gè)部分組成:編碼器與解碼器。編碼器與解碼器實(shí)質(zhì)上都是LSTM網(wǎng)絡(luò)。編碼器將輸入的張量(即向量序列)X轉(zhuǎn)化為中間變量c,這里的c即為L(zhǎng)STM網(wǎng)絡(luò)中最后一個(gè)時(shí)刻的輸出ht:
c=LSTM(ht-1,xt) .
(2)
在解碼階段,解碼器根據(jù)上一時(shí)刻LSTM的輸出st-1、上一時(shí)刻解碼器的輸出yt-1和中間變量c得到當(dāng)前時(shí)刻的LSTM輸出st:
st=LSTM(st-1,yt-1,c).
(3)
據(jù)此得到當(dāng)前時(shí)刻解碼器的輸出yt
yt=softmax(st,yt-1,c).
(4)
本文方法實(shí)質(zhì)上將自編碼器的編碼過(guò)程和解碼過(guò)程轉(zhuǎn)換為兩個(gè)不同的LSTM過(guò)程。一個(gè)病人的歷次住院信息通過(guò)LSTM迭代編碼成病人表示向量c,再將c通過(guò)另一個(gè)LSTM模型解碼成為歷次住院信息。當(dāng)c解碼后的歷次住院信息與原來(lái)輸入的病人信息保持一致時(shí),則可認(rèn)為c完整囊括了這一病人的歷次住院信息。因此,RNN自編碼器的訓(xùn)練目標(biāo)在于盡可能保證X與Y(Y=[y1,y2,…,yn])最為接近,由此自編碼器的中間向量c就可認(rèn)為是病人住院記錄張量X的降維結(jié)果,即RNN自編碼器的訓(xùn)練目標(biāo)在于最小化損失函數(shù)L(X,Y):
(5)
其中,xi表示X中第i個(gè)元素,xi(j)表示xi中第j個(gè)元素。同時(shí)在訓(xùn)練中,本文使用大小為100的mini-batch并使用RMSprop梯度下降方法[29]更新RNN自編碼器的參數(shù)。
本文使用的模型中LSTM隱藏層的維度均采用經(jīng)驗(yàn)參數(shù)300,即生成的通用病人表示維度為300。
本文的電子病歷數(shù)據(jù)來(lái)自上海中醫(yī)藥大學(xué)附屬曙光醫(yī)院。這是一家中西醫(yī)結(jié)合的大型三甲醫(yī)院,醫(yī)院使用電子病歷系統(tǒng)已有超過(guò)10 a的歷史,病人的病歷信息有充分的文件記錄和時(shí)間戳。病人的電子病歷記錄包括人口統(tǒng)計(jì)學(xué)信息、主訴、化驗(yàn)、診斷、用藥、手術(shù)和醫(yī)囑等信息。該院的電子病歷使用疾病名稱(chēng)的國(guó)際疾病分類(lèi)第10版(ICD-10)代碼作為診斷編碼標(biāo)識(shí),使用ICD-9-CM作為手術(shù)編碼標(biāo)識(shí),另外還采用觀測(cè)指標(biāo)標(biāo)識(shí)符邏輯命名與編碼系統(tǒng)(LOINC)編碼進(jìn)行檢驗(yàn)結(jié)果標(biāo)識(shí)。其他信息如藥物處方信息等不采用國(guó)際編碼標(biāo)準(zhǔn)。本文的實(shí)驗(yàn)數(shù)據(jù)采用2005年1月至2016年4月期間發(fā)生的住院患者病歷。整個(gè)數(shù)據(jù)集包含大約35萬(wàn)份住院患者的病歷記錄。
本文基于此構(gòu)建了一個(gè)專(zhuān)注于心力衰竭病例的二次庫(kù)(即心衰子庫(kù))。該過(guò)程在上海曙光醫(yī)院的醫(yī)學(xué)專(zhuān)家指導(dǎo)下進(jìn)行。二次庫(kù)中所包含的患者需要同時(shí)滿足以下兩個(gè)條件:(1)心力衰竭相關(guān)的ICD-10代碼出現(xiàn)在患者的診斷或醫(yī)囑中。為此,醫(yī)學(xué)專(zhuān)家們定義了一個(gè)包含63個(gè)與心力衰竭有關(guān)的ICD-10代碼的清單。(2)前述診斷或醫(yī)囑中需要至少出現(xiàn)2次上述ICD-10代碼。
本文對(duì)已構(gòu)建的二次庫(kù)中的每位患者的每一次住院記錄分別生成一個(gè)向量表示,然后將每一住院記錄向量按照入院時(shí)間排序并組合,構(gòu)成一個(gè)序列化的住院記錄張量。
對(duì)于數(shù)據(jù)集中的每位患者的每一次住院記錄,保留一般人口統(tǒng)計(jì)學(xué)信息(年齡和性別)和臨床事件,包括結(jié)構(gòu)化的診斷、化驗(yàn)、用藥以及非結(jié)構(gòu)化的醫(yī)囑、診斷等。將這些臨床事件表示為可計(jì)算事件序列時(shí),歸一化過(guò)程因類(lèi)型而異。但除了人口統(tǒng)計(jì)學(xué)信息外,基本使用了多熱(Multi-hot)向量的表示形式。這些向量拼合在一起形成了高維的單次住院病歷原始向量表示。此外,臟數(shù)據(jù)的處理也因類(lèi)別而異。
經(jīng)過(guò)預(yù)處理得到的用于病人表示學(xué)習(xí)的序列化住院記錄數(shù)據(jù)統(tǒng)計(jì)如表1所示。其中,輔助字段包括唯一標(biāo)識(shí)病人的EMPI字段、唯一標(biāo)識(shí)住院記錄的HospitalID字段以及入院時(shí)間、死亡情況等用來(lái)幫助整理序列化電子病歷信息和生成標(biāo)注的信息。
由于僅一次住院的病人不符合本文序列化數(shù)據(jù)的特點(diǎn),并且在后續(xù)預(yù)測(cè)任務(wù)中無(wú)法構(gòu)成有效的訓(xùn)練數(shù)據(jù),因此本文舍棄了僅一次住院的病人。
排除少于兩次就診的患者,本文最終留下了10 898名住院患者記錄和4 682名患者,中位隨訪時(shí)間為0.96 a(四分位間距為0.31~2.19 a),其中568名患者(12.1%)在醫(yī)院死亡,而剩下的患者很難跟蹤。
表1 病人住院記錄中的維度分配
4.1.1 采樣策略
電子病歷數(shù)據(jù)通常只記錄在院死亡人數(shù),而大多數(shù)患者在不治之后選擇出院或者轉(zhuǎn)院,亦有心衰病人突然死亡而沒(méi)能及時(shí)入院的情況,所以實(shí)際上可觀測(cè)到的死亡病例數(shù)量非常有限。本次實(shí)驗(yàn)所采用的10 898條住院記錄中,共有4 682個(gè)病人,其中死亡病人僅568例,生存病人(正例)與死亡病人(負(fù)例)的數(shù)據(jù)極其不平衡。數(shù)據(jù)不平衡對(duì)分類(lèi)器的性能會(huì)造成很大的挑戰(zhàn),因?yàn)榉诸?lèi)器會(huì)更傾向于訓(xùn)練數(shù)據(jù)量大的類(lèi)別。同樣的問(wèn)題,也存在于一些低頻的疾病中。一些疾病在實(shí)驗(yàn)數(shù)據(jù)中僅出現(xiàn)了較少的次數(shù),與常見(jiàn)疾病相比,分類(lèi)器更傾向于這些常見(jiàn)疾病。本文在預(yù)測(cè)前先進(jìn)行一次下采樣以平衡數(shù)據(jù)集中正負(fù)例的個(gè)數(shù)。
Fig.3 Pre-experiment:(a) Sampling Strategies Selection; (b) Classifiers Selection圖3 前置實(shí)驗(yàn) (a)采樣策略選擇;(b)分類(lèi)器選擇
本文對(duì)比了8種傳統(tǒng)的下采樣方法,如圖3(a)所示,其中Raw表示未進(jìn)行采樣的實(shí)驗(yàn)數(shù)據(jù)。采樣方法的評(píng)價(jià)指標(biāo)采用支持向量機(jī)(Support Vector Machine,簡(jiǎn)稱(chēng)SVM)分類(lèi)器預(yù)測(cè)180 d死亡時(shí)的AUC值。其中,NearMiss的AUC值最高,為0.670 9,表現(xiàn)優(yōu)于第2名的ClusterCentroids下采樣方法(0.626 4)。在后續(xù)實(shí)驗(yàn)中,若遇到數(shù)據(jù)不平衡時(shí),若非具體說(shuō)明,均使用了NearMiss下采樣。同時(shí),Raw數(shù)據(jù)在預(yù)測(cè)中的表現(xiàn)最差,這也說(shuō)明了采用下采樣算法的必要性。
4.1.2 分類(lèi)器選擇
為了驗(yàn)證本文表示學(xué)習(xí)方法的有效性,本文將訓(xùn)練得到的病人向量表示作為特征,通過(guò)分類(lèi)器完成兩項(xiàng)預(yù)測(cè)任務(wù),分別是預(yù)測(cè)該病人在180 d后是否死亡,以及預(yù)測(cè)該病人的并發(fā)疾病。本實(shí)驗(yàn)對(duì)比了6種分類(lèi)方法以選擇一個(gè)最有效的分類(lèi)器,對(duì)比的方法包括K近鄰(K-Nearest Neighbor,簡(jiǎn)稱(chēng)KNN)、支持向量機(jī)、樸素貝葉斯(Naive Bayesian,簡(jiǎn)稱(chēng)NB)、隨機(jī)森林(Random Forest,簡(jiǎn)稱(chēng)RF)、梯度上升決策樹(shù)(Gradient Boosting Decision Tree,簡(jiǎn)稱(chēng)GBDT)、邏輯回歸(Logistic Regression,簡(jiǎn)稱(chēng)LR)。實(shí)驗(yàn)結(jié)果如圖3(b)所示。其中,SVM的分類(lèi)效果最好,為0.6709,在后續(xù)實(shí)驗(yàn)中,若非具體說(shuō)明,均使用了SVM作為分類(lèi)器。
4.2.1 觀測(cè)窗口大小選擇
為了評(píng)估本文基于時(shí)間序列的病人表示學(xué)習(xí)方法的有效性,本文與文獻(xiàn)[11]所提出的單次就診自編碼器(簡(jiǎn)稱(chēng)DeepPatient)在180 d死亡預(yù)測(cè)任務(wù)上進(jìn)行對(duì)比。同時(shí)參照文獻(xiàn)[11],我們還對(duì)比了另外3種傳統(tǒng)特征學(xué)習(xí)方法,分別為主成分分析(Principal Component Analysis,簡(jiǎn)稱(chēng)PCA)、高斯混合模型(Gaussian Mixed Model,簡(jiǎn)稱(chēng)GMM)和K均值(Kmeans)算法。傳統(tǒng)的方法需要確定觀測(cè)窗口大小,為了對(duì)比不同窗口大小的影響,進(jìn)行了由不同窗口大小下使用傳統(tǒng)特征選取方法生成的特征的180 d死亡預(yù)測(cè)對(duì)比實(shí)驗(yàn)。文獻(xiàn)[5,11]提到醫(yī)療任務(wù)中窗口大小通常設(shè)置在30 d、60 d至180 d。評(píng)估數(shù)據(jù)集得知,往過(guò)去回顧指定天數(shù)的時(shí)間區(qū)間內(nèi),存在其他記錄的記錄數(shù)如表2所示。
表2 不同窗口大小記錄數(shù)統(tǒng)計(jì)
如表2所示,每一行中的記錄數(shù)表示在該窗口大小下,往過(guò)去回顧指定天數(shù)的時(shí)間區(qū)間能獲取到住院記錄的記錄數(shù)。例如,第一行表示有4 989次住院記錄的前180 d內(nèi)還住過(guò)院。結(jié)合每個(gè)窗口大小相應(yīng)的記錄數(shù),為了漸進(jìn)地表示數(shù)據(jù)的豐富性,將窗口設(shè)置為30 d、60 d、90 d以及180 d。
SVM分類(lèi)模型使用不同的特征提取算法在不同窗口大小下生成的特征,其180 d死亡預(yù)測(cè)結(jié)果如表3所示。其中,Sum表示原始的觀測(cè)窗口內(nèi)向量線性相加生成的特征,PCA、GMM、Kmeans、DeepPatient分別表示在窗口特征上作相應(yīng)降維后的特征。隨著窗口大小的增大,數(shù)據(jù)量增加,數(shù)據(jù)所包含的信息也相應(yīng)增加,分類(lèi)模型的AUC也逐漸增加(只有DeepPatient方法在窗口大小為60 d時(shí)不符合規(guī)律),基本沒(méi)有出現(xiàn)預(yù)期中過(guò)于久遠(yuǎn)數(shù)據(jù)對(duì)當(dāng)前病人的病情預(yù)測(cè)進(jìn)行干擾的情況。由此,后續(xù)實(shí)驗(yàn)設(shè)置窗口大小固定為180 d。同時(shí),該實(shí)驗(yàn)可以看到雖然其他方法的AUC值不斷增高,但始終不及本文方法生成的特征(由于本文方法不存在窗口選擇的問(wèn)題,故AUC值均為0.754 8),差距始終在0.1以上。
4.2.2 180 d死亡預(yù)測(cè)評(píng)估
本實(shí)驗(yàn)將病人表示向量作為特征與其他方法獲得的特征進(jìn)行病人死亡預(yù)測(cè)對(duì)比。實(shí)驗(yàn)結(jié)果如表4所示。從實(shí)驗(yàn)結(jié)果中我們可以看到,本文方法在住院病人死亡預(yù)測(cè)上獲得了0.754 8的AUC值,顯著高于其他算法(平均高了0.15左右)。
特別地,本實(shí)驗(yàn)將分類(lèi)模型的閾值取0.8做特別分析。在死亡預(yù)測(cè)中,無(wú)論病人還是醫(yī)生對(duì)于預(yù)測(cè)的結(jié)果的期望都是樂(lè)觀的,只有正例(死亡)的準(zhǔn)確率較高,才能保證正常的醫(yī)療行為的進(jìn)行,因此取經(jīng)驗(yàn)閾值0.8。在0.8閾值下的分類(lèi)結(jié)果,本文方法的Acc值取得了最高的結(jié)果(0.759 8),F1值(0.443 6)僅比最優(yōu)的DeepPatient方法(0.447 2)低了0.003 6。
表3 不同窗口大小下的預(yù)測(cè)對(duì)比
表4 死亡預(yù)測(cè)實(shí)驗(yàn)結(jié)果
4.3.1 并發(fā)疾病預(yù)測(cè)AUC評(píng)估
本實(shí)驗(yàn)對(duì)比本文得到的病人表示向量與其他方法獲得的特征,預(yù)測(cè)病人并發(fā)疾病風(fēng)險(xiǎn)的優(yōu)劣,實(shí)驗(yàn)結(jié)果如下表5所示。本實(shí)驗(yàn)預(yù)測(cè)的對(duì)象是10種常見(jiàn)的心衰患者的并發(fā)疾病,疾病如第一列所示。特別地,一些疾病由于其出現(xiàn)在實(shí)驗(yàn)數(shù)據(jù)集中的樣本較少,當(dāng)其低于30%時(shí),本文采用了Near-Miss進(jìn)行采樣。
表6中實(shí)驗(yàn)結(jié)果為各個(gè)方法所得特征在各個(gè)疾病風(fēng)險(xiǎn)預(yù)測(cè)上的AUC值。其中加粗代表最優(yōu)和次優(yōu)。由實(shí)驗(yàn)結(jié)果可知,本文的方法在4項(xiàng)疾病預(yù)測(cè)中排名第一,2項(xiàng)疾病預(yù)測(cè)中排名第二,明顯優(yōu)于其他特征學(xué)習(xí)方法。DeepPatient和GMM方法則僅次于本文方法,分別獲得3項(xiàng)第二、1項(xiàng)第一和1項(xiàng)第一、4項(xiàng)第二。當(dāng)然,本文的方法并不是在所有疾病預(yù)測(cè)中都占優(yōu),有些疾病在其他方法上預(yù)測(cè)更佳。然而,本文方法最大的優(yōu)點(diǎn)在于不需要手工進(jìn)行特征選擇。而且本文在實(shí)踐中發(fā)現(xiàn),其他方法經(jīng)常受限于窗口大小的選擇,不同的窗口大小會(huì)影響分類(lèi)效果,不及本文的方法簡(jiǎn)單方便。因此本方法仍然是疾病預(yù)測(cè)的最佳選擇。
表5 疾病采樣分析
表6 疾病預(yù)測(cè)實(shí)驗(yàn)結(jié)果
4.3.2 并發(fā)疾病預(yù)測(cè)Prec@k評(píng)估
本實(shí)驗(yàn)對(duì)比本文得到的病人表示向量與其他方法獲得的特征,預(yù)測(cè)病人的Prec@1、Prec@2、Prec@3上的優(yōu)劣,其中Prec@k表示每個(gè)病人預(yù)測(cè)出的前k個(gè)疾病(根據(jù)預(yù)測(cè)概率排序)中包含標(biāo)準(zhǔn)結(jié)果的平均個(gè)數(shù),其結(jié)果如表7所示。特別地,部分預(yù)測(cè)的標(biāo)準(zhǔn)結(jié)果少于3種上述疾病,甚至不存在任何一種疾病。亦即,預(yù)測(cè)的標(biāo)準(zhǔn)結(jié)果中就不存在前k個(gè)疾病,而分類(lèi)模型在預(yù)測(cè)的時(shí)候無(wú)法預(yù)測(cè)到疾病的空缺。因此Prec@k存在理論上界,即不可能達(dá)到100%。Prec@1、Prec@2、Prec@3的理論上界如表7中所示。由實(shí)驗(yàn)結(jié)果可知,本文的方法在Prec@1、Prec@2、Prec@3的對(duì)比中都發(fā)揮出了最優(yōu)的表現(xiàn),其結(jié)果分別為0.616 6、0.513 9和0.418 5。和上一節(jié)一樣,本文的方法仍沒(méi)有受限于分類(lèi)窗口的選擇,仍是疾病預(yù)測(cè)的最佳選擇。
表7 Prec@k疾病預(yù)測(cè)實(shí)驗(yàn)結(jié)果
本文使用RNN自編碼器將時(shí)間序列化的電子病歷數(shù)據(jù)編碼為定長(zhǎng)的通用的病人向量表示。實(shí)驗(yàn)表明,相較于其他特征學(xué)習(xí)方法,本文提出的向量化的病人表示在心衰患者死亡預(yù)測(cè)和并發(fā)癥預(yù)測(cè)任務(wù)中有著更好的表現(xiàn)。對(duì)于未來(lái)的工作,我們計(jì)劃將電子病歷數(shù)據(jù)中的更多信息囊括進(jìn)來(lái),包括病歷文本數(shù)據(jù)中的癥狀和疾病史等。同時(shí),也可以嘗試將本文方法遷移至其他疾病領(lǐng)域。