摘要
使用电子病历的许多医学健康预测任务重,深度学习模型展示出了非常杰出的表现。但是这些模型大都需要大量的训练数据,以超过其他大多数医疗系统的能力。一些外部资源,比如医学本体,经常被用作桥接数据量的约束,但是通常因为不一样的术语,导致这种方法还不能投入使用。为了解决数据不充足的挑战,我们利用了电子病例数据的特有的多层结构,尤其是医疗代码之间的编码关系。我们提出了个多层级医疗潜入Multilevel Medical Embedding ( MiME ),这个模型可以学习电子病历(EHR)数据的多层级嵌入,同时,在不需要额外标签的情况下,依赖EHR结构去做辅助医疗预测任务。我们分析了两种预测任务,心力衰竭预测和连续性疾病预测,在这两个任务中,MiME在各种评价设置中,都表现好于目前的基础方法。尤其是MiME在各种不同大小的数据集中预测心力衰竭的表现好于各种基线。尤其是在最小的数据集上,MiME表现最为出色(PR-AUC比最好的基线提升15%), 证明了他对EHR数据多层结构的有效建模的能力。
1 介绍
电子病历数据的急剧增加,激发了深度学模型的使用,并且在疾病诊断、疾病检测和风险预测方面表现非常杰出。然而训练出理想的深度学习模型需要大量的数据(即 每一个患者的大量病历记录,和每个病历记录的各种特征)。尤其是针对那些没有被广泛关注的服务(比如 重症监护病房ICU )和 条件不允许的情况下,大多数的健康系统都没有获得这么大量的数据来足以优化模型使之表现优异。
外在资源,尤其是医疗本体,已经被用做来解决数据不充足的问题。比如,医疗代码的潜在嵌入(比如 医疗代码)能够通过一种将图中自身和邻居节点嵌入的凸组合学习来实现。然而没有制定标准,或者是术语的特殊使用,或者是从一个健康系统的电子病历向其他的系统进行映射太过复杂,医疗本体没办法获取,也不能直接使用。例如,很多诊所仍然使用他们对药物和在试验中自己制定的术语, 这导致了没能和标准医疗本体的术语保持一致,比如Anatomical Therapeutic Chemical (ATC) Classification system和 Logical Observation Identifiers Names and Codes (LOINC) 这两项工作。
作为替代方案,我们探究了如何利用电子病历EHR数据的潜在多层级结构来提高学习效率。多层的EHR数据结构,从患者开始,然后是寻访,然后是寻访的诊断编码,这些都是跟治疗的顺序关联的(比如 药物治疗,流程)。电子病历的多层级结构,提供了有影响效果的多层级关系,尤其在诊断编码和治疗编码之间。例如,一个发烧诊断,会引起一系列的治疗,比如 acetaminophen (药物治疗),和IV fluid 打点滴(流程)。我们对在这种少量数据的情况下是否可以利用这种分层结构去获得一个健壮的模型进行了实验。据我们所知,还没有人在利用电子病历多层结构方面开展研究工作。然而,他们将电子病历数据处理成互相独立的编码,这就忽略了寻访过程中医疗编码之间的潜在多层级关系。
我们提出了一种多层级的医疗潜入模型MiME, 同时讲电子病历固有的层级结构转换成了多层级的嵌入,并用在辅助疾病预测任务重反映出这种潜在的层级结构不需要额外的标记。对医疗编码的潜在结构进行建模,使得我们更准确的捕获不同患者状态的不同模式。辅助诊断任务讲EHR数据的分层次知识注入到了嵌入过程中,致使主任务可以从相关的辅助任务中借用预测能力。我们分析了两种预测任务, heart failure prediction and sequential disease prediction 心力衰竭和时序性疾病(我也不知道是啥玩意), 其中,MIME在不同的评估设置中的表现都超过了当前的基线。尤其在不同数据量的数据集中对心力衰竭预测MiME的表现超过了所有的基线模型。尤其是在最小的数据集上,MiME表现异常突出(与最好的基线相比,PR-AUC获得了15%的提升),证明了这种模型有能力对电子病历数据的多层级结构有效建模。
2 方法
电子病历数据可以从个性患者的病例中表示成公共的层级结构,其中每个患者的病例都包含了一些列的探访。在典型的探访中,医生会给病人一个诊断,然后,根据诊断给出要药物治疗或者治疗流程。这个过程产生了一系列的治疗(药物治疗或者流程)编码和 诊断与多个治疗编码(图1)之间的关系。设计出的MiME明确的捕获了诊断编码和探访中治疗编码之间的关系。
图1 对患者一次寻访的象征表示如下,红色代表诊断编码,蓝色代表药物或 流程编码,一次探访包含了一系列的编码和这些编码之间的分层结构和各种关系。例如当 Acetaminophen and IV fluid 某药物和打点滴 都与发烧有关,他们就都作为发烧节点的子节点