国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種面向預測任務的基于時間序列的病人表示學習方法

2019-02-15 11:20張樂方之家王祺雷麗琪阮彤高炬
關鍵詞:編碼器病歷向量

張樂,方之家,王祺,雷麗琪,阮彤*,高炬

(1.華東理工大學 自然語言處理與數(shù)據(jù)挖掘實驗室,上海 200237;2.上海中醫(yī)藥大學附屬曙光醫(yī)院,上海 200021)

0 引言

得益于醫(yī)學信息化的深入開展,醫(yī)院已積累了大量的電子病歷(Eeltronic Health Record,簡稱EHR)數(shù)據(jù)。從簡單的輔助診療(如患者相似度[1],死亡率預測[2])到復雜的臨床決策支持系統(tǒng)(如IBM的Watson[3-4]),電子病歷數(shù)據(jù)開始成為生物醫(yī)學研究者和人工智能應用的重要資源。然而,直接使用電子病歷進行數(shù)據(jù)挖掘面臨著諸多挑戰(zhàn),如電子病歷數(shù)據(jù)具有時序性、高維性、稀疏性、噪音性、偏倚性等特點。就時序性而言,每個病人通常有多次醫(yī)院就診記錄,這些序列化的病歷信息對于臨床診療意義重大。因為之前發(fā)生的醫(yī)療事件可能會影響后來者,如由冠心病或高血壓引起的心力衰竭在病理學上是不同的。因此,掌握此一時序性的醫(yī)療數(shù)據(jù)對輔助診療具有正面效益。再以高維性為例,電子病歷數(shù)據(jù)中常常包含諸多醫(yī)療事件,如診斷、手術、用藥、化驗等,這使得電子病歷的維度非常高。但是,傳統(tǒng)機器學習所使用的特征提取方法難以應對這些挑戰(zhàn)。

隨著深度學習方法的普遍應用,研究者在一定程度上可以克服電子病歷數(shù)據(jù)的復雜性所導致的特征學習困難。Choi等人[5]和Lipton等人[6]將循環(huán)神經網絡(Recurrent Neural Network,簡稱RNN)應用于風險預測。Cheng等人[7]嘗試將卷積神經網絡(Convolutional Neural Network,簡稱CNN)應用于電子病歷中進行表型分型。但他們的模型針對的是一些特定的任務,而不是一般的用法。即,訓練完模型后只能針對一個特定任務進行分析,而不能為其他輔助診療任務所采用。當一個病人需要進行各類輔助診療時,這些模型就不能很好地適用。

另一方面,表示學習作為一個新興的課題開始應用到醫(yī)學領域。一些工作已經開始著手從電子病歷數(shù)據(jù)中挖掘出常見的醫(yī)學詞匯,并將這些醫(yī)學詞匯表示成向量形式。由此,臨床診療中復雜的醫(yī)療事件、醫(yī)療時間點等概念就可以轉化成數(shù)學向量進行計算,從而方便輔助診療的開展與深入。而且通過表示學習,相較于原始的高維數(shù)據(jù),不僅電子病歷的維度降低,而且數(shù)據(jù)變得更稠密。Vine等人[8]通過純文本的患者記錄和醫(yī)學期刊摘要,學習了醫(yī)療術語的向量表示。Choi等人[9]開始從電子病歷數(shù)據(jù)中學習訪問的表示。 Ho等人[10]則學習了醫(yī)學表征,其重點是使用張量分解或因式分解以完成特定的預測任務。當然,這些面向任務的表示學習方法將注意力集中在特定的目標任務上會更有效率,但是,當給予另一項預測任務時,便需要重新學習或重新調整以得到新的表示。因此,在實際應用中,通用的患者表示變得更為重要。Riccardo等人[11]提出了一種無監(jiān)督的方法使用自動編碼器來推導出一種通用的病人表示。然而,這項工作受到觀察窗口大小的限制。更重要的是,這些模型沒有考慮時間序列特征,而由于多次就診的存在,病歷數(shù)據(jù)往往包含著時序信息。

