纵向联邦学习场景中的贡献评估方法与流程

文档序号:36316943发布日期:2023-12-08 05:23阅读:73来源:国知局
纵向联邦学习场景中的贡献评估方法与流程

本发明涉及数据处理,具体是纵向联邦学习场景中的贡献评估方法。


背景技术:

1、联邦学习根据特征和样本id空间中参与者之间的数据分配方式,分为两种广泛应用的框架:横向联合学习和纵向联合学习。其中,纵向联邦学习适用于参与者共享相同样本id空间但具有不同的特征空间,比如同一地区的商超和银行,他们接触的用户都为该地区的居民,即样本相同,但业务不同,即特征不同。纵向联邦学习通常使用各种加密技术,以隐私保护的方式来计算梯度并构建模型。

2、贡献估计是纵向联邦学习中一个重要的评价指标。目前在机器学习领域,已经有很多机器学习算法提供了计算贡献估计的思路,并且也已经做了相关的工作。但是由于机器学习算法本身的限制导致他们都不十分适用于纵向联邦学习系统。造成上述这种情况的原因,主要是由于纵向联邦学习在进行贡献估计时需要评估数据特征的贡献,而现有的机器学习算法通常是通过分析数据样本对模型训练效果的影响来确定其贡献。为了有效的解决上述的技术问题,一些研究人员通常使用沙普利值来计算各个训练样本的数据特征对模型训练的贡献,但是由于计算沙普利值需要指数级的计算开销和通信开销,导致这一方法在实际的使用中,在联邦学习系统中难以实现,从而难以计算出数据特征的贡献,最终导致无法准确的评估出纵向联邦学习系统中每个用户对联邦学习系统的贡献。


技术实现思路

1、为了避免和克服现有技术中存在的技术问题,本发明提供了纵向联邦学习场景中的贡献评估方法。本发明能够准确高效的评估纵向联邦学习系统中每个用户对联邦学习系统的贡献。

2、为实现上述目的,本发明提供如下技术方案:

3、纵向联邦学习场景中的贡献评估方法,包括以下评估步骤:

4、s1、联邦学习模型中的服务器接收所有参与者的本地计算结果,并根据本地计算结果计算全局损失,然后通过全局损失计算全局梯度;

5、s2、服务器仅使用来自联盟的参与者上传的本地结果计算更新全局梯度;

6、s3、利用更新后的全局梯度计算各个参与者在联邦学习模型训练中的总边际贡献。

7、作为本发明再进一步的方案:参与者的总边际贡献表示如下:

8、

9、其中,πt(γt)表示联邦学习模型中所有参与者在第t次迭代时的总边际贡献值;γt∈{0,1}表示二进制向量,表示参与者是否在第t次迭代时参与联合训练;γt,i=1,表示第i个参与者在第t次迭代时参与联合训练;γt,i=0,表示第i个参与者在第t次迭代时不参与联合训练;表示联邦学习模型中第i个参与者在第t次迭代时的边际贡献值;n表示联邦学习模型中参与者的总数。

10、作为本发明再进一步的方案:步骤s3的具体步骤如下:

11、s31、将更新后的全局梯度记为联盟梯度,并将联盟梯度输入到联盟的效用函数中,以计算联盟的效用函数值;效用函数的表示如下:

12、

13、其中,v(s,t)表示联盟在第t次迭代中的效用函数值,即沙普利值;表示在第t次迭代时,联邦学习模型的验证数据集在当前全局模型中的梯度,即验证梯度;gt(s)表示在第t次迭代时,联邦学习模型中的联盟在当前全局模型中的梯度,即联盟梯度;s表示联盟;

14、s32、将效用函数值输入到联盟的边际贡献分量计算公式中,计算联盟中的参与者在联邦学习模型的第t次迭代中的边际贡献,边际贡献分量计算公式表示如下:

15、

16、其中,v({k},t)表示联盟中的第k个参与者在联邦学习模型第t次迭代中的边际贡献值;s∪{k}表示联盟集合;v(s∪{k},t)表示联盟集合s∪{k}中第k个参与者在第t次迭代的联盟效用函数值;gt({k})表示在第t次迭代时,联邦学习模型中联盟的第k个参与者在当前全局模型中的梯度;gt(s∪{k})表示集合s∪{k}在第t次迭代时,当前全局模型中的梯度;

17、s33、基于联盟的边际贡献分量计算公式,以及该计算公式计算出的联盟中的各个参与者的边际贡献值,构建联邦学习模型的边际贡献分量计算公式;通过联邦学习模型的边际贡献分量计算公式计算联邦学习模型中各个参与者在联邦学习模型的第t次迭代中的边际贡献,联邦学习模型的边际贡献分量计算公式表示如下:

