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的相似性:
\]
- 实验结果如下。当分类级别比较多(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的更多相关文章
- booklist for machine learning
Recommended Books Here is a list of books which I have read and feel it is worth recommending to fri ...
- What is machine learning?
What is machine learning? One area of technology that is helping improve the services that we use on ...
- 宽度学习(Broad Learning System)
宽度学习(Broad Learning System) 2018-09-27 19:58:01 颹蕭蕭 阅读数 10498 收藏 文章标签: 宽度学习BLBLS机器学习陈俊龙 更多 分类专栏: 机器 ...
- 一些基本的C/C++数据类型
size_t size_t. A basic unsigned integer C/C++ type. It is the type of the result returned by sizeof ...
- How To Easily Call WCF Services Properly z
Please note: this article has been superceded by the documentation for the ChannelAdam WCF Library. ...
- 【原】Scala学习资料
Scala是基于JVM的一种通用函数式也是面向对象编程语言,能和Java.C#等主流的编程语言无缝融合. 下面给大家推荐一些Scala的学习资料,序号靠前的重要性比较高. 1.Scala初学指南 (1 ...
- Policy Gradient Algorithms
Policy Gradient Algorithms 2019-10-02 17:37:47 This blog is from: https://lilianweng.github.io/lil-l ...
- 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 ...
- Paper慢慢读 - AB实验人群定向 Learning Triggers for Heterogeneous Treatment Effects
这篇论文是在 Recursive Partitioning for Heterogeneous Casual Effects 的基础上加入了两个新元素: Trigger:对不同群体的treatment ...
- 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 ...
随机推荐
- 【Dubbo】构建SpringBoot整合Dubbo的Demo
参考乐字节的Dubbo教程 https://www.bilibili.com/video/BV19L4y1n7YE Zookeeper单机部署 (Windows) 因为项目需要,这里我自己学习就采用Z ...
- 说说中国高校理工科教育中的基础概念混乱问题——GPU是ASIC吗
在YouTube上看到这样一个视频: https://www.youtube.com/watch?v=7EXDp6c9n-Q&lc=Ugydwl8gppB5FWE8Y5V4AaABAg.9fc ...
- 从数据到洞察:DataOps加速AI模型开发的秘密实践大公开!
作者 | 代立冬,白鲸开源科技联合创始人&CTO 引言 在AI驱动的商业世界中,DataOps作为连接数据与洞察的桥梁,正迅速成为企业数据战略的核心. 在WOT全球技术创新大会2024·北京站 ...
- SMU Spring 2023 Contest Round 4(第 21 届上海大学程序设计联赛 春季赛)
A. Antiamuny wants to learn binary search 签到题. #include <map> #include <set> #include &l ...
- python分布式事务方案(一)tcc
python分布式事务方案(一)tcc 随着单体应用的拆分以及服务化的流行,现在分布式事务已经比较常见,分布式事务理论ACID.CAP.BASE等我就不说了,现在就直接说一下一种常见的解决方案-tcc ...
- C#读写图片文件到Access数据库中
今天学习了把图片文件读写到数据库中,我是用的Access数据库,SQL还没去测试,不过都差不多 数据库表的样式 练习嘛就随便弄了下,说明下图片转成的字符串要用备注类型才可以哦 如果用的Sql数据库的话 ...
- JAVA IO流-小白版
I/O流原理 I/O 是 Input / Output 的缩写,I / O 流技术是非常实用的技术,用于处理数据传输.如读/写文件,网络通讯等: Java中对于数据的输入/输出操作以"流(s ...
- 推荐一款开源一站式SQL审核查询平台!功能强大、安全可靠!
1.前言 在当今这个数据驱动的时代,数据库作为企业核心信息资产的载体,其重要性不言而喻.随着企业业务规模的不断扩大,数据库的数量和种类也日益增多,这对数据库的管理与运维工作提出了前所未有的挑战.在这样 ...
- WebShell流量特征检测_哥斯拉篇
80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测. 什么是一句话木马? 1.定义 顾名思义就是执行恶意指 ...
- Unity 中 Color 与 Color32 的区别
1. 存储方式 Color用四个浮点数(float)来表示RGBA,取值范围均是0到1 举例: var orange = new Color(1f, 0.5f, 0f, 1f); 而Color32使用 ...