因此,從序列化的住院記錄中學習出一個通用的病人表示,并將之應用于多個輔助診療預測任務中變得很有必要。而如何將復雜多變的電子病歷數(shù)據(jù)整合成統(tǒng)一、通用的向量表示,便是本文任務的難點所在。本文試圖設計一種深度學習方法來訓練一個通用的住院病人表示,并利用這一病人表示進行輔助診療任務。具體來說,本文提出了一種RNN自編碼器,將每位患者的住院記錄編碼為一個低維稠密向量,并以心衰住院病人作為切入點,選擇死亡預測和并發(fā)癥預測作為對應的輔助診療任務。特別地,在實驗驗證方面,本文首先遵從醫(yī)生的建議和指導,從上海中醫(yī)藥大學附屬曙光醫(yī)院的臨床數(shù)據(jù)庫中構建出一個關于心力衰竭的二次病歷庫。然后,將患者的原始電子病歷數(shù)據(jù)轉換為張量形式,這一張量形式是一系列院內病歷記錄的表示向量組合。這一過程包含了結構化數(shù)據(jù)的抽取、清洗與融合。最后對RNN自編碼器模型進行訓練,并將自編碼器的中間向量提取出來作為心衰住院病人的表示向量。本質上,這一表示學習方法也是一個特征學習方法。

實驗結果表明,與現(xiàn)有的特征學習算法相比,本文的方法在死亡預測任務中得到了0.754 8的AUC值(比第2名高了0.15),并在10個并發(fā)癥預測任務中獲得了4個第一名和2個第二名,顯著優(yōu)于其他方法。

本文的主要貢獻如下:

(1)本文使用RNN自編碼器將序列化的電子病歷數(shù)據(jù)編碼為通用的患者表示,可以同時應對不同的預測任務;

(2)本文在表示學習時考慮了時序信息,以捕獲臨床事件的先后順序所帶來的不同影響;

(3)本文的方法基于無監(jiān)督學習,在進行表示學習時無須進行人工標注。

1 整體架構

1.1 問題描述

本文的任務目標是,給定醫(yī)院各科室、各系統(tǒng)的多次住院的異構電子病歷信息,預處理之后進行表示學習形成一個通用的心衰病人表示向量。需要注意的是,相較于以特定任務為目標從電子病歷數(shù)據(jù)中抽取特征并訓練模型,本文以通用任務為目標,并沒有指定后續(xù)的輔助診療任務為何,而以構建通用的病人表示為追求。

在實驗驗證時,本文的主要研究對象為心衰病人電子病歷,它具有以下特點:

(1) 心衰病人的電子病歷數(shù)據(jù)形式各異,結構復雜。其中包含有結構化的人口學信息、入院信息、檢查信息,以及非結構化的醫(yī)囑信息等;

(2) 心衰病人的再入院率較高,導致了序列化的電子病歷的產生;

(3) 心衰病人的信息中包含各類空值、臟數(shù)據(jù)。例如性別中出現(xiàn)人名等輸入錯誤,入院時間出現(xiàn)空值等遺漏錯誤等;

(4) 心衰病人的輔助診療需求較多,死亡預測、并發(fā)癥預測等任務具有較高的實用價值,因此需要一個盡可能通用的特征提取方式來應對各類預測任務。

1.2 整體流程

圖1展示了本文利用醫(yī)院提供的電子病歷數(shù)據(jù)為住院病人及其可能的應用生成向量表示的整體流程。首先,本文從醫(yī)院系統(tǒng)中提取并建立了臨床數(shù)據(jù)倉庫(Clinical Data Repository,簡稱CDR),然后進一步提取了一個專注于典型心血管疾病(即心力衰竭)的子庫。子庫中的電子病歷數(shù)據(jù)經過預處理、歸一化、知識庫匹配等一系列處理之后,以高維多熱(Multi-hot)的向量形式進行表示(即原始表示)。 需要注意的是,多次再入院的患者具有多個連續(xù)的多熱向量表示記錄。因此,本文使用張量或多路陣列來表示多次住院的病人病歷信息。最后采用一個RNN自編碼器來進行表示學習。具體地,本文利用RNN自編碼器,將由張量表示的病人信息轉化為一個低維稠密的向量,即本文所提的病人表示形式。獲得了病人表示之后,利用這個表示向量進行一系列輔助診療工作,即死亡預測和并發(fā)癥預測。

