一种基于认知图谱的全科患者个性化诊疗方案推荐系统转让专利

申请号 : CN202210403938.2

文献号 : CN114496234B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李劲松刘强华田雨周天舒

申请人 : 浙江大学

摘要 :

本发明公开了一种基于认知图谱的全科患者个性化诊疗方案推荐系统,该系统包括数据采集模块、数据预处理模块、数据分析推理模块和推荐结果显示模块,在数据分析推理模块中首先构建全科知识图谱,然后基于患者就诊时的疾病、症状、用药等信息和已构建的全科知识图谱,建立患者个性化的疾病发展轨迹的认知图谱,进而给出患者个性化诊疗方案推荐。本发明使用基于认知图谱的推理方法,使系统能够真正模拟临床医生的诊疗思路,为临床医生提供可解释的、可接受度高的临床辅助决策工具;本发明从症状出发,为患者制定个性化诊疗方案,帮助患者及早发现病因并接受针对性治疗,同时也能够实现危险疾病的早筛,提示患者及时转诊至专科治疗。

权利要求 :

1.一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,包括:

数据采集模块:用于从医疗机构数据库中抽取全科门诊患者就诊时的临床诊疗数据;

数据预处理模块:对数据采集模块获取的数据进行数据预处理操作,包括对门诊电子病历文本数据结构化处理及数据规整;

数据分析推理模块:构建全科知识图谱,基于患者就诊时的疾病、症状、用药信息和已构建的全科知识图谱,利用变体图神经网络和注意力捕捉模块建立患者个性化的疾病发展轨迹的认知图谱,给出患者个性化诊疗方案推荐;

所述数据分析推理模块包括全科知识图谱构建模块和基于认知图谱的推理系统;所述基于认知图谱的推理系统包括两个子系统:子系统1用于基于患者初始临床诊疗数据集在已构建的全科知识图谱上进行疾病发展轨迹探索;子系统2用于基于子系统1探索的患者多条潜在疾病发展轨迹进行患者最终状态精准定位;

所述子系统1包括:对全科知识图谱进行全局向量化;患者个性化的认知图谱最初由患者初始临床诊疗数据集中的若干患者初始数据形成的节点构成,基于认知图谱和全局向量化后的全科知识图谱,迭代捕捉潜在的认知图谱推理节点集;具体为:定义节点访问集合 ,初始节点访问集合 ,S为患者初始临床诊疗数据集,将 中的每个节点均标记为未访问,设置最大迭代步数L,当迭代步数为 时,遍历当前迭代步数的节点访问集合 中的每个未访问节点 ,从全科知识图谱中查询 的一步邻域节点集 ;

通过注意力捕捉模块从全科知识图谱中抽取当前患者潜在疾病发展轨迹,包括:从 对应的邻域节点集 中的所有节点的注意力值集合中采样注意力值最大的k个节点作为当前迭代步数的推理节点集 ,将此次遍历的未访问节点 的标签修改为访问,并将 中的未存在于 的节点纳入 中,生成 ,同时将新纳入的节点的标签设置为未访问;

当 时,从全科知识图谱中查询 中全部节点之间的所有关系并补充到认知图谱中,再进行遍历节点访问集合中未访问节点的操作,更新节点访问集合和认知图谱中的推理节点;

当迭代步数到达L或者认知图谱推理节点集中的推理节点不再增加时,迭代过程结束,得到认知图谱推理节点集;

所述子系统2包括:将认知图谱推理节点集中的节点逐步补充到认知图谱中,定义认知图谱的节点状态更新方式,基于全科知识图谱和认知图谱推理得到患者的疾病和治疗方式;

推荐结果显示模块:对数据分析推理模块的推理过程进行可视化展示,提供患者个性化疾病发展和治疗过程。

2.根据权利要求1所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述数据预处理模块中,采用基于规则和领域词典的方法从门诊电子病历文本数据中提取患者的症状、患病记录及用药记录,实现文本数据结构化;

针对含有数值的检查结果数据类型,仅保留指标结果为阳性的数据;去除定期到医疗机构开药、定期体检以及定期复查的患者数据;去除就诊中医门诊的患者数据。

3.根据权利要求1所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述数据分析推理模块中,所述全科知识图谱采用手动构建和自动构建相结合的方式;通过临床医生完成与数据采集模块抽取的症状、疾病相关知识的全科知识图谱手动构建部分;全科知识图谱自动构建部分涵盖从SemMed DB以及中文ICD‑10中提取到的相关临床术语及关系。

4.根据权利要求1所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述子系统1中,基于变体图神经网络实现全科知识图谱的全局向量化,具体为:全科知识图谱包含一系列三元组  ,每个三元组由一个关系r和两个实体 组成,每个实体作为全科知识图谱中的一个节点,每个三元组代表一条医学知识;

为全科知识图谱的每个节点h定义一个可学习的嵌入向量表示 ,为每个关系r定义一个可学习的嵌入向量表示 ;设置全局向量化过程迭代步数M,第 步迭代时,节点h的状态向量表示为 , ,与节点h相关的医学知识 的向量化表示;

在全科知识图谱中对节点h所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,其中 为全科知识图谱中节点h所在的全部三元组的数量;

节点h的下一步状态向量 的更新方式为 ;

和 为两个隐藏层函数,输入为全部向量的拼接,输出与输入的单个向量维度一致;

将最后一步的输出结果 作为节点h的全局向量表示。

5.根据权利要求4所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述子系统2中,利用变体图神经网络定义认知图谱的节点状态更新方式,基于全科知识图谱和认知图谱推理得到患者的疾病和治疗方式,具体为:将子系统1中得到的认知图谱推理节点集 以及推理节点在全科知识图谱中的全部关系纳入到认知图谱中,认知图谱全部节点集合记作V, ,初始临床诊疗数据集,n为患者初始数据条数, 为第i条患者初始数据;

设置认知图谱节点状态更新所需迭代步数T,认知图谱中的节点 的初始状态向量表示 ;第 步迭代时,三元组 蕴含的医学知识的向量化表示,其中 为患者初始临床诊疗数据

集S中节点的全局向量表示;

在认知图谱中对节点v所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,其中 为认知图谱中节点 所在的全部三元组的数量;

节点 的 步的状态向量 的更新方式为

和 为两个隐藏层函数。

6.根据权利要求5所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述子系统2中,将节点状态更新完成的认知图谱的每个节点的状态向量取代节点在全科知识图谱中的全局向量表示,将全科知识图谱的全部节点用矩阵X表示,矩阵X的维度为J×Q,其中J为全科知识图谱中的节点数目,Q为每个节点的向量维度;采用一个两层的全连接网络作为最终的预测层F:其中,prediction为经过推理后给出的患者最可能的疾病D或者建议的治疗方式P,患者所患的真实疾病或者真实治疗方式记为target,使用sigmoid函数作为激活函数,使用交叉熵损失函数计算prediction和target之间的误差,最后使用随机梯度下降算法传播交叉熵损失函数梯度以完成对基于认知图谱的推理系统的优化。

7.根据权利要求1‑6中任一项所述的一种基于认知图谱的全科患者个性化诊疗方案推荐系统,其特征在于,所述推荐结果显式模块中,利用网页前端将患者已有的症状、疾病以及经过推理后可能需要的治疗方式和可能患有的疾病进行可视化展示,并支持临床医生输入患者就诊时的临床诊疗信息,对患者的诊疗路径和方案进行可视化展示。

说明书 :

一种基于认知图谱的全科患者个性化诊疗方案推荐系统

技术领域

[0001] 本发明属于医疗健康信息技术领域,尤其涉及一种基于认知图谱的全科患者个性化诊疗方案推荐系统。

背景技术

