基于知识图谱的中药推荐方法

李春雨 ,  李燕 ,  刘悦悦 ,  刘雪丽

云南民族大学学报(自然科学版) ›› 2025, Vol. 34 ›› Issue (06) : 731 -737.

PDF (2025KB)
云南民族大学学报(自然科学版) ›› 2025, Vol. 34 ›› Issue (06) : 731 -737. DOI: 10.3969/j.issn.1672-8513.2025.06.012
信息与计算机科学

基于知识图谱的中药推荐方法

作者信息 +

Traditional Chinese medicine recommendation method based on knowledge graph

Author information +
文章历史 +
PDF (2073K)

摘要

为解决中药推荐问题,在推荐中引入更多的中医药知识和方法,提出基于知识图谱的中药推荐模型.首先构建症状 - 中药知识图谱,将其应用于预训练阶段,更好地保留了图结构信息,其次,根据在处方中的共现频次构建症状 - 症状图和中药 - 中药图,挖掘同质节点之间隐含的规律,获得更全面的节点嵌入.在模型的预测层,将多个症状的集合看作一个整体,利用多层感知机提取症状集的特征,更好地表示多个症状之间的联系.实验结果表明,该模型在3种评价指标上均取得较好效果.

Abstract

To solve the problem of traditional Chinese medicine recommendation, a knowledge graph - based recommendation model is proposed by incorporating more traditional Chinese medicine knowledge and methods into the process. First, a symptom - traditional Chinese medicine knowledge graph was constructed and applied in the pre - training stage to better preserve graph structure information. Then, based on the co - occurrence frequency in prescriptions, a symptom - symptom graph and a traditional Chinese medicine - traditional Chinese medicine graph were built to mine hidden rules among homogeneous nodes and obtain more comprehensive node embeddings. Furthermore, in the prediction layer of the model, a set of multiple symptoms is regarded as a whole, and a multi - layer perception is used to extract features from the symptom set, thereby better representing relationships among symptoms. Experimental results show that the model achieves favorable performance across three evaluation metrics.

Graphical abstract

关键词

中药推荐 / 辅助诊疗 / 图卷积网络 / 知识图谱

Key words

traditional Chinese medicine recommendation / auxiliary diagnosis and treatment / graph convolutional network / knowledge graph

引用本文

引用格式 ▾
李春雨,李燕,刘悦悦,刘雪丽. 基于知识图谱的中药推荐方法[J]. 云南民族大学学报(自然科学版), 2025, 34(06): 731-737 DOI:10.3969/j.issn.1672-8513.2025.06.012

登录浏览全文

4963

注册一个新账户 忘记密码

中医药学是历代先辈经验的积累,也是传统文化的一部分,是国家的宝贵财富.其中,处方更是中医医师临床经验的结晶,是中医治疗疾病的重要依据.然而,中医文化博大精深,各种辨证纲领分界模糊,且存在着不同的流派和诊疗方法1,导致学习成本高,效率低,水平参差不齐,开方的准确性严重依赖医生的诊断经验,迫切地需要新技术辅助医生进行临床决策,协助传承中医文化,推动中医药现代化.人工智能技术的发展,为中药推荐提供了新方向.
推荐系统是解决信息过载问题的有效途径,能够从海量信息中筛选并识别出用户感兴趣的部分,满足用户的需求.随着深度学习技术的发展,许多研究人员将其与推荐系统结合,应用于中药推荐领域,并取得了不错的成果.Ruan等2提出一种基于异质信息网络的深度自编码器模型AMNE,将中药处方信息编码到一个低维向量空间中,采用聚类和链接预测的方法检测中药与症状之间的关系.Jin等3采用图卷积网络,结合多层感知机在融合建模方面的优势和图卷积网络在关系数据学习方面的优势,应用于中药推荐.
然而,传统的推荐系统存在数据稀疏等问题,且上述方法没有很好地利用中药属性辅助推荐,没有挖掘出症、药之间的隐含规律.知识图谱是一种结构化表示,以节点表示实体,用边表示关系4.在图混合结构中,知识图谱这种用一个或多个链接属性连接2个实体的方法能大大提升推荐的准确率,解决上述问题.Yang等5的研究虽然构建了知识图谱,但只是将其中的实体转化为独热编码,与节点嵌入简单相加,没有很好地利用知识图谱中蕴含的内容,忽略了图结构带来的信息.

1 模型构建

1.1 数据来源

