介绍:本次分享的主题是图表示学习技术在药品推荐系统中的应用。主要包括以下四个部分:研究背景与挑战差异化药包推荐生成药包推荐总结与展望一、研究背景与挑战1、研究背景医疗资源普遍不足,分布不均带来沉重压力。药物推荐是智慧医疗的一个子问题,首先要从智慧医疗的背景说起。我国智慧医疗刻不容缓。随着人口增长和老龄化,人们对优质医疗服务的需求不断上升。图中两组数据,一组是全国医疗机构就诊人次60.5亿,同比增长22.4%;另一个是《柳叶刀》对各国医疗卫生状况的统计,中国只有57.4%的医生拥有本科及以上学历,包括医生、医生、医生等16种健康职业的每万人从业人数。护士和社区卫生工作者,中国仅达到美国的1/3。我国的患者人数在不断增加,但医疗资源和医疗水平与发达国家相比还相对不足。此外,还存在医疗资源分布不均的问题。基层医疗机构就医水平相对有限,而顶层医疗机构供不应求。因此,如何充分利用高水平医疗机构的诊疗经验,助力基层医疗机构提升医疗水平,是亟待解决的重要问题。智慧医疗,人工智能技术带来曙光随着近年来医疗机构数字化进程的加快,我国大量医疗机构,尤其是三甲医院等高水平医疗机构,积累了非常丰富的电子医疗记录数据。如果我们能够利用大数据人工智能技术,充分挖掘这些信息,提取相关知识,或许可以帮助我们了解这些高水平机构医学专家的一些诊疗方法和思路,进而支持智能跟进就诊、医学影像分析、慢病随访等一系列下游智慧医疗应用,这些都具有重大意义。2.研究挑战目前,越来越多的医疗人工智能技术正在得到更广泛的应用,这也促进了医疗服务的公平性和普惠性。一些人工智能技术,如医学影像分析,已经取得了一些骄人的成果,但在药品推荐系统中的应用却很少,因为药品推荐系统与传统的推荐系统有很大的不同,也存在技术上的差异。困难重重。包裹推荐系统面临的第一个挑战是传统的基于协同过滤等方法的推荐系统的应用场景主要是一次为一个用户推荐一个物品。他们的输入是单个物品和单个用户的表示,输出是两者之间的关系。匹配分数。然而,在药物推荐中,医生往往需要一次性为患者开出一组药物。药品推荐系统实际上是一个套餐推荐系统,称为套餐推荐系统,它同时为一个用户推荐一组药品。如何结合包裹推荐系统进行药物推荐是我们面临的第一个大挑战。药物之间的相互作用药物推荐系统的第二个挑战是药物之间存在各种相互作用。有的药物具有相互促进的协同作用,有的药物具有相互抵消的拮抗作用,甚至某些药物合用会引起毒性或其他副作用。图片中的患者患有某种肾脏疾病。左边是医生给病人开的药。部分药物具有协同作用,可促进药物疗效。右边部分是通过统计分析得到的对症药物和高频药物。可见,这些药物可能由于某些拮抗作用而未被选择,而以下药物可能对现有的一些药物有毒性,故本例患者未使用。此外,药物相互作用的影响是个体化的。我们在统计中发现,有大量具有拮抗作用甚至毒性作用的药物同时使用。据分析,其实医生会根据患者的情况开药,并考虑相互作用的影响。例如,一些肾脏健康的患者往往可以耐受药物的一定肾毒性,因此我们需要对药物之间的相互作用进行个性化的建模和分析。3.图表示学习技术成为新的可能综上所述,结合以上挑战,图表示学习技术非常适合解决药品推荐系统中存在的问题。随着图神经网络的快速发展,人们意识到图神经网络技术可以有效地模拟节点之间的组合效应和节点之间的关系,这启发我们认为图表示学习技术可能成为构建药物推荐系统的关键。利器举个图中的例子,我们可以根据其中的交互将一个药品包构建成一个图,并通过现有的图神经网络对其进行建模。基于以上思路,我们利用图深度学习技术做了两篇关于药物推荐系统的工作,分别发表在WWW和TOIS期刊上。以下是详细介绍。2.有区别的药包推荐首先介绍一下我们发表在WWW2021上的关于药包推荐的论文。本文采用包装推荐系统中广泛使用的判别模型定义方法进行建模,以图表示学习技术为核心技术部分。一、数据说明电子案数据首先介绍工作中使用的数据说明。我们在研究工作中使用的电子病历来自大型三甲医院真实的电子病历数据库,每份电子病历包括以下几类信息:一是患者的基本信息,包括患者的年龄,性别、医疗??保险等;二是患者的化验信息,包括医生关注的化验结果异常,以及异常类型:高、低、阳性等;三是医生写的患者病情描述:包括患者为何入院,初步体检等信息;最后是医生给病人开的一套药。这种电子病历数据是异构的,既包括年龄、性别、化验等结构化信息,也包括疾病描述等非结构化文本信息。药物数据为了研究药物之间的相互作用,我们从DrugBank和药智网这两个大型在线开源药物知识库中收集了一些药物属性和相互作用数据。药物相互作用是基于一些模板的自然语言描述。例如,上图中的描述栏是关于某种可能增加或减少新陈代谢的药物。中间字为模板,前后填写药名。因此,只要模型分类清楚,就可以标记数据库中所有的药物相互作用。因此,我们在专业医师的指导下,考虑了非相互作用、协同作用和拮抗作用三种类型的药物相互作用,并对模板进行标注,得到药物相互作用的分类。2.数据预处理和问题定义数据预处理,对于电子病历数据,我们将其分为两部分:患者的基本信息和实验室信息,我们将其处理成一个one-hotvector;疾病描述对于文本部分,我们通过一些Padding和Cutoff将其转化为定长文本。对于药物相互作用数据:我们将其转化为药物相互作用矩阵。同时,问题定义如下:给定一组患者描述和对应的ground-truth药物包,我们将训练一个个性化评分函数,该函数可以输入给定的患者和样本包,并输出匹配度分数.显然,这就是判别模型的定义方式。3.模型概述本文提出的论文题目是DPR:DrugPackageRecommendationviaInteraction-awareGraphInduction。该模型由三部分组成:在预训练部分,我们基于NCF框架获得患者和药物的初始表示。在药物包构建部分,我们提出了一种基于药物相互作用关系类型将药物包构建成药物图谱的方法。最后一部分是基于图的药物包装推荐框架,其中设计了两个不同的变体,以了解如何从两个不同的角度对药物之间的相互作用进行建模。预训练首先,预训练部分按照传统的一对一推荐方式进行。给定一个案例,医生给病人用过的药是阳性病例,没有用过的药是阴性病例。通过BPRLoss预训练,使用过的药物得分高于未使用的药物。预训练部分主要是捕捉基本的药效信息,为后面捕捉更复杂的相互作用提供基础。对于One-hot部分,我们使用MLP来提取特征;对于文本部分,我们使用LSTM来提取文本特征。药品图谱构建与传统推荐相比,药品推荐的核心问题是如何考虑药品之间的交互关系来获取药品包的表示。基于此,本文提出了一种基于图形模型的药品包装建模方法。首先,将标注好的药物相互作用关系转化为药物相互作用矩阵,不同的值代表不同的相互作用类型。然后,基于这个时刻,任何给定的药物包都可以转换为异构药物图。图中的节点对应药品包中的药品,节点属性为上一步预训练的Embedding对应的节点。同时,为了避免过度计算,我们没有将药物图构建成完整图,即我们不允许任何两种药物有边,而是有选择地保留,具体来说,只保留那些标注的边药物对和频率超过特定阈值的边缘。药物图构建为了有效地表示药物图,我们提出了两种方法来形式化药物图上的边属性。第一种形式DPR-WG使用加权图来表示药物图。首先是根据标注的药物相互作用初始化边的全值,其中-1表示拮抗,+1表示协同,0表示无相互作用或未知。然后使用掩码向量对药物图中的边权重进行个性化处理。mask向量反映了不同药物的相互作用以及对个体患者的影响程度。它是通过一个非线性层加上一个Sigmoid函数来计算,使得每个维度的值都在0到1之间的时间,从而实现特征选择的功能,对药物的相互作用做出个性化的调整。drugmap的更新过程是先在DPR-WG中计算一个updatefactor,通过在相应的边上乘或加权重来更新updatefactor。在后续的实验中,发现更新方式对结果影响不大。在药物图表示过程中,我们设计了一种基于加权图的药物表示方法。综上所述,我们首先为带权图设计了一个信息更新过程:聚合邻居信息,并在聚合过程中,根据边的权重单独调整聚合度。然后我们使用SelfAttention机制计算不同节点之间的权重,并使用聚合MLP聚合图以获得整个药物图的最终表示。随后将患者表示和药物图表示输入到评分函数中,可以获得用于推荐的输出。另外,本文使用BPRLoss训练模型,引入了负采样的方法,对应1个正样本和10个负样本。第二种变体是使用属性图来表示药物图。第一种是通过MLP融合边缘两端的节点向量来初始化边缘向量。然后,掩码向量也用于更新边缘向量。此时更新方法不再是更新因子,而是计算更新向量,将更新向量逐元素乘以药品的边缘向量,得到更新后的边缘属性。向量。我们专门为属性图设计了GNN。消息传递过程是根据边向量和两端的节点embedding计算消息进行传播,通过selfattention和aggregation的方法得到graphembedding。同样,我们可以使用BPRLoss进行训练,不同的是我们额外引入了一个交叉熵损失函数来进行边缘分类,希望边缘向量能够包含药物相互作用的类别信息。因为之前变体初始化的sign自然保留了这个信息,而这个变体的graph没有,所以通过引入损失函数来补充这个信息。从实验结果来看,我们的两个模型在不同的评估指标上都优于其他判别模型。同时,我们还进行了案例分析:使用t-SNE方法,将上述mask向量投影到二维空间上。如图所示,比如孕妇、婴儿、肝病患者,他们使用的药物有非常明显的聚类倾向,证明了我们方法的有效性。3.生成药包推荐上述判别模型只能从已有的药包中进行选择,无法生成新的药包,会影响推荐效果。接下来介绍上一篇发表在TOIS期刊上的。这项工作是这项工作的延伸,希望该模型能够生成为新患者量身定制的全新药物包。这项工作是保留前一篇论文中图表示学习的核心思想,同时彻底改变问题定义,将模型定义为生成模型,引入序列生成和强化学习技术,大大提高了推荐效果。1.判别式推荐->生成式推荐判别式模型和生成式模型的核心区别是判别式模型对给定患者和给定药包的匹配程度打分,而生成式模型为患者生成候选药包并选择最好的药包。2.启发式生成方法针对上述判别模型的不足,我们设计了一些启发式生成方法:通过对相似患者的药包中的一些药品进行增删改查,使得一些历史记录从未生成过。出现的药包供模特选择。实验结果证明这种简单的方法非常有效,为后续方法提供了依据。3.模型概述接下来是发表在TOIS上的Interaction-awareDrugPackageRecommendationviaPolicyGradient文章。本文提出的模型称为DPG,区别于上一篇文章中的DPR,其中G为Generation。该模型主要包括三个部分,分别是药物相互作用图上的信息传播、患者的表示和药物包生成模块。与上面最大的区别在于药品包生成模块。药物相互作用图首先构建药物相互作用图部分,本文保留了图神经网络捕捉药物间相互作用的方法。不同的是,在判别模型中,药物包是给定的,可以很容易地转换成药物图,而在生成模型中,药物图是不固定的。由于计算量的原因,不可能将所有的药品包装都构建成一张图。在本文中,所有药物都包含在药物相互作用图中,并且属性图也用于图形式化。同时保留边分类损失函数和边的Embedding信息。最后,还构建了基于此的药物相互作用图。GNN开启。经过几轮(通常为2轮)消息传递后,我们提取节点Embedding作为要使用的药物嵌入。PatientrepresentationPatientrepresentation部分同样使用了MLP和LSTM来提取患者的representationvector,同时也计算maskvector,随后用于捕捉患者的个性化representationvector。基于序列生成的药品包装生成药品包装生成任务可以看作是一个序列生成任务,它是利用递归神经网络RNN实现的。然而,这种方法也带来了两个挑战:第一个挑战是如何在生成过程中考虑生成的药物与现有药物之间的相互作用。为此,我们提出了一种基于药物相互作用向量的方法来显式模拟药物相互作用。第二个挑战是样本包是一个集合,本质上是无序的,但序列生成任务通常针对具有有序序列的方法。为此,我们提出了一种基于策略梯度的强化学习方法,同时增加了基于SCST的方法来提高该算法的效果和稳定性。基于最大似然的药包生成首先介绍如何在基于最大自然度的药包生成过程中考虑药物之间的相互作用。这部分也是后续强化学习部分的基础。基于最大似然的序列生成方法在自然语言处理领域得到了广泛的应用。在生成过程中,每个生成的药物都依赖于其他先前生成的药物。为了在不给模型带来过多计算负担的情况下考虑药物之间的相互作用,我们建议在每个时间步明确计算新生成的药物与先前药物之间的相互作用向量。这种向量计算方式来自于之前图神经网络中的A层。同时增加mask向量和interaction向量乘以对应的元素,引入患者的个性化信息。最后,将所有药物的相互作用向量相加并使用MLP进行融合,得到综合相互作用向量。随后将该向量集成到用于生成的经典序列模型中,解决了第一个挑战。与经典序列生成不同的是,药包其实是一套的,不应该有重复的药品。因此,我们添加了一个限制条件,防止模型生成已经生成的药物,并保证生成的结果必须是一个集合。最后,我们使用基于最大似然的MLE损失函数训练模型。基于强化学习的药包生成上述基于最大似然的方法最大的缺点是药包有严格的顺序,还有一些人为指定药品顺序的方法,如按频率排序、按出现次数排序等。firstletter等,会破坏药包的集合,同时会损失部分模型的性能,因此我们提出了一种基于强化学习的药包生成模型。强化学习中模型的目标是最大化人为设定的奖励函数。在模型生成完整的药包后,给出一个与订单无关的rewardlossfunction,可以降低模型对订单的依赖。本文使用F-value作为reward,它是一个order-independentfunction,也是我们关心的评价指标。本文采用F值作为评价指标,在训练方法上采用基于策略梯度的训练方法,这里不再进行详细推导。在基于策略梯度的训练方法中,最著名的方法之一是使用基线来降低梯度估计的方差,从而增加训练的稳定性。因此,我们采用基于SCST的训练方法,即Self-critical序列训练方法。baseline也来自于模型自身生成的药包获得的reward。我将自生成的方法设计为贪心搜索的正常序列生成方法。我们希望模型根据Policy梯度采样的药包的reward高于传统Greedysearch生成的药包。基于此,本文设计了强化学习的损失函数,如图所示,这里不再详细介绍推导过程。最大似然预训练+强化学习另外,强化学习的一个特点就是很难训练,所以我们结合了以上两种训练方式,首先使用最大自然估计的方法对模型进行预训练,以及然后使用强化学习方法微调模型参数。实验结果接下来是模型的实验结果。在上表中,所有药物包都是使用贪心搜索生成的。首先,基于生成模型的性能普遍优于基于判别模型的性能。这个实验证明生成模型会是一个更好的选择。该模型在F值上超越了所有其他基线。此外,基于强化学习的模型大大优于基于最大似然的模型,证明了强化学习方法的有效性。后续我们还进行了一系列的消融实验。我们移除了交互图,包括交互掩码向量和用于消融的强化学习模块,结果证明我们的每个模块都是有效的。同时可以看到去掉SCST模块后模型的效果大大降低,证明强化学习确实很难训练。如果不加Baseline限制,整个训练过程会很紧张。最后,我们也做了很多案例研究,可以看到孕妇和宝宝都有明显的个性化偏好。同时,我们增加了一些常见的疾病,比如胃病、心脏病等,这些疾病的maskvectors非常分散,不会形成集群。常见病患者病情多种多样,不会出现特殊的个体化情况。与孕妇和婴儿不同,有非常明显的药物筛选。比如有些药需要指定给儿童使用,有些药孕妇不能用。同时,我们投影了药物的相互作用向量。可以看出,两种药物的相互作用,协同作用和拮抗作用,形成了两种不同的相反情况,说明模型捕捉到了两种不同相互作用带来的不同效应。四、总结与展望综上所述,我们的研究主要针对交互感知的个性化药包推荐,包括判别药包推荐和生成药包推荐。两者的共同点是都使用图表示学习技术对药物之间的相互作用进行建模,都使用mask向量来考虑患者对相互作用的个体化感知。两部作品最大的区别在于问题定义的不同。对于判别模型,我们需要一个评分函数,所以对于生成模型,我们需要一个生成器。实验证明,生成模型其实是对问题更好的定义。.
