SMR: Medical Knowledge Graph Embedding for Safe Medicine Recommendation
Abstract
大多数现有的主要基于电子病历(EMRs)的药物推荐系统在显著帮助医生做出更好的临床决策方面,使患者和护理人员均受益。尽管在大数据时代电子病历的增长速度极快,但电子病历中的内容局限性限制了现有的推荐系统反映相关医疗事实,例如药物相互作用。许多包含药物相关信息的医学知识图谱,如DrugBank,可能为推荐系统带来希望。然而,在系统中直接使用这些知识图谱会因图谱的不完整性而受到鲁棒性问题的困扰。为了应对这些挑战,我们基于图嵌入学习技术的最新进展,在本文中提出了一个名为安全药物推荐(SMR)的新框架。具体而言,SMR首先通过连接电子病历(MIMIC - III)和医学知识图谱(ICD - 9本体和DrugBank)构建一个高质量的异质图。然后,SMR将疾病、药物、患者及其相应关系联合嵌入到一个共享的低维空间中。最后,SMR在考虑患者的诊断和药物不良反应的同时,使用嵌入将药物推荐分解为一个链接预测过程。在真实数据集上进行了大量实验,以评估所提出框架的有效性。
关键词 :知识图谱、嵌入、推荐系统、药物安全
1. Introduction
在过去的几年里,药物推荐系统已经被开发出来,以协助医生做出准确的药物处方。一方面,许多研究人员[1, 2]采用基于规则的协议,这些协议由临床指南和经验丰富的医生定义。构建、整理和维护这些协议是耗时且劳动密集型的。基于规则的协议可能对特定诊断的一般药物推荐有效,但对复杂患者的个性化推荐帮助甚微。另一方面,监督学习算法及其变体,如多实例多标签(MIML)学习[3],已被提出用于为患者推荐药物。从大量电子病历中提取的输入特征和真实信息都经过训练,以获得一个预测模型,该模型输出新测试数据的多个标签作为药物推荐。事实上,临床实践中的治疗方法更新迅速。不幸的是,监督学习方法无法处理那些未包含在训练阶段的药物。不完整的训练数据集将不利于推荐系统的性能。
据报道[4, 5],患有两种或更多种急性或慢性疾病的患者,通常同时服用五种或更多不同的药物,并面临巨大的健康风险。研究[6, 7]表明,所有医院内滥用处方的3 - 5%归咎于对药物不良反应的无知,即使对于训练有素且经验丰富的临床医生来说,这也难以避免。在传统药物推荐系统的协助下,临床医生仍然需要谨慎排除那些因药物相互作用而可能产生潜在不良影响的推荐。大多数现有工作在很大程度上忽略了对药物中医疗事实的利用,例如药物相互作用,这在药物推荐系统中至关重要。一个可能的原因可能是电子病历中几乎没有医学专家知识。电子病历中的内容局限性限制了系统将准确的医疗事实与推荐的处方紧密关联,这使得对于复杂患者的最终推荐不太可靠。
随着知识图谱的不断涌现,许多世界领先的研究人员已经成功地从大量医学数据库中提取信息,构建了反映药物和疾病医学事实的巨大异质图。例如,DrugBank[8]是药物信息的丰富来源。它包含广泛的实体(药物、药物靶点、化学等)和关系(酶促途径、药物相互作用等)。ICD - 9本体[9]代表了人类疾病的知识库,可用于对患者的诊断进行分类。在基于电子病历的药物推荐系统中利用构建良好的医学知识图谱,可能使改进后的系统能够为特殊患者提供适当的处方,以及可能的副作用和严重药物相互作用(DDIs)的警报。