本文所用到的数据来自公开发表的数据集,Yao等6从《中医方剂大辞典》7中提取了33 765张中医处方,经过初步的预处理后,保留了1 195个节点构建相应的多图网络,其中症状390种,中药805种.训练集包含20 259条数据,测试集及验证集分别包含6 753条数据.中药的药性药味等信息来自《中华人民共和国药典》8,Xu等9将其整合为结构化数据.

1.2 知识图谱构建

首先根据处方,构建结构为(中药,处方,症状)的三元组,形成知识图谱.

定义m个症状集合为S = (s1s2,…,sm)和n个中药集合H = (h1h2,…,hn ).每一个处方由一个症状集合和中药集合组成,即p = {(s1s2,…,si),(h1h2,…,hj)},则构建的知识图谱形式为(siphj ).

以补心汤为例,症状集合为S = (心气不足,惊悸,烦闷,短气,咽喉痛,呕吐),中药集合为H = (紫石英,紫苏,茯苓,人参,当归,茯神,远志,甘草,赤小豆,大枣,麦门冬),以处方名“补心汤”为关系,构建的知识图谱如图1所示.

1.3 模型结构

将知识图谱应用于预训练阶段,在保留图结构的同时,递归传播节点的嵌入,显式建模其中的高阶关系.另外,构建了中药 - 中药图及症状 - 症状图,以卷积神经网络获得节点嵌入,挖掘症药之间的隐含规律,有利于探索处方中症状与中药的多元关系.融合多图的向量表示,既缓解了数据稀疏问题,又更好地处理了噪声,最大程度上保留了在每一个图中学习到的特征,从而帮助提升中药推荐的准确性,对中医诊疗在人工智能领域的发展有着重要的参考价值.模型结构如图2所示.

1.3.1 知识图谱与向量初始化

在以往的多图中药推荐模型中,常常选择将知识图谱与构建的其他图用卷积神经网络分别进行训练,这样通过对知识图谱进行训练,将得到症状的表示1和中药的表示1,通过对其他图进行训练,会得到症状的表示2和中药的表示2,然后进行相加操作,得到最终的症状表示和最终的中药表示.

但在消融实验中发现知识图谱的训练结果对推荐效果并没有明显的改善,反而增加了训练成本,甚至有时会降低训练效果.经过查阅文献,这种情况可能是因为知识图谱具备一定的稀疏性10,而且卷积神经网络引入了当前实体和其他实体之间无关的连接,增加了大量的噪声,使得最终的向量表示偏离了它们的真实特征.

为此,提出将知识图谱单独进行训练,利用卷积神经网络获得实体的向量表示,该步骤作为预训练,其结果将传入到同质图训练模型中进行下一步的训练.这样既降低了向量随机初始化带来的额外开销,避免了将稀疏向量传入卷积神经网络之中,又能对知识图谱的训练结果做进一步的修正,使其更好地提升推荐效果.

具体来说,预训练部分分为嵌入传播层和效果评估层.使用Xavier初始化向量,这是一种常见的权重初始化方法.这种方式使得每一层的输出方差接近其输入方差,每层参数更新幅度相差不大,能加速收敛,并更好地避免梯度消失和梯度爆炸问题.在传播模型中,对相邻节点变换后的特征向量进行归一化求和,这种变换是基于关系的类型而发生的.消息传递遵循规则如式(1)所示.

ek(l+1)=σrrsetiNkr1NkrWr(l)eil+W0lek(l).

其中,ek(l)为节点 ek 在第l层的向量表示,r为关系,r_set为关系集合,Nkr节点 ek 在关系r时的邻居节点集合,Wr(l)为权重矩阵.为了更好地保留节点的特征,除了来自邻居节点的信息,还添加了自连接.

括号里的内容表示信息传递的过程.汇聚了来自邻居的信息之后,将执行σ操作,也就是对这些信息取平均,合并,并选用ReLU激活函数.ReLU是当前深度学习模型中较为流行的激活函数,相比于其他激活函数,具有稀疏激活性,能更好地学习到相对稀疏的特征,起到特征自动解耦的作用,而且计算速度和收敛速度也更快.这样就获得了蕴含关系信息的节点嵌入.

预训练阶段的GCN层数为2,输入向量维度为128,第二层输入向量维度为256,输出向量维度为64,其他参数与主模型相同,将在实验部分列出.为了直观地了解到训练获得的节点嵌入的质量,采用了链接预测的方法和相应评估指标辅助判断,并进行了多次尝试.但预训练的目的是训练出更适合中药推荐任务的节点嵌入,而不是更适合链接预测的节点嵌入,此处不再赘述.

1.3.2 多图构建

