付子轩 ,周鹏, ,汪鑫 ,任海燕 ,罗静静 ,郭义 王西墨
1.天津大学医学工程与转化医学研究院,天津 300072; 2.天津大学精密仪器与光电子工程学院,天津 300072;3.北京邮电大学计算机学院,北京 100876; 4.天津中医药大学中医学院,天津 301617;5.天津市天中依脉科技开发有限公司,天津 300384; 6.复旦大学工程与应用技术研究院,上海 200433;7.天津市中西医结合医院,天津 300102
中医辨证论治通过望、闻、问、切收集病情资料,四诊合参,以得到准确的病情诊断。使用计算机临床辅助决策支持可以提高临床诊疗的准确性,减轻临床负担,促进中医临床应用规范化。知识图谱将多源多领域数据以语义网络的形式展示其连接关系,从而实现跨领域的建模和查询[1],并允许按需进一步扩展数据而不影响已有的数据结构。其在中医临床、中医基础、中医养生保健方面有着广泛的应用[2-3],包括语义检索[4]、智能问答[5]、决策支持[6]等,同时为中医智能化应用奠定了坚实的基础。
知识图谱通常以实体-关系-实体的三元组形式表达知识,通过已知事实可以推理完成新的事实、新的关系、新的规则,完成属性补全、关系预测、错误检测、问句扩展、语义理解等任务。链接预测作为知识推理过程的一个重要环节,是通过网络中已知节点的信息和连接关系,预测网络中2个节点之间存在连接的可能性,目前是知识图谱中重要的研究方向。袁华兵等[7]提出一种基于多路径的链接预测方法,能够在隐式空间中运用低维表示学习筛选不同路径的显式特征。羊艳玲等[8]提出一种新的归纳推理模型,利用知识图谱中实体之间的语义关系,实现一个关系相关的网络学习不同模式的归纳链接预测。上述的链接预测方法是对知识图谱中语义关系路径的特征研究,以完成知识图谱补全任务,但是无法处理多对多的复杂关系路径的关系预测。
针对这个问题,本研究以中医脏腑辨证为研究背景,通过构建知识图谱并使用基于知识图谱的知识推理算法,提出基于规则+马尔可夫逻辑网(MLN)的多路数据链接预测,以实现输入症状、舌象、面象、脉象等数据推理得到相应证候的功能。通过收集数据完成知识抽取任务,并构建脏腑辨证知识图谱;实现基于改进规则的知识推理,同时完成基于MLN的权重训练,从而根据知识图谱实体连接的权重完成多路链接预测推理任务。
1.1.1 知识图谱架构
知识图谱是以语义网络为核心实现图的知识表示与组织方法[9],其基本架构从逻辑上分为数据层和模式层。模式层是知识图谱的骨干框架,通常为本体库等高度抽象概括的知识;数据层是主体内容,海量知识通过实体-关系-实体的三元组形式存储于图数据库,构成实体关系网络。本研究通过收集中医脏腑辨证数据完成知识抽取任务,并构建基于Neo4j图数据库的知识图谱,以完成中医证候与四诊数据的多路链接预测推理。在中医脏腑辨证的应用中根据症状、舌象、面象、脉象的四诊数据推理得到病例所属的中医证候,以证候推荐度的数值形式体现,数值越高表示知识图谱中该证候与该病历数据的相似度越高。
1.1.2 数据来源
依据《中医临床诊疗指南》[10]、《中医诊断学》[11]、《方剂学》[12],收集脏腑辨证相关的非结构化文本数据。
1.1.3 知识抽取
数据和知识信息是构建知识图谱的数据基础,通过对收集的非结构化文本数据完成实体识别、实体分类、知识去重、实体对齐等知识抽取[13]任务,将处理后的数据存储在不同的Excel表格中,形成统一标准的知识图谱数据源。①实体识别:根据收集到的非结构化文本数据,对中医脏腑辨证相关的实体进行识别,并填充实体的属性(编码、名称、定义、来源等)。②实体分类:实体包括证候、症状、面象、舌象、脉象、脏腑、疗法、方药共8类,并分别向所在实体所在类别填充数据,如对“症状”实体填充数据“腹痛”“恶心”“潮热”等。③知识去重和实体对齐:实体抽取过程中对名字重复或释义相同的实体进行合并去重,如将症状“心烦”和“烦躁不宁”合并为“心烦不宁”。④关系抽取:根据不同的实体属性及实体间的关系,抽取到语义关系包括包含、表现、治疗、用于等11类。
1.2.1 基于传统规则的链接预测推理
基于知识图谱进行链接预测知识推理是使用机器学习方法根据现有的知识自动识别错误补全知识图谱,推断知识图谱中实体之间存在的关系。知识推理主要包括基于规则的知识推理、基于分布式表示的知识推理、基于神经网络的知识推理[14]。基于传统规则的链接预测推理是根据知识图谱实体之间的连接规则或统计特征,实现已有数据的自动识别错误知识并补全知识图谱,完成知识推理任务。
知识图谱中的规则主要是以r(ei,ej)的形式表示实体之间的关系,其中r表示实体ei和ej的连接关系。基于传统规则的知识推理在中医脏腑辨证的推理应用是在式(1)的基础上根据知识图谱的实体关系连接,完成中医证候与疾病、症状、舌象、脉象四诊数据之间的规则推理预测,以实现多路链接预测算法在中医领域的应用。
1.2.2 基于改进规则的知识推理
根据构建的知识图谱的连接规则,与广义贴进度[15]公式完成证候与四诊数据之间的链接预测推理。将症状、面象、舌象、脉象数据相结合,如果证候在知识图谱中与四诊数据全部或部分连接,则根据证候贴进度[16]计算得到该证候的推荐度。
根据式(2)计算的T(M+i,M0)值进行相似性判别。
式中,M+i为知识图谱中第i个证候的四诊数据集合(i=1,2…),M0为当前输入的四诊数据集合,αi为四诊数据匹配的权值系数。经过与相关中医临床专家的讨论,初步设定的权重系数:症状α1=0.65,舌象和面象α2=0.20,脉象α3=0.15。知识图谱对应关系见表1。如果存在同时与四诊数据连接的证候,即则该证候的推荐度为1。否则,则
表1 知识图谱证候与症状关系连接示例
1.2.3 马尔可夫逻辑网训练权重
一阶逻辑知识库可以定义为一系列建立在一组可能世界的集合上的硬规则,如果一个世界违反了一个规则,那么这个规则在这个世界中存在的概率是0。MLN的基本思想是对于这些硬规则有一定放松,如果一个世界违反了一个规则,世界存在的可能性就会降低,但不是不存在。一个世界违法的规则越少,存在的可能性就越大。为每个规则添加特定的权重,用来反映符合规则的可能世界的约束力。如果规则的权重越大,满足规则和不满足规则的两个世界之间的差异就越大。
MLN中,L由1组二元项(Fi,ωi)组成,Fi表示一阶逻辑规则,ωi是表示权重的实数,这组二元项与1组有限常量集C={c1,c2,…,cn}定义了一个马尔可夫网ML,C[17]。①L中任意闭原子都对应马尔可夫网中的一个二值节点0或1,如果闭原子为真,对应的二值节点为1,如果为假,对应的二值节点为0。②L中任意闭规则都对应一个特征值,特征值的权重为规则Fi对应的权重ωi。如果闭规则为真,对应的特征值为1,如果闭规则为假,对应的特征值为0。
马尔可夫网由一个无向图G和一组定义在G上的势函数ϕk组成,表示变量集合X=(X1,X2,…Xn)ϵx的联合分布模型。其中G中的每个团都对应1个表示团的状态的势函数ϕk,马尔科夫网代表的变量集的联合分布表示为式(3)。
x{k}表示马尔可夫网中第k个团中所有变量的取值状态,其中,Z=∑xϵX∏kϕk(x{k})表示归一化因子。如果把每个团的势函数表示为指数函数,指数项为对应团的加权特征量,得到式(4)的概率分布。
式中,ωj表示权重,fj(x)ϵ(0,1)表示特征函数,在马尔可夫网中,最常用的近似推理算法是马尔可夫链蒙特克洛(MCMC)方法的吉布斯采样(Gibbs sampling),即在给定的1个变量的马尔可夫覆盖条件下,使用概率P(x|MB(x))进行采样。MB(x)是变量x的马尔可夫覆盖,在马尔可夫网中表示变量x的所有邻居节点。
在马尔可夫网的2个节点之间存在1条边,表示对应的谓词一起出现在L中1个公式中。例如:包含式(5)的MLN,通过将公式应用到A和B上,产生闭马尔可夫网。
作为MLN的加权特征捕获了有效的统计规律,实际上代表了一个标准的社交网络模型[18],将MLN应用到A和B上得到社交网络模型,见图1。
图1 MLN应用到A和B上的社交网络模型
对于“燥邪犯肺证”证候,根据知识图谱证候与症状的连接关系构建网络模型,实现权重系数训练。权重系数表示症状在该证候下的约束力,如果规则的权重越大,证候和症状之间存在连接的可能性越大。通过MLN完成模型训练,使用吉布斯采样完成权重推理,权重训练结果见表2。
表2 证候-症状权重训练结果
1.2.4 基于规则+MLN的多路链接预测推理模型
根据脏腑辨证知识图谱中的已知规则,本研究将基于改进规则的知识推理与MLN训练权重相结合,提出基于规则+MLN的多路链接预测推理算法,实现中医脏腑辨证推理。推理步骤如下。算法流程见图2。
图2 基于规则+MLN的多路链接预测模型流程
步骤1:输入病例的四诊数据,判断脏腑辨证知识图谱中是否存在与症状、面象、舌象、脉象等数据连接的证候节点。
步骤2:通过自定义的规则,使用证候推荐度(见式2)计算每个证候的推荐度,将推荐度最大的证候作为该病历所属证候。设置权重初始值为症状0.65、舌面象0.20、脉象0.15。
步骤3:定义MLN训练权重的数据data(知识图谱中证候与症状的连接关系)、谓词命名predicate为Syndrome(entity)、 Symptom(entity)、 Syndrome_Symptom(entity,entity),一阶逻辑形式表示的事实formulas为Syndrome_Symptom(x,y)⇒(Syndrome(x)⇔Symptom(y))。模型训练方法的参数选择为MLN的StandardGrammar、FirstOrderLogic方法。
步骤4:模型训练完成后,使用Gibbs sampling进行权重推理。
步骤5:将修正后的权重更新到步骤2的权重中,按照证候推荐度算法计算得到证候推理结果。
通过知识抽取得到的实体和关系构建脏腑辨证知识图谱本体层(见图3),向本体层填充数据构建实体层,实体节点个数共1 263个,关系个数共4 105个。
图3 脏腑辨证知识图谱本体层
知识图谱是进行链接预测知识推理的核心,根据本体层的实体和关系,将收集的数据导入Neo4j图数据库,构建脏腑辨证知识图谱。实体类型及个数见表3,关系类型及个数见表4。
表3 脏腑辨证知识图谱实体类型及个数
通过查询知识图谱实体之间的语义关系路径,可以实现数据的知识查询和可视化显示。如查询“燥邪犯肺证”证候对应的症状关系,结果见图4。在Neo4j图数据库中完成知识图谱的可视化及实体和关系的语义查询,为实现链接预测知识推理提供数据支持。
图4 脏腑辨证知识图谱“燥邪犯肺证”对应症状关系
在IntelliJ IDEA 2018环境下进行基于改进规则的知识推理,在PyCharm 2019环境下使用pracmln库函数进行基于MLN的权重训练,将训练得到的权重结果保存到MySQL数据库中;使用SpringBoot框架开发中医脏腑辨证应用,layui框架开发前端界面。
采用基于规则+MLN的多路链接预测推理模型,输入任意个数四诊数据,输出证候推荐度最高的前5个证候。如输入症状干咳无痰、痰少而黏、难以咳出、胸痛、痰中带血、咯血、口唇舌鼻咽干燥、恶寒发热、少汗、无汗,舌象燥苔、薄苔,脉象浮、数、紧,结果见表5。将燥邪犯肺证作为该病例证候推荐结果。
表5 基于规则+MLN的多路链接预测模型证候推理结果举例
根据四诊数据对中医脏腑辨证的70个证候的相关病例实现证候推理,推荐度最高的证候结果见表6。
表6 脏腑辨证推荐结果
根据证候与四诊数据链接预测推理结果,计算链接预测评价指标受试者工作特征曲线下面积(AUC)、精确度、排序分[19],见表7。
表7 链接预测评价指标结果
AUC:预测算法对每个未知节点计算出来代表存在的可能性的值,未知节点包括测试数据中存在和不存在的节点,将两者分数进行比较。独立比较n次,结果测试集中的节点分数大于不存在的节点分数有n1次,两分数相等有n2次。AUC=(n1+0.5n2)/n。AUC在整体上衡量链接预测算法的准确性,算法经训练后会在知识图谱网络中得到每对节点的相似值,>0.5表示算法优于随机选择算法的程度[19]。
精确度:根据节点对之间出现连接的可能性大小排序,在前L个预测节点中预测准确的比例。如果有m个预测准确,排在前L的节点中有m个在测试集中,定义精确度=m/L。
排序分:考虑了测试集中的节点在最终排序中的位置,H为未知节点的集合,re∈Ep表示测试节点e在预测算法之后节点排序中的排名,测试节点的排序分为通过遍历所有在测试集的节点,计算得到的排序分值越小表明算法的预测效果越好。RS=
基于传统规则的链接预测算法是在知识图谱上比较实体之间的连接关系,无法根据不同的四诊数据输入完成个性化推荐,基于规则+MLN的多路链接预测推理模型可以根据病例的任意多个四诊数据推荐最相符的证候,为中医临床应用提供辅助决策功能。
通过链接预测评价标准比较基于传统规则的链接预测算法和本研究提出的基于规则+MLN的多路链接预测推理算法在脏腑辨证中应用的结果,在70个中医证候推理结果中,多路链接预测推理较基于传统规则的链接预测算法精确度高4.3%,具有更准确的推理结果。
本研究通过构建知识图谱,实现基于知识图谱的链接预测推理。首先自定义规则和权重,使用MLN完成模型训练,通过Gibbs sampling实现症状和证候连接关系的权重推理。根据脏腑辨证的70个证候推荐度结果计算基于规则+MLN的链接预测的推理结果,AUC值为98.6%,精确度为98.6%,排序分为0.297。
该模型在推理功能上能够完成中医脏腑辨证的个性化推荐应用,即根据输入任意多个症状、舌象、面象、脉象等数据,推荐病例所属的证候,并且推理结果的准确度较基于传统规则的链接预测算法精确度高4.3%。表明该模型在脏腑辨证应用中可以完成较高准确度的链接预测任务,能够实现基于知识图谱的知识发现和推理功能,同时可以辅助中医临床进行脏腑辨证诊断,也为中医脏腑辨证的标准化应用开发提供帮助。
目前,对于链接预测完成知识图谱推理的研究是通过自定义的规则学习和权重训练进行知识推理,在之后的研究中,将收集大量的临床客观数据,使用图卷积神经网络R-GCN[20]的知识推理完成进一步的推理预测,为推理获得更多的图结构方面的特征,以完成更准确的证候推理结果。