图1 :左侧部分是一个缺失关系的医学知识图谱。右侧部分是电子病历(EMRs)中的处方记录,每条边表示患者服用了一种药物。电子病历中的药物之间没有关系。
如图1所示,将电子病历(EMRs)和医学知识图谱相连接以生成一个大型且高质量的异质图,是在更广泛范围内进行药物推荐的一条有前途的途径,但绝非易事。具体而言,新设计的系统面临以下挑战:
- 计算效率 :基于传统的基于图的算法查询专门的医学实体和关系,在可移植性和可扩展性方面存在局限性。当异质图达到非常大的规模时,计算复杂度变得不可行。
- 数据不完整性 :医学知识图谱也与其他类型的大规模知识库一样遵循长尾分布。在这种分布中,实体和关系之间存在的另一个严重问题是数据不完整性。例如,由于药物相互作用(DDIs)通常在临床试验阶段未被识别,DrugBank中缺乏重要的DDIs,无法为用药提供全面的预防措施。最后但同样重要的是,药物推荐还面临
- 冷启动问题 :由于传统系统通常基于历史记录推荐药物,推荐变化的速度跟不上医学实践中新疗法和新治疗方法的频繁更新。历史电子病历中甚至是构建良好的知识图谱中关于新更新药物的不良反应的信息很少,这使得基于证据的推荐模型难以支持新药物作为更新的推荐。
考虑到上述所有挑战,我们受链接预测思想的启发,提出了一种基于图嵌入技术的新型药物推荐框架。在本文中,我们将我们的框架命名为安全药物推荐(SMR)。推荐过程主要包括:
- 从电子病历和医学知识图谱构建一个大型异质图,其中节点是实体(药物、疾病、患者),边(或链接)表示实体之间的各种关系,例如药物相互作用。
- 基于图的嵌入模型,将生成的异质图的不同部分(患者 - 药物二分图、患者 - 疾病二分图、药物知识图谱、疾病知识图谱)嵌入到一个共享的低维空间中。之后,提出了一种联合学习算法来同时优化集成图。
- 基于学习到的嵌入,将一个新患者(由其诊断向量表示)建模为疾病 - 患者图中的一个实体。为患者推荐药物被转化为预测从患者到药物的链接。
这项工作的主要贡献总结如下:
- 我们开发了基于图的嵌入模型,以在共享的低维空间中学习患者、疾病和药物的有效表示。药物的表示使所提出的框架甚至能够有效地为患者推荐新出现的药物,这与大多数现有工作有所不同。
- 为了为新患者推荐安全的药物,我们提出了一种基于学习到的图嵌入来建模患者的新方法,并通过最小化潜在的药物不良反应来进行安全推荐。
- 我们在大型真实世界数据集(MIMIC - III、DrugBank和ICD - 9本体)上进行了大量实验,以评估我们框架的有效性。实验结果表明,所提出的框架优于所有比较方法。
- 据我们所知,我们首先提出了一个进行安全药物推荐(SMR)的框架,并将其表述为一个链接预测问题。该实现生成了一个高质量的异质图,在其中可以更广泛地揭示患者、疾病和药物之间的关系。
本文的其余部分组织如下:第2节详细介绍了我们提出的框架SMR。第3节报告实验结果,第4节回顾相关工作。第5节给出结论和未来工作。
2. The Proposed Framework
在本节中,我们将首先描述相关符号并阐述药物推荐问题,然后介绍图嵌入模型以及如何使用学习到的嵌入为患者推荐安全药物。
2.1. Problem Formulation