Fig.1 Overview of patient representation learning and application圖1 病人表示學習及應用的整體流程

2 實現(xiàn)方法

本文任務可以定義為:輸入一個病人的歷次住院記錄X=[x1,x2,…,xn],輸出一個可以用來實現(xiàn)預測任務的特征向量即病人表示c,其中xi表示該病人第i次住院的住院記錄向量。

RNN模型適合處理序列化的數(shù)據(jù)。給定一個基于時間t的序列X=[x1,x2,…xt],RNN模型能不斷迭代計算t時刻的狀態(tài)ht:

ht=RNN(ht-1,xt).

(1)

在諸如詞性標注[12-14]、機器翻譯[15-17]、文本摘要[18-20]等領域,RNN已經被證明了它在處理序列化數(shù)據(jù)上的優(yōu)越性。長短時記憶(Long Short-Term Memory,LSTM)網絡[21]相較于原生的RNN模型,增加了門控機制,能夠有效地克服梯度爆炸或者梯度消失問題[22-23]。序列到序列(即Seq2Seq)學習基于LSTM網絡,在機器翻譯[24]、文本解析[25]、圖像注釋[26]和會話建模[27]等方面也取得了實質性進展。本文的表示學習模型即是對序列到序列學習的一個擴展。

受序列化自編碼器[28]啟發(fā),本文采用LSTM與自編碼器相結合的方法,構建基于RNN 自編碼器的通用病人表示學習模型,如圖2所示。

Fig.2 RNN auto-encoder圖2 RNN自編碼器模型

該模型由兩個部分組成:編碼器與解碼器。編碼器與解碼器實質上都是LSTM網絡。編碼器將輸入的張量(即向量序列)X轉化為中間變量c,這里的c即為LSTM網絡中最后一個時刻的輸出ht:

c=LSTM(ht-1,xt) .

(2)

在解碼階段,解碼器根據(jù)上一時刻LSTM的輸出st-1、上一時刻解碼器的輸出yt-1和中間變量c得到當前時刻的LSTM輸出st:

st=LSTM(st-1,yt-1,c).

(3)

據(jù)此得到當前時刻解碼器的輸出yt

yt=softmax(st,yt-1,c).

(4)

本文方法實質上將自編碼器的編碼過程和解碼過程轉換為兩個不同的LSTM過程。一個病人的歷次住院信息通過LSTM迭代編碼成病人表示向量c,再將c通過另一個LSTM模型解碼成為歷次住院信息。當c解碼后的歷次住院信息與原來輸入的病人信息保持一致時,則可認為c完整囊括了這一病人的歷次住院信息。因此,RNN自編碼器的訓練目標在于盡可能保證X與Y(Y=[y1,y2,…,yn])最為接近,由此自編碼器的中間向量c就可認為是病人住院記錄張量X的降維結果,即RNN自編碼器的訓練目標在于最小化損失函數(shù)L(X,Y):

(5)

其中,xi表示X中第i個元素,xi(j)表示xi中第j個元素。同時在訓練中,本文使用大小為100的mini-batch并使用RMSprop梯度下降方法[29]更新RNN自編碼器的參數(shù)。

本文使用的模型中LSTM隱藏層的維度均采用經驗參數(shù)300,即生成的通用病人表示維度為300。

3 數(shù)據(jù)集

3.1 數(shù)據(jù)來源

本文的電子病歷數(shù)據(jù)來自上海中醫(yī)藥大學附屬曙光醫(yī)院。這是一家中西醫(yī)結合的大型三甲醫(yī)院,醫(yī)院使用電子病歷系統(tǒng)已有超過10 a的歷史,病人的病歷信息有充分的文件記錄和時間戳。病人的電子病歷記錄包括人口統(tǒng)計學信息、主訴、化驗、診斷、用藥、手術和醫(yī)囑等信息。該院的電子病歷使用疾病名稱的國際疾病分類第10版(ICD-10)代碼作為診斷編碼標識,使用ICD-9-CM作為手術編碼標識,另外還采用觀測指標標識符邏輯命名與編碼系統(tǒng)(LOINC)編碼進行檢驗結果標識。其他信息如藥物處方信息等不采用國際編碼標準。本文的實驗數(shù)據(jù)采用2005年1月至2016年4月期間發(fā)生的住院患者病歷。整個數(shù)據(jù)集包含大約35萬份住院患者的病歷記錄。