除了知识图谱,基于共现情况还构建了中药 - 中药图和症状 - 症状图.具体来说,以中药 - 中药图为例,如果在同一个处方中出现过,则计数为1,最后,设定一个阈值,超过阈值的边为1,即两节点之间存在边连接,否则为0.如式(2)所示.

HHh1,h2,HHh2,h1=1,(h1,h2)th;0,其他.

其中,HH表示中药 - 中药图,th 为中药共现频次阈值,为50,症状共现频次阈值为5.

1.3.3 嵌入传播

在本层中,通过图卷积神经网络,递归传播邻居节点的嵌入,更新自身节点.

在同质图中,应用多层图卷积网络聚合邻居节点的向量表示,生成症状和中药的嵌入.图卷积网络11是一个多层的图卷积神经网络,每一个卷积层仅处理一阶邻域信息,通过叠加若干卷积层可以实现多阶邻域的信息传递,可以对节点之间的依赖关系进行建模,把实际问题转化为图中节点之间的连接和消息传播问题,更好地处理图结构数据.多层网络能够获得更加丰富的信息,但也引入了更多的噪声,因此利用多层感知机对不同层次的信息进行融合,以获得信息丰富且噪声较少的节点特征表示.

考虑到中药节点和症状节点是两种不同的节点,为了进一步对二者进行区分,捕捉症状和中药之间的内在差异,在症状 - 症状图和中药 - 中药图中采用两个图卷积神经网络分别进行训练.具体来说,为了将信息从每个邻居节点传播到目标节点,需要定义两个函数:消息传递函数,以及将多个邻居消息聚合在一起的函数,用以更新当前节点.对症状 - 症状图中的节点而言,其一跳邻居传递给它的信息如式(3)所示.

ms0=es·Ts1.

其中,es为症状s的初始嵌入.Ts1为第一层症状的变换权重矩阵.

当集齐了所有邻居传递的信息之后,将对它们取平均进行合并,并选择ReLU作为激活函数如式(4)所示.

bS10=ReLU(1S1sS1ms0).

其中,S1s的一跳邻居的集合.ReLU则是当前深度学习模型中较为流行的激活函数,相比于其他激活函数,具有稀疏激活性12,能更好地学习到相对稀疏的特征,起到特征自动解耦的作用,而且计算速度和收敛速度也更快.

同理,对于中药 - 中药图中的节点,见式(5) ~ (6).

mh0=eh·Th1.
bH10=ReLU(1H1hH1mh0).

在消息聚合阶段,节点接收到了邻居节点传递的信息,并将以此来更新当前节点.采用文献[13]所提出的GraphSAGE Aggregator方法,该方法是将2种表示连接在一起,并加入了一个ReLU激活函数如式(7) ~ (8)所示.

bs1=ReLU(Ws1·(es||bS10)).
bh1=ReLU(Wh1·(eh||bH10)).

其中, W 为聚合权重矩阵,||表示2个向量的连接操作.

可以进一步堆叠更多的传播层来探索高阶连接信息,将一跳邻居的传播规则扩散到更多层,收集从更高跳邻居传播的信息.这样就实现了向量的高阶传播.

1.3.4 症状集特征提取

中药推荐任务目的是辅助医生进行开方,直观上,是需要对一个症状集给出合适的中药集.目前的中药推荐往往致力于为每一个症状和每一味中药训练出一个合适的向量,使其在推荐任务中表现更好.然而,这种行为忽略了症状与症状之间的联系.另外,中药的名称和数量是固定的,在实际使用时,却很有可能出现训练集中没有的症状名,大大降低推荐的准确性.

为此,本文采用多层感知机(MLP)对一组症状集进行特征提取,该方法层与层之间采用全连接的方式,能融合单个维度上所有位置的特征,即单维信息的全局特征转换和信息重组,能很好地对症状集提取特征,将多个症状整合为一个整体进行中药推荐.

MLP原理图如图3所示.症状集中的向量采用平均池化的方式归纳出整体表示如式(9)所示.

f(x)=ReLU(WMLPMeanPooling(es_set)+bMLP).

其中,W为权重,b为偏置,es_set为症状集的向量.

1.3.5 预测层

通过多图嵌入层获得了所有中药的embedding,以及症状集的embedding,将中药的表示与症状集的表示相互作用,具体来说,将症状表示与中药表示求内积,利用sigmoid函数得到最终的推荐概率,根据结果进行中药推荐.

2 实验

所有模型在同一个数据集上进行训练和测试,对比模型训练结果如表1所示.本文所用的模型为HKGCN.

KGAT14:该模型提出协同知识图谱,应用图注意力机制和卷积神经网络,交替训练知识图谱和用户 - 项目协同图,以显式且端到端的方式实现了高阶关系的建模,以端到端的方式显式建模知识图谱中的高阶连接.

