论文简介
- 论文名称:Federated Machine Learning: Concept and Applications
- 作者:QJANG YANG, 香港科技大学
- 论文来源:ACM Transactions on Intelligent Systems and Technology
- 论文链接:https://dl.acm.org/doi/abs/10.1145/3298981
FL简介
FL背景
人工智能如今面对的两个挑战:
- 大多数行业中,数据以孤岛的形式存在(数据孤岛)。
- 数据隐私和数据安全不断加强。
联邦学习的定义
定义由$N$个数据载体${F_1, ..., F_N}$,各自拥有数据矩阵${D_1, ..., D_N}$。传统的方法会把所有数据聚合:$D = D_1 \cup ... \cup D_N$,训练模型$M_{SUM}$。联邦学习是各个数据载体合作训练模型$M_{FED}$,在此过程中,数据载体$F_i$不会将自己的数据$D_i$暴露给其他载体。
设$M_{FED}$的准确率为$V_{FED}$,$V_{FED}$应该与$M_{SUM}$的性能$V_{SUM}$非常接近。若存在非负实数$\delta$使得$|V_{FED}-V_{SUM}<\delta|$,则称联邦学习算法具有$\delta$精度损失。
联邦学习的隐私技术
- 安全多方计算(Secure Multiparty Computation, SMC):完全零知识(complete zero knowledge),但是因为需要复杂的计算协议,所以很难有效实现。
论文里提到的sota[8]:Sharemind - 差分隐私(Differential Privacy):通过向数据里添加噪声,或者使用泛化的方法来掩盖敏感的属性,使数据无法恢复来保护隐私(太简单粗暴了吧!!)。这种方法仍然需要传输数据。这种方法通常需要权衡准确性和隐私性。
- 同态加密(Homomorphic Encryption):通过加密机制下的参数交换,来保护用户的数据隐私(没明白)。数据和模型都不会被传输,加性同态加密在实际中被应用的最广泛。
间接信息泄露(论文里简单提了一嘴)
当联邦学习的中间参数更新和数据结构(如图像的像素)一起暴露时,会泄露重要的参数信息。
[43]:对抗性的参与者可以推断出成员的身份和与训练数据子集相关的属性
[62]:不同数据持有方之间的梯度交换存在安全问题。
[34]:区块链联邦学习架构,移动设备的本地模型的更新通过区块链进行交换验证。
联邦学习分类
根据数据在特征空间、样本空间、ID空间中的各方分布不同,分为:
- 横向联邦学习(horizontally federated learning),基于样本的联邦学习
- 纵向联邦学习(vertically federated learning)
- 联邦迁移学习(federated transfer learning)
横向联邦学习

不同数据集共享相同的特征空间,但样本空间不同。
e.g.:两家区域银行的用户群体不同,其用户的交集非常小;但他们主营的业务是相同的,因此其特征空间是相同的。
[58]:参与者独立训练,只共享更新的参数的子集。
[41]:谷歌提出的针对手机模型更新的水平联邦学习解决方案:安卓手机用户在本地更新模型参数,上传到安卓云,与其他数据所有者共同训练集中式模型。(感觉这篇论文有必要读一下)
[9,51]:参与者诚实,服务器诚实但好奇(服务器能够损坏数据参与者的隐私)
[29]:恶意用户,训练结束时将通用模型和所有模型参数都暴露给所有参与者。
对横向联邦学习的总结如下:
$$ \chi_i = \chi_j , y_i = y_j, I_i \neq I_j , \forall D_i , D_j , i \neq j $$
纵向联邦学习

不同数据及共享相同的样本ID空间,但特征空间不同。
e.g.:在同一城市的两家不同的公司:一家是银行,一家是电子商务公司。他们的用户空间的交集很大,但他们的功能空间是不同的。此时我们希望双方当都有一个基于用户和产品信息的购买预测模型。
纵向联邦学习将不同的特征聚合起来,利用双方的数据协作构建一个模型。每个参与方的身份和地位是相同的,因此称为“联邦学习”。
对纵向联邦学习的总结如下:
$$ \chi_i \neq \chi_j , y_i \neq y_j, I_i = I_j , \forall D_i , D_j , i \neq j $$
联邦迁移学习

不同数据之间,样本空间和特征空间都不同。
e.g.:有一家在中国的银行,和一家在美国的电子商务公司,两者之间用户群体的交集很小,且业务不同,即特征空间的重叠也很小。
对FTL所处理的问题总结如下:
$$ \chi_i \neq \chi_j , y_i \neq y_j, I_i \neq I_j , \forall D_i , D_j , i \neq j $$
联邦学习系统的架构
水平联邦学习系统

k个具有相同数据结构的参与者协同训练一个机器学习模型:
- 参与者在本地计算训练梯度;屏蔽梯度的选项后将屏蔽的结果发送到服务器
- 服务器执行安全的聚合,执行时不了解任何参与者的信息
- 服务器将聚合的结果发给参与者
- 参与者用解密后的梯度更新各自的模型。
重复上述步骤直到损失函数收敛。
[42]:可能会受到在协作学习过程中GAN的恶意参与者的攻击
垂直联邦学习系统

- 加密实体对齐([38,56])。
两家公司用户组不同,系统使用基于加密的用户id对齐技术,确认双方的共同用户,这一过程不需要公开各自的数据。实体对齐期间,系统不会公开彼此不重叠的用户。 - 加密模型训练。
确定了公共实体之后,可以通过公共实体的数据来训练机器学习模型:
2.1 协作者C创建加密对,向A和B发送公钥
2.2 A和B加密和交换梯度和损失计算的中间结果。
2.3 A和B分别计算加密的梯度,并增加一个额外的掩码;B还计算了加密的损失。A和B向C发送加密的值。
2.4 C执行解密,并发送解密后的梯度并丢回A和B。A和B解码梯度,并相应地更新模型参数。
相关工作
隐私保护机器学习
一些传统机器学习的算法:
- [17,67] 针对垂直分区数据的决策树算法
- [66] 用于垂直划分数据的k-means算法
- [64] 用于垂直划分数据的朴素贝叶斯分类器
- [73,74] 针对垂直分布数据、水平分布数据的安全SVM算法
深度学习结合的算法:
- [58] 基于交换更新参数的水平分区数据的神经网络训练
- [10,11,14,28,40,52,54] 隐私保护神经网络推理
分布式机器学习
- [77] 联邦学习如何解决non-IID问题(刘艺杰!你的研究重点!!抽时间好好读一读!!!)
边缘计算
应该不是研究重点,先放一放
联邦数据库系统
略过,不是研究重点
问题:垂直联邦学习系统中,参与者A和B承担不同的分工(2.3中B比A多做了一件事),那A和B是怎么确定角色的呢?
Comments | NOTHING