本文基于此構建了一個專注于心力衰竭病例的二次庫(即心衰子庫)。該過程在上海曙光醫(yī)院的醫(yī)學專家指導下進行。二次庫中所包含的患者需要同時滿足以下兩個條件:(1)心力衰竭相關的ICD-10代碼出現(xiàn)在患者的診斷或醫(yī)囑中。為此,醫(yī)學專家們定義了一個包含63個與心力衰竭有關的ICD-10代碼的清單。(2)前述診斷或醫(yī)囑中需要至少出現(xiàn)2次上述ICD-10代碼。

3.2 序列化住院記錄生成

本文對已構建的二次庫中的每位患者的每一次住院記錄分別生成一個向量表示,然后將每一住院記錄向量按照入院時間排序并組合,構成一個序列化的住院記錄張量。

對于數(shù)據(jù)集中的每位患者的每一次住院記錄,保留一般人口統(tǒng)計學信息(年齡和性別)和臨床事件,包括結構化的診斷、化驗、用藥以及非結構化的醫(yī)囑、診斷等。將這些臨床事件表示為可計算事件序列時,歸一化過程因類型而異。但除了人口統(tǒng)計學信息外,基本使用了多熱(Multi-hot)向量的表示形式。這些向量拼合在一起形成了高維的單次住院病歷原始向量表示。此外,臟數(shù)據(jù)的處理也因類別而異。

經過預處理得到的用于病人表示學習的序列化住院記錄數(shù)據(jù)統(tǒng)計如表1所示。其中,輔助字段包括唯一標識病人的EMPI字段、唯一標識住院記錄的HospitalID字段以及入院時間、死亡情況等用來幫助整理序列化電子病歷信息和生成標注的信息。

由于僅一次住院的病人不符合本文序列化數(shù)據(jù)的特點,并且在后續(xù)預測任務中無法構成有效的訓練數(shù)據(jù),因此本文舍棄了僅一次住院的病人。

排除少于兩次就診的患者,本文最終留下了10 898名住院患者記錄和4 682名患者,中位隨訪時間為0.96 a(四分位間距為0.31~2.19 a),其中568名患者(12.1%)在醫(yī)院死亡,而剩下的患者很難跟蹤。

表1 病人住院記錄中的維度分配

4 結果與分析

4.1 實驗準備

4.1.1 采樣策略

電子病歷數(shù)據(jù)通常只記錄在院死亡人數(shù),而大多數(shù)患者在不治之后選擇出院或者轉院,亦有心衰病人突然死亡而沒能及時入院的情況,所以實際上可觀測到的死亡病例數(shù)量非常有限。本次實驗所采用的10 898條住院記錄中,共有4 682個病人,其中死亡病人僅568例,生存病人(正例)與死亡病人(負例)的數(shù)據(jù)極其不平衡。數(shù)據(jù)不平衡對分類器的性能會造成很大的挑戰(zhàn),因為分類器會更傾向于訓練數(shù)據(jù)量大的類別。同樣的問題,也存在于一些低頻的疾病中。一些疾病在實驗數(shù)據(jù)中僅出現(xiàn)了較少的次數(shù),與常見疾病相比,分類器更傾向于這些常見疾病。本文在預測前先進行一次下采樣以平衡數(shù)據(jù)集中正負例的個數(shù)。

Fig.3 Pre-experiment:(a) Sampling Strategies Selection; (b) Classifiers Selection圖3 前置實驗 (a)采樣策略選擇;(b)分類器選擇