在我们专注于药物推荐问题之前,我们首先简要介绍本文其余部分所使用的重要符号。表1也对它们进行了总结。
医学知识图谱描述了从集成来源收集的医学实体以及这些实体之间的关系。例如,三元组(糖皮质激素,不良相互作用,阿司匹林)表示在DrugBank中糖皮质激素与阿司匹林之间存在不良相互作用关系。我们将医学知识图谱定义如下。
定义1(医学知识图谱) :医学知识图谱G=(N,R)G = (\mathcal{N}, \mathcal{R})是一组形如(h,r,t)(h, r, t)的三元组,其中N\mathcal{N}是实体集,R\mathcal{R}是关系集,h,t∈Nh, t \in \mathcal{N}且r∈Rr \in \mathcal{R}。
为了捕捉电子病历中患者、疾病和药物的相互关系,我们如下定义患者 - 疾病、患者 - 药物二分图。
定义2(患者 - 药物二分图) :患者 - 药物二分图表示为Gpm=(P∪M,Epm)G_{pm} = (\mathcal{P} \cup \mathcal{M}, \mathcal{E}{pm}),其中P\mathcal{P}是患者集,M\mathcal{M}是药物集。Epm\mathcal{E}{pm}是边集。如果患者pip_i服用药物mjm_j,则它们之间存在边eije_{ij},否则不存在。患者pip_i与药物mjm_j之间边的权重wijw_{ij}定义为患者pip_i服用药物mjm_j的总次数。
定义3(患者 - 疾病二分图) :患者 - 疾病二分图表示为Gpd=(P∪D,Epd)G_{pd} = (\mathcal{P} \cup \mathcal{D}, \mathcal{E}{pd}),其中P\mathcal{P}是患者集,D\mathcal{D}是疾病集。Epd\mathcal{E}{pd}是边集。如果患者pip_i被诊断患有疾病djd_j,则它们之间存在边eije_{ij},否则不存在。当边eije_{ij}存在时,权重wijw_{ij}设置为1。
图2通过从MIMIC - III构建患者 - 疾病、患者 - 药物二分图,并将它们与医学知识图谱、ICD - 9本体和DrugBank相链接,展示了一个异质图。最后,我们正式将安全药物推荐问题定义如下。
问题1(安全药物推荐) :给定患者pp及其诊断数据集Dp\mathcal{D}_p,为每个d∈Dpd \in \mathcal{D}_p推荐安全药物就是预测从pp到药物数据集M\mathcal{M}的边。输出是具有最小药物相互作用的药物集Mp\mathcal{M}_p。
2.2. Model Description and Optimization
在本节中,我们提出嵌入学习方法,将异质图编码到潜在空间及其优化方法。
医学知识图谱嵌入 医学知识图谱G=(N,R)G = (\mathcal{N}, \mathcal{R})是一个多关系图,其中实体N\mathcal{N}和关系R\mathcal{R}可以是不同类型。对于三元组(h,r,t)∈G(h, r, t) \in G,我们使用粗体字母h\mathbf{h}、r\mathbf{r}、t\mathbf{t}来表示hh、rr、tt的相应嵌入表示。已经提出了大量的图嵌入方法来将多关系图编码到连续向量空间中。基于平移的模型[10, 11, 12]将每个(h,r,t)(h, r, t)中的关系rr视为低维空间中从hh到tt的平移,即h+r−t\mathbf{h} + \mathbf{r} - \mathbf{t},并且比传统模型表现得更加高效。TransR[12]是一种先进的基于平移的嵌入方法。它通过特定关系的矩阵将实体和关系表示在不同的向量空间中,以获得更好的图表示。
考虑到上述原因,我们设置实体嵌入h\mathbf{h}、t∈Rk\mathbf{t} \in \mathbb{R}^k和关系嵌入r∈Rd\mathbf{r} \in \mathbb{R}^d。并且我们设置一个投影矩阵Hr∈Rk×d\mathbf{H}_r \in \mathbb{R}^{k \times d},它将实体从实体空间投影到关系空间。我们定义实体之间的平移并得到能量函数z(h,r,t)z(h, r, t)为:
z(h,r,t)=b−∥hHr+r−tHr∥L1/L2(1) z(\mathbf{h}, \mathbf{r}, \mathbf{t}) = b - |\mathbf{h}\mathbf{H}_r + \mathbf{r} - \mathbf{t}\mathbf{H}r|{L1/L2} \quad (1)
其中bb是一个偏置常数。
然后,三元组(h,r,t)(h, r, t)的条件概率定义如下:
P(h∣r,t)=exp{z(h,r,t)}∑h∈Nexp{z(h,r,t)}(2) P(h|r, t) = \frac{exp{z(\mathbf{h}, \mathbf{r}, \mathbf{t})}}{\sum_{\hat{h} \in \mathcal{N}} exp{z(\hat{\mathbf{h}}, \mathbf{r}, \mathbf{t})}} \quad (2)
并且P(t∣h,r)P(t|h, r)、P(r∣h,t)P(r|h, t)可以以类似的方式定义。我们将观察到三元组(h,r,t)(h, r, t)的似然定义为:
L(h,r,t)=logP(h∣r,t)+logP(t∣h,r)+logP(r∣h,t)(3) \mathcal{L}(h, r, t) = \log P(h|r, t) + \log P(t|h, r) + \log P(r|h, t) \quad (3)
我们通过最大化GG中现有三元组的条件似然来定义一个目标函数:
LG=∑(h,r,t)∈GL(h,r,t)(4) \mathcal{L}G = \sum{(h, r, t) \in G} \mathcal{L}(h, r, t) \quad (4)
基于式(4),药物知识图谱Gm=(Nm,Rm)G_m = (\mathcal{N}_m, \mathcal{R}_m)和疾病知识图谱Gd=(Nd,Rd)G_d = (\mathcal{N}_d, \mathcal{R}_d)的目标函数可以分别定义为:
LGm=∑(hm,rm,tm)∈GmL(hm,rm,tm)(5) \mathcal{L}{G_m} = \sum{(h_m, r_m, t_m) \in G_m} \mathcal{L}(h_m, r_m, t_m) \quad (5)
LGd=∑(hd,rd,td)∈GdL(hd,rd,td)(6) \mathcal{L}{G_d} = \sum{(h_d, r_d, t_d) \in G_d} \mathcal{L}(h_d, r_d, t_d) \quad (6)
二分图嵌入 与医学知识图谱不同,患者 - 疾病、患者 - 药物是二分图。二分图只有一种单一类型的关系。对于二分图,LINE[13]模型在将实体编码到连续向量空间同时保留图的相关信息方面取得了最先进的性能。因此,我们遵循LINE并设置患者、药物和疾病的嵌入p,m,d∈Rk\mathbf{p}, \mathbf{m}, \mathbf{d} \in \mathbb{R}^k。我们如下展示编码患者 - 药物二分图的过程。
给定患者 - 药物二分图Gpm=(P∪M,Epm)G_{pm} = (\mathcal{P} \cup \mathcal{M}, \mathcal{E}_{pm})
我们首先定义集合P\mathcal{P}中的患者pip_i服用集合M\mathcal{M}中的药物mjm_j的条件概率如下:
P(mj∣pi)=exp{z(pi,mj)}∑mj∈Piexp{z(pi,mj)}(7) P(m_j|p_i) = \frac{exp{z(\mathbf{p}_i, \mathbf{m}j)}}{\sum{\hat{m}_j \in \mathcal{P}_i} exp{z(\mathbf{p}_i, \hat{\mathbf{m}}_j)}} \quad (7)
其中z(pi,mj)=mjT⋅piz(\mathbf{p}_i, \mathbf{m}_j) = \mathbf{m}j^T \cdot \mathbf{p}i,pi\mathbf{p}i是患者pip_i在P\mathcal{P}中的嵌入向量,mj\mathbf{m}j是药物mjm_j在M\mathcal{M}中的嵌入向量。式(7)在M\mathcal{M}中的所有药物上定义了一个条件分布P(⋅∣pi)P(\cdot|p_i)。经验分布P(⋅∣pi)\hat{P}(\cdot|p_i)定义为P(mj∣pi)=wijsumi\hat{P}(m_j|p_i) = \frac{w{ij}}{sum_i},其中wijw{ij}是边eije{ij}的权重,sumi=∑jwijsum_i = \sum_j w{ij}是患者pip_i服用药物的总次数。我们最大化以下目标函数:
LGpm=−∑pi∈Pλid(P^(⋅∣pi),P(⋅∣pi))(8) \mathcal{L}{G{pm}} = - \sum_{p_i \in \mathcal{P}} \lambda_i d(\hat{P}(\cdot|p_i), P(\cdot|p_i)) \quad (8)
其中d(⋅,⋅)d(\cdot, \cdot)是两个分布之间的距离。在本文中,我们使用KL散度来计算d(⋅,⋅)d(\cdot, \cdot)。由于sumisum_i因患者而异,我们在目标函数中使用λi=sumi\lambda_i = sum_i来表示图中患者pip_i的个性化。省略一些常数后,我们有:
LGpm=∑eij∈Epmwijlog(P(mj∣pi))(9) \mathcal{L}{G{pm}} = \sum_{e_{ij} \in \mathcal{E}{pm}} w{ij} \log(P(m_j|p_i)) \quad (9)
对于患者 - 疾病二分图,我们可以用类似的方式得到目标函数LGpd\mathcal{L}{G{pd}}:
LGpd=∑eij∈Epdwijlog(P(dj∣pi))(10) \mathcal{L}{G{pd}} = \sum_{e_{ij} \in \mathcal{E}{pd}} w{ij} \log(P(d_j|p_i)) \quad (10)
优化与训练 为了同时学习医学知识图谱和二分图的嵌入,一种直观的方法是通过最大化以下四个对数似然目标函数的和来共同嵌入这四个图(患者 - 药物二分图、患者 - 疾病二分图、药物知识图谱、疾病知识图谱):
L(X)=LGm+LGd+LGpm+LGpd+γC(X)(11) \mathcal{L}(X) = \mathcal{L}{G_m} + \mathcal{L}{G_d} + \mathcal{L}{G{pm}} + \mathcal{L}{G{pd}} + \gamma C(X) \quad (11)
其中XX表示我们构建的异质图中实体和关系的嵌入Rk\mathbb{R}_k、Rd\mathbb{R}_d,γ\gamma是加权正则化因子C(X)C(X)的超参数,C(X)C(X)定义如下:
C(X)=∑nm∈Nm[∣∣nm∣∣−1]++∑nd∈Nd[∣∣nd∣∣−1]++∑rm∈Rm[∣∣rm∣∣−1]++∑rd∈Rd[∣∣rd∣∣−1]++∑p∈P[∣∣p∣∣−1]++∑d∈D[∣∣d∣∣−1]++∑m∈M[∣∣m∣∣−1]+(12) \quad (12)
其中[x]+=max(0,x)[x]_+ = max(0, x)表示xx的正部分。正则化因子将在学习过程中对嵌入进行归一化。并且我们采用异步随机梯度算法(ASGD)[14]来最大化转换后的目标函数。
优化式(11)中的目标函数式(5)、式(6)、式(9)和式(10)在计算上是昂贵的,因为计算它们需要对整个实体和关系集进行求和。为了解决这个问题,我们使用负采样方法[15]来转换目标函数。
对于式(5)和式(6),我们应该转换式(3)中的logP(t∣h,r)\log P(t|h, r)、logP(r∣h,t)\log P(r|h, t)、logP(h∣r,t)\log P(h|r, t)。以P(t∣h,r)P(t|h, r)为例,我们最大化以下目标函数而不是它:
logσ(z(h,r,t))+∑n=1C1Ehn∼zneg({(h,r,t)})σ(z(h~n,r,t)) \quad (13)
其中C1C_1是负样本的数量,σ(x)=1/(1+exp(−x))\sigma(x) = 1 / (1 + exp(-x))是sigmoid函数,{(h~,r,t)}{(\widetilde{h}, r, t)}是无效三元组集,znegz_{neg}是从{(h~,r,t)}{(\widetilde{h}, r, t)}中随机采样实例的函数。当选择一个正三元组(h,r,t)∈G(h, r, t) \in G时,为了最大化式(13),通过从均匀分布N\mathcal{N}中采样实体并替换(h,r,t)(h, r, t)的头部来构建C1C_1个负三元组。logP(r∣h,t)\log P(r|h, t)、logP(t∣h,r)\log P(t|h, r)以相同的方式最大化,但对于logP(r∣h,t)\log P(r|h, t),负关系是从R\mathcal{R}上的均匀分布中采样以破坏正关系r∈(h,r,t)r \in (h, r, t)。我们从训练集中迭代地选择随机小批量来学习嵌入,直到收敛。
对于式(9),我们也使用负采样方法将其转换为以下目标函数:
logσ(z(pi,mj))+∑n=1C2Emn∼zneg(m)logσ(z(pi,m~n)) \quad (14)
其中σ(x)=1/(1+exp(−x))\sigma(x) = 1 / (1 + exp(-x))是sigmoid函数,C2C_2是负边的数量。根据[15]的经验设置,zneg(m)∝summ3/4z_{neg}(\widetilde{m}) \propto sum_{\widetilde{m}}^{3/4},summsum_{\widetilde{m}}是药物m\widetilde{m}被患者服用的总次数。我们可以简化式(10)并以相同的方式最大化它。
最后,我们可以有效地学习异质图中不同类型部分的嵌入。
2.3. Safe Medicine Recommendation Process
在本节中,我们将介绍如何基于给定患者的学习嵌入和诊断来推荐安全药物。对于现有患者pp,我们使用学习到的嵌入p\mathbf{p}来预测新的药物推荐。对于新给定的患者,我们首先使用疾病嵌入来表示pp,然后为pp推荐安全药物,如图2所示。

