前言
最近工作中遇到了Electronic Health Record (EHR) 的數(shù)據(jù)道伟,由于EHR是個很雜很亂的數(shù)據(jù)蜜徽,一般來說Deep learning會在這個地方用的比較多,除開deep learning的話可能就是些傳統(tǒng)的人工砚蓬、或者偽機器學習之類的掐禁。這里看到一篇比較好的綜述般的博客颅和,這里記錄一下其中的內(nèi)容。
電子病歷(EHR)
電子病歷是一個種類繁多的混亂的數(shù)據(jù)蹭越。其中包括了賬單數(shù)據(jù)教届、病人信息、藥物史买置、臨床診斷忿项、生化檢測、用藥轩触、理化數(shù)據(jù)脱柱、掃描數(shù)據(jù)、保險等等的數(shù)據(jù)惨好,當然不一定所有的EHR都會囊括這里面的所有種類随闺。
應(yīng)用前景
數(shù)據(jù)與應(yīng)用是脫離不開的兩個東西板壮,從Deep learning開始風靡的時候開始,已經(jīng)有很多很多的人對電子病歷這一塊下手撒璧,畢竟電子病歷一直是一個儲存為主笨使,利用為輔的東西,而又有著非常龐大的數(shù)據(jù)體量繁调。所以自然有很多已有的模型與文章結(jié)合EHR與deep learning靶草。
其中電子病歷的應(yīng)用分為很多,但其中圍繞的三個主題還是信息提仍U(Information Extraction),表征學習(Representing Learning)捻艳、臨床預(yù)測(Clincial Prediction)庆猫。
表征學習(Representing Learning)
表征學習其實在日常生活中或者說在電子病歷中早就有很多類似的東西月培,例如說ICD code、問卷拳锚、復(fù)雜的表格等等寻行,這些都是在以前拌蜘,整個醫(yī)療系統(tǒng)的設(shè)計者所意識到的,電子病歷中存在的一個很大的問題简卧,也就是信息的冗余举娩。
患者的數(shù)量是遠遠大于疾病的種類數(shù)目的,所以說很多的病癥的描述或者用藥等等在一個EHR系統(tǒng)中铜涉,往往都是冗余的芙代,冗余的信息在數(shù)據(jù)儲存、使用页滚、查詢上都是一些很大的問題铺呵。于是開始使用一些方案,從而達到保存信息邦马,減少冗余的目的宴卖。
因為我們表征學習后的數(shù)據(jù)是要輸入一個數(shù)學模型的症昏,所以這里,我們也把表征學習叫做向量化掘宪。
One-Hot encoding
One-Hot encoding是一種較為原始地攘烛、成熟的方法,主要是面對多分類的變量鼠次,它將這個變量轉(zhuǎn)化為一個二分類的變量芋齿。
但這種方法一方面增加了數(shù)據(jù)的維度觅捆,把單一的特征拆分成了多個特征。
另一方面僅僅保留了最簡單的是/否的信息掂摔。
所以使用的局限性還是很大赢赊。
基于分布的嵌入(Distributed Embeddings)
這個名字和這個翻譯我也是有很多槽是想吐的域携,但是也沒辦法。秀鞭。锋边。
基于分布的一些別的方法可能還有像是tf-idf、word count之類的剩辟,主要都是統(tǒng)計詞的出現(xiàn)頻率,也就是基于分布的一種向量化的方法了熊户。
但如果加上了Embedding...事情頓時就變得比較復(fù)雜了起來吭服。。蝌戒。
比較簡單模型叫做Skip-Gram沼琉,這個從別的角度來說也是個十分簡單容易理解的模型打瘪,只不過加上了神經(jīng)網(wǎng)絡(luò)的成分。
簡單理解部分:
如果只統(tǒng)計一個詞的頻率保留的信息太簡單桃移,那么不如將左右的詞合并一起計算葛碧?例如中國人,中國與人就經(jīng)常放一起蔗衡,完全可以用一個詞而不是字的方式去統(tǒng)計乳绕。
簡單理解如上,那么如何實現(xiàn)呢洋措。济蝉。。這里不多講菠发,篇幅有限王滤。但是其實Skip-Gram還有一個別的說法,叫n-Gram滓鸠,就是保留左右多少個字雁乡。其實從這個參數(shù)就可以看出這個方法的局限性。既然要設(shè)定n踱稍,意味這個方法很受n的局限曲饱,甚至,不同的數(shù)據(jù)的這個n也不一樣珠月。
而它的好處呢扩淀,就是可以保留詞的信息,而不是字桥温。但EHR的很多數(shù)據(jù)畢竟不是一個結(jié)構(gòu)化引矩、順序明確的句子梁丘,所以這個方法也很受局限侵浸。
也有別的比較特別的方法,例如Choi et al.氛谜,他不適用藥物或者結(jié)果層面的信息掏觉,選擇更高一層,以病人為單位值漫。將每個病人的信息用二元向量表示澳腹,然后再將binary vector放入一個兩層神經(jīng)網(wǎng)絡(luò),其中可以加入人體測量學的數(shù)據(jù)杨何,并加入左右兩個不同病人的數(shù)據(jù)酱塔。從而學習得到一個embedding后的向量。
想法上比較獨特危虱,但是本質(zhì)上還是屬于Skip-gram的一種羊娃。
除了以上的方法,表征學習的方法自然還包括了很多其它的方法埃跷,其中有以下幾種GloVe, CBOW or stacked autoencoders or attention model
Embedding 的用法方面大致有三種
- 完全跳過向量化的步驟蕊玷,用監(jiān)督學習的方式,使用隨機生成的向量訓練整個模型以生成向量 弥雹。(會造成過擬合)
- 部分數(shù)據(jù)用以訓練垃帅,剩下的數(shù)據(jù)生成向量。
- 全部數(shù)據(jù)用以生成向量剪勿。
信息提取(Information Extraction)
EHR中的數(shù)據(jù)類型正如前文所說贸诚,十分的混雜混亂,其中不僅有結(jié)構(gòu)化規(guī)整好的數(shù)據(jù)厕吉,也有不少醫(yī)生自身的筆記赦颇、救護車記錄、授權(quán)同意書細節(jié)赴涵、用藥步驟等等充滿了個人主觀色彩的語句媒怯,完全都可以算是NLP(Natural language processing)領(lǐng)域中常常遇到的問題了。
那么面對如此的數(shù)據(jù)時髓窜,第一時間應(yīng)該做的自然就是信息提取扇苞。如果不討論各種成本欺殿,使用人工的方法自然是最為簡單快捷的方案,但是如果面對海量的PB級的數(shù)據(jù)時鳖敷,人工的方法就變得耗時耗力又容易出錯脖苏、無法追溯了。所以開發(fā)機器學習處理的方法自然比較迫切定踱。
當然其中有不少的的非機器學習的方法也比較有效棍潘,例如使用自動分隔項目-結(jié)果數(shù)值的Valx,也有專門識別陰性/陽性結(jié)果的NegEx崖媚。
除開這些小工具以外亦歉,神經(jīng)網(wǎng)絡(luò)也有不少針對這個方向的方法。
實體識別(Entriry recognition)
在自然語言處理中畅哑,語音語義識別是一個研究的重點肴楷,而其中最為著名的自然是RNN(遞歸神經(jīng)網(wǎng)絡(luò)),由于EHR的這部分文檔的書寫者自然是人類荠呐,面向的主體一致赛蔫,數(shù)據(jù)一致,所以RNN的移植也就理所當然泥张。
Long short-term memory (LSTM)因為能夠處理較長文檔中呵恢,詞與詞之間的關(guān)聯(lián)關(guān)系,所以備受矚目媚创。但是缺點則是需要較大的數(shù)據(jù)量渗钉,才能使模型學習到足夠的特征以訓練數(shù)據(jù)。
后來Xing et al.使用語言建模(類似于遷移學習)的方式去識別EHR中的各種實體筝野。
1.使用雙向語言建模的方法預(yù)訓練該模型的權(quán)值晌姚。(相較于隨機生成的權(quán)值更為有效。)
- 然后再用預(yù)訓練好的模型與LSTM進行學習歇竟。
臨床預(yù)測(Clinical predictions)
處理好復(fù)雜數(shù)據(jù)的表征學習/向量化之后挥唠,當然要利用得到的干凈的、結(jié)構(gòu)化的數(shù)據(jù)進行訓練焕议、預(yù)測宝磨。通過以往的EHR,從而對現(xiàn)有的病人進行預(yù)測與干預(yù)盅安,從而治療好病人才是最終的目的唤锉。
比較典型的例子就是綜合疾病ID、病人體征别瞭、檢測數(shù)據(jù)等窿祥,使用并預(yù)測一個人得某種疾病的概率(屬于靜態(tài)的預(yù)測)。
當然更多的場景發(fā)生在蝙寨,一系列的input從而得到一個或者多個的輸出晒衩,較為簡單的例子則為developed Doctor AI 嗤瞎,使用一個來診病人的ICD碼以及持續(xù)時間來預(yù)測下一個ICD碼的概率和持續(xù)時間。由于疾病之間是存在一定的關(guān)聯(lián)性的听系,這在主觀上來說也沒什么問題贝奇。
除了疾病ID這些數(shù)據(jù)以外,還有別的種類的數(shù)據(jù)同樣的可以用來進行預(yù)測靠胜。
臨床記錄
臨床記錄應(yīng)該是最為接近醫(yī)生的主觀判斷的數(shù)據(jù)了掉瞳,里面可以詳細的看到醫(yī)生的診斷、病人的病情等等的數(shù)據(jù)浪漠,也是糅合了最多醫(yī)生主觀診斷的數(shù)據(jù)陕习。雖然因為記錄的主觀性太強,導致數(shù)據(jù)難以結(jié)構(gòu)化郑藏、規(guī)整衡查、向量化瘩欺。但仍有人朝著這個方向努力必盖, Liu et al.使用CNN和RNN的模型,預(yù)測在一定時間內(nèi)病人的發(fā)病概率俱饿。
- 使用醫(yī)學雜志上的摘要進行Skip-Gram模型學習歌粥,并用以向量化數(shù)據(jù)集。
- 利用CNN不同的一維卷積核對臨床數(shù)據(jù)進行卷積拍埠,池化后失驶,與體征數(shù)據(jù)、監(jiān)測數(shù)據(jù)連接枣购,并input進入LSTM模型
- LSTM則負責記錄嬉探、關(guān)聯(lián)1000個input以內(nèi)的長時、短時關(guān)聯(lián)等
- 最終獲得預(yù)測結(jié)果
貢獻的可視化
由于這個模型中LSTM的input是一個類似于時間序列的東西棉圈,并且學習后具有不同的權(quán)值涩堤。于是最終可以可視化成如下容易理解與解釋的結(jié)果。
時序數(shù)據(jù)(Time-series data)
臨床記錄是個信息量十分巨大的文本數(shù)據(jù),而除開文本數(shù)據(jù)這樣的數(shù)據(jù)分類標準,還有一個在醫(yī)院中或者說日常生活中十分常見的數(shù)據(jù)也就是時序數(shù)據(jù)鞋邑。在醫(yī)院中堂飞,這個類型的數(shù)據(jù)往往是由各種各樣的體征監(jiān)測設(shè)備產(chǎn)生。這也帶來了易于處理炼邀、結(jié)構(gòu)化的好處,而壞處往往則是太大了,太多了福荸。。肴掷。敬锐。
同樣地辞嗡,這里討論神經(jīng)網(wǎng)絡(luò)中使用時序數(shù)據(jù)的文章。
Gotlibovych et al.使用時序數(shù)據(jù)(光測量心房體積大數(shù)據(jù))來監(jiān)測心房顫動滞造。而且也很巧合的一樣是使用了卷積和遞歸聯(lián)用的模型去處理续室。
- 規(guī)整對其時序數(shù)據(jù)到合適的區(qū)間,并使用CNN進行處理谒养。從中提取信息并降低維度
- CNN的輸出作為LSTM的輸入挺狰,最后使用sigmoid激活函數(shù)得到心房顫動的預(yù)測概率。
醫(yī)學影像(Medical scans)
最后則是不同于時序买窟、文本數(shù)據(jù)的一類數(shù)據(jù)----圖像數(shù)據(jù)丰泊。醫(yī)學影像學從誕生開始就為醫(yī)生深入了解病人不同病灶的時空狀態(tài)提供了非常有利的工具,而在深度學習出來之前始绍,計算機技術(shù)對醫(yī)學影像學的作用也僅僅作為一個工具的作用瞳购,還遠遠達不到診斷或者輔助診斷的作用。
自從有了深度學習以后亏推,CNN這種從一開始就是針對圖像數(shù)據(jù)的模型在各個領(lǐng)域起著不同的作用学赛。對于醫(yī)學影像學而言,雖然還不能如醫(yī)生一樣以圖像數(shù)據(jù)進行診斷吞杭。但可以起著不同于醫(yī)生的作用盏浇,例如診斷分類、腫瘤邊界識別等等
在以上的臨床預(yù)測中芽狗,幾乎大部分的模型與方法都應(yīng)用在了這個方面绢掰,而且?guī)缀跛械哪P团c方法都在逐漸的強調(diào)可解釋度(interpretability )。
除開以上的這三個主要領(lǐng)域童擎,還有很多比較新的領(lǐng)域滴劲。
新興的領(lǐng)域
- 關(guān)系提取 Relationship extraction
從EHR中找到一些內(nèi)在的潛藏的關(guān)系,從而補充或者驗證一些醫(yī)學知識顾复。- 生成采樣 Generative sampling
EHR中也有一個特點班挖,也是醫(yī)學領(lǐng)域的數(shù)據(jù)的普遍特點。也就是數(shù)據(jù)量的bias捕透,罕見病畢竟在少數(shù)聪姿,而且不同的疾病的記錄數(shù)也不一樣。如何用隨機生成模型模擬數(shù)據(jù)乙嘀,是該領(lǐng)域的主要問題- 多任務(wù)學習 Multitask learning
該領(lǐng)域主要針對跨領(lǐng)域的有監(jiān)督模型末购,同一個模型會有主要的任務(wù)與輔助的任務(wù),其中輔助的任務(wù)可能與主要的任務(wù)為不同的領(lǐng)域虎谢,但是其中會有潛藏的關(guān)系可以相互的幫助提高預(yù)測能力- 推薦系統(tǒng) Recommendation systems
推薦系統(tǒng)對網(wǎng)上沖浪的人們就很常見了盟榴,例如百度、谷歌等搜索引擎婴噩,或者淘寶擎场、京東這些網(wǎng)上購物平臺羽德。而在醫(yī)學上呢,推薦系統(tǒng)更像是精準治療迅办。通過模型的學習和微調(diào)宅静,改善已有的、固有的干預(yù)手段站欺,從而達到對不同疾病階段姨夹、不同體征病人的更好的治療效果。- 反事實推理 Counterfactual reasoning
反事實推理這個就很顧名思義了矾策。磷账。。我就不說些啥了贾虽。逃糟。。
告辭蓬豁。绰咽。。原文還是很好的庆尘,雖然不深入剃诅,但是廣度還是在的巷送,如果是一個對神經(jīng)網(wǎng)絡(luò)有一定了解的人是一個很好的讀物驶忌。而一個對神經(jīng)網(wǎng)絡(luò)不是很了解的醫(yī)學生之類的呢,也是可以有很好的一個全局的概覽笑跛,可以了解與計算機領(lǐng)域能合作些什么付魔。
參考資料
原文附錄
EHR data sources
De-identified (to preserve privacy) EHR datasets:
- Medical Information Mart for Intensive Care III (MIMIC-III)
- Stanford Medicine Research Data Repository (STARR)
- Informatics for Integrating Biology & the Bedside (i2b2) - clinical notes only
Auxiliary datasets:
- International Statistical Classification of Diseases and Related Health Problems (ICD) - diagnosis codes
- Current Procedural Terminology (CPT) - medical procedure codes
- Logical Observation Identifiers Names and Codes (LOINC) - laboratory codes
- RxNorm - medication codes