KGCN15:该模型将卷积神经网络应用于知识图谱,并从知识图谱中的每个实体的邻居采样作为它们的接受域,然后在计算该实体的表示时将邻居信息与偏差结合起来,以获取高阶邻域信息.

HAKG16:该模型将知识图谱中的实体和关系在双曲空间中进行建模,保留更多的节点特征,并引入一种新的角度约束和门控单元,以保持项目在嵌入空间中的特征,自适应地控制层次信息和非层次信息对推荐的贡献.

LightGCN17:该模型对经典卷积神经网络的结构进行精简,仅保留原模型的邻域聚合部分,通过在用户 - 项目交互图上线性传播来学习用户和项目嵌入,并使用在所有层上学习到的嵌入的加权和作为最终嵌入.

SMGCN8:该模型使用图卷积神经网络,构建了中药 - 中药图、症状 - 症状图和中药 - 症状图进行训练,并加训练结果相加,以获取症状和中药更全面的表示.

KDHR5:该模型使用图卷积神经网络,同时构建了构建了中药 - 中药图、症状 - 症状图和中药 - 症状图.虽然也构建了知识图谱,但并没有用于训练,而是简单将其转化为独热编码,与同质图的训练结果相加并进行推荐.

其中,KGAT,KGCN,HAKG及LightGCN是通用领域的推荐模型,SMGCN,KDHR是中药推荐模型.

表1中,precision是在模型给出的中药推荐集合中,与实际情况相符的比例。而recall是在实际情况中,预测正确的比例.2个评价指标分别从2个角度描述推荐结果的精准度,F1 - score是二者的混合平均.10或20分别表示模型输出前十个推荐结果或前二十个推荐结果.可以看到,通用推荐模型KGAT和KGCN在几个公开数据集上表现优越,但在该中药数据集上表现较差,与其他模型差距较大.经推断,出现这种情况应该是因为,模型关注异质节点之间的关系,却忽略了同质节点的关联.中药推荐毕竟与其他常见的用户 - 项目推荐不同.在其他场景下,比如图书推荐,可以根据用户的历史喜好推荐同类书籍,或者根据相似用户做出推荐,用户与用户、项目与项目之间关系相对简单明确.但在中药推荐场景下,中药之间有着复杂的配伍关系,比如生姜能减轻生半夏的毒性,石膏配知母能增强清热泻火的功效,莱菔子却会削弱人参的补气作用.另一方面,症状之间也不是毫无关联.如果不探究中药与中药、症状与症状之间复杂的内部关系,仅仅按照其他推荐领域的做法,只考虑中药与症状之间的关系,忽略内部关系,无疑会造成较差的推荐结果.HKGCN模型在各项指标均优于其他模型,说明该推荐方法能有效提升推荐效果.

另外,从表1中可以看到,HKGCN推荐效果与SMGCN相近,本文所构建的模型与SMGCN的主要区别为是否构建了知识图谱并应用于模型训练.没有提升太多或许是因为在知识图谱中,使用处方名作为关系,语义不明确,在模型学习节点嵌入时贡献较小,在未来的研究中,可以考虑使用处方类型,例如补益剂、清热剂、泻下剂等作为关系,能够更好地捕捉症、药之间的协同关系,在推荐中做出更大的贡献.

表2为消融实验的结果.HKGCN_NoKG为本模型去掉知识图谱之后的实验结果,HKGCN_ADD是采用传统的多图分别训练得到向量,然后将向量相加用于推荐的方法.可以看到,该模型对推荐效果没有明显的改善,甚至在某些指标略有降低.HKGCN_NoMLP为去掉症状集特征提取部分的效果.消融实验证明了本研究所构建的模型结构的合理性和必要性.可以看到,无论是知识图谱作为预训练环节,还是将症状集看作一个整体提取特征,这些部分对最后的推荐都是有益的.多层感知机部分的设置也更符合中医医师开方的一般规律和思维,即注重整体观念,中医学认为“自然 - 人 - 社会”是一个宏观的统一整体,各自遵循着自身的规律协调平衡,同时又通过阴阳消长、五行制化等规律动态调节.人体也是一个完整的有机整体,人体的脏腑、经络等相互联系,病理上相互影响.本研究尝试模拟了这种思维,将症状集看作一个整体进行推荐,结果证明了方法的有效性.

