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

两个病人的诊断,以及各种方法得到的推荐结果对比:

LEAP: Learning to Prescribe Effective and Safe Treatment Combinations for Multimorbidity的更多相关文章

  1. booklist for machine learning

    Recommended Books Here is a list of books which I have read and feel it is worth recommending to fri ...

  2. What is machine learning?

    What is machine learning? One area of technology that is helping improve the services that we use on ...

  3. 宽度学习(Broad Learning System)

    宽度学习(Broad Learning System) 2018-09-27 19:58:01 颹蕭蕭 阅读数 10498  收藏 文章标签: 宽度学习BLBLS机器学习陈俊龙 更多 分类专栏: 机器 ...

  4. 一些基本的C/C++数据类型

    size_t size_t. A basic unsigned integer C/C++ type. It is the type of the result returned by sizeof ...

  5. How To Easily Call WCF Services Properly z

    Please note: this article has been superceded by the documentation for the ChannelAdam WCF Library. ...

  6. 【原】Scala学习资料

    Scala是基于JVM的一种通用函数式也是面向对象编程语言,能和Java.C#等主流的编程语言无缝融合. 下面给大家推荐一些Scala的学习资料,序号靠前的重要性比较高. 1.Scala初学指南 (1 ...

  7. Policy Gradient Algorithms

    Policy Gradient Algorithms 2019-10-02 17:37:47 This blog is from: https://lilianweng.github.io/lil-l ...

  8. Learning English with EnglishClass101.com---10 Habits of highly Effective Learners

    you can find it on YouTube:Learning English with EnglishClass101.com 10 Habits of highly Effective L ...

  9. Paper慢慢读 - AB实验人群定向 Learning Triggers for Heterogeneous Treatment Effects

    这篇论文是在 Recursive Partitioning for Heterogeneous Casual Effects 的基础上加入了两个新元素: Trigger:对不同群体的treatment ...

  10. Multi-Agent Reinforcement Learning Based Frame Sampling for Effective Untrimmed Video Recognition

    Multi-Agent Reinforcement Learning Based Frame Sampling for Effective Untrimmed Video Recognition IC ...

随机推荐

  1. 【Uni-App】其他配置笔记

    manifest.json manifest.json 文件是应用的配置文件,用于指定应用的名称.图标.权限等.HBuilderX 创建的工程此文件在根目录,CLI 创建的工程此文件在 src 目录. ...

  2. 【MybatisPlus】再补充内容

    2021年7月21日 14点05分 看尚硅谷新讲的尚医通,这个MP的文档多了新东西: 依赖版本: springBoot版本  2.2.1.RELEASE <dependencies> &l ...

  3. 【Java,IDEA】配置文件快速生成

    比如这里的druid连接配置文件,和mybatis的mapper配置文件就是使用模版创建好的 在创建文件时会有选项选择:

  4. HDMI和DP双屏幕连接,对于BIOS来说哪个优先级高——DP连接优先级高于HDMI

    最近被博导忽悠了,说是实验室的国家项目结项了,有几十万的资金没有花掉,于是每个人都有了1W的报销金额,由于是结项所用因此只能报销耗材.我这人呢,平时是绝对不占小便宜的,但这次是个大便宜,于是就有些没把 ...

  5. maven实战教程-含视频讲解

    1.背景 2.什么是maven? 通俗的说就是,不用手动拷贝jar包,帮我们管理项目结构,只需要配置坐标,自动从中央仓库下载(其他介绍请百度...). 3.Maven的安装与配置 注意:Maven在使 ...

  6. 洛谷P5250 【深基17.例5】木材仓库

    [深基17.例5]木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的.作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存.有不超过 ...

  7. 牛客周赛 Round 6

    牛客周赛 Round 6 A-游游的数字圈_牛客周赛 Round 6 (nowcoder.com) 枚举即可 #include <bits/stdc++.h> #define int lo ...

  8. Maven经验分享(五)Maven拷贝资源

    上一章介绍使用ant拷贝资源,这里介绍maven拷贝资源,使用maven-resources-plugin插件. <plugin> <groupId>org.apache.ma ...

  9. 源码解析之为何要用ConcurrentHashMap

    为什么要用ConcurrentHashMap? ConcurrentHashMap是JUC包下的一个线程安全的HashMap类,我们都知道多线程的场景下要用ConcurrentHashMap来代替Ha ...

  10. PostgreSQL允许远程连接

    PostgreSQL安装后,貌似默认是只接受本地机器连接访问.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置.以下是我配置远程连接PostgreSQL数据库方式: 修改配 ...