1. 程式人生 > 其它 >LEAP: Learning to Prescribe Effective and Safe Treatment Combinations for Multimorbidity

LEAP: Learning to Prescribe Effective and Safe Treatment Combinations for Multimorbidity

LEAP: Learning to Prescribe Effective and Safe Treatment Combinations for Multimorbidity

Authors: Yutao Zhang, Robert Chen, Jie Tang, Walter F. Stewart, Jimeng Sun

Keywords: Treatment Recommendation, Multimorbidity, Multi-Instance MultiLabel Learning

  • 關鍵詞:治療方案推薦,多發病,多例項多標籤學習

KDD’17 清華大學,佐治亞理工學院 (Georgia Institute of Technology),薩特健康 (Sutter Health)

論文連結:https://dl.acm.org/doi/pdf/10.1145/3097983.3098109

程式碼連結:https://github.com/neozhangthe1/AutoPrescribe


目錄

0. 總結

  • 使用RNN+強化學習,根據病人的疾病給出對應藥物。

  • RNN用於學習疾病和藥物之間的對應關係,強化學習部分用於避免藥物之間的互斥作用,以及使模型推薦結果更完整。

  • 使用了MIMIC3和另一個私有資料集。

  • 沒有考慮病人的歷史診療記錄,也沒有對劑量和服用頻次等資訊的考量。

1.研究目標

利用歷史診療資訊和額外的藥物互斥資訊,對輸入的診斷,給出對應的藥物推薦。

2.問題背景

針對患有多種疾病的患者,經常需要多種藥物聯合治療。而藥物之間可能有對抗性;治療A疾病的藥物可能對B疾病有加重效果。

3. 方法——LEAP模型

3.1 問題定義

治療方案推薦的目標是:基於患者歷史診斷記錄,從所有治療方案中選擇一種最佳的推薦給患者。

面臨的主要挑戰:

  • 學習藥物和疾病之間的對映關係
  • 學習藥物之間的相互作用關係

3.2 Basic LEAP模型

模型輸入是疾病名稱的集合,對映到響應的embedding \(x_i\),然後通過一個注意力機制,得到這些疾病向量對應的藥物向量\(\Psi_i\),再結合RNN模型中的當前狀態\(s_{t-1}\)和上一個藥物名稱\(y_{t-1}\),生成當前狀態向量\(s_t\),進而得到當前的輸出藥品\(y_t\)

模型訓練時,由於病人實際使用的藥物是一個集合,不是一個序列,因此需要指定一種排序方式,比如最流行的藥品放前面、最罕見的藥品放前面、按藥品名稱排序、隨機排序等方法。

預測時用K=2的beam search來得到輸出。

3.3 基於強化學習的fine-tune

Basic LEAP模型可以學到疾病和藥品之間的對應關係,但無法學到藥品之間的互斥關係;模型生成的藥品序列也不夠完整。

本文提出利用額外的藥品-藥品互斥、藥品-疾病互斥資訊來進一步指導模型的訓練。

簡單來說,就是如果模型輸出序列包含上述互斥對,就把模型Reward置零,否則,模型Reward就是輸出序列和groud truth之間的Jaccard相似度。

這樣的模型設計同時解決了上面提到的兩個問題:模型包含互斥資訊直接白給,如果輸出序列不夠完整也不能得到高的Reward。

4. 實驗

4.1 資料集

  • MIMIC-3:公開。包含6,700疾病,4,000藥物,涵蓋11年,50,000次醫療記錄
  • Sutter:私有。包含8,000疾病,7,500藥物,涵蓋18年,2,400,000醫療記錄。

sutter中的藥物使用GPI一級和三級編碼系統,MIMIC-3中的藥物使用NDC編碼系統,但被轉換為GPI一級和三級編碼。

訓練集、驗證集、測試集按7:1:2劃分,應該是按病人劃分,沒有考慮根據病人的歷史診療記錄做進一步推薦的場景。

4.2 baselines

  • Rule-based:使用一個藥物-疾病對映資料集來推薦藥物
  • K-Most frequent:選擇與該疾病相關的K個最相關的藥物。Sutter和MIMIC-3上分別設K為1和3
  • Softmax MLP:3層神經網路,閾值等超參做grid-search
  • Classifier Chains:分類器鏈,把前面的分類結果作為後面的分類器的輸入。輸入資訊使用multi-hot編碼,使用SVM作為分類器
  • LEAP:本文提出的基於RNN、強化學習和額外藥物關係資料庫的演算法。基於Theano實現(開源)、使用ADAM優化器。

4.3 實驗結果

實驗分為定量實驗和定性實驗,分別驗證推薦的準確度和完整性、安全性等。

4.3.1 定量實驗

使用Jaccard相似度來衡量推薦結果與ground truth的相似性:

\[\operatorname{Jaccard}=\frac{1}{K} \sum_{i}^{K} \frac{\left|Y_{i} \cap \hat{Y}_{i}\right|}{\left|Y_{i} \cup \hat{Y}_{i}\right|} \]
  • 實驗結果如下。當分類級別比較多(3)時,藥物推薦難度升高,效能相對較低。

論文argue了AUC等傳統評價指標對於此任務並不合適——我們不僅需要把相關藥物排到前面,還需要避免藥物之間以及藥物和其他疾病之間的互斥性。

4.3.2 label輸入順序

訓練的時候,ground truth要一個一個輸入進去,順序有怎樣的影響:

  • 隨機輸入效果最好,優先輸入流行藥物效果最差。

4.3.3 去除藥物相互作用的效果

4.3.4 定性分析

邀請專家,對100個隨機診斷對應的推薦結果進行評分。

  • 2分:解決所有疾病且沒有藥物相互作用
  • 1分:解決50%以上的疾病且沒有藥物相互作用
  • 0分:解決50%以下的疾病或者有藥物相互作用

結果:

4.3.5 case study

兩個病人的診斷,以及各種方法得到的推薦結果對比: