Abstract
电子健康档案( Electronic Health Records,EHRs )中的潜在疾病模式对于做出准确和主动的医疗保健决策至关重要。基于联邦图学习的方法通常用于从分布式电子病历中提取复杂的疾病模式,而不需要共享客户端的原始数据。然而,分布式电子病历的固有特性通常是非独立同分布的( Non-IID ),显著地带来了与数据不平衡有关的挑战,并导致从全局模型中做出医疗保健决策的有效性显著降低。
为了应对这些挑战,我们提出了一种新的个性化联邦学习框架PEARL,用于在非IID 电子健康记录( EHR )上进行疾病预测。具体来说,PEARL融合了疾病诊断代码注意力和入院记录注意力,以从所有EHR中提取患者嵌入。然后,PEARL将自监督学习集成到一个联邦学习框架中,用于训练用于分层疾病预测的全局模型。
为了提高客户端模型的性能,我们进一步引入了一个微调方案,使用本地EHR来个性化全局模型。在全局模型更新过程中,实现了差分隐私( DP )方案,提供了高层次的隐私保障。
符号说明:
一、Introduction
电子健康档案( EHRs )在数字医疗系统中得到了广泛应用。在图学习技术的支持下,许多基于集中式图结构EHR的疾病预测模型在不同的任务中取得了显著的性能,例如,心力衰竭预测,疾病预测,死亡率预测和药物推荐。
真实世界的电子病历往往存储在各个医院和诊所的不同医疗部门。仅仅依靠本地存储的EHR来训练预测模型可能会导致次优的性能。
目前提高集中式预测模型性能的努力主要涉及数据论证和数据共享方案。这些方案通常需要学习患者的综合诊断嵌入,以进一步增加患者的入院嵌入。这可能会增加处理EHRs时的隐私和安全风险。例如,敏感信息泄露。此外,由于EHRs有严格的隐私和数据规定,通过直接共享EHRs进行建模,训练一个理想的预测是不太可行的.
目前基于联邦学习的方法已经引入了一个有前途的方案,通过使用分布式数据集聚合客户端模型的更新梯度来协同训练全局模型,避免了在训练过程中共享原始数据的需要.并在疾病预测任务中取得了改进的性能。此外,加密机制已被广泛采用,以确保服务器和客户端之间通信轮次中模型参数更新的隐私性。
然而,来自分布式系统的EHR往往是非独立同分布的( Non-IID ),包含了从不同医院和诊所收集的患者详细的入院和诊断记录。在现实场景中,EHR的资源和采集方式多种多样,导致EHR在不同参与医院(客户)之间的分布不均衡。EHRs的这种非IID特性给基于联邦学习的疾病预测任务带来了巨大的挑战。不平衡的EHRs类别可能会加剧下游预测任务中的模型性能或导致预测结果有偏,从而带来一系列的健康风险。例如,预测模型产生的判别性结果可能导致增加的冗余时间和更高的医疗诊断成本,带来健康恶化和滥用药物的风险。
解决联邦图学习中非IID EHRs带来的挑战的努力主要集中在创建具有更均匀分布数据的客户端集群。
在分布式系统下的疾病预测任务中,通过全局模型个性化方案来解决数据不平衡的挑战更为常见[ 19 ]。最近,个性化联邦学习受到了研究人员的极大关注,因为他们承诺解决来自非IID数据的两个关键挑战,即收敛性差[ 20 ]和缺乏个性化解决方案[ 21 ]。考虑到Non - IID数据固有的异构性,在这类数据上训练的全局模型可能缺乏针对单个客户端数据集所需的个性化特征。
因此,使用局部数据集对全局模型进行微调成为实现全局模型个性化的一种有前途的解决方案[ 22 ]。重要的是,这个微调过程可以由客户端独立实现,而不需要与中心服务器通信。
在这篇文章中,我们介绍了一个用于序列疾病预测的个性化联邦图学习框架,命名为PERAL,专门用于解决来自非IID EHRs的数据不平衡和不足的挑战。我们提出的框架包括三个关键部分。
首先,我们采用一种结合信息流的双曲线嵌入方法来建立分层的疾病诊断代码表示。
随后,我们将疾病并发症建模为一个有向加权图,考虑了共现频率和疾病之间的非对称影响。
然后,我们构造了一个多层图神经网络( GNN )作为编码器。
该编码器集成了疾病诊断码和入院记录注意力机制,将患者入院记录编码为患者向量。
我们在解码器阶段使用自监督学习,通过利用疾病诊断代码的层次结构来增强疾病预测任务。编码器和解码器均在联邦学习环境中实现,并通过差分隐私( DP )方案进行增强,使其能够在分布式Non - IID EHR数据集上协同训练全局疾病预测模型,同时保留敏感信息。此外,我们引入了一种微调方法来优化使用本地EHRs更新的客户端模型,从而获得具有竞争力的个性化疾病预测结果。
在本文中,我们的主要贡献如下。
1 )基于不平衡NonIID EHRs的个性化联邦学习:我们提出了一种新颖的具有局部微调方法的个性化联邦图学习框架。该方案旨在缓解全局模型在客户端性能下降的同时,提升学习到的全局模型的个性化能力。
2 )模型训练的隐私保护:在服务器端,利用疾病诊断码嵌入训练全局模型,其中不包含患者的任何敏感信息。微调方法部署在客户端,使用本地EHR优化更新后的全局模型。此外,在联邦学习中,通过低隐私预算设置实现differential privacy(DP),保证了模型训练过程的隐私保护。
3)优越的性能:基于真实的MIMIC - III数据集进行了广泛的实验,以验证我们提出的方法的有效性。所提出的框架在疾病预测任务中与基线相比取得了具有竞争力的结果。
二、 RELATED WORKS
2.1 Federated Learning on Non-IID EHRs
基于联邦学习的医学研究传统上依赖于具有独立同分布( IID )数据划分的EHR。EHRs的非IID性质会显著影响联邦学习模型的性能。因此,由于数据来源的固有多样性和患者特异性的差异,在EHR中确认Non - IID特征的存在至关重要。
数据共享方法已经成为解决非IID电子健康记录挑战的简单而有效的解决方案。
Feki等人[ 24 ]提出了一个利用非IIDX光胸片数据的联邦COVID - 19检测模型。他们的模型融入了数据共享策略,以增强每个客户端的数据多样性。Salim和Park [ 25 ]提出了一个基于联邦学习的卷积神经网络模型,利用来自多个客户端的共享Non - IID EHRs进行COVID - 19预测。他们的方法整合了一个联盟区块链网络,以确保整个模型运行过程中的隐私和安全。
Ullah等人[ 26 ]提出了一个可扩展的联邦学习框架,用于解决使用非IIDX射线图像数据的间歇性客户端的挑战。在局部模型训练阶段,该框架加入了数据增强方案,用于平衡客户端的EHR,从而在疾病诊断预测任务中提高预测结果。
Zhang等人[ 27 ]在使用心电图数据的联合心律失常检测中引入了部分数据共享策略。这种方法通过控制数据共享的程度,在准确性和隐私性之间取得了惊人的平衡。值得注意的是,尽管数据共享方法取得了可喜的成果,但EHRs的敏感性引发了与隐私和机密性相关的有效担忧。
聚类技术已经成为一种可行的解决方案,以减轻与Non - IID EHR相关的挑战。该方法包括将相似的客户分组在一起,并为每个集群构建单独的子模型。
Elhussein和Gursoy [ 28 ]提出了一种基于社区的聚类联邦学习框架,用于从非IID EHRs中聚类患者,同时通过安全的多方计算方案增强隐私保护。
Li等人[ 29 ]解决了基于非IID医学影像数据的联邦学习中的特征漂移问题,通过实现局部批标准化来规范不同数据分布的输入特征,从而减少非IID数据对模型性能的影响。
这些研究突出了利用聚类技术为不同的客户群体创建专门模型的潜力,从而能够考虑到每个子群体的独特特征进行个性化培训。此外,局部批归一化等技术的使用证明了其在训练过程中通过协调数据分布来减轻Non - IID数据的不利影响的有效性。
在本文中,我们在一个更现实的医疗场景中解决了非IID数据导致的性能下降问题,在这个场景中,分布式系统经常面临有限数据样本的挑战。我们已经发现迫切需要有效的方法来提高从联邦学习框架中学习到的全局模型的客户端性能,特别是在减轻非IID数据对模型性能的不利影响方面。
2.1Personalized Federated Learning
由于分布式系统中Non - IID数据固有的异构性,个性化联邦学习技术常被用作解决此类Non - IID数据带来的挑战。目前设计个性化联邦学习方法的研究可以分为两个方面,即全局模型个性化和学习个性化模型。
为了在联邦学习阶段实现全局模型个性化,常见的方案通常涉及两步过程。首先,在联邦学习下训练全局预测模型。随后,在客户端实现局部自适应,使训练好的全局模型个性化。
Wu等人[ 33 ]提出了知识缓存驱动的个性化联邦学习框架。它们的框架实现了服务器上的预留知识缓存,能够从与客户端样本具有相似哈希值的样本中获取个性化知识。此外,在客户端模型训练过程中,提出了一种集成蒸馏方案,利用从服务器获得的个性化知识进行建设性优化,从而提高了通信效率。
Iacob等[ 34 ]通过比较下一个词预测任务和图像识别任务的个性化性能,评估了两种公平的联邦学习方法。本文提出的个性化感知的联邦学习在模型训练过程中使用了一种局部自适应方法,以先发制人地获得更好的性能。
Chen等[ 35 ]认识到不同客户端联邦之间与集中式服务器相关的信任问题,提出了联邦学习的循环知识蒸馏方案。该方案促进了联邦之间的公共信息积累,从而实现了基于联邦的模型个性化,而无需共享原始数据。
为了在联邦学习阶段学习个性化模型,Cao等人[ 36 ]考虑到预测模型的异构性,提出了一种基于生成对抗网络的个性化联邦学习方法。在他们的方法中,客户端在不共享任何模型参数的情况下,独立地更新个性化模型参与联邦学习训练过程。在这种方法中,各个客户端独立更新自己的个性化模型。在参与联邦学习的过程中,客户端不需要共享任何模型参数。这种独立性有助于保护客户端的数据隐私,同时允许每个客户端根据自身的数据特点优化其模型。
考虑到平衡全局模型的性能和个性化能力之间的权衡,Deng等人[ 37 ]提出了一种自适应的个性化联邦学习方法来在客户端训练个性化模型。同时,引入了一种通信高效的优化算法,通过自适应地学习个性化模型来实现服务器和客户端模型之间的关系。
ang等人提出的框架结合了基础模型的强大表征能力与个性化提示生成,使得客户端能够在联邦学习环境中实现更为精准的本地模型个性化,同时通过全局优化提升整体学习效果。这种方法特别适合需要在不同客户端之间处理多样化数据的场景。
在医学研究中,不同医院和诊所之间的EHR的异质性会导致非IID分布。从设计层面来看,全局模型个性化方案是实现非IID数据集上疾病预测模型的有效方式,利用局部数据集训练模型实现全局模型的个性化,提高局部模型性能。在本文中,我们从全局模型个性化的角度出发,设计了前述的个性化联邦学习框架。
三、预备知识
3.1Federated Learning
在中心服务器中,常采用简单高效的联邦平均( Fed Avg )算法作为优化方法,根据客户端数据的不同数据规模对更新后的局部平均参数变化进行加权[ 39 ]。值得注意的是,本文中所使用的重要符号均在《命名法》中呈现。
3.2Differential Privacy
3.3Problem Definition
在EHR数据集中,被访患者的每条入院记录都具有包含患者诊疗脚本记录的时间属性和序列属性。患者的诊断结果以国际疾病分类( International Classification of Disease,ICD )系统中的疾病诊断编码格式存储。值得注意的是,在这项工作中,我们使用的疾病诊断编码来自MIMIC - III数据集,并具有ICD - 9 - CM格式。
我们用C = { c1,c2,…,c | C | }表示EHR数据集中所有疾病诊断编码的集合,其中| C |表示词汇量。对于病人u,其入院记录可以定义为一个序列Vu = Vuτ | τ = 1,…,T },其中T表示病人u的总入院次数,每个入院记录Vu τ┐C包含C的一个子集.为了避免混乱,本文的后面部分给出了单个病人的所有算法.
给定一个EHR数据集D,该数据集包含具有分层疾病诊断编码的患者的单次和多次入院记录。在疾病预测任务中,给定一个具有τ个历史入院记录的患者u,目的是将τ + 1个疾病诊断结果预测为yu τ +1。
四、DESIGN OF PEARL
本部分介绍了提出的个性化联邦图学习与基于双曲嵌入的疾病预测框架PEARL。首先,我们在4.1节中介绍了双曲嵌入方法来捕获疾病诊断编码之间的层次信息表示。接下来,我们在4.2节中介绍了基于疾病并发症构建疾病图的细节。然后,我们在第4.3节中介绍了个性化联邦图学习方法的设计。
我们提出的个性化联邦图学习框架的概述如图1所示。
在该框架中,在关联阶段,疾病诊断码及其并发症被用于生成层次嵌入以及有向加权图。
在联邦图学习过程中,服务器首先使用带有疾病诊断代码和入院记录注意力的多层GNN计算患者嵌入作为编码器。
然后,采用自监督学习方法作为解码器,恢复具有层次结构的历史诊断结果。
最后,我们设计了一种微调方法,通过使用局部EHR来提高学习到的全局模型的性能。
4.1Disease Diagnostic Codes Hyperbolic Embedding With Hierarchical Structure
来自EHRs的疾病诊断代码的层次结构在先前的研究中已经被探索并证明可以提高疾病预测性能[ 41 ],[ 42 ],[ 43 ]。因此,我们利用双曲线嵌入方法[ 44 ]从EHRs中学习疾病诊断码的分层表示,疾病诊断码来自具有H层的分层结构H。
前述的ICD系统提供了一个基本的知识库,用于将当前疾病分类为不同类别,在多个层次上使用疾病诊断编码作为树结构。例如,在ICD - 9 - CM中,一级编码定义了所有疾病的19个类别,而一级编码下的下级编码则对诊断结果进行了详细的描述
为了学习疾病诊断码的表示,我们将H中的每个疾病诊断码作为节点,并将其编码到一个双曲空间中,疾病诊断码ci,c j∈H的嵌入向量ei和e j的距离可以定义在下面的等式中:
虽然患者入院记录的疾病诊断编码往往被构建为树形结构,但仍存在患者仅被诊断为较高层次疾病编码的情况。因此,我们需要为非叶子节点创建虚拟子节点,并将其作为同一层次的虚拟叶子节点,也就是说,我们实验中使用的疾病编码集H只包含最后一层的叶子节点和虚拟前导节点。然后,我们引入了一种信息流策略来发现高层和低层节点之间的差异,并结合双曲线嵌入来获得具有层次结构和相似性信息的代码表示。
为了在疾病诊断码之间表示信息流。为了实现这一点,设计了一个共享向量 设计了一个共享向量 si来表示从父节点继承的信息,和一个本地向量li来表示表示更精确的信息。然后,通过一个可训练的系数 𝜆𝑖 来结合这两个向量,生成最终的嵌入 𝑒𝑖′
这个公式表示嵌入 𝑒𝑖′ 是共享向量和本地向量的加权组合,权重由 𝜆𝑖来控制。这种方法可以在疾病诊断码之间灵活地传递信息,同时保留每个诊断码的特定信息。
然后,我们从以下几个方面计算信息流:下行流和上行流。
向下流代表包含从父节点(叶子节点)继承的公共嵌入的低级代码的共享向量,向上流代表一个叶子节点从其子节点聚合的摘要信息。向下流动可以用式( 7 )表示,向上流动可以用式( 8 )表示
A是邻接矩阵
N ( i )表示ci的所有不相邻节点的集合
V: 患者的入院记录
该部分流程如算法1所示:
4.2 Disease Complication Graph
在医学研究中,从医疗诊断结果中观察疾病发生的频率,有助于发现疾病并发症,例如在诊断为心力衰竭的患者身上发现的异常高血压。因此,探索疾病并发症之间的关系并利用这些有价值的信息改进疾病预测至关重要。
通过考虑EHRs中疾病发生的频率,我们还使用有向加权图G将疾病并发症表示为图结构。为了揭示疾病的并发症,对于给定的疾病诊断码对( ci , cj),如果ci和c j在同一入院记录Vu τ中发生一次,我们为G创建两条边( i , j)和( j , i)。参考文献[ 43 ],上述疾病并发症之间的影响是自然非对称的,这意味着疾病ci可能是另一个疾病c j的主要并发症,但疾病c j可能不是疾病ci的主要并发症。因此,我们需要考虑疾病对之间的非对称影响。
对于给定的邻接矩阵A∈R| C | × | C |,每一个元素Ai,j表示边( i , j)的权重。
为了量化疾病对的双重影响,设计了一个共生矩阵Adup∈N | C | × | C |,并用零初始化。
然后,当所有患者的一次入院记录中出现并发症对ci和c j时,我们将元素Adup i j和Adup j i的值增加1。
我们计算Adup的第i行和为
,并进一步计算加权邻接矩阵A如下:
简单来说,就是病 i和病 j如果经常同时出现,则Aij的值就越大,可以用于预测并发症的可能性
因此,通过Ai j测量共现频率来衡量相邻节点的双重影响,我们构建了疾病图G,并在下一阶段实现了基于图学习的方法来学习疾病诊断代码的隐藏表示。
4.3Federated Graph Learning
4.3.1 Multilayer GNN:
在预训练阶段获得疾病诊断码嵌入E和加权邻接矩阵A后,我们使用多层GNN从EHRs中计算疾病诊断码的隐藏表示X = GNN( A , E)。
首先,我们将预训练的疾病诊断码嵌入E作为初始化H ( 0 )的输入。然后,设计第l个GNN层对隐藏表示进行聚合,公式如下:
下面是如何对邻接矩阵 𝐴进行归一化的公式,目的是调整中心疾病诊断码的重要性。
4.3.2Encoder With Attention Mechanisms
使用双重注意力机制的编码器,用于处理病人电子健康记录(EHRs)中的疾病诊断码和住院记录。通过这种方法,模型能够更好地预测疾病。
下面是如何计算给定一个病人 𝑢 的某次住院记录 𝑉𝑢𝜏中疾病诊断码的注意力
注意力机制通过这些权重矩阵和向量,动态地调整每个病症诊断代码在最终预测中的重要性。具体来说,矩阵 𝑊𝑐和向量 𝑤𝛼协同工作,将输入的诊断代码嵌入向量投影到一个新的表示空间,并根据其在这个空间中的位置计算其注意力分数。这使得模型能够识别并专注于对当前任务最为重要的诊断代码。
然后,我们将注意力分数与xi分别相乘,并计算加权和作为接纳嵌入v τ。随之,我们还计算了入院记录的关注度来衡量每个入院记录对患者u的贡献。在这一部分,我们使用LeakyReLU作为激活函数,将入院嵌入v τ投影到病人维度,如下面的方程所示,其中Wu表示权重矩阵:
与疾病诊断代码关注度不同,我们进一步设计了一个系数θτ来量化患者u的每个入院记录的贡献度,而原有的全局关注度只能衡量每个入院记录的重要性βτ。因此,我们对每个入院记录的重要性和贡献进行如下量化:
为此,我们计算v ~τ的加权和,并获得同时具有疾病诊断编码和入院记录关注度的患者嵌入p。
4.3.3 Decoder Using Self-Supervised Learning
在医疗数据分析中,特别是涉及电子健康记录(EHRs)时,数据通常缺乏标注(例如特定的诊断或结果),这是由于隐私和伦理规定。这种缺乏标注的问题使得基于监督学习的方法(即依赖标注数据来训练模型)变得困难。
在这种情况下,解码器使用自监督学习的方法,基于患者嵌入向量 p 来恢复患者的历史诊断结果,而不是预测患者的下一个潜在的住院记录。自监督学习在这里起到的作用是让模型从数据本身学习,而不依赖外部标签。
解码器的目标,即将患者嵌入向量 p 解码为一个概率分布 ŷ。具体来说,ŷ_i 表示在给定患者嵌入 p 的情况下,疾病诊断代码 c_i 属于历史诊断集合 𝒱 的概率。这意味着,解码器的任务是基于患者嵌入向量 p,预测每个历史诊断代码 c_i 出现在历史诊断集合中的可能性。
已经说了是历史病史,为什么又说这个病出现在病史中的可能性?
通过考虑疾病诊断代码的层次结构,我们将疾病预测任务扩展如下。
在处理层次结构的根节点时所采取的方法:
在层次化疾病预测任务中,解码器的定义和损失函数的构造方式:
4.3.4 Federated Learning Settings
我们的目标是在联邦学习环境中提高面临非IID挑战的疾病预测模型的性能。因此,在疾病诊断代码预训练阶段之后,我们将上述疾病预测模型合并到一个联邦学习环境中,通过将学习到的参数更新到服务器端,使得不同的EHR能够联合训练一个全局疾病预测模型。
此外,我们还考虑了客户间电子病历的非 IID 特性。由于数据大小不平衡,正常平均法可能会影响性能。因此,我们在平均训练本地模型权重时考虑了数据大小,以应对这一挑战。
在初始化全局模型的权重 w0 之后,一轮通信中的联合平均过程包括前面(1)中概述的本地训练过程和(2)中的全局模型更新过程。因此,服务器将汇总并向客户端传播更新后的全局权重 wt+1,为下一轮训练做准备。
在联邦学习的设置下,我们可以基于局部EHR来训练全局疾病预测模型。来自客户端的每个局部模型都从本地和其他EHR中学习疾病诊断编码的隐藏分层表示,而不损害医疗记录的敏感信息。
4.3.5Personalized Fine Tuning
我们提出的个性化联邦学习框架PEARL的伪代码在算法2中展示,个性化微调方法在算法3中展示。