[0002] 在我国,全科医学是一个面向社区与家庭,整合临床医学、预防医学、康复医学以及人文社会学科相关内容于一体的综合性医学专业学科,成立于上世纪九十年代,其范围涵盖了各种年龄、性别、各个器官系统以及各类健康问题。全科医学主要服务领域为基层卫生保健,以家庭、社区为背景,处理常见问题为主,并且大量是处于疾病未分化阶段的健康问题。全科未分化疾病是指医学上无法解释的躯体症状或指疾病早期尚未明确归属于某一系统的疾病。也就是说,就诊全科的患者往往只表现出外显的症状,可能并不知道自己患病的原因以及疾病所属的系统。另外,很多疾病往往在早期发展阶段就表现出一些特异性及非特异性症状,比如腹痛几乎会影响所有的腹部癌症,包括结肠癌、前列腺癌、膀胱癌、肾癌,而2020年Lancet Oncology上的一篇文章也指出很多病人的某些症状在癌症的I‑III期都已经表现出来。综上,科学地处理未分化疾病,使疾病在早期能够得到诊治,是全科医生应该学会和掌握的技能。然而,虽然我国的全科医生培养体系已经初步形成,培养模式也已基本确立,队伍人数也在不断增加,但是总体上全科医生数量仍然不足、质量有待提高。针对上述情况,构建一个面对全科未分化疾病的患者个性化诊疗方案推荐系统可以帮助全科医生实现更精准的诊疗和及早的转诊,优化诊疗流程,同时可能提高癌症诊断的及时性和改善癌症预后。
[0003] 目前以从症状出发的、针对全科患者的个性化诊疗方案推荐系统或者辅助诊断系统很少,该领域还处于发展阶段,现有类似技术方案存在的缺点有:
[0004] 1. 现有技术方案很少有以症状为出发点对患者可能患有的不同种类或者不同系统的疾病进行分析的,大多数集中在已经确定的一种或者一类疾病,比如糖尿病、自闭症、传染病等,但在全科门诊中,医生面临的往往是未分化疾病,表现出相同症状的患者最后可能需要转诊到不同的科室进行后续治疗,因此当前的技术方案无法很好地解决目前全科领域遇到的问题;
[0005] 2. 现有技术方案主要用在患者和医生面诊之前的导诊或者预问诊过程以及患者在家中的自我监测,未嵌入到与医生的实时交流活动中,未能真正地应用到临床场景中;
[0006] 3. 现有的技术方案基本采用数据驱动的方法,抽取大量符合条件的患者队列,然后基于患者确诊前的临床数据,使用传统的机器学习或者深度学习的方法进行分析,辅助医生进行临床决策支持,整个过程没有融入临床指南、专家共识等,缺乏知识驱动;
[0007] 4. 现有技术方案往往是基于某一人群的大数据进行模型训练和数据分析,更换人群队列后模型效果会下降很多,即模型的泛化性能差,同时深度学习存在“黑箱”问题,模型不具备可解释性或者可解释性较差。

发明内容

