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 ...
随机推荐
- 【MySQL】主从配置
一主一从(或二从)部署: 参考博客: https://www.cnblogs.com/lelehellow/p/9633315.html 正好借着3台机器,可以做一个 1主 2从的分配 192.168 ...
- 【DataBase】MySQL 05 基础查询
MySQL数据库 05 基础查询 视频参考自:P18 - P27 https://www.bilibili.com/video/BV1xW411u7ax 配套的SQL脚本:https://shimo. ...
- 人形机器人(humanoid)(双足机器人、四足机器人)—— 操控员 —— 机器人数据收集操作员
参考: https://www.youtube.com/watch?v=jbQ4M4SNb2M 机器人数据收集操控员,就和大模型训练数据收集员.数据类型标识员(打标签人员)一样,都是为了人工生成AI训 ...
- 【转载】 5:0!AI战胜人类教官,AlphaDogfight大赛落幕
原文:https://baijiahao.baidu.com/s?id=1675621109599102721&wfr=spider&for=pc ------------------ ...
- 国产CPU,国产操作系统UOS——零刻LZX迷你主机 , 显卡驱动安装以及屏幕配置
看网上新闻发现了一款mini电脑--零刻LZX迷你主机 国产兆芯四核八线程 教学家用办公全能王8+256G 该款电脑使用的是国产CPU兆芯,以及国产操作系统UOS,由于价格还不贵就入手玩玩. 商品地址 ...
- pytorch的显存释放机制torch.cuda.empty_cache()
参考: https://cloud.tencent.com/developer/article/1626387 据说在pytorch中使用torch.cuda.empty_cache()可以释放缓存空 ...
- 2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,nums 中所有下标均未标记。 从第1秒到第m秒,每秒可以选择以下四种操
2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始.初始时,nums 中所有下标均未标记. 从第1秒到第m秒,每秒可以选择以下四种操 ...
- SMU Summer 2023 Contest Round 7
SMU Summer 2023 Contest Round 7 A. Two Rival Students 答案不能大于 \(n-1\): 如果竞争对手之间的当前距离小于 \(n - 1\) ,我们总 ...
- 【牛客刷题】HJ10 字符个数统计
题目链接 简单的说这题就是字符串去重以后检查长度.如果用Java的话,可以遍历字符串,然后利用Set来进行去重,最后统计Set的size就可以了.但是如果是Go语言,则稍微麻烦点.基本思路就是用map ...
- thymeleaf学习问题整理
使用配置 <properties> <java.version>1.8</java.version> <thymeleaf.version>3.0.9. ...