雷锋网消息,随着电子健康记录(EHR)系统以及新的医疗保健数据源的快速发展,医疗和保健数据大量出现。数据量和复杂性的增长,医学分析和决策变得耗时、容易出错,并且不理想。在各种临床决策中,制定理想的治疗方案是至关重要并且很有难度的一个。即使在确诊的前提下,医生仍需根据患者病程不断优化治疗方案。
其中,在患者入院之后进行出院用药预测就是一个重要的临床决策,它可以帮助医生规划药物种类,并决定在住院期间何时开始或停止药物治疗,因为有些药物需要时间补充,或者进行管理其他药物的设置。这对于医生来说可能是一个困难的决定,因为入院时可用的信息是有限的。
雷锋网几天前曾报道了《CMU 邢波教授团队最新成果:利用 AI 自动生成医学影像报告》。近日,该团队又出新成果,研究如何使用深度学习技术来协助医生根据病人就诊记录中的健康信息来预测其出院用药。他们设计了一种卷积神经网络来分析就诊记录,然后预测病人在出院时的用药。
雷锋网了解到,该模型可以从非结构化和有噪声的文本中提取语义表征,并能自动学习不同药物之间的药理相关性。团队在 2.5 万份病人就诊记录上对该模型进行了评估,并与 4 种基准模型进行了比较。在宏平均 F1 分数上,该方法相对于最好的基准模型有 20% 的提升。
在利用深度学习方法在入院就诊时间对出院药物进行预测的过程中,主要有两方面的困难。首先,可用的就诊信息大多数都是非结构化的病历记录(称为入院记录),比如既往病史、家族史、过敏等情况。与实验室检测数据和体征数据等结构化信息相比,这些自由形式的文本更难被机器处理和理解。此外,这些记录还包含了同义词、缩写和拼写错误。因此,从这些非结构化且有噪声的文本中有效提取语义模式是我们需要解决的第一个问题。
其次,在临床上,为了快速并有效的治愈疾病,常常会使用两种或两种以上的药物,许多联合用药的方案在临床治疗指南或专家共识中被广泛认可。例如,对已服用阿司匹林的中风病人,为了有效预防再次中风的发生,医生会推荐双联抗血小板治疗(dual anti-platelet therapy),即同时服用阿司匹林和氯吡格雷。大量研究表明多重药物的联合治疗对疾病的进展,预后及死亡事件的发生都有一定的影响。如何自动发现和利用药物之间的这种相关性,对于更准确的多药物预测是至关重要的,这也是非常有价值的。
研究设计
我们在之前收集到的重症监护病房(ICU)病人的电子健康记录进行了回顾性研究(retrospective study),根据就诊记录构建了一个预测出院用药的深度学习模型。我们对比了该模型和其他四个基准模型所预测的药物与医生给出的药物的区别,从而评估了模型的性能。
数据预处理
该研究使用了 MIMIC-III 数据集并且重点关注了其中出现的 8 种抗高血压药:美托洛尔(metoprolol)、呋塞米(furosemide)、赖诺普利(lisinopril)、氨氯地平(amlodipine)、阿替洛尔(atenolol)、氢氯噻嗪(hydrochlorothiazide)、地尔硫卓(diltiazem)、卡维地洛(carvedilol)。
选用这些药物是基于以下考虑:首先,这些药物通常用于治疗高血压——一种最普遍、最严重的慢性疾病,它们广泛地发生在MIMIC-III。其次,它们很难预测:它们的处方和用法有很大的差异,尤其是当它们一起使用的时候,使它们成为我们方法的一个很好的试验台。这些药物的频率是不平衡的(如图1所示):其中一些频率非常频繁,而另一些则是小频率,这增加了另一层难度。值得注意的是,只要有足够的临床资料,我们的方法可以很容易地扩展到其他种类的药物。
图1.8 种抗高血压药物在 MIMIC-III 数据集中的频率,Hctz 是氢氯噻嗪的简写
模型设计
我们开发了一个可基于就诊时可用的信息来预测出院用药的深度学习模型。该模型的输入为就诊记录,输出是病人的出院用药(一种或多种)。该模型具备两种功能:能有效地从有噪声的和非结构化的原始文本中提取高层次的语义并能适当地考虑连续词汇之间的序列结构;其次,该模型能学习不同药物之间的药理相关性。
为了同时实现这两个目标,我们开发了一种基于卷积神经网络(CNN)的模型。从高层面看,该模型:1)使用了多个堆叠的隐藏单元层来获取输入记录的隐含语义;2) 使用了不同窗口大小的卷积算子来获取 n-gram 中存在的局部语义和序列结构;3) 可发现常见的隐含因子,从而学习得到药物之间的药理相关性。
左栏显示 8 种就诊时可用的信息类型,右栏每行显示了 MIMIC-III 中对应的提取此类信息的标题字符串
图2.CNN 模型的网络架构
从宏平均和微平均两种 F1 分数上来看,CNN 有远高于其他所有基准模型的准确率。在两种平均 F1 分数之间,CNN 在宏平均上的提升更为显著。CNN 在 7 种药物上都得到了最好的 F1 分数。呋塞米是唯一的例外,其中RF的表现优于 CNN。CNN 相对于基准的提升主要体现在召回率(recall)上,而其准确率则与基准模型相当。在各类基准模型中,只使用就诊药物作为输入的 多层感知机(MLP)在宏平均和微平均 F1 上的表现最差;另外,非线性支撑向量机(SVM)和 RF 的表现优于线性的逻辑回归模型(LR)。
CNN 相较于其它基准较高的得分来源于它分层的隐藏层结构。这样的结构使得 CNN 能在多种粒度(单词层面、短语层面和文本层面)上提取相关的语义信息。
基线模型:我们将CNN模型与SVM、RF和LR三种分类模型进行比较。与CNN不同,这些模型缺乏自动学习文本的语义表示或者在药物之间捕获相关性的机制。这些模型的输入特征是从登记记录中提取的词频和逆文件频率(TF-IDF)矢量。(雷锋网注:TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降)。
正如在临床实践中所观察到的,出院药物与入院药物密切相关,有时甚至有个很大的重叠。有人可能会怀疑,仅仅根据入院药物预测出院药物是否足够,而不需要其他类型的入院信息,如过去的病史和主诉。为了回答这个问题,我们比较另一个基线,只使用入院药物作为输入,并使用多层感知器(MLP)来预测出院药物。
评估指标:为了评估模型的表现,我们测量了测试集上的分类(药物)的精确度,召回率和F1分数以及所有药物分类的这些分数的微平均和宏平均。由于药物类别的频率是高度偏离的(如图1所示),微平均值(这有利于频繁类别)可能低估了频繁类别中的错误,宏平均值可以更好地揭示模型在不频繁班级上的表现。
不同模型对降压药物进行5次评估,得出的准确度(P),召回率(R)和F值(F)的平均值见于表2。
表2:CNN和4个基本模型评估药物的准确度(P),召回率(R)和F值(F)。通过微平均和宏平均来比较5种模型。
在补充表6中可见这5次准确度,召回率和F值的标准偏差。
补充表6
表2最后两行显示7种药物的微平均(Micro Avg)和宏平均(Macro Avg)。单独观察F值可以看出,CNN比其他四种模型的微平均和宏平均要好得多。相比于微平均来说,CNN对宏平均的优化更为显着。8种药物其中的7种,CNN都获得了最高的F值。唯一的例外是呋塞米,RF的F值高于CNN。与其他4种基本模型相比较,CNN主要改善了药物的召回率,准确度的值与其他模型类似。4种基本模型中,多层感知机(MLP)方法F1值的微平均和宏平均最低,非线性支撑向量机(SVM)和RF是非线性模型,其综合水平比基于线性模型的逻辑回归模型(LR)好。
CNN胜过其他基本模型的一个主要原因是:它使用分层次的隐藏层从多个粒度捕获语义信息。我们使用各种可视化指标来验证这一点。首先,检查嵌入向量是否能够捕获单词语义。 把每个单词视为嵌入向量w,计算嵌入向量w与其他单词向量之间的欧几里得距离,然后检索距离嵌入向量w最近的单词。表3中显示了20个单词及其欧几里得距离最近的单词。 接下来,我们用可视化指标检测卷积层中的滤波器,并检查它们是否能够捕获短语的语义。 我们通过与窗口大小相匹配的不同滤波器挑出具有最大特征值的短语。表4显示窗口大小为3及窗口大小为4的过滤器产生的最大特征值短语。
表2所示,综合评价5个模型,CNN优于其他基本模型,原因主要有2个:一个原因是CNN能够通过多种粒度捕获语义信息,而其他基本模型缺乏这样的机制。CNN分别利用词嵌入层、卷积层和密集层来识别单词语义、短语语义和文本语义。
表3.20个嵌入向量w及其欧几里得距离最近的单词。
表3可见每个嵌入向量与其最邻近的单词具有很强的临床相关性。例如,“动脉”的邻近单词是“肌钙蛋白”,这两个词的临床相关性很高。
词语之间的相关性如下:对于冠心病患者,肌钙蛋白水平升高时,“主动脉”和“二尖瓣”将成为相关单词,因为主动脉瓣和二尖瓣是最易患病的瓣膜。“心绞痛”和“超声波心动图”这两个单词也具有相关性,因为心绞痛可以通过超声波心动图诊断。这表明嵌入向量能够很好地捕获单词的语义。
表4.过滤器的可视化。窗口大小为3及窗口大小为4的过滤器产生的最大特征值短语。
通过卷积层,每个过滤器都能够识别特定的语义。例如,过滤器1-4分别是静脉曲张、肾脏疾病、实验室检查和冠状动脉疾病。过滤器5-8分别是呼吸问题、心肌病、动脉移植和心力衰竭。有趣的是,不具有任何共同词语但语义相关的词存在于相同过滤器下。例如,在过滤器2中,“肾性高血压”,“黑色大便”,“血液透析过程”,这三个词没有共同的词语,但它们的语义密切相关。“黑便”是终末期肾病的常见症状,“血液透析”是肾病的常见治疗手段。过滤器8展示了使用不同窗口大小过滤器的必要性。虽然这几个词语都与“充血性心力衰竭”(CHF)有关,但它们在第一个单词的不同揭示了不同的语义。分别是CHF的转归,病史,病因,严重性和存在。如果我们只使用窗口大小为3的过滤器,那只能获得“充血性心力衰竭”这一个语义。但是使用窗口大小为4的过滤器可以捕获更多粒度的语义。
在密集层中可以获得整个文本的语义。如图3所示,通过向量接近的程度给出出院药物的相关注释。例如,在第一个小图中,很清晰地看到两组标记物,这两组标记物分别对应“美托洛尔”和“无美托洛尔”。其他图也可以看到类似现象,这表明通过向量接近的程度来预测患者出院所服药物是非常有用的。另外,通过这些图,我们可以得到一些临床知识。“美托洛尔”和“呋塞米”的小样本图中,红色标记物与黑色标记物有很大的重叠,这表明这两种药物可以配伍。“氨氯地平”和“阿替洛尔”的小样本图可以看出,红色标记物与黑色标记物的重叠程度很小,说明这两种药物很少配伍。
CNN模型胜过其他基本模型的另一个主要原因是它能够捕获药物之间的相关性。CNN模型得出的相关性排名与PMI的排名非常一致。除赖诺普利以外的所有药物,CNN模型根据相关性得到的最相关药物与根据PMI发现的药物相同。这表明CNN模型能够有效地捕捉药物之间的相关性。
我们可以看到CNN模型可以有效改善阿替洛尔、地尔硫卓等使用频率较低药物的F1值。美托洛尔和呋塞米等使用频率高的药物,CNN模型与其他模型的F1值差不多。因此,CNN模型能够有效提高使用频率较低药物的F1值的宏平均。但是对于使用药物频率高的药物,CNN模型对于其F1值的微平均没有显著改善。药物的预测取决于两个因素:
(i)药物与入院信息之间的相关性;
(ii)药物与其他药物之间的相关性。
对于使用频率较低药物药物来说,药物与其他药物之间的相关性便非常重要。 CNN拥有有效捕捉药物相关性的机制,因此更加适用于预测使用频率较低药物。
MLP在5种药物中的F1值最低,而且平均F1值也低。原因是MLP模型只使用药物作为输入,应该输入更多的信息,如过去病史、主诉等等。这表明出院药物的预测与入院药物的预测显著不同,必须有效地利用其他类型的信息做出准确的预测。对于所有模型来说,使用频率较高的药物一般F值比较高,因为较大的数据库有益于发挥机器学习的预测性能。
虽然CNN的性能比其他强大的基准模型更好,但我们讨论了它的一些局限性。
首先,CNN在频繁和不频繁的药物类别上的表现差距仍然很大,尽管与基线相比已经有所改善。例如,CNN在两种最常见的药物上的F1评分分别是0.79和0.70,这比那些不常见的药物(阿替洛尔和hctz)要好得多。在未来的工作中,我们计划想出办法来弥补这个缺口。
我们方法的另一个局限是,它纯粹是由数据驱动的,不包含人类的知识。在临床实践中,医生参考专业协会的指导方针来开药。这样的指导方针可以纳入CNN模型,以进一步提高预测的准确性,我们计划在未来进行探索。
再次,在我们目前的方法中,只有医疗信息被用来预测出院药物。非临床因素,如保险类型,药物费用,影响药物处方,也应该纳入预测模型。
最后,MIMIC-III中的注意事项非常嘈杂,我们目前的预处理步骤不能完全处理这些噪音。例如,用于识别不同类型的准入信息的标题字符串并不是详尽无遗的,这导致了大量的信息丢失。下一步,我们将手动处理这些“角落里”的案例,并将它们纳入训练集。
我们发现,只有使用入院时可用的信息才能准确预测出院药物。这样的预测可以为医生提供有价值的信息来制定治疗计划。在8种药物中,CNN模型达到0.63的(微观平均)精确度,召回率为0.70。
就宏观平均F1分数而言,CNN模型胜过20%以上的最佳基线模型。性能增益归功于CNN的两种能力,而这两种能力并不属于基线方法。首先,CNN能够学习文本的语义表示。我们对单个模型组件进行详细的可视化,包括单词嵌入、卷积过滤器和密集层。
这些可视化表明,CNN模型能够从原始文本中提取不同粒度的语义。其次,CNN能够通过共享潜在因素的机制来捕捉药物之间的相关性。这种能力是CNN比基线表现更好的另一个主要原因是被捕获的相关疗法缺乏训练样本,特别是在不常见的药物治疗中。
尽管我们解决方案的灵感是从一个特定的任务中得来的,但它也可能成为其他临床预测任务的通用方案。例如,通过将目标标签从药物转移到疾病,CNN就可以被用于辅助诊断。