Measure Contribution of Participants in Federated Learning

由于项目需要,所以这篇论文我主要关注的是水平联邦学习的贡献度问题:

背景:
联邦机器学习(FML)为多方创建了一个生态系统,在为参与者保护数据隐私的同时,协作构建模型。在FML中,对各方贡献的度量可以实现公平的信用分配。为了让联合学习的生态系统发挥作用,我们需要鼓励不同的各方贡献他们的数据并参与协作联盟。信用分配和奖励机制对于当前和潜在的联合学习参与者的激励至关重要公平衡量联邦学习中各方的贡献可以实现公平的信用分配。单靠数据量肯定是不够的,因为一方可能贡献大量的数据,而这些数据对构建模型没有多大帮助。我们需要一种方法来公平地衡量整体数据质量,从而决定贡献。

该论文的研究方向
在横向FML和纵向FML的背景下,开发了简单而强大的技术来公平地计算多方在FML中的贡献。
水平FML:使用删除方法来计算分组实例的影响
垂直FML:我们使用Shapley值来计算分组特征的重要性

联邦学习分成三类:
横向(水平)联邦学习,纵向(垂直)联邦学习和联邦迁移学习。

水平联邦学习的删除法
评估第i个实例对模型预测的影响:
使用删除方法,在每次从训练数据集中删除实例时重新训练模型,并测量重新训练模型的预测变化量。假设我们正在评估第i个实例对模型预测的影响,那么影响度量可以表述为:
Influencei=1nj=1nyjyjiInfluence^-i=\frac{1}{n}\sum_{j=1}^{n}|y_j-y_j^-i|
其中n是数据集的大小,yjy_j是在所有数据上训练的模型对第j个实例的预测,而yjiy_j^-i是在省略了第i个实例的情况下训练的模型对第j个实例的预测。

其实也就是:在删除一个实例的后,训练出一个模型,然后对所有的实例进行在原模型上的预测值-删除实例后训练模型的预测值的平均差值——就可以知道该实例对模型的影响。

评估联邦学习中某一方的贡献:
对于具有实例D子集的水平FML中的一方,我们将贡献定义为它所拥有的所有实例的总影响,形式如下:
InfluenceD=iDInfluenceiInfluence^-D=\sum_{i∈D}Influence^-i

其实也就是,某一方中所有实例的影响程度之和。

但是论文中提出了一种上面的近似算法:水平FML中各方影响的近似估计
在每次删除时将一批实例作为一个整体考虑
Measure Contribution of Participants in Federated Learning
输入:参与方的数量K,以及模型f。各方拥有的实例子集D1,D2,....DKD_1,D_2,....D_K
输出:联邦学习各方的贡献
执行:计算各方的贡献度
对于每一方:
删除他们的训练数据——重新训练模型——计算该方的影响——返回所有参与方的影响

该论文所使用的数据集:
宫颈癌(危险因素)数据集,利用宫颈癌数据集预测女性个体是否会获得宫颈癌以给定指标和危险因素作为数据集的特征。
对数据进行规范化,并使用Scikit-learn为宫颈癌分类任务训练一个支持向量机模型

宫颈癌(危险因素)数据集属性信息
Measure Contribution of Participants in Federated Learning
实验:
在实验中,我们概念性地构建了一个有五个参与者的水平联合学习生态系统(每个参与方都有相同数量的数据集)。我们使用删除法来计算这五个参与者的贡献,结果如图所示。
Measure Contribution of Participants in Federated Learning