18、

19、其中,s∪{i}表示模型集合;v(s∪{i},t)表示模型集合s∪{i}中第i个参与者在第t次迭代的模型效用函数值;gt({i})表示在第t次迭代时,联邦学习模型中的第i个参与者在当前全局模型中的梯度;c表示联邦学习模型中的所有参与者组成的集合;loss表示联邦学习模型的全局损失函数,θt,i表示联邦学习模型中第i个参与者在完成第t次迭代后的模型;表示排列组合,| s|表示联盟中所有参与者的数量;

20、s34、对联邦学习模型中各个参与者在联邦学习模型的所有迭代中的边际贡献进行求和即可得到该参与者在联邦学习模型中的总边际贡献。

21、作为本发明再进一步的方案:步骤s1的具体步骤如下:

22、s11、构建由各个参与者自身具有的模型组合形成的联邦学习模型φ,φ=(θ1,θ2,…,θi,…,θn),θ1其中表示联邦模型中第1个参数者的模型;θ2其中表示联邦模型中第2个参数者的模型;θi其中表示联邦模型中第i个参数者的模型;θn其中表示联邦模型中第n个参数者的模型;

23、s12、在联邦学习模型训练的第t次迭代中,参与者用本地数据计算得到本地计算结果,即δt,i=fi(θt,i,xi);δt,i表示第i个参与者在第t次迭代过程中的计算得到的本地计算结果,fi表示第i个参与者的计算函数;xi表示第i个参与者的本地数据,θt,i表示第i个参与者在第t次迭代时的参数;

24、s13、将所有参与者的本地计算结果发送到服务器,服务器为纵向联邦学习拥有标签的第三方;服务器接收所有参与者的本地计算结果,并计算联邦学习模型在第t次迭代中的全局损失函数loss,loss=(δt,1,δt,2,…,δt,i,…,δt,n),δt,1表示第1个参与者在第t次迭代过程中的计算得到的本地计算结果,δt,2表示第2个参与者在第t次迭代过程中的计算得到的本地计算结果,δt,n表示第n个参与者在第t次迭代过程中的计算得到的本地计算结果;

25、s14、利用全局损失函数计算全局梯度,全局梯度表示如下:

26、

27、其中,gt(c)表示联邦学习模型在第t迭代后的全局梯度,θt,1表示第1个参与者在第t次迭代时的参数,θt,2表示第2个参与者在第t次迭代时的参数;θt,n表示第n个参与者在第t次迭代时的参数。

28、作为本发明再进一步的方案:步骤s2的具体步骤如下:

29、s21、设定一个合作博弈,并将该合作博弈定义为联盟;从联邦学习模型中选取设定数量的参与者放入到联盟中,并定义同时位于联盟和联邦学习模型中的参与者参与了联合训练;

30、s22、服务器使用来自联盟参与者上传的本地计算结果计算更新全局梯度,计算更新后的全局梯度表示如下:

31、

32、其中,γt,i(i=1,2,...,n)表示gt({i})(i=1,2,...,n)的参数;

33、若i∈s,即联邦学习模型中的第i个参数者也在联盟中,则γt,i=1,否则γt,i=0。

34、作为本发明再进一步的方案:在联邦学习模型的训练过程中,服务器在计算完每个参与者的边界贡献值后,会接着计算每个参与者的权重,权重计算公式如下:

35、

36、其中,ωt,i(i=1,2,...,n)表示联邦学习模型在第t迭代后,第i个参与者的权重;

37、然后对全局梯度进行加权计算,以得到加权后的全局梯度;加权后的全局梯度表示如下:

38、

39、其中,表示联邦学习模型在第t迭代后,加权后的全局梯度;ωt,n表示联邦学习模型在第t迭代后,第n个参与者的权重;

40、最后使用加权后的全局梯度更新全局模型,更新后的全局模型如下:

41、

42、其中,φt+1表示第t+1次迭代的全局模型;φt表示第t次迭代的全局模型;αt表示全局模型第t次迭代时的学习效率。

43、与现有技术相比,本发明的有益效果是:

44、1、本发明设计了一个面向纵向联邦学习的高效的贡献评估,并可以修正联邦学习的训练方向,加快模型的收敛,提升联邦学习系统的性能。

45、2、本发明所使用的训练数据是联邦学习所固有的信息,参与者上传给服务器的中间结果,以及小规模验证数据集的梯度信息,不会造成参与者本地数据的隐私泄露。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1