一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于组织相似度的联邦学习方法

2023-03-20 12:06:16 来源:中国专利 TAG:


1.本发明属于联邦学习技术领域,具体涉及一种基于组织相似度的联邦学习方法。


背景技术:

2.联邦学习是一种分布式机器学习,联邦学习对象包括一个中央服务器和多个客户端,在学习过程中多个客户端之间不需要交换本地个体或样本数据,仅通过将本地训练的模型参数或中间结果上传至中央服务器,再通过中央服务器构建基于虚拟融合数据下的全局模型,以此实现数据隐私保护和数据共享计算。当多个机构需要进行联邦学习时,由一个机构承担中央服务器的角色,邀请其他机构承担客户端的角色进行联邦学习。
3.现有技术中,为了保护用户数据的私密性,客户端之间不进行数据交换,中央服务器通过随机筛选的方式邀请客户端进行联邦学习;随机筛选的方式可能会导致筛选出的客户端数据量不平衡,客户端的关联性差,客户端的用户重复度低等问题,从而影响模型的训练效率和训练效果。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题,提供一种基于组织相似度的联邦学习方法,即不交换用户数据,又能筛选出用户数据符合训练需求的客户端,提高了联邦学习的训练效率和训练结果。
5.为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种基于组织相似度的联邦学习方法,包括以下步骤:获取机构的本地子图,计算本地子图中各个节点的嵌入值;根据节点的嵌入值组成该机构本地子图的嵌入列表;中央服务器获取多个客户端的嵌入列表,分别将每个客户端的嵌入列表与中央服务器的嵌入列表进行对齐排序处理;根据嵌入列表和度量公式分别获取各个客户端与中央服务器的相似度,筛选出相似度高于设定值的客户端为预选客户端,中央服务器与预选客户端共同参与联邦学习。
6.进一步地,所述度量公式如下:进一步地,所述度量公式如下:其中,表示机构i的嵌入列表,表示机构j的嵌入列表,表示机构i的嵌入列表中第x个节点嵌入值;表示机构j的嵌入列表中第x个节点嵌入值。
7.进一步地,节点的嵌入值的计算过程具体为:识别本地子图中的连通分量,获取连通分量的嵌入系数,根据嵌入系数和嵌入公式计算该连通分量中每个节点的嵌入值;嵌入公式如下:公式如下:其中,c表示节点,ec表示节点c的嵌入值,nc表示节点c的邻节点集合,p表示节点c的一个邻节点;w
c,p
表示节点c与节点p的边权重,coef表示
连通分量f的嵌入系数,wf表示整个连通分量f的边权重。
8.进一步地,获取连通分量的嵌入系数过程如下:根据路径公式获取连通分量的平均最短路径长度,通过转换公式将平均最短路径长度转换为该连通分量的嵌入系数;转换公式如下:coef=(a
f-1)
×
(n/2);其中,coef表示连通分量的嵌入系数,af表示连通分量的平均最短路径长度,n表示连通分量中的节点数;路径公式如下:平均最短路径长度,n表示连通分量中的节点数;路径公式如下:其中,f表示连通分量,q表示连通分量中的任意一个节点,m表示连通分量中节点q能够到达的节点;d(q,m)表示从节点q至节点m的最短路径长度。
9.进一步地,分别将每个客户端的嵌入列表与中央服务器的嵌入列表进行对齐排序处理的步骤具体为:若客户端嵌入列表的嵌入值个数与中央服务器嵌入列表的嵌入值个数不相同,则对嵌入值个数较少的嵌入列表进行补全,使两个嵌入列表的嵌入值个数相同,再对客户端嵌入列表的嵌入值进行排序,对中央服务器嵌入值列表的嵌入值进行排序;补全嵌入值个数较少的嵌入列表时使用的是该嵌入列表的所有嵌入值的平均值。
10.进一步地,中央服务器与预选客户端共同参与联邦学习的步骤具体为:中央服务器向预选客户端发送训练模型,预选客户端根据本地数据集对训练模型进行训练,获得模型梯度参数;将模型梯度参数依次进行剪裁处理、加噪处理后发送至中央服务器;中央服务器将所有预选客户端的模型梯度参数进行聚合获得全局模型参数,将全局模型参数进行加噪处理后分别发送给各个预选客户端进行新一轮的训练,直至训练模型收敛。
11.进一步地,训练模型为消息传递神经网络模型;训练模型的训练过程包括消息传递阶段和读出阶段;消息传递阶段具体为:获取本地子图中每个节点的当前特征及该节点的邻节点特征,根据第一聚合函数生成节点的聚合特征,根据聚合特征和更新公式更新节点的隐藏特征;读出阶段具体为:通过多层消息传递后,从最后一层的节点隐藏特征中计算特征向量并进行链接预测,完成一轮训练模型的训练。
12.进一步地,节点的隐藏特征的更新过程如下:进一步地,节点的隐藏特征的更新过程如下:其中,k表示客户端,c表示节点,l是层索引,表示客户端k第l 1层索引中节点c的隐藏特征,u
φ
(
·
)为更新公式,表示客户端k第l层索引中节点c的特征,表示客户端k第l 1层索引中节点c的聚合特征;聚合特征的生成公式如下:其中,agg(
·
)表示第一聚合函数,m
θ
(
·
)表示获得隐藏特征的消息生成函数,表示客户端k第l层索引中节点c的特征,p表示节点c的邻节点,表示客户端k第l层索引中邻节点p的特征,z
c,p
表示节点c和邻节点p的边特征,nc表示节点c的邻节点集合。
13.进一步地,特征向量的计算公式如下:进一步地,特征向量的计算公式如下:其中,k表示客户端k,d是节点对d,节点对d包括两个节点c,表示客户端k节点对d的隐藏特征之间的特征向量,r
δ
为级联函数或池化函数中的一种;l表示层数,表示客户端k第l层节点c的
隐藏特征,表示客户端k的节点对集合。
14.进一步地,剪裁处理的步骤具体为:其中,t表示第t轮训练,k表示第k个客户端,表示模型梯度参数,表示剪裁后的模型梯度参数,c表示剪裁阈值。
15.本发明的技术原理及有益效果:本发明根据本地子图的节点生成嵌入值,并对嵌入值进行对齐、排序操作组成嵌入列表;使用度量方式根据嵌入列表评估两个本地子图的相似度;嵌入值模糊了本地子图中节点与节点之间的交互关系,因此不存在泄露用户隐私数据的问题。因此各个机构可以承担中央服务器的角色,按照需求选择一定相似度的其他机构并发起训练;与现有技术相比,本方案通过对比各个机构的相似度,能够过滤掉用户数据量不平衡的机构,筛选出数据关联性高、用户重复度高的机构作为客户端进行联邦学习,参与训练的各个客户端的数据关联度越高,学习过程中模型的收敛速度越快,提高模型的训练效率和训练效果。
附图说明
16.图1是本发明一种基于组织相似度的联邦学习方法的步骤示意图;
17.图2是本发明一种基于组织相似度的联邦学习方法的流程示意图;
18.图3是本发明训练模型的结构示意图;
19.图4是本发明一种基于组织相似度的联邦学习方法的联邦学习的示意图;
20.图5是现有技术的联邦学习的示意图。
具体实施方式
21.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
22.联邦学习是一种交互学习手段,由一个机构担任中央服务器的角色,其他多个机构分别担任客户端的角色,由中央服务器发送初始模型至每个客户端,客户端使用本地数据分别进行模型训练,将训练好的模型发送至中央服务器进行聚合,直至模型收敛完成训练,通过这种训练方式既能得到适用与多个机构的全局模型,又能避免机构之间的用户隐私数据发生泄露。
23.如附图1所示,本发明提供了一种基于组织相似度的联邦学习方法,包括以下步骤:
24.获取机构的本地子图,计算本地子图中各个节点的嵌入值;根据节点的嵌入值组成该机构本地子图的嵌入列表;
25.中央服务器获取多个客户端的嵌入列表,分别将每个客户端的嵌入列表与中央服务器的嵌入列表进行对齐排序处理;根据嵌入列表和度量公式分别获取各个客户端与中央服务器的相似度,筛选出相似度高于设定值的客户端为预选客户端,中央服务器与预选客户端共同参与联邦学习;
26.所述度量公式如下:
[0027][0028]
其中,表示机构i的嵌入列表,表示机构j的嵌入列表,表示机构i的嵌入列表中第x个节点嵌入值;表示机构j的嵌入列表中第x个节点嵌入值。
[0029]
本实施例中,以机构i为例,机构i的本地子图gi为机构旗下用户的所有数据,本实施例中,这些数据包括用户、物品、用户给物品的评分,这些数据均被转换为本地子图gi,本地子图包括用户节点、物品节点、节点之间的边和边的权重,其中节点之间的边表示用户与物品的交互关系,边的权重表示用户给物品的评分;gi=(vi,ei),其中vi表示本地子图中的节点集合,vi=(ui,ii),ui表示用户节点,ii表示物品节点,ei表示本地子图中的节点之间的交互,交互,交互,表示用户ui对物品ii的评价。
[0030]
如附图5所示,现有技术在进行联邦学习时,存在本地客户端数据量非常小的情况,只有一个用户节点和少量物品节点,导致训练模型效果较差,远不足以支撑神经网络模型训练,需要通过第三方来拓展数据量,但是这种拓展方法导致用户的隐私信息保护存在隐患。本实施例提出的本地子图,不仅包括了用户节点,还包括了物品节点、物品节点与用户节点的交互,在在数据的划分上做到了深度模拟。为联邦学习提供了足够的数据量、通信能力和计算能力,使得本方案的适用性和实用性更强。
[0031]
优选地,节点的嵌入值的计算过程具体为:识别本地子图中的连通分量,连通分量可以定义为:在无向图中,若一个点与另一个点能够通过边连通,则这两个点及其连通的边、点组成连通分量;本实施例中,将本地子图输入networkx软件的python工具包中获得该本地子图的连通分量;
[0032]
获取连通分量的嵌入系数,根据嵌入系数和嵌入公式计算该连通分量中每个节点的嵌入值;
[0033]
嵌入公式如下:
[0034][0035]
其中,c表示节点,ec表示节点c的嵌入值,nc表示节点c的邻节点集合,p表示节点c的一个邻节点;w
c,p
表示节点c与节点p的边权重,coef表示连通分量f的嵌入系数,wf表示整个连通分量f的边权重。连通分量f的边权重为该连通分量中所有节点之间的边权重之和。
[0036]
本实施例中,若本地子图中包括多个连通分量,则依次对每一个连通分量进行完整的节点嵌入值分析;通过上述步骤,完成所有连通分量的节点嵌入值计算后,使用键对表示为《c:ec》,其中c表示节点,ec表示该节点的嵌入值;由于节点属于用户隐私数据,因此我
们单独提取节点的嵌入值形成机构本地子图的嵌入列表,作为计算相似度的基础。
[0037]
优选地,获取连通分量的嵌入系数过程如下:获取连通分量的平均最短路径长度,通过转换公式将平均最短路径长度转换为该连通分量的嵌入系数;
[0038]
转换公式如下:
[0039]
coef=(a
f-1)
×
(n/2)
[0040]
其中,coef表示连通分量的嵌入系数,af表示连通分量的平均最短路径长度,n表示连通分量中的节点数。转换公式中用平均最短路径长度减去1的原因是需要减去节点本身,乘以节点数除以2的原因是一条边的权重由两个节点平分。
[0041]
优选地,获取连通分量的平均最短路径长度的步骤具体为:根据路径公式计算连通分量的平均最短路径长度;
[0042]
路径公式如下:
[0043][0044]
其中,f表示连通分量,af表示连通分量f的平均最短路径长度,q表示连通分量中的任意一个节点,m表示连通分量中节点q能够到达的节点;d(q,m)表示从节点q至节点m的最短路径长度,n表示连通分量中的节点数。
[0045]
本实施例中,最短路径长度使用单源最短路径计算方法获得,计算过程如下:
[0046]
创建节点q到所有节点m的距离集合distset,为所有节点m指定一个距离值,初始的距离值均为infinite,节点q的初始距离值为0;
[0047]
创建新的spt(shortest path tree)集合sptset,集合sptset用于存放包含在spt中的节点;如果sptset集合中并没有包含所有的节点m,则选中不包含在sptset中的节点mu为当前sptset集合中未确认的最短距离节点;将节点mu包含进sptset;更新节点mu的所有邻节点的距离值;
[0048]
由于嵌入列表不包括用户的隐私数据,可以将嵌入列表输入至区块链上的智能合约,每一个机构作为区块链的一个点,将其嵌入列表公开,机构与机构之间可以通过对比嵌入列表获得相似度,整个过程都在区块链上的智能合约中进行,全程收到监管,并且借助区块链的共识机制,达到去中心化的效果,保证对比的公开性和公平性,同时能够高效地发起对比和训练。在对比之前需要对两个机构的嵌入列表进行对齐排序处理;优选地,分别将每个客户端的嵌入列表与中央服务器的嵌入列表进行对齐排序处理的步骤具体为:
[0049]
若客户端嵌入列表的嵌入值个数与中央服务器嵌入列表的嵌入值个数不相同,则对嵌入值个数较少的嵌入列表进行补全,使两个嵌入列表的嵌入值个数相同,再对客户端嵌入列表的嵌入值进行排序,对中央服务器嵌入值列表的嵌入值进行排序;补全嵌入值个数较少的嵌入列表时使用的是该嵌入列表的所有嵌入值的平均值。
[0050]
本实施例中,以机构i和机构j为例,机构i和机构j的本地子图分别为gi和gj,获得的嵌入列表分别为和在比对之前需要将嵌入列表对齐,使嵌入列表中的嵌入值个数相同,即如果且则在嵌入列表中补入嵌入值,补入嵌入值为嵌入列表中所有节点嵌入值的平均值补入
数量为个,使两个嵌入列表等长,然后再对两个嵌入列表分别排序,得到和和均表示经过对齐排序处理后的嵌入列表。
[0051]
本实施例中,当一个机构承担中央服务器的角色,需要获得多个客户端的相似度;如附图2所示,使用上述方法依次将每个客户端的嵌入列表与中央服务器的嵌入列表进行对齐处理、再对比获得相似度,相似度越高,联邦学习的效果越好。中央服务器可以根据相似度的计算结果得出训练策略,对相似度进行排序筛选出相似度高的客户端为预选客户端进行联邦学习。在本实施例中,中央服务器还可以结合该机构的主营业务等因素,参考是否要邀请预选客户端进行联邦学习,被邀请的机构也有权选择是否同意联邦学习。
[0052]
如附图4所示,中央服务器与预选客户端共同参与联邦学习的步骤具体为:中央服务器向预选客户端发送训练模型,预选客户端根据本地数据集对训练模型进行训练,获得模型梯度参数;将模型梯度参数依次进行剪裁处理、加噪处理后发送至中央服务器;
[0053]
如附图3所示,训练模型为消息传递神经网络模型;训练模型的训练过程包括消息传递阶段和读出阶段;
[0054]
消息传递阶段具体为:获取本地子图中每个节点的当前特征及该节点的邻节点特征,根据第一聚合函数生成节点的聚合特征,根据聚合特征和更新公式更新节点的隐藏特征;
[0055]
读出阶段具体为:通过多层消息传递后,从最后一层的节点隐藏特征中计算特征向量并进行链接预测,完成一轮训练模型的训练。
[0056]
具体地,节点的隐藏特征的更新过程如下:
[0057][0058]
其中,k表示客户端,c表示节点,l是层索引,表示客户端k第l 1层索引中节点c的隐藏特征,u
φ
(
·
)为更新公式,表示客户端k第l层索引中节点c的特征,表示客户端k第l 1层索引中节点c的聚合特征;
[0059]
聚合特征的生成公式如下:
[0060][0061]
其中,agg(
·
)表示第一聚合函数,m
θ
(
·
)表示获得隐藏特征的消息生成函数,表示客户端k第l层索引中节点c的特征,p表示节点c的邻节点,表示客户端k第l层索引中邻节点p的特征,z
c,p
表示节点c和邻节点p的边特征,nc表示节点c的邻节点集合。本实施例中,第一聚合函数可以直接用简单的加和操作处理。
[0062]
具体地,特征向量的计算公式如下:
[0063][0064]
其中,k表示客户端k,d是节点对d,节点对d包括两个节点c,表示客户端k节点
对d的隐藏特征之间的特征向量,r
δ
为级联函数或池化函数中的一种;l表示层数,表示客户端k第l层节点c的隐藏特征,表示客户端k的节点对集合;本实施例中,池化函数可以是加和操作加上单层或多层感知器。
[0065]
具体地,对于客户端k,在第t轮训练时,本地的模型梯度参数设为在将本地的模型梯度参数上传至中央服务器之前还经过剪裁处理和加噪处理。
[0066]
具体地,剪裁处理的步骤具体为:
[0067][0068]
其中,t表示第t轮训练,k表示第k个客户端,表示第t轮训练客户端k的模型梯度参数,表示第t轮训练客户端k剪裁后的模型梯度参数,c表示剪裁阈值,本实施例中,c可以人为设定,但是需要满足|wi|≤c,其中,wi表示模型梯度参数的原始梯度。
[0069]
本实施例中,为了保证模型梯度参数的私密性和安全性,在剪裁后的模型梯度参数进行加噪处理,加噪处理过程如下:
[0070][0071]
其中,t表示第t轮训练,k表示第k个客户端,表示第t轮训练客户端k剪裁后的模型梯度参数,表示第t轮训练客户端k加噪处理后的模型梯度参数,表示第t轮训练客户端k的噪声参数。
[0072]
中央服务器将所有预选客户端的加噪后的模型梯度参数进行聚合获得全局模型参数,将全局模型参数进行加噪处理后分别发送给各个预选客户端进行新一轮的训练,直至训练模型收敛。
[0073]
本实施例中,模型梯度参数使用第二聚合函数进行梯度聚合;第二聚合函数如下:
[0074][0075]
其中,t表示训练轮次,w
(t)
表示第t轮的全局模型参数,k表示客户端,表示第t轮客户端k的模型梯度参数,k表示参加训练的客户端总数,aggregate{}表示第二聚合函数,本实施例中,第二聚合函数可以是常用的fedavg(联邦平均法),也可以是优化改进后的fedopt、fedprox方法。
[0076]
本实施例中,对全局模型参数进行加噪的过程如下:
[0077][0078]
其中,w
(t)
表示第t轮的全局模型参数,n
(t)
表示全局噪声参数,表示加噪后的全局模型参数。
[0079]
其中噪声参数和全局噪声参数n
(t)
均为高斯噪声分布,均为高斯噪声分布,其中表示高斯分布,选择噪声尺度σ≥c

δs/∈;常数c

的取值为δs是由给出的函数s()的灵敏度,函数s()是实值函数;∈,δ为随机数由中央服务器指定分发,随机数的大小根据隐私保护的力度设定;其中随机数∈∈(0,1)。
[0080]
将加噪后的全局模型参数发送至各个客户端进行新一轮的训练,直至训练模型收敛后,各个客户端保留好训练模型在本地进行使用。
[0081]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0082]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献