图2 :我们框架的概述。患者 - 疾病和患者 - 药物图均为二分图,而疾病和药物图是一般图。通过基于图的方法,患者、疾病和药物被编码到低维度量中。多样的因素可以通过患者进行连接。
新患者模型
我们旨在通过患者的诊断嵌入来表示新患者pp。我们应该考虑患者被诊断出疾病的时间序列,特别是对于患有多种疾病的患者。假设医院中或正在服药的患者pp根据其时间戳按升序与nn种已排序的疾病相关联。那么,患者嵌入p\mathbf{p}可以如下编码:
p=∑t=1nexp−t⋅dt(15) \mathbf{p} = \sum_{t = 1}^{n} exp^{-t} \cdot \mathbf{d}_t \quad (15)
其中dt\mathbf{d}_t是疾病dtd_t的第tt个嵌入。
药物推荐
给定一个带有查询疾病dd的查询患者pp,即q=(p,d)q = (p, d),我们首先将疾病dd和患者pp投影到它们的潜在空间,然后选择前kk种安全药物1^1。更准确地说,给定查询q=(p,d)q = (p, d),对于每种可能对pp有用的药物mm,我们按照式(16)计算其排名得分,然后选择排名得分前kk高的药物mm作为推荐药物。
S(q,mn)=pT⋅mn−∑o=1n−1∥mn+rinteration−mo∥L1/L2(16) S(q, m_n) = \mathbf{p}^T \cdot \mathbf{m}n - \sum{o = 1}^{n - 1} |\mathbf{m}n + \mathbf{r}{interation} - \mathbf{m}o|{L1/L2} \quad (16)
其中p\mathbf{p}是患者pp的表示,mn\mathbf{m}n是基于已选药物m1,…,mn−1m_1, \ldots, m{n - 1}从药物集M\mathcal{M}中考虑的第nn种药物。
3. Experiments and Evaluation
我们试图在本节中证明我们的推荐方法(在本文中称为SMR)的有效性。特别是,我们期望在3.2节中回答“我们的方法与竞争技术相比表现如何?”。结果表明,我们的推荐方法显著优于三个基线方法。我们评估的详细实验设置在3.1节中描述。
3.1. Experimental Settings
数据集
我们的实验是在真实的电子病历(EMRs)数据集MIMIC - III[16]以及两个医学知识图谱ICD - 9本体[9]和DrugBank[8]上进行的。这些真实数据集以不同形式公开可用。
- MIMIC - III(重症监护医学信息集市III) :收集了2001年至2012年间贝斯以色列女执事医疗中心重症监护病房(ICUs)的床边监测趋势、电子医疗记录、实验室检测结果和波形。它包含46,520名不同的患者、650,987个诊断以及与6,985种不同疾病和4,525种药物相关的1,517,702条处方记录。
- ICD - 9本体²(国际疾病分类第9版) :包含13,000个国际标准诊断代码及其之间的关系。
- DrugBank :是一个生物信息学/化学信息学资源,由与药物相关的实体组成。医学知识图谱版本³包含8,054种药物、4,038个其他相关实体(例如,蛋白质或药物靶点)以及21种关系。
异质图构建 我们通过构建患者 - 药物二分图和患者 - 疾病二分图,将MIMIC - III、ICD - 9本体和DrugBank(药物组1)相连接。
对于患者 - 疾病二分图,MIMIC - III为诊断提供了ICD - 9代码,这意味着MIMIC - III的诊断可以通过字符串匹配隐式地链接到ICD - 9本体。对于患者 - 药物二分图,MIMIC - III中的处方包含药物信息,例如名称、持续时间和剂量。然而,由于一些嘈杂的词语(20%、50ml、玻璃瓶等),MIMIC - III中存在同一种药物的多种名称,这在直接应用字符串匹配方法将药物名称链接到DrugBank时成为一个障碍。我们使用一种实体链接方法[17]来解决这个问题。表2展示了我们构建的异质图的统计信息。该异质图将用于通过SMR框架学习实体和关系的低维表示。之后,我们将异质图中的药物分为两组:
- 第一组包含电子病历中记录的所有4,525种药物,并将用作基线方法的输入。
- 第二组包含3,529种未在电子病历中观察到的药物,并将用作冷启动推荐的测试数据。

基线
我们将我们的SMR与以下先进方法进行比较:
- 基于规则的方法[2] :根据MEDI数据库[18]中现有药物类别到疾病的映射来推荐药物。对于每种疾病,根据映射为患者分配一种药物。
- K - 最频繁方法 :这是一种基本基线,它检索与每种疾病最频繁共现的前K种药物作为推荐。在本文中,我们设置K = 3。
- LEAP方法[3] :使用多实例多标签学习框架,将疾病状况作为输入特征来训练预测模型,并生成多个药物标签作为推荐。
3.2. Evaluation Methods
为了确保SMR生成的药物推荐有效,我们评估了四个指标,即预测准确性、避免不良药物相互作用的能力、经验丰富的临床医生评估以及处理冷启动问题的能力。在所有实验中,训练集、验证集和测试集的比例为0.7:0.1:0.2。超参数通过验证集进行调整。
预测准确性和DDIs率 我们利用杰卡德系数来比较SMR生成的处方与医生开具的相应处方的相似性。给定SMR为患者pip_i生成的推荐药物集MiM_i,Mˇi\check{M}_i是数据中医生开具的药物集。杰卡德系数的均值定义如下:
Jaccard=1K∑i=1K∣Mi∩Mˇi∣∣Mi∪Mˇi∣(17) Jaccard = \frac{1}{K} \sum_{i = 1}^{K} \frac{|M_i \cap \check{M}_i|}{|M_i \cup \check{M}_i|} \quad (17)
其中KK是测试集中的样本数量。表3展示了基线方法和SMR在药物组1上的准确性,基于规则的方法表现最差,因为它是唯一一种针对特定诊断提供通用推荐的方法,并且无法提供个性化推荐,特别是对于患有多种疾病的患者。在重症监护病房(ICUs)中,每种药物 - 疾病对的频率仍然很高。因此,基于频率的推荐方法,即K - 最频繁方法,也能有效工作。我们的方法SMR比LEAP方法高出1.49%,因为医学知识图谱中涉及更准确的医学事实,而不是电子病历中的处方信息。
我们从DrugBank中提取所有不良药物相互作用(DDIs),以评估药物推荐是否包含不安全的DDIs。表3显示了不同药物推荐中包含不良DDIs的百分比。结果表明,SMR可以为患者推荐最无害的药物,因为其药物相互作用率最低。基于规则的方法和K - 最频繁方法仅通过贪婪策略选择药物,而不考虑特定的不良DDIs。对于电子病历中很少使用的药物和未知的DDIs,SMR比LEAP更可靠。原因是SMR可以通过学习到的医学知识图谱嵌入来预测每个患者 - 药物链接并计算潜在的隐藏DDIs。

