一种基于异构EHR网络表示学习的药物推荐方法及系统
未命名
09-22
阅读:75
评论:0

一种基于异构ehr网络表示学习的药物推荐方法及系统
技术领域
1.本发明涉及人工智能及数字医疗技术领域,特别涉及一种基于异构ehr网络表示学习的药物推荐方法及系统。
背景技术:
2.随着计算机技术迅速发展,硬件性能的提升、存储容量的增加和网络技术的普及,医疗信息化系统逐渐普及,海量的医学数据被记录在电子系统中,如病人的个人信息、诊断记录、处方用药、医疗操作记录、化验检查结果等等,形成了电子健康记录(electronic health record,ehr),提高了医疗信息的可访问性和安全性。ehr数据具有纵向医疗信息全面、数据共享性好的优点,建模ehr中病人信息的药物推荐方法可以根据病人的临床信息预测其所需的药物,辅助医生进行个性化的药物选择,监测疗效并调整治疗方案。然而,基于ehr数据进行病人用药预测的任务仍然面临着许多挑战:(1)病人病历中包含着疾病诊断代码、药物代码、手术治疗代码、生理指标等各种类型的数据,具有数据类型多,概念之间关系繁杂,维度高等特点,传统深度学习方法对这些医学概念的表示存在稀疏性;(2)预测的药物组合中药物相互作用程度严重,用药安全性缺失;(3)病人多次就诊的病历呈现出强烈的非均衡性,大多数方法缺乏对病历时序特性的学习。实际上,ehr数据中诊断、药物等医疗实体中蕴含着丰富的语义信息,医疗实体之间又隐含着不容忽略的关联性,因此,研究人员开始探索如何使用图表示学习方法对ehr数据进行深层次的分析和利用。
3.ehr数据主要由病人个人信息、诊断信息和处方信息构成。在图表示学习领域,异构网络可以凭借其建模多类型实体及关系的特性有效地提取这些医疗实体(诊断、药物)的语义信息及医疗实体之间的结构信息。元路径作为异构网络表示学习中有效的工具之一,常用于表示两个节点之间多种不同类型的路径。对于具有特定模式的网络,可以结合特定的领域知识设计元路径来捕获节点之间不同的语义关系,帮助更好地理解和分析节点之间的关联性。具体来说,ehr数据可以构建为一个包含病人、诊断、药物三类节点和病人-诊断、病人-药物两类边的异构ehr网络,根据元路径病人-诊断-病人、病人-药物-病人可以构建出以病人为节点的同构图,根据元路径药物-病人-药物可以构建出以药物为节点的同构图,通过分析病人的病情以及与药物相关的实体关系,图神经网络可以学习到药物与这些实体之间的复杂关联,进而为每个病人提供个性化的药物推荐,更好地满足病人的特定需求。另外,通过图神经网络分析不同药物之间的相互作用以及与病人特征之间的关系,能够识别出可能导致副作用或不良反应之间的药物组合,并提供更安全的药物选择。
4.近来,结合图表示学习方法进行药物推荐的方法主要使用循环神经网络来编码时序ehr数据,附加图模型编码药物之间的关系来增强药物表示,而没有对不同医疗实体之间的结构信息加以利用,这导致图表示模型提取到的向量表示缺乏重要的关联信息,造成信息丢失,并且医疗实体间的关系可以帮助模型更好地理解病人的病情和需求,通过考虑病人、诊断、药物之间的关系,推荐系统可以提供更准确、个性化的药物推荐,反之则可能造成推荐结果不够准确,无法满足病人的具体需求,增加病人的治疗风险。因此,如何对ehr数据
中不同医疗实体之间的复杂关系进行有效的提取,是帮助医生提供更个性化的治疗方案,减少药物副作用,实现药物精准推荐的关键问题。
技术实现要素:
5.本发明的目的是,提供一种基于异构ehr网络表示学习的药物推荐方法及系统。通过分析病人、诊断、药物的属性信息及其之间的复杂结构关系,该方法及系统能够捕获医疗实体在异构ehr网络中的语义以及医疗实体之间的关联、交互和影响,学习到更丰富、准确的医疗实体向量表示,帮助理解病人的病情和需求,进而提供更准确、个性化的药物推荐结果,同时避免不适当的药物组合,降低治疗风险。
6.使用图表示方法对ehr数据进行分析,通过图卷积操作将关系结构数据转换为低维的向量表示,该分析过程分为两步:(1)使用预处理后的ehr数据集训练一个学习医疗实体向量表示的图表示模型;(2)依据病人时序就诊数据,使用第(1)步中训练得到的图表示模型提取医疗实体的向量表示,并使用该向量表示进行药物推荐。
7.为实现上述目的,本发明提供如下技术方案:
8.本发明提供了一种基于异构ehr网络表示学习的药物推荐方法。首先,ehr数据预处理环节依次通过去除缺失值、去除重复值和排序操作对病历数据进行预处理,得到ehr历史病历数据集;接着在复杂关系图表示模型构建和优化环节中,构建并初始化复杂关系图表示模型、学习医疗实体的向量表示、计算损失、训练模型、确定复杂关系图表示模型的参数;获取复杂关系图表示模型构建和优化环节中训练得到的复杂关系图表示模型,进行药物推荐环节为病人推荐药物。本发明的主要参数包括:优化器参数、迭代次数,其中优化器参数包括学习率、权重衰减率,迭代次数用于设置复杂关系图表示模型训练的结束条件。该方法包括以下步骤:
9.s1、预处理历史病历数据,提取历史病历数据中病人对应的诊断、药物信息,得到ehr历史病历数据集;
10.s2、根据步骤s1中得到的ehr历史病历数据集构建异构ehr网络,利用不同类型的元路径构建与病人、药物相关的关系图;构建病人-诊断、病人-药物交互图;
11.s3、构建并初始化复杂关系图表示模型;
12.s4、使用步骤s1中得到的ehr历史病历数据集通过adam优化器以随机梯度下降的方式对步骤s3中构建的复杂关系图表示模型进行训练,确定复杂关系图表示模型的训练参数,获取复杂关系图表示模型;
13.s5、依据步骤s1中的预处理方法对病人的时序就诊数据进行预处理,使用步骤s4中获取的复杂关系图表示模型,提取医疗实体的向量表示,应用医疗实体的向量表示进行药物推荐。
14.进一步,步骤s1具体包括以下步骤:
15.s11、基于异构ehr网络表示学习的药物推荐方法中设计了一个复杂关系图表示模型来提取ehr历史病历数据集中医疗实体的向量表示,为了更充分地训练复杂关系图表示模型,本发明首先对历史病历数据进行预处理,依次进行去除缺失值、去除重复值和排序操作,得到ehr历史病历数据集,该ehr历史病历数据集中包括病人的诊断过程和用药记录;
16.s12、根据预处理得到的ehr历史病历数据集,生成诊断编号与对应icd-9编码组成
的诊断字典信息、药物编号与对应ndc编码组成的字典信息,另外,将ehr历史病历数据集与药物相互作用知识库(ddis)相结合,提取出ehr历史病历数据集中所有药物之间存在的相互作用关系。
17.进一步,所述步骤s2具体包括以下步骤:
18.s21、将病人、诊断、药物作为节点,病人-诊断关系、病人-药物关系作为连边,将ehr历史病历数据集构建为异构ehr网络,记作其中表示节点集合,表示病人节点集合,表示诊断节点集合,表示药物节点集合,表示边集合,包括病人-诊断类型rd的连边集合、病人-药物类型rm的连边集合;
19.s22、构建与病人、药物相关的关系图:将病人、诊断、药物节点类型分别记作v
p
、vd、vm,根据元路径病人-诊断-病人构建病人-病人交互图病人交互图表示对应的病人-诊断-病人连边集合;根据元路径构建病人-病人交互图病人交互图病人交互图表示对应的病人-药物-病人连边集合;根据ehr历史病历数据集判断任意两种药物是否同时存在于同一个药物组合中,即药物共现关系,构建药物共现图断任意两种药物是否同时存在于同一个药物组合中,即药物共现关系,构建药物共现图其中表示存在共现关系的药物之间的连边;将步骤s12中提取出的ehr历史病历数据集中所有药物之间存在的相互作用关系,构建药物相互作用图其中,表示存在相互作用关系的药物之间的连边,以上构建的图g
pdp
、g
pmp
、g
mpm
、g
mm
对应的邻接矩阵为a
pdp
、a
pmp
、a
mpm
、a
mm
;
20.s23、依据异构ehr网络,基于边类型构建病人-诊断交互图其中表示包含病人类型节点、诊断类型节点的节点集合,表示病人-诊断连边集合,病人-诊断交互矩阵为a
pd
;基于边类型构建病人-药物交互图其中表示包含病人类型节点、药物类型节点的节点集合,表示病人-药物连边集合,病人-药物交互矩阵为a
pm
。
21.进一步,如说明书附图1所示,所述步骤s3的复杂关系图表示模型包括三个网络,分别是局部结构信息聚合网络、表示学习网络、表示融合网络。局部结构信息聚合网络用于编码局部异构信息,即聚合不同类型节点的信息,得到病人、诊断、药物的表示,并输入到表示学习网络中,来编码基于元路径构建的同构图语义,接着使用表示融合网络融合不同类型同构图的语义表示。步骤s3具体包含以下过程:
22.s31、随机初始化病人、诊断、药物节点的向量表示e
(p)
、e
(d)
、e
(m)
,构建局部结构信息聚合网络,具体来说,局部结构信息聚合网络为两层轻量型的图卷积网络,以用于编码多种类型节点之间的关系来丰富节点的向量表示,对于病人-诊断交互图,首先计算每个病人节点和诊断节点的度,得到度矩阵d
(p)
和d
(d)
,再对病人-诊断交互矩阵a
pd
进行归一化操作,计算方式为对于病人-药物交互图,首先计算每个病人节点和药物节点的度,得到度矩阵d
(p)
和d
(m)
,再对病人-药物交互矩阵a
pm
进行归一化操作,计算方式为
23.s32、利用步骤s31中构建的局部结构信息聚合网络聚合不同类型的节点信息和结构信息,以递归地方式更新节点表示,对于病人-诊断交互图,其计算方式如式(1)、(2)所示:
[0024][0025][0026]
其中,索引l表示轻量型图卷积网络层的索引,和分别表示第l层的病人和诊断节点的向量表示,当l=0时,上标pd表示该病人表示来自病人-诊断交互图,t表示矩阵的转置操作;同理,对于病人-药物交互图,根据式(3)、(4)得到病人、药物的表示:
[0027][0028][0029]
其中,上标pm表示该病人表示是来自病人-药物交互图,t表示矩阵的转置操作,当l=0时,
[0030]
s33、聚合来自所有层的向量表示来获取向量表示,以确保对局部结构信息的有效编码,其计算方式为
[0031]
s34、构建和初始化表示学习网络,该表示学习网络通过多头注意力机制来融合不同元路径类型生成的不同图之间的向量表示来获得全局视角下的信息,对步骤s33中得到的向量表示进行补充,所述多头注意力机制包括使用线性层将节点表示向量投影到多个子空间中,然后聚合每个子空间下的表示向量,具体而言,将步骤s33得到的向量表示分别作为图g
pdp
、g
pmp
的输入,e
(m)
作为图g
mm
、g
mpm
的输入,用c统一表示以上四种图的类型,即c∈{pdp,pmp,mpm,mm},对于每种图g
(c)
,本发明将其输入的第i行表示为首先通过线性层将不同类型的节点特征映射到相同的潜在表示空间,计算方式如式(5)所示:
[0032][0033]
其中,w
(c)
为可学习的映射矩阵;接着,对于任意节点i,计算其所有一阶邻居对于自身的重要性,如式(6)所示:
[0034][0035]
其中其中表示图g
(c)
中节点i与其任意邻居节点j之间的注意力分数,β
(c)
表示可学习的注意力向量,t表示矩阵的转置操作,||表示拼接操作,
表示经过softmax函数归一化后的注意力分数,表示图g
(c)
中节点i的邻居节点集合;
[0036]
最后,对每个子空间下的表示进行聚合,计算方式如式(7)所示:
[0037][0038]
其中,k表示头数,上标(k)表示头的索引,根据以上过程,得到病人节点的向量表示示和药物节点的向量表示其中i∈{1,
…
,n
p
},j∈{1,
…
,nm},n
p
表示病人的个数,nm是ehr历史病历数据集中备选药物的个数;
[0039]
s35、构建并初始化表示融合网络,该表示融合网络通过一种可学习的加权融合机制对s34得到的病人、药物节点的向量表示进行整合,具体来说,该表示融合网络依次由线性层、tanh非线性激活层、线性层构成;每个图g
(c)
所得表示的权重计算如式(8)所示:
[0040][0041]
其中,可学习的参数映射矩阵w和偏置向量b在不同的图g
(c)
之间共享,q是可学习的注意力向量,表示图中节点的集合,为了提高不同视图中表示的可区分性,对权重进行归一化基于此,病人i和药物j最终的表示可根据式(9)、(10)得到:
[0042][0043][0044]
将得到的病人、药物表示以矩阵形式表示为z
(p)
、z
(m)
;
[0045]
s36、将病人和药物表示连接起来,通过全连接网络fc1(
·
)预测病人和药物之间存在边的概率,计算方式为
[0046]
进一步,所述步骤s4中使用步骤s1中得到的ehr历史病历数据集通过adam优化器以随机梯度下降的方式对步骤s3中的复杂关系图表示模型进行训练,具体包括以下步骤:
[0047]
s41、使用步骤s36中得到的病人和药物之间存在边的概率计算二元交叉熵损失,该二元交叉熵损失计算如式(11)所示:
[0048][0049]
其中,σ(
·
)表示sigmoid函数,y
ij
是反映异构ehr网络中病人i与药物j之间是否存在联系的真实标签;
[0050]
s42、基于步骤s41中的二元交叉熵损失,以迭代方式重复步骤s31-s41,使用adam优化器以随机梯度下降的方式对s3中的复杂关系图表示模型进行训练优化,训练参数包括学习率0.001、权重衰减率0.001及迭代次数100,本发明中迭代次数为固定值,用于设置训练过程的停止条件,达到设定的迭代次数后停止训练,确定复杂关系图表示模型的训练参数,获取复杂关系图表示模型。
[0051]
进一步,步骤s5具体包括以下步骤:
[0052]
s51、使用步骤s1中的预处理方法对病人的时序就诊数据进行预处理;
[0053]
s52、基于s51中的病人的时序就诊数据,使用步骤s42中获取的复杂关系图表示模型生成诊断向量表示e
(d)
、药物向量表示z
(m)
,同时输入时序就诊数据d
t,i
,d
t,i
表示病人i第t次就诊时的诊断multi-hot向量表示,再聚合诊断信息得到病人i第t次就诊时的向量表示,计算方式如式(12)所示:
[0054][0055]
接下来,利用参数共享和具有记忆性的门控循环神经网络(gru)对时序的就诊数据进行编码,学习与该病人相关的诊断向量表示:
[0056][0057]
然后,根据式(14)计算病人向量表示与药物向量表示z
(m)
之间的相似性分数,并根据此相似性分数检索相关的药物信息:
[0058][0059]
其中,表示与病人i相关的药物向量表示,t表示矩阵的转置操作;最后,通过全连接网络fc2整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:其中,表示在t时刻向病人i推荐不同药物的概率值,其第j个值则表示药物j的推荐概率;
[0060]
s53、使用步骤s52的药物推荐概率值计算药物推荐损失如下:
[0061][0062]
其中,是真实的标签值,ti是病人i的总就诊次数。
[0063]
本发明通过将异构ehr网络中的复杂关系信息与病人就诊的时序数据相结合,可以对病人的健康状况完整的了解,这能够根据更完整的病人健康状况情况提供更精确的药物建议。
[0064]
本发明还提供一种基于异构ehr网络表示学习的药物推荐系统,所述系统用于实现上述的基于异构ehr网络表示学习的药物推荐方法,具体包括计算机处理器、ehr历史病历数据集存储单元、图数据处理单元、复杂关系图表示模型训练单元及药物推荐单元。
[0065]
进一步,所述ehr历史病历数据集存储单元存储步骤s1中构建的ehr历史病历数据集,将其加载到计算机内存中;所述图数据处理单元从计算机内存中取出ehr历史病历数据集,执行步骤s2进行处理得到图结构数据;所述复杂关系图表示模型训练单元使用图结构数据执行步骤s3-s4,训练并获取复杂关系图表示模型,所述药物推荐单元执行步骤s5,得到药物推荐的结果。所有单元中具体的数据处理和计算工作由所述计算机处理器完成。
[0066]
与现有技术相比本发明的有益效果:
[0067]
1、本发明设计的基于异构ehr网络表示学习的药物推荐方法将ehr历史病历数据
集构建为一个由三种类型的节点和两种类型的边组成的异构图。这种方法能够聚合不同的病人信息,并改进了图中病人特征的向量表示,同时有效地提高ehr历史病历数据集的利用率及ehr医疗实体向量表示的质量;
[0068]
2、本发明设计的基于异构ehr网络表示学习的药物推荐方法中的双通道局部异构信息提取模块来对异构信息进行编码,然后采用多视图表示学习模块来融合信息,获得全局视图。这种方法增强了从ehr网络的局部和全局结构中捕获信息的能力,从而产生更准确的药物推荐结果;
[0069]
3、本发明设计的基于异构ehr网络表示学习的药物推荐方法及系统能够有效地处理药物推荐任务,使用包含丰富结构信息的特征向量表示,应用基于rnn的方法编码病人的时序就诊信息为其生成药物处方建议。通过结合历史数据,可以有效地捕获ehr数据中的时序性,提高药物推荐的可靠性。
附图说明
[0070]
图1为本发明所述基于异构ehr网络表示学习的药物推荐方法中复杂关系图表示模型结构图;
[0071]
图2为本发明所述基于异构ehr网络表示学习的药物推荐方法中药物推荐模块结构图;
[0072]
图3为本发明所述基于异构ehr网络表示学习的药物推荐方法的计算机实现系统结构图;
[0073]
图4为本发明所述基于异构ehr网络表示学习的药物推荐方法的流程图。
具体实施方式
[0074]
本发明所述的基于异构ehr网络的药物推荐方法通过计算机程序实施,图3所示是计算机实现的系统结构图,其中“计算机处理器”代表计算资源类型,可以为支持gpu计算的单独显卡,也可以为支持gpu计算的本地服务器、云服务器等。下面结合图1、2所示的模型结构图以及图4中的方法流程图,以mimic-iii临床数据库中的病历数据为例对本发明实施例中的技术方案进行具体、详细的说明。mimic-iii临床数据库中记录了2001年-2012年期间住在贝斯以色列迪康医学中心重症监护室共计4万余名真实病人的临床诊疗信息,病人信息来自两套不同的重症监护信息系统:philipscarevue临床信息系统和imdsoft metavision icu系统。mimic临床数据库基于关系模型,拥有26张csv表格,按照表格的信息来源和用途目的,可将其分为四类:病人住院信息、病人icu的临床诊疗信息、病人门诊诊疗信息、字典信息,本发明对病人的门诊诊疗信息进行预处理。实施方式包含以下关键内容:
[0075]
s1、预处理病历数据,提取病历数据中病人对应的诊断、药物信息,得到ehr历史病历数据集,具体包含以下步骤:
[0076]
s11、本发明首先对来自mimic-iii临床数据库的病历数据进行预处理得到ehr历史病历数据集,mimic-iii临床数据库属于关系型数据库,根据病人id及住院id可将表格联系起来,依次通过去除缺失值、去除重复值和排序操作处理病历数据,可以得到包含约6350个病人的ehr历史病历数据集,该ehr历史病历数据集中包括病人的诊断过程和用药记录;
[0077]
s12、根据s11预处理得到的ehr历史病历数据集,提取出包含药物编号-ndc代码、
诊断编号-icd-9编码的字典信息,共包含1958种诊断,112种药物,另外,使用药物相互作用知识库(ddis)文件drug-ddi.csv提取ehr历史病历数据集中的药物相互作用对。
[0078]
s2、根据步骤s1中得到的ehr历史病历数据集构建异构ehr网络,利用不同类型的元路径构建与病人、药物相关的关系图;构建病人-诊断、病人-药物交互图,具体包含以下步骤:
[0079]
s21、将病人、诊断、药物作为节点,病人-诊断关系、病人-药物关系作为连边,将ehr历史病历数据集构建为异构ehr网络,记作其中表示节点集合,表示病人节点集合,表示诊断节点集合,表示药物节点集合,表示边集合,包括病人-诊断连边类型rd、病人-药物连边类型rm;
[0080]
s22、构建与病人、药物相关的关系图:将病人、诊断、药物节点类型分别记作v
p
、vd、vm,根据元路径病人-诊断-病人构建病人-病人交互图病人交互图表示对应的病人-诊断-病人连边集合,根据元路径构建病人-病人交互图病人交互图病人交互图表示对应的病人-药物-病人连边集合;根据ehr历史病历数据集中的药物共现关系构建药物共现图即当任意两个药物同时出现于同一个药物处方中,则认为二者有共现关系,其中表示存在共现关系的药物之间的连边;根据s12中提取出的药物相互作用关系,构建药物相互作用图其中表示存在相互作用关系的药物之间的连边集合,以上构建的图g
pdp
、g
pmp
、g
mpm
、g
mm
对应的邻接矩阵为a
pdp
、a
pmp
、a
mpm
、a
mm
;
[0081]
s23、依据异构ehr网络,基于边类型构建病人-诊断交互图其中表示包含病人类型节点、诊断类型节点的节点集合,表示病人-诊断连边集合,病人-诊断交互矩阵为a
pd
;基于边类型构建病人-药物交互图其中表示包含病人类型节点、药物类型节点的节点集合,表示病人-药物连边集合,病人-药物交互矩阵为a
pm
,ehr历史病历数据集中共包括75300条病人-诊断连边,87650条病人-药物连边。
[0082]
s3、构建并初始化复杂关系图表示模型,如图1所示,复杂关系图表示模型包括局部结构信息聚合网络、表示学习网络、表示融合网络三个网络,具体包括以下步骤:
[0083]
s31、随机初始化病人、诊断、药物节点的向量表示e
(p)
、e
(d)
、e
(m)
,其表示维度分别为[6350,64]、[1958,64]、[112,64],构建局部结构信息聚合网络,如说明书附图1(b)所示,具体来说,局部结构信息聚合网络为两层轻量型图卷积网络,该网络输入与输出的维度为64,对于病人-诊断交互图,首先计算每个病人节点和诊断节点的度,得到度矩阵d
(p)
和d
(d)
,再对病人-诊断交互矩阵a
pd
进行归一化操作,计算方式为对于病人-药物交互图,首先计算每个病人节点和药物节点的度,得到度矩阵d
(p)
和d
(m)
,再对病人-药物交互矩阵a
pm
进行归一化操作,计算方式为归一化后的病人-诊断交互矩阵
病人-药物交互矩阵的大小分别为[6350,1958]和[6350,112];
[0084]
s32、利用s31中构建的局部结构信息聚合网络聚合不同类型的节点信息及结构信息,以递归地方式更新节点的向量表示,对于病人-诊断交互图,其计算方式如式(1)(2)所示:
[0085][0086][0087]
其中,索引l表示轻量型图卷积网络层的索引,和分别表示第l层的病人和诊断节点的向量表示,其维度大小为[1958,64]、[6350,64],上标pd表示该病人的向量表示来自病人-诊断交互图,t表示矩阵的转置操作;同理,对于病人-药物交互图,根据式(3)、(4)得到病人、药物的向量表示:
[0088][0089][0090]
其中,上标pm表示该病人表示是来自病人-药物交互图,t表示矩阵的转置操作,输出病人节点向量表示的维度大小为[6350,64],药物节点向量表示的维度大小为[112,64];
[0091]
s33、聚合来自所有网络层的向量表示来获取向量表示,以确保对局部结构信息的有效编码,计算方式为
[0092]
s34、构建和初始化表示学习网络,如说明书附图1(c)所示,该表示学习网络通过多头注意力机制来融合不同元路径类型生成的不同图之间的向量表示来获得全局视角下的信息,对步骤s33得到的向量表示进行补充,多头注意力机制包括使用线性层将节点表示向量投影到多个子空间中,然后聚合每个子空间下的向量表示,具体为,将步骤s33中得到的向量表示分别作为图g
pdp
、g
pmp
的输入,e
(m)
作为图g
mm
、g
mpm
的输入,用c统一表示以上四种图的类型,即c∈{pdp,pmp,mpm,mm},对于每种图g
(c)
,将其输入的第i行表示为首先,通过线性层将不同类型的节点特征映射到相同的潜在表示空间,计算方式如式(5)所示:
[0093][0094]
其中,w
(c)
为可学习的映射矩阵;其次,对于任意节点i,计算其所有一阶邻居对于自身的重要性,如式(6)所示:
[0095][0096]
其中其中表示图g
(c)
中节点i与其任意邻居节点j之间的注意力分数,β
(c)
表示可学习的注意力向量,t表示矩阵的转置操作,||表示拼接操作,表示经过softmax函数归一化后的注意力分数,表示图c
(c)
中节点i的邻居节
点集合;
[0097]
最后,对每个子空间下的表示进行聚合,计算方式如式(7)所示:
[0098][0099]
其中,k表示头数,上标(k)表示头的索引,头数为8,将每个子空间的向量表示连接起来可以增加新的信息,增强节点向量表示的鲁棒性,使训练过程更稳定,根据以上过程,可以得到病人向量表示和药物向量表示其中i∈{1,
…
,n
p
},j∈{1,
…
,nm},n
p
表示病人数量,具体数值为6350,nm是ehr历史病历数据集中备选药物的个数,具体数值为112;
[0100]
s35、构建并初始化表示融合网络,如说明书附图1(d)所示,该表示融合网络通过一种可学习的加权融合机制对步骤s34中得到的病人、药物节点的向量表示进行整合,具体为,该表示融合网络依次由线性层、tanh非线性激活层、线性层构成,每个图g
(c)
所得向量表示的权重计算如式(8)所示:
[0101][0102]
其中,可学习的参数映射矩阵w和偏置向量b在不同的图gc之间共享,q是可学习的注意力向量,表示图中节点的集合,在病人视图下,即当c∈{pdp,pmp},在药物视图下,即当c∈{mpm,mm},为了提高不同视图中表示的可区分性,本发明对权重进行归一化基于此,病人i和药物j最终的向量表示可根据式(9)、(10)得到:
[0103][0104][0105]
将得到的病人、药物向量表示以矩阵形式表示为z
(p)
、z
(m)
;
[0106]
s36、将病人和药物向量表示连接起来,通过全连接网络fc1预测病人和药物之间存在边的概率,计算方式为
[0107]
s4、使用步骤s1中得到的ehr历史病历数据集通过adam优化器以随机梯度下降的方式对步骤s3中的复杂关系图表示模型进行训练,具体包括以下步骤:
[0108]
s41、使用步骤s36得出的病人和药物之间存在边的概率计算二元交叉熵损失,该二元交叉熵损失计算如式(11)所示:
[0109][0110]
其中,σ(
·
)表示sigmoid函数,y
ij
是反映ehr网络中病人i与药物j之间是否存在联系的真实标签;
[0111]
s42、基于s41中的二元交叉熵损失,以迭代方式重复步骤s31-s41,使用adam优化器以随机梯度下降的方式对s3中的复杂关系图表示模型进行训练优化,训练参数包括学习率0.001、权重衰减率0.001及迭代次数100,本发明中迭代次数为固定值,用于设置训练过
程的停止条件,达到设定的迭代次数后停止训练,确定复杂关系图表示模型的训练参数,获取复杂关系图表示模型。
[0112]
s5、依据步骤s1中的预处理方法对病人的时序就诊数据进行预处理,获取步骤s42中的复杂关系图表示模型提取医疗实体的向量表示,应用医疗实体的向量表示进行药物推荐,具体步骤如下:
[0113]
s51、使用步骤s1中的预处理方法对病人的时序就诊数据进行预处理;
[0114]
s52、依据s51中病人的时序就诊数据,使用步骤s42中获取的复杂关系图表示模型生成诊断向量表示e
(d)
、药物向量表示z
(m)
,同时输入时序就诊数据d
t,i
,d
t,i
表示病人i第t次就诊时的诊断multi-hot表示,再聚合诊断信息得到病人i第t次就诊时的向量表示,计算方式如式(12)所示:
[0115][0116]
接下来,利用参数共享和具有记忆性的门控循环神经网络(gru)对时序的就诊数据进行编码,学习与该病人相关的诊断向量表示:
[0117][0118]
然后,根据式(14)计算病人向量表示与药物向量表示z
(m)
之间的相似性分数,并根据此相似性分数检索相关的药物信息:
[0119][0120]
其中,表示与病人i相关的药物向量表示,t表示矩阵的转置操作;最后,通过全连接网络fc2整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:其中,表示在t时刻向病人i推荐不同药物的概率值,其第j个值则表示药物j的推荐概率;
[0121]
s53、使用步骤s52的药物推荐概率值计算药物推荐损失如下:
[0122][0123]
其中,是真实的标签值,ti表示病人i的总就诊次数。
[0124]
为了验证本发明中基于异构ehr网络表示学习的药物推荐方法的有效性,本发明基于mimic-iii临床数据库,使用auc、ap、topk指标进行评估,并与药物推荐方法dmnc、retain、leap、gamenet、cognet进行比较。其中,auc指标评估了模型在推荐药物时区分正例药物和负例药物的能力,ap指标同时考虑精确度及召回率,而topk评估的是所推荐的前k种药物占病人实际服用药物的百分比,具体使用top5、top10、top20指标。指标auc、ap、topk的值越高表明推荐结果越准确,结果如表1所示。
[0125]
表1药物推荐结果
[0126][0127]
如附图3所示,一种基于异构ehr网络表示学习的药物推荐系统,包括计算机处理器;ehr历史病历数据集存储单元;图数据处理单元;复杂关系图表示模型训练单元;药物推荐任务单元。所述ehr历史病历数据集存储单元存储步骤s1中构建的ehr历史病历数据集,将其加载到计算机内存中;所述图数据处理单元依据ehr历史病历数据集生成ehr图数据,得到适合信息聚合的关系图及归一化的邻接矩阵、交互矩阵;复杂关系图表示模型训练单元使用ehr图数据执行步骤s3-s4,获取复杂关系图表示模型;基于复杂关系图表示模型对病人的时序就诊数据进行编码,在药物推荐单元中执行步骤s5,生成药物推荐的结果;所有单元中具体的数据处理和计算工作由所述计算机处理器完成。
[0128]
最后,以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,包括以下步骤:s1、预处理病历数据,提取历史病历数据中病人对应的诊断、药物信息,得到ehr历史病历数据集;s2、根据步骤s1中得到的ehr历史病历数据集构建异构ehr网络,利用不同类型的元路径构建与病人、药物相关的关系图;构建病人-诊断、病人-药物交互图;s3、构建并初始化复杂关系图表示模型;s4、使用步骤s1中得到的ehr历史病历数据集通过adam优化器以随机梯度下降的方式对步骤s3中的复杂关系图表示模型进行训练,确定复杂关系图表示模型的训练参数,获取复杂关系图表示模型;s5、依据步骤s1中的预处理方法对病人的时序就诊数据进行预处理,使用步骤s4中获取的复杂关系图表示模型,提取医疗实体的向量表示,应用医疗实体的向量表示进行药物推荐。2.根权利要求1所述的一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,所述步骤s1具体包括以下步骤:s11、对历史病历数据进行预处理,依次进行去除缺失值、去除重复值和排序操作,得到ehr历史病历数据集,该ehr历史病历数据集中包括病人的诊断过程和用药记录;s12、根据预处理得到的ehr历史病历数据集,生成诊断编号与对应icd-9编码组成的诊断字典信息、药物编号与对应ndc编码组成的字典信息,另外,将ehr历史病历数据集与药物相互作用知识库相结合,提取出ehr历史病历数据集中所有药物之间存在的相互作用关系。3.根据权利要求2所述的一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,所述步骤s2具体包括以下步骤:s21、将病人、诊断、药物作为节点,病人-诊断关系、病人-药物关系作为连边,将ehr历史病历数据集构建为异构ehr网络,记作其中表示节点集合,表示病人节点集合,表示诊断节点集合,表示药物节点集合,ε表示边集合,包括病人-诊断类型r
d
的连边集合、病人-药物类型r
m
的连边集合;s22、构建与病人、药物相关的关系图:将病人、诊断、药物节点类型分别记作v
p
、v
d
、v
m
,根据元路径病人-诊断-病人构建病人-病人交互图ε
pdp
表示对应的病人-诊断-病人连边集合;根据元路径病人-药物-病人构建病人-病人交互图ε
pmp
表示对应的病人-药物-病人连边集合;根据ehr历史病历数据集判断任意两种药物是否同时存在于同一个药物组合中,即药物共现关系,构建药物共现图其中ε
mpm
表示存在共现关系的药物之间的连边;将步骤s12中提取出的ehr历史病历数据集中所有药物之间存在的相互作用关系,构建药物相互作用图的ehr历史病历数据集中所有药物之间存在的相互作用关系,构建药物相互作用图其中,ε
mm
表示存在相互作用关系的药物之间的连边,以上构建的图g
pdp
、g
pmp
、g
mpm
、g
mm
对应的邻接矩阵为a
pdp
、a
pmp
、a
mpm
、a
mm
;s23、依据异构ehr网络,基于边类型构建病人-诊断交互图其
中,表示包含病人类型节点、诊断类型节点的节点集合,ε
pd
表示病人-诊断连边集合,病人-诊断交互矩阵为a
pd
;基于边类型构建病人-药物交互图g
pm
=(ν
pm
,ε
pm
),其中v
pm
表示包含病人类型节点、药物类型节点的节点集合,ε
pm
表示病人-药物连边集合,病人-药物交互矩阵为a
pm
。4.根据权利要求3所述的一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,所述步骤s3具体包括以下步骤:s31、随机初始化病人、诊断、药物节点的向量表示e
(p)
、e
(d)
、e
(m)
,构建局部结构信息聚合网络,具体为:局部结构信息聚合网络为两层轻量型的图卷积网络,以用于编码多种类型节点之间的关系来丰富节点向量表示,对于病人-诊断交互图,首先计算每个病人节点和诊断节点的度,得到度矩阵d
(p)
和d
(d)
,再对病人-诊断交互矩阵a
pd
进行归一化操作,计算方式为对于病人-药物交互图,首先计算每个病人节点和药物节点的度,得到度矩阵d
(p)
和d
(m)
,再对病人-药物交互矩阵a
pm
进行归一化操作,计算方式为进行归一化操作,计算方式为s32、利用步骤s31中构建的局部结构信息聚合网络聚合不同类型的节点信息和结构信息,以递归地方式更新节点的向量表示,对于病人-诊断交互图,其计算方式如式(1)、(2)所示:示:其中,l表示轻量型图卷积网络层的索引,和分别表示第l层的病人和诊断节点的向量表示,当l=0时,上标p
d
表示该病人表示来自病人-诊断交互图,t表示矩阵的转置操作;同理,对于病人-药物交互图,根据式(3)、(4)得到病人、药物的表示:的表示:其中,上标p
m
表示该病人表示是来自病人-药物交互图,t表示矩阵的转置操作,当l=0时,s33、聚合来自所有层的向量表示来获取向量表示,以确保对局部结构信息的有效编码,计算方式为s34、构建和初始化表示学习网络,该表示学习网络通过多头注意力机制来融合不同元路径类型生成的不同图之间的向量表示来获得全局视角下的信息,对步骤s33中得到的向
量表示进行补充,所述多头注意力机制包括使用线性层将节点的向量表示投影到多个子空间中,然后聚合每个子空间下的向量表示,具体为,将步骤s33中得到的向量表示分别作为图g
pdp
、g
pmp
的输入,e
(m)
作为图g
mm
、g
mpm
的输入,用c统一表示以上四种图的类型,即c∈{pdp,pmp,mpm,mm},对于每种图g
(c)
,将其输入的第i行表示为首先通过线性层将不同类型的节点特征映射到相同的潜在表示空间,计算方式如式(5)所示:其中,w
(c)
为学习的映射矩阵;其次,对于任意节点i,计算其所有一阶邻居对于自身的重要性,如式(6)所示:其中表示图g
(c)
中节点i与其任意邻居节点j之间的注意力分数,β
(c)
表示可学习的注意力向量,t表示矩阵的转置操作,||表示拼接操作,表示经过softmax函数归一化后的注意力分数,表示图g
(c)
中节点i的邻居节点集合;最后,对每个子空间下的表示进行聚合,计算方式如式(7)所示:其中,k表示头数,上标(k)表示头的索引;根据以上过程,得到病人节点的向量表示和药物节点的向量表示和药物节点的向量表示其中,i∈{1,
…
,n
p
},j∈{1,
…
,n
m
},n
p
表示病人的个数,n
m
是ehr历史病历数据集中备选药物的个数;s35、构建并初始化表示融合网络,该表示融合网络通过一种可学习的加权融合机制对步骤s34中得到的病人、药物节点的向量表示进行整合,具体为,该表示融合网络依次由线性层、tanh非线性激活层、线性层构成;每个图g
(c)
所得表示的权重计算如式(8)所示:其中,学习的参数映射矩阵w和偏置向量b在不同的图g
(c)
之间共享,q是可学习的注意力向量,表示图中节点的集合,为了提高不同视图中表示的可区分性,对权重进行归一化基于此,病人i和药物j最终的表示可根据式(9)、(10)得到:基于此,病人i和药物j最终的表示可根据式(9)、(10)得到:将得到的病人、药物表示以矩阵形式表示为z
(p)
、z
(m)
;
s36、将病人和药物表示连接起来,通过全连接网络fc1(
·
)预测病人和药物之间存在边的概率,计算方式为5.根据权利要求4所述的一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,所述步骤s4中使用步骤s1中得到的ehr历史病历数据集通过adam优化器以随机梯度下降的方式对步骤s3中的复杂关系图表示模型进行训练,具体包括以下步骤:s41、使用步骤s36中得到的病人和药物之间存在边的概率计算二元交叉熵损失,该二元交叉熵损失计算如式(11)所示:其中,σ(
·
)表示sigmoid函数,y
ij
是反映异构ehr网络中病人i与药物j之间是否存在联系的真实标签;s42、基于步骤s41中的二元交叉熵损失,以迭代方式重复步骤s31-s41,使用adam优化器以随机梯度下降的方式对s3中的复杂关系图表示模型进行训练优化,训练参数包括学习率0.001、权重衰减率0.001及迭代次数100,迭代次数为固定值,用于设置训练过程的停止条件,达到设定的迭代次数后停止训练,确定复杂关系图表示模型的训练参数,获取复杂关系图表示模型。6.根据权利要求5所述的一种基于异构ehr网络表示学习的药物推荐方法,其特征在于,所述步骤s5具体包括以下步骤:s51、使用步骤s1中的预处理方法对病人的时序就诊数据进行预处理;s52、基于步骤s51中病人的时序就诊数据,使用步骤s42中获取的复杂关系图表示模型生成诊断向量表示e
(d)
、药物向量表示z
(m)
,同时输入时序就诊数据d
t,i
,d
t,i
表示病人i第t次就诊时的诊断multi-hot向量表示,再聚合诊断信息得到病人i第t次就诊时的向量表示,计算方式如式(12)所示:利用参数共享和具有记忆性的门控循环神经网络对时序的就诊数据进行编码,学习与该病人相关的诊断向量表示:然后,根据式(14)计算病人向量表示与药物向量表示z
(m)
之间的相似性分数,并根据此相似性分数检索相关的药物信息:其中,表示与病人i相关的药物向量表示,t表示矩阵的转置操作;最后,通过全连接网络fc2整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:整合与该病人相关的诊断、药物向量表示预测药物推荐的概率:其中,表示在t时刻向病人i推荐不同药物的概率值,其第j个值则表示药物j的推荐概率;
s53、使用步骤s52中的药物推荐概率值计算药物推荐损失如下:其中,是真实的标签值,t
i
是病人i的总就诊次数。7.一种基于异构ehr网络表示学习的药物推荐系统,其特征在于:所述药物推荐系统用于实现权利要求1-6任一项所述的基于异构ehr网络表示学习的药物推荐方法,包括计算机处理器、ehr历史病历数据迭代次数存储单元、图数据处理单元、复杂关系图表示模型训练单元及药物推荐单元。8.根据权利要求7所述的一种基于异构ehr网络表示学习的药物推荐系统,其特征在于:所述ehr历史病历数据存储单元存储步骤s1中构建的ehr历史病历数据集,将其加载到计算机内存中;所述图数据处理单元从计算机内存中取出ehr历史病历数据集,执行步骤s2进行处理得到图结构数据;所述复杂关系图表示模型训练单元使用图结构数据执行步骤s3-s4,训练并获取复杂关系图表示模型,所述药物推荐单元执行步骤s5,得到药物推荐的结果;所有单元中具体的数据处理和计算工作由所述计算机处理器完成。
技术总结
本发明公开了一种基于异构EHR网络表示学习的药物推荐方法及系统,涉及人工智能及数字医疗技术领域,该方法首先根据EHR历史病历数据集构建与病人、药物相关的关系图,通过复杂关系图表示模型进行信息聚合,将异构EHR网络中的局部和全局结构信息融合到医疗实体向量表示中,提高医疗实体向量表示的质量及EHR历史病历数据集的利用率;接着,应用基于RNN的方法编码病人的时序就诊数据实现药物推荐。系统包括计算机处理器、EHR历史病历数据集存储单元、图数据处理单元、复杂关系图表示模型训练单元及药物推荐单元,通过这个系统能够更好地利用医疗实体间的复杂关系及EHR历史病历数据集的时序性,提高药物推荐的准确性和可靠性。提高药物推荐的准确性和可靠性。提高药物推荐的准确性和可靠性。
技术研发人员:白亮 张海君 杜航原
受保护的技术使用者:山西大学
技术研发日:2023.07.12
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/