4 ~ 6为不同参数下的实验结果,其中图5为第二层GCN的输入维度和输出维度,MLP层输出输出维度均与GCN层输出维度相同.经过实验,模型参数设置batch为1024,GCN层数为2,输入向量维度64,第一层输出维度128,最后一层输出维度256,MLP输入输出维度均为256,dropout为0.1,学习率lr为10-3,正则化系数λ为10-5.使用上述参数时,模型表现更好.

表3中,通过模型推荐药方和真实药方的比较,可以直观地看到模型推荐的效果.表中用粗体和下划线表示命中的中药,根据中医药知识,没有命中的中药与实际药方中的中药有着相似的作用,在临床实践中可以为中医医师提供决策参考.

3 结语

将知识图谱作为预训练数据的多图嵌入的中药推荐方法,有效利用了知识图谱的特殊结构及中药的属性信息,保留了图的结构信息和向量的特征信息,深入挖掘症与症、药与药、症与药之间的关系和规律,结合中医理论构建了中药推荐模型,能够加速中医药诊疗经验的挖掘,从多视角探索中药的潜在作用机制,为临床诊疗提供辅助参考,推动中医智能化、现代化的发展.

参考文献

[1]

刘金垒,惠小珊,张振鹏,.基于中医诊疗指南的冠心病知识图谱构建[J].中国实验方剂学杂志202329(7):208 - 215.

[2]

RUAN C YWANG YZHANG Y Cet al. Exploring regularity in traditional Chinese medicine clinical data using heterogeneous weighted networks embedding[C]//International Conference on Database Systems for Advanced Applications: Springer,2019:310 - 313.

[3]

JIN YZHANG WHE X Net al. Syndrome - aware herb recommendation with multi - graph convolution network[C]//2020 Ieee 36th International Conference on Data Engineering (icde): IEEE,2020:145 - 156.

[4]

JI S XPAN S RCAMBRIA Eet al. A survey on knowledge graphs: representation, acquisition, and applications.[J]. IEEE transactions on neural networks and learning systems202233(2):494 - 514.

[5]

YANG YRAO YYU Met al. Multi - layer information fusion based on graph convolutional network for knowledge - driven herb recommendation[J]. Neural Networks2022146:1 - 10.

[6]

YAO LZHANG YWEI Bet al. A topic modeling approach for traditional Chinese medicine prescriptions[J]. IEEE Transactions on Knowledge and Data Engineering201830(6):1007 - 1021.

[7]

彭怀仁.中医方剂大辞典.第六册[M].北京:人民卫生出版社,1996.

[8]

国家药典委员会.中华人民共和国药典[M].北京: 中国医药科技出版社,2015.

[9]

XU H YZHANG Y QLIU Z Met al. ETCM: an encyclopaedia of traditional Chinese medicine[J]. Nucleic Acids Research201947(D1):D976 - D982.

[10]

YANG YHUANG CXIA Let al. Knowledge graph contrastive learning for recommendation[C]//Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval.2022:1434 - 1443.

[11]

KIPF T NWELLING M. Semi - supervised learning with graph learning - convolutional networks[C]//Proceedings of the Ieee/cvf Conference on Computer Vision and Pattern Recognition,2019:11313 - 11320.

[12]

XU BWANG NCHEN Tet al. Empirical evaluation of rectified activations in convolutional networks[C]// Proceedings of the 32nd International Conference on Machine Learning. JMLR Workshop and Conference Proceedings, 201537: 1080 - 1088.

[13]

HAMILTON WYING ZLESKOVEC J.Inductive representationlearning on large graphs[J].Advances in Neural Informationprocessing Systems201730:1024 - 1034.

[14]

WANG XHE X NCAO Y Xet al. Kgat:knowledge graph attention network for recommendation[C]//Proceedings of the 25th Acm Sigkdd International Conference on Knowledge Discovery & Data Mining,2019:950 - 958.

[15]

WANG HZHAO MXIE Xet al. Knowledge graph convolutional networks for recommender systems[C]//The World Wide Web Conference,2019:3307 - 3313.

[16]

DU YZHU XCHEN Let al. HAKG: hierarchy - aware knowledge gated network for recommendation[C]//Proceedings of the 45th International Acm Sigir Conference on Research and Development in Information Retrieval,2022:1390 - 1400.

[17]

HE XDENG KWANG Xet al. Lightgcn: simplifying and powering graph convolution network for recommendation[C]//Proceedings of the 43rd International Acm Sigir Conference on Research and Development in Information Retrieval,2020:639 - 648.

基金资助

中国高校产学研创新基金(2021LDA09002)

甘肃省研究生创新创业基金(2023CXZX-770)

AI Summary AI Mindmap
PDF (2025KB)

26

访问

0

被引

详细

导航
相关文章

AI思维导图

/