冷启动
我们评估了基线方法和SMR在药物组2上处理冷启动药物推荐的能力。结果报告在表4中。K - 最频繁方法和LEAP方法在冷启动场景下不适用于推荐新药物(NA)。由于我们的SMR过程可以通过已使用药物的学习向量表示来呈现新药物,冷启动药物与患者之间的潜在患者 - 药物链接将相应地被捕获。换句话说,SMR在推荐冷启动药物时,不仅可以利用电子病历中的患者 - 药物链接,还可以利用医学知识图谱。

临床评估
我们邀请了三位经验丰富的临床专家通过6分制评分来评估药物推荐的有效性:5分表示完全覆盖所有诊断且无DDIs;4分表示部分(至少50%)诊断无DDIs;3分表示完全覆盖所有诊断但有DDIs;2分表示无DDIs的诊断少于50%;1分表示部分(至少50%)诊断有DDIs;0分表示有DDIs的诊断少于50%。三位专家的平均分数用作每个推荐的最终临床评估分数,如图3所示。

案例研究
在表5中,我们展示了药物组1中与多种疾病相关的患者的两个药物推荐事件。与其他基线方法相比,SMR在这两个案例中都表现出色。对于第一位患者,SMR推荐了一组药物,覆盖率为100%,包括用于败血症的万古霉素、用于呼吸衰竭的去甲肾上腺素和对乙酰氨基酚、用于高血压的呋塞米和氨氯地平。相比之下,其他基线方法无法充分考虑。基于规则的方法采用替考拉宁,仅针对败血症,并不合适。K - 最频繁方法和LEAP方法仅为败血症选择万古霉素,为高血压选择其他药物。对于第二位患者,SMR推荐了比LEAP方法和基于规则的方法更合适的药物,即用于2型糖尿病的二甲双胍和胰岛素、用于缓解类风湿性关节炎的对乙酰氨基酚、用于高血压的硝苯地平以及用于高脂血症的非诺贝特。K - 最频繁方法推荐的药物中存在不良DDIs。甲苯磺丁脲和保泰松一起服用可能会导致有害的、潜在致命的影响。此案例也表明SMR在推荐药物时可以避免不良DDIs。

4. Related Work
在这一部分,我们讨论了相关的工作,包括药物推荐、医学知识图谱和嵌入。
药物推荐
如第1节所述,目前有两种类型的方法,即基于规则的协议[1, 19, 2]和基于监督学习的方法[3, 20],正在利用电子病历(EMRs)为个体推荐药物。理想情况下,药物推荐系统旨在根据每位患者的个体特征进行治疗[21]。药物推荐在遗传学/基因组学研究领域最近也受到了关注。目前在临床实践中已经存在通过利用患者的遗传学/基因组学信息的药物推荐系统[22, 23],但此类信息在日常临床实践中尚未广泛可用,并且由于它仅解决影响药物反应的众多因素之一,因此是不充分的。我们之前的预印本版本[24]主要介绍了我们的想法和推荐模型,而在本文中,我们对实验进行了更深入的分析,并对相关工作进行了总结。
医学知识图谱与嵌入
最近对知识图谱的评估工作主要集中在自动知识库填充和补全上。在过去几年中,一些知识图谱也已经从大量的医学数据库中构建出来,例如[25]、Bio2RDF[26]和Chem2Bio2RDF[27]。医学知识图谱包含大量基本的医学事实、药物和疾病,并为医学发现和应用(如有效的药物推荐)提供了途径。不幸的是,此类医学知识图谱存在严重的数据不完整问题,这阻碍了其在临床医学领域的应用。最近,Celebi等人[28]提出了一种用于现实场景中药物相互作用预测的知识图谱嵌入方法。MedGraph[29]是一种新的电子病历嵌入框架,它引入了一种基于图的数据结构来捕获结构上的就诊代码共现信息和时间上的就诊序列信息。然而,它们仅关注现实世界的生物医学嵌入学习,并且没有直接利用药物推荐任务,因此特定的临床医学信息没有得到充分定制。相比之下,我们的模型联合嵌入疾病、药物、患者,并使用学习到的嵌入将药物推荐分解为链接预测过程,同时考虑患者的诊断和药物不良反应。
5. Conclusion and Future Work
在本文中,我们提出了一种新颖的框架SMR,用于为患者,特别是患有多种疾病的患者推荐安全药物。SMR首先通过连接电子病历(MIMIC - III)和医学知识图谱(ICD - 9本体和DrugBank)构建一个高质量的异质图。然后,SMR将疾病、药物、患者及其相应关系联合嵌入到一个共享的低维空间中。最后,SMR使用这些嵌入将药物推荐分解为一个考虑临床诊断和不良DDI反应的链接预测过程。在真实世界数据集上进行了大量实验,证明了SMR的有效性。在未来的工作中,我们将通过考虑更多患者信息,如临床结果和人口统计学信息,来提高链接准确性。
致谢
本研究工作得到了中国国家自然科学基金(项目批准号:61906037和U1736204)、中央高校基本科研业务费(项目批准号:4009009106和22120200184)以及中国计算机学会 - 百度开放基金的支持。