[0008] 本发明的目的在于针对现有技术的不足,提供一种基于认知图谱的全科患者个性化诊疗方案推荐系统,该系统具备较高的可扩展性、可解释性和泛化性,可解决如下技术问题:
[0009] 1. 本技术方案针对全科未分化疾病问题,选取若干常见临床症状,这些症状能够辐射到临床的不同种类疾病中,以症状为出发点,为患者的诊疗方案提供个性化支持;
[0010] 2. 本技术方案可以独立地为患者的整个就诊过程提供临床决策支持,也可以与医生进行实时互动,医生可以随时在推理过程中加入新的诊断或者治疗建议,本发明提供的系统与医生一同为患者提供更加精准的决策支持;
[0011] 3. 本技术方案采用数据驱动和知识驱动相结合的方式,首先使用半自动的方法构建全科知识图谱,然后根据常见的临床症状,选取符合条件的患者队列,最后基于认知图谱的思想,利用全科知识图谱和选取的数据集构建患者个性化诊疗方案推荐系统;
[0012] 4. 本技术方案模拟人类解决问题的推理思路,使用基于认知图谱的推理方法,不限制输入变量的数目,具备很好的可扩展性,实现结合领域知识进行推理的模式,具备较高的泛化性能,同时可以将推理过程进行可视化展示,具备很强的可解释性。
[0013] 本发明的目的是通过以下技术方案实现的:一种基于认知图谱的全科患者个性化诊疗方案推荐系统,包括:
[0014] 数据采集模块:用于从医疗机构数据库中抽取全科门诊患者就诊时的临床诊疗数据;
[0015] 数据预处理模块:对数据采集模块获取的数据进行数据预处理操作,包括对门诊电子病历文本数据结构化处理及数据规整;
[0016] 数据分析推理模块:构建全科知识图谱,基于患者就诊时的疾病、症状、用药信息和已构建的全科知识图谱,利用变体图神经网络和注意力捕捉模块建立患者个性化的疾病发展轨迹的认知图谱,给出患者个性化诊疗方案推荐;
[0017] 推荐结果显示模块:对数据分析推理模块的推理过程进行可视化展示,提供患者个性化疾病发展和治疗过程。
[0018] 进一步地,所述数据预处理模块中,采用基于规则和领域词典的方法从门诊电子病历文本数据中提取患者的症状、患病记录及用药记录,实现文本数据结构化;
[0019] 针对含有数值的检查结果数据类型,仅保留指标结果为阳性的数据;去除定期到医疗机构开药、定期体检以及定期复查的患者数据;去除就诊中医门诊的患者数据。
[0020] 进一步地,所述数据分析推理模块中,所述全科知识图谱采用手动构建和自动构建相结合的方式;通过临床医生完成与数据采集模块抽取的症状、疾病相关知识的全科知识图谱手动构建部分;全科知识图谱自动构建部分涵盖从SemMed DB以及中文ICD‑10中提取到的相关临床术语及关系。
[0021] 进一步地,所述数据分析推理模块包括全科知识图谱构建模块和基于认知图谱的推理系统;所述基于认知图谱的推理系统包括两个子系统:子系统1用于基于患者初始临床诊疗数据集在已构建的全科知识图谱上进行疾病发展轨迹探索;子系统2用于基于子系统1探索的患者多条潜在疾病发展轨迹进行患者最终状态精准定位。
[0022] 进一步地,所述子系统1包括:对全科知识图谱进行全局向量化;患者个性化的认知图谱最初由患者初始临床诊疗数据集中的若干患者初始数据形成的节点构成,基于认知图谱和全局向量化后的全科知识图谱,迭代捕捉潜在的认知图谱推理节点集;
[0023] 所述子系统2包括:将认知图谱推理节点集中的节点逐步补充到认知图谱中,定义认知图谱的节点状态更新方式,基于全科知识图谱和认知图谱推理得到患者的疾病和治疗方式。
[0024] 进一步地,所述子系统1中,基于变体图神经网络实现全科知识图谱的全局向量化,具体为:
[0025] 全科知识图谱包含一系列三元组 ,每个三元组由一个关系r和两个实体组成,每个实体作为全科知识图谱中的一个节点,每个三元组代表一条医学知识;
[0026] 为全科知识图谱的每个节点h定义一个可学习的嵌入向量表示 ,为每个关系r定义一个可学习的嵌入向量表示 ;设置全局向量化过程迭代步数M,第 步迭代时,节点h的状态向量表示为 , ,与节点h相关的医学知识 的向量化表示;
[0027] 在全科知识图谱中对节点h所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,其中 为全科知识图谱中节点h所在的全部三元组的数量;
[0028] 节点h的下一步状态向量 的更新方式为 ;
[0029] 和 为两个隐藏层函数,输入为全部向量的拼接,输出与输入的单个向量维度一致;
[0030] 将最后一步的输出结果 作为节点h的全局向量表示。
[0031] 进一步地,所述子系统1中,通过注意力捕捉模块,基于初始临床诊疗数据集从全局向量化后的全科知识图谱中迭代捕捉潜在的认知图谱推理节点集,具体为:
[0032] 定义节点访问集合 ,初始节点访问集合 ,S为患者初始临床诊疗数据集,将 中的每个节点均标记为未访问,设置最大迭代步数L,当迭代步数为 时,遍历当前迭代步数的节点访问集合 中的每个未访问节点 ,从全科知识图谱中查询的一步邻域节点集 ;
[0033] 通过注意力捕捉模块从全科知识图谱中抽取当前患者潜在疾病发展轨迹,包括:从 对应的邻域节点集 中的所有节点的注意力值集合中采样注意力值最大的k个节点作为当前迭代步数的推理节点集 ,将此次遍历的未访问节点 的标签修改为访问,并将中的未存在于 的节点纳入 中,生成 ,同时将新纳入的节点的标签设置为未访问;
[0034] 当 时,从全科知识图谱中查询 中全部节点之间的所有关系并补充到认知图谱中,再进行遍历节点访问集合中未访问节点的操作,更新节点访问集合和认知图谱中的推理节点;
[0035] 当迭代步数到达L或者认知图谱推理节点集中的推理节点不再增加时,迭代过程结束,得到认知图谱推理节点集。
[0036] 进一步地,所述子系统2中,利用变体图神经网络定义认知图谱的节点状态更新方式,基于全科知识图谱和认知图谱推理得到患者的疾病和治疗方式,具体为:
[0037] 将子系统1中得到的认知图谱推理节点集 以及推理节点在全科知识图谱中的全部关系纳入到认知图谱中,认知图谱全部节点集合记作V, ,初始临床诊疗数据集 ,n为患者初始数据条数, 为第i条患者初始数据;
[0038] 设置认知图谱节点状态更新所需迭代步数T,认知图谱中的节点 的初始状态向量表示 ;第 步迭代时,三元组 蕴含的医学知识的向量化表示,其中 为患者初始临床诊疗数据
集S中节点的全局向量表示;
[0039] 在认知图谱中对节点v所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,其中 为认知图谱中节点 所在的全部三元组的数量;
[0040] 节点 的 步的状态向量 的更新方式为;
[0041] 和 为两个隐藏层函数。
[0042] 进一步地,所述子系统2中,将节点状态更新完成的认知图谱的每个节点的状态向量取代节点在全科知识图谱中的全局向量表示,将全科知识图谱的全部节点用矩阵X表示,矩阵X的维度为J×Q,其中J为全科知识图谱中的节点数目,Q为每个节点的向量维度;采用一个两层的全连接网络作为最终的预测层F:
[0043]
[0044] 其中,prediction为经过推理后给出的患者最可能的疾病D或者建议的治疗方式P,患者所患的真实疾病或者真实治疗方式记为target,使用sigmoid函数作为激活函数,使用交叉熵损失函数计算prediction和target之间的误差,最后使用随机梯度下降算法传播交叉熵损失函数梯度以完成对基于认知图谱的推理系统的优化。
[0045] 进一步地,所述推荐结果显式模块中,利用网页前端将患者已有的症状、疾病以及经过推理后可能需要的治疗方式和可能患有的疾病进行可视化展示,并支持临床医生输入患者就诊时的临床诊疗信息,对患者的诊疗路径和方案进行可视化展示。
[0046] 本发明的有益效果是:
[0047] 1. 本技术方案参考人类的认知过程,使用基于认知图谱的推理方法,实现从感知智能向认知智能的跨越,使系统能够真正模拟临床医生的诊疗思路,为临床医生提供可解释的、可接受度高的临床辅助决策工具;
[0048] 2. 本技术方案提供的系统可以在临床场景中独立使用,为医生和患者提供诊疗支持,也支持医生与系统进行实时互动,及时为系统补充更加全面的患者信息,从而为患者提供更加精准的诊疗建议;
[0049] 3. 针对全科未分化疾病问题,本技术方案从症状出发,为患者制定个性化的诊疗方案,帮助患者及早发现病因并接受针对性治疗,同时也能够实现危险疾病的早筛,提示患者及时转诊至专科治疗。