本文對比了8種傳統(tǒng)的下采樣方法,如圖3(a)所示,其中Raw表示未進行采樣的實驗數(shù)據(jù)。采樣方法的評價指標采用支持向量機(Support Vector Machine,簡稱SVM)分類器預測180 d死亡時的AUC值。其中,NearMiss的AUC值最高,為0.670 9,表現(xiàn)優(yōu)于第2名的ClusterCentroids下采樣方法(0.626 4)。在后續(xù)實驗中,若遇到數(shù)據(jù)不平衡時,若非具體說明,均使用了NearMiss下采樣。同時,Raw數(shù)據(jù)在預測中的表現(xiàn)最差,這也說明了采用下采樣算法的必要性。

4.1.2 分類器選擇

為了驗證本文表示學習方法的有效性,本文將訓練得到的病人向量表示作為特征,通過分類器完成兩項預測任務,分別是預測該病人在180 d后是否死亡,以及預測該病人的并發(fā)疾病。本實驗對比了6種分類方法以選擇一個最有效的分類器,對比的方法包括K近鄰(K-Nearest Neighbor,簡稱KNN)、支持向量機、樸素貝葉斯(Naive Bayesian,簡稱NB)、隨機森林(Random Forest,簡稱RF)、梯度上升決策樹(Gradient Boosting Decision Tree,簡稱GBDT)、邏輯回歸(Logistic Regression,簡稱LR)。實驗結果如圖3(b)所示。其中,SVM的分類效果最好,為0.6709,在后續(xù)實驗中,若非具體說明,均使用了SVM作為分類器。

4.2 180 d死亡預測

4.2.1 觀測窗口大小選擇

為了評估本文基于時間序列的病人表示學習方法的有效性,本文與文獻[11]所提出的單次就診自編碼器(簡稱DeepPatient)在180 d死亡預測任務上進行對比。同時參照文獻[11],我們還對比了另外3種傳統(tǒng)特征學習方法,分別為主成分分析(Principal Component Analysis,簡稱PCA)、高斯混合模型(Gaussian Mixed Model,簡稱GMM)和K均值(Kmeans)算法。傳統(tǒng)的方法需要確定觀測窗口大小,為了對比不同窗口大小的影響,進行了由不同窗口大小下使用傳統(tǒng)特征選取方法生成的特征的180 d死亡預測對比實驗。文獻[5,11]提到醫(yī)療任務中窗口大小通常設置在30 d、60 d至180 d。評估數(shù)據(jù)集得知,往過去回顧指定天數(shù)的時間區(qū)間內,存在其他記錄的記錄數(shù)如表2所示。

表2 不同窗口大小記錄數(shù)統(tǒng)計

如表2所示,每一行中的記錄數(shù)表示在該窗口大小下,往過去回顧指定天數(shù)的時間區(qū)間能獲取到住院記錄的記錄數(shù)。例如,第一行表示有4 989次住院記錄的前180 d內還住過院。結合每個窗口大小相應的記錄數(shù),為了漸進地表示數(shù)據(jù)的豐富性,將窗口設置為30 d、60 d、90 d以及180 d。

SVM分類模型使用不同的特征提取算法在不同窗口大小下生成的特征,其180 d死亡預測結果如表3所示。其中,Sum表示原始的觀測窗口內向量線性相加生成的特征,PCA、GMM、Kmeans、DeepPatient分別表示在窗口特征上作相應降維后的特征。隨著窗口大小的增大,數(shù)據(jù)量增加,數(shù)據(jù)所包含的信息也相應增加,分類模型的AUC也逐漸增加(只有DeepPatient方法在窗口大小為60 d時不符合規(guī)律),基本沒有出現(xiàn)預期中過于久遠數(shù)據(jù)對當前病人的病情預測進行干擾的情況。由此,后續(xù)實驗設置窗口大小固定為180 d。同時,該實驗可以看到雖然其他方法的AUC值不斷增高,但始終不及本文方法生成的特征(由于本文方法不存在窗口選擇的問題,故AUC值均為0.754 8),差距始終在0.1以上。

4.2.2 180 d死亡預測評估

本實驗將病人表示向量作為特征與其他方法獲得的特征進行病人死亡預測對比。實驗結果如表4所示。從實驗結果中我們可以看到,本文方法在住院病人死亡預測上獲得了0.754 8的AUC值,顯著高于其他算法(平均高了0.15左右)。

特別地,本實驗將分類模型的閾值取0.8做特別分析。在死亡預測中,無論病人還是醫(yī)生對于預測的結果的期望都是樂觀的,只有正例(死亡)的準確率較高,才能保證正常的醫(yī)療行為的進行,因此取經驗閾值0.8。在0.8閾值下的分類結果,本文方法的Acc值取得了最高的結果(0.759 8),F1值(0.443 6)僅比最優(yōu)的DeepPatient方法(0.447 2)低了0.003 6。

表3 不同窗口大小下的預測對比

表4 死亡預測實驗結果

4.3 并發(fā)癥風險預測

4.3.1 并發(fā)疾病預測AUC評估

本實驗對比本文得到的病人表示向量與其他方法獲得的特征,預測病人并發(fā)疾病風險的優(yōu)劣,實驗結果如下表5所示。本實驗預測的對象是10種常見的心衰患者的并發(fā)疾病,疾病如第一列所示。特別地,一些疾病由于其出現(xiàn)在實驗數(shù)據(jù)集中的樣本較少,當其低于30%時,本文采用了Near-Miss進行采樣。

表6中實驗結果為各個方法所得特征在各個疾病風險預測上的AUC值。其中加粗代表最優(yōu)和次優(yōu)。由實驗結果可知,本文的方法在4項疾病預測中排名第一,2項疾病預測中排名第二,明顯優(yōu)于其他特征學習方法。DeepPatient和GMM方法則僅次于本文方法,分別獲得3項第二、1項第一和1項第一、4項第二。當然,本文的方法并不是在所有疾病預測中都占優(yōu),有些疾病在其他方法上預測更佳。然而,本文方法最大的優(yōu)點在于不需要手工進行特征選擇。而且本文在實踐中發(fā)現(xiàn),其他方法經常受限于窗口大小的選擇,不同的窗口大小會影響分類效果,不及本文的方法簡單方便。因此本方法仍然是疾病預測的最佳選擇。

表5 疾病采樣分析

表6 疾病預測實驗結果

4.3.2 并發(fā)疾病預測Prec@k評估

本實驗對比本文得到的病人表示向量與其他方法獲得的特征,預測病人的Prec@1、Prec@2、Prec@3上的優(yōu)劣,其中Prec@k表示每個病人預測出的前k個疾病(根據(jù)預測概率排序)中包含標準結果的平均個數(shù),其結果如表7所示。特別地,部分預測的標準結果少于3種上述疾病,甚至不存在任何一種疾病。亦即,預測的標準結果中就不存在前k個疾病,而分類模型在預測的時候無法預測到疾病的空缺。因此Prec@k存在理論上界,即不可能達到100%。Prec@1、Prec@2、Prec@3的理論上界如表7中所示。由實驗結果可知,本文的方法在Prec@1、Prec@2、Prec@3的對比中都發(fā)揮出了最優(yōu)的表現(xiàn),其結果分別為0.616 6、0.513 9和0.418 5。和上一節(jié)一樣,本文的方法仍沒有受限于分類窗口的選擇,仍是疾病預測的最佳選擇。

表7 Prec@k疾病預測實驗結果

5 結論

本文使用RNN自編碼器將時間序列化的電子病歷數(shù)據(jù)編碼為定長的通用的病人向量表示。實驗表明,相較于其他特征學習方法,本文提出的向量化的病人表示在心衰患者死亡預測和并發(fā)癥預測任務中有著更好的表現(xiàn)。對于未來的工作,我們計劃將電子病歷數(shù)據(jù)中的更多信息囊括進來,包括病歷文本數(shù)據(jù)中的癥狀和疾病史等。同時,也可以嘗試將本文方法遷移至其他疾病領域。

猜你喜歡
編碼器病歷向量
融合CNN和Transformer編碼器的變聲語音鑒別與還原
向量的分解
強迫癥病歷簿
聚焦“向量與三角”創(chuàng)新題
“大數(shù)的認識”的診斷病歷
基于雙增量碼道的絕對式編碼器設計
為何要公開全部病歷?
向量垂直在解析幾何中的應用
向量五種“變身” 玩轉圓錐曲線
基于數(shù)字信號處理的脈沖編碼器