附图说明

[0050] 图1为本发明实施例提供的基于认知图谱的全科患者个性化诊疗方案推荐系统结构图;
[0051] 图2为本发明实施例提供的构建全科知识图谱示意图;
[0052] 图3为本发明实施例提供的构建患者个性化认知图谱示意图;
[0053] 图4为本发明实施例提供的推荐诊疗路径及结果示意图。

具体实施方式

[0054] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
[0055] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0056] 本发明实施例提供一种基于认知图谱的全科患者个性化诊疗方案推荐系统,如图1所示,该系统包括数据采集模块、数据预处理模块、数据分析推理模块和推荐结果显示模块,具体地:
[0057] 数据采集模块:用于从医疗机构数据库中抽取全科门诊患者就诊时的临床诊疗数据。
[0058] 数据预处理模块:对数据采集模块获取的数据进行预处理操作,主要包括对门诊电子病历文本数据结构化处理、数据规整等操作。
[0059] 数据分析推理模块:这一部分是该系统的核心,首先构建全科知识图谱,然后基于患者就诊时的疾病、症状、用药等信息和已构建的全科知识图谱,利用设计的变体图神经网络和注意力捕捉模块建立患者个性化的疾病发展轨迹的认知图谱,进而给出患者的个性化诊疗方案推荐。
[0060] 推荐结果显示模块:主要对数据分析推理模块的推理过程进行可视化展示,提供清晰的患者个性化疾病发展和治疗过程。
[0061] 下述说明进一步给出了符合本申请要求的基于认知图谱的全科患者个性化诊疗方案推荐系统各模块实现的部分实施例。
[0062] 一、数据采集模块
[0063] 本实施例中选取临床上常见的22种症状,分别是恶心、呕吐、胸痛、腰痛、腹痛、便血、吞咽困难、消化道出血、腹胀、大便失禁、便秘、腹泻、尿失禁、夜尿、消瘦、体重减轻、尿频、尿急、烧心、黑便、排尿困难和肉眼血尿,采用SQL命令从医疗机构数据库中抽取因上述症状到医疗机构门诊就诊的患者全部临床诊疗数据,包括患者的门诊电子病历、个人统计学数据、诊断数据、用药数据、操作数据、检查结果数据等。
[0064] 二、数据预处理模块
[0065] 患者就诊的主诉、既往病史、现病史、家族史等信息均以文本形式存储于门诊电子病历中,采用基于规则和领域词典的方法从文本数据中提取患者的症状、患病记录、用药记录等信息,从而达到文本数据结构化的目的。
[0066] 针对含有数值的检查结果数据类型,比如血常规、尿常规所涵盖的各种检查指标,只保留指标结果为阳性的数据。由于本技术方案采用认知图谱的方法,每条数据的输入变量数目无需固定,所以不涉及缺失数据插补操作。
[0067] 一条可利用的数据定义为以患者某次就诊时间为起点,一个自然日内的所有临床诊疗数据的集合。由于本发明的主要目的是基于全科知识图谱,以患者的初始疾病、症状为起点,推理患者的疾病走向并给出治疗建议,因此去除数据采集模块中抽取到的定期到医疗机构开药、定期体检以及定期复查的患者数据,另外后续构建的全科知识图谱内容以西医为主,因此也要去除就诊中医门诊的患者数据。
[0068] 三、数据分析推理模块
[0069] 数据分析推理模块包括全科知识图谱构建模块和基于认知图谱的推理系统,具体地:
[0070] 3.1全科知识图谱构建模块
[0071] 本发明提出的技术方案以领域知识图谱为基础,因此数据训练前首先需要构建全科知识图谱。全科知识图谱的构建过程采用手动构建和自动构建相结合的方式,如图2所示。
[0072] (a)本实施例中,临时聘请10名临床医生,完成与数据采集模块抽取的症状、疾病相关知识的全科知识图谱的手动构建部分。具体来说,医生根据数据采集模块抽取的症状和疾病,收集相关临床指南、专家共识、专业教材以及uptodate网站上的内容等,并对所收集文本内容中的临床实体和关系进行手动提取。为了使提取结构形式标准化,需要手动设计一份文本提取模板。
[0073] (b)知识图谱自动构建部分涵盖从SemMed DB以及中文ICD‑10中提取到的相关临床术语及关系。SemMed DB涵盖了从医学文献数据库PubMed中提取到的丰富的英文三元组关系,需要进一步调用翻译软件API将其翻译为中文形式。中文ICD‑10中涵盖了全部疾病的分类关系和代码,提取相关疾病分类可以对构建的全科知识图谱的层次结构进行充分的补充。
[0074] 3.2基于认知图谱的推理系统
[0075] 认知图谱是实现认知智能的一种手段,认知图谱技术模拟人类解决问题的思路,参考了脑认知科学领域提出的双系统理论。该双系统理论认为人的认知过程包括两个系统:系统1是基于直觉的、无知觉的思考系统,是感知的过程,系统2是显式的,有逻辑的,需要意识控制,是人类高级智能的体现。本发明提出的基于认知图谱的推理系统,包括两个子系统,子系统1是基于患者初始临床诊疗数据在已构建的全科知识图谱上进行疾病发展轨迹探索的过程,而子系统2是基于子系统1探索的患者多条潜在疾病发展轨迹进行患者最终状态精准定位的过程。
[0076] 如图3所示,已构建的全科知识图谱记作G,其包含一系列的三元组,每个三元组代表一条医学知识,每个三元组由一个关系 和两个
实体 组成,其中关系r由头实体h指向尾实体t,  为全科知识图谱G的所有实体集合,三元组中的每个实体作为全科知识图谱G中的一个节点,R为全科知识图谱G的所有关系集合。实体类型包括:症状、疾病、检查手段、治疗方式、用药、检查结果等。这些三元组包含了症状与疾病、疾病与疾病、疾病与检查手段、疾病与治疗方式等实体类型之间的关系。本技术方案的任务是基于患者初始临床诊疗数据集S,推理得到患者的疾病D和治疗方式P,并给出中间的推理过程,其中初始临床诊疗数据集 ,该初始临床诊疗
数据集按照患者初始就诊时的每条症状、病史、用药数据产生的时间顺序进行排序,n为患者初始数据条数, 为第i条患者初始数据。
[0077] 患者个性化认知图谱 最初仅由患者初始临床诊疗数据集S中的n条患者初始数据形成的n个节点组成。
[0078] 子系统1首先对全科知识图谱进行全局向量化,实现图谱全局节点的语义互通,然后基于认知图谱 和全局向量化后的全科知识图谱,迭代捕捉潜在的认知图谱推理节点集,认知图谱推理节点集 中的节点可能是患者的疾病、应做的检查或者应服用的药物等;
[0079] 子系统2将认知图谱推理节点集 中的节点逐步补充到认知图谱 中,然后定义认知图谱的节点状态更新方式,最终基于全科知识图谱和认知图谱推理得到患者的疾病D和治疗方式P。
[0080] 在一个实施例中,子系统1的实现具体为:主要基于图神经网络(Graph Neural Networks,GNN)的变体网络即变体图神经网络实现全科知识图谱的全局向量化,然后模仿传统注意力思想,设计一个患者潜在疾病发展轨迹的注意力捕捉模块,该模块基于初始临床诊疗数据集 从全局向量化后的全科知识图谱中迭代捕捉认知图谱推理过程中所需的推理节点。
[0081] 首先介绍全科知识图谱的全局向量化过程。针对全科知识图谱的每个节点h,定义一个可学习的嵌入向量表示 ,针对每个关系r,也定义一个可学习的嵌入向量表示 。全科知识图谱的全局向量化过程需要进行M步迭代(M人为设定,本实施例中设定M  = 3),第步迭代时,节点状态向量表示为 ,而 。每一个三元组 代表一条医学知识,在第m步迭代时可被向量化为 。在全科知识图谱的全局向量化过程中,与节点h相关的医学知识 的向量化表示如下:
[0082]
[0083] 其中 , 分别为第m步迭代时节点h,t的节点状态向量;该医学知识的向量化表示与该医学知识中的头、尾实体和关系的向量表示有关;
[0084] 节点h在迭代过程中的状态更新与其本身的向量表示和其所在的全部三元组即邻域的向量表示均有关系,在全科知识图谱中对节点h所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,可表示为:
[0085]
[0086] 其中 为全科知识图谱中节点h所在的全部三元组的数量; 通过将相关三元组的向量信息进行聚合再除以邻域数目均方根来计算;
[0087] 最终节点h的下一步状态向量 的更新方式为:
[0088]
[0089] 与节点初始状态向量 、当前迭代步数的状态向量 以及当前节点和其邻域节点组成的三元组聚合向量 有关,这也表达了邻域医学知识向当前节点传递信息的过程;
[0090] 上述的 、 分别表示两个隐藏层函数,输入为全部向量的拼接,输出与输入的单个向量维度一致。另外采用残差连接的方式进行节点h的状态向量更新,以改善随着m的增加可能出现信息丢失的情况,最终选择最后一步的输出结果 作为节点h的全局向量表示输入到接下来的步骤中。
[0091] 下面介绍从全局向量化后的全科知识图谱中捕捉认知图谱推理过程中所需推理节点的方法。
[0092] 认知图谱 最初由患者初始临床诊疗数据集 构成,定义一个节点访问集合 ,初始节点访问集合 ,并将 中的每个节点都标记为未
访问no‑visited,设置最大迭代步数为L(L人为设定,本实施例中设定L = 6)。当迭代步数为 时,遍历当前迭代步数的节点访问集合 中的每个未访问no‑visited节点,从全科知识图谱中查询 的一步(one‑step)邻域节点集 。虽然我们只关注的一步邻域节点,但随着迭代步数的增加,所遍历节点的邻域节点集会逐渐膨胀,为了减少计算量,需要控制遍历节点的数量。
[0093] 本实施例提出一个注意力捕捉模块,用于从全科知识图谱中抽取当前患者潜在疾病发展轨迹,该过程可以控制认知图谱的扩展速度,该注意力捕捉模块的实施过程如下:从中采样注意力值最大的k个节点作为当前迭代步数的推理节点集 ,其中 为 对应的邻域节点集 中的所有节点的注意力值集合,将此次遍历的未访问no‑visited节点 的标签均改为访问visited,并将 中的未存在于 的节点纳入 中,生成 ,同时将这些新纳入的节点的标签设置为未访问no‑visited。另外,当 时,首先需要从全科知识图谱中查询 中全部节点之间的所有关系并补充到认知图谱 中,再进行上述遍历节点访问集合中未访问节点的操作,更新节点访问集合和认知图谱中的推理节点。当迭代步数到达L或者认知图谱推理节点集中的推理节点不再增加时,迭代过程结束,将得到的认知图谱推理节点集记作 。
[0094] 在一个实施例中,子系统2的实现具体为:利用图神经网络GNN的变体网络定义认知图谱的节点状态更新方式,并且最终基于全科知识图谱和认知图谱推理得到患者的疾病和治疗方式 。
[0095] 首先将子系统1中最终得到的认知图谱推理节点集 以及这些推理节点在全科知识图谱G中的全部关系纳入到认知图谱 中,认知图谱全部节点集合记作V,其中, ,然后定义认知图谱节点状态更新所需迭代步数T(T人为设定,本实施例中设定T = 6)。认知图谱 中的节点 的初始向量表示 。
认知图谱中的节点v在第 步的节点状态的更新与其在第0步和第t步的节点状
态以及其在认知图谱中所在的三元组的向量表示有关。迭代步数为t时,三元组 蕴含的医学知识可被向量化为 ,其计算方式表示如下:
[0096]
[0097] 其中 代表了患者初始临床诊疗数据集S中节点的全局向量表示,由子系统1给出,由于S中的节点所代表的症状、疾病或者用药等信息是患者真实产生的临床诊疗数据,是推理的全部起点,所以将其纳入每一步更新的计算中;
[0098] 在认知图谱中对节点v所在的全部三元组包含的医学知识进行聚合,得到三元组聚合向量 ,可表示为:
[0099]
[0100] 其中 为认知图谱中节点 所在的全部三元组的数量;与子系统1类似,通过将相关三元组的向量信息进行聚合再除以邻域数目均方根来计算;
[0101] 节点 的 步的状态向量更新方式如下:
[0102]
[0103] 同样与节点 的第0步状态向量 、节点 的第t步状态向量 、节点 与其在认知图谱的邻域节点组成的所有三元组聚合向量 以及患者初始临床诊疗数据集S中节点的全局向量表示有关。
[0104] 上述 、 同样为两个隐藏层函数,其参数可在训练过程中学习得到,节点状态更新时同样采用了残差连接的形式。
[0105] 由于认知图谱 的所有节点都来自于全科知识图谱G,使用此时更新完成后的认知图谱 的每一个节点的状态向量取代其在全科知识图谱G中的全局向量表示,这样整个全科知识图谱G的全部节点可以用一个矩阵X表示,矩阵X的维度为J×Q,其中J为全科知识图谱中的节点数目,Q为每个节点的向量维度。采用一个两层的全连接网络作为最终的预测层F:
[0106]
[0107] 其中,prediction为经过推理后给出的患者最可能的疾病D或者建议的治疗方式P,而患者所患的真实疾病或者真实治疗方式为target,使用sigmoid函数作为激活函数,使用交叉熵损失函数计算预测值prediction和真实值target之间的误差,最后使用随机梯度下降(stochastic gradient descent  , SGD)算法传播交叉熵损失函数梯度以完成对基于认知图谱的推理系统的优化。
[0108] 四、推荐结果显式模块
[0109] 基于认知图谱的全科患者个性化诊疗方案推荐系统的最大优点是具备可解释性,能够模拟临床医生的诊疗思路,给出清晰的推理过程,因此推荐结果显式模块主要利用网页前端将患者已有的症状、疾病以及经过推理后可能需要的治疗方式和可能患有的疾病进行可视化展示。网页支持临床医生输入患者就诊时的临床诊疗信息,点击分析后,可对患者的诊疗路径和方案进行可视化展示。如图4所示为一实施例的推荐诊疗路径及结果,图4中,虚线框中代表患者就诊时的临床诊疗信息,该患者有高血压、消化性溃疡、胃炎等病史,一直服用胃药多潘立酮,最近出现食欲下降的症状,遂来就医,后面展示了系统提示应做的检查,并逐步排除了肠易激综合征、结直肠癌和胃良性肿瘤等疾病,最终给出患者为早期胃癌,需要做胃镜手术切除的诊断和治疗建议。
[0110] 以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。