背景介绍
联邦学习最早在 2016 年由谷歌提出,原本用于解决安卓手机终端用户在本地更新模型的问题;本质上是一种分布式机器学习技术,或机器学习框架。
联邦学习是多个参与方在保护数据隐私、满足合法合规要求的前提下继续进行机器学习,解决数据孤岛的问题。
- 各方数据都保留在本地,不泄露隐私也不违反法规;
- 多个参与者联合数据建立虚拟的共同模型,并且共同获益的体系;
- 在联邦学习的体系下,各个参与者的身份和地位平等;
- 联邦学习的建模效果和将整个数据集放在一处建模的效果相同,或相差不大(在各个数据的用户对齐(user alignment)或特征(feature alignment)对齐的条件下);
- 迁移学习是在用户或特征不对齐的情况下,也可以在数据间通过交换加密参数达到知识迁移的效果。
相关研究
-
Differential Privacy ⇒ 联邦学习 数据和模型本身不会进行传输,数据层面不存在泄露的可能
-
Distributed Machine Learning ⇒ 横向联邦学习中多方联合训练的方式和分布式机器学习有部分相似的地方;联邦学习面对的一个更复杂的学习环境,强调对数据拥有方的数据隐私保护
-
Federated Database System ⇒ 与联邦学习在存储方式上有相似之处;联邦数据库不设计任何隐私保护机制,所有单元数据库对管理系统都是完全可见的
-
区块链 ⇒ 区块链是一种完全的P2P的网络结构;联邦学习中第三方会承担汇聚模型/管理等功能;技术上,区块链使用的加密算法:哈希算法,非对称加密,而联邦学习:同态加密;数据上,区块链通过加密的方式在各个节点上记录了完整的数据,而联邦学习:各方数据均仅保留在本地;奖励机制上,区块链:不同节点之间通过竞争记账来获得奖励,而联邦学习:多个参与方共同学习,提高模型训练结果,依据每一方的贡献来分配奖励
-
多方安全计算 ⇒ 利用安全多方计算来增强联邦学习的安全性研究
系统构架
-
加密样本对齐。由于两家企业的用户群体并非完全重合,系统利用基于加密的用户样本对齐技术,在 A 和 B 不公开各自数据的前提下确认双方的共有用户,并且不暴露不互相重叠的用户,以便联合这些用户的特征进行建模。
-
加密模型训练。 在确定共有用户群体后,就可以利用这些数据训练机器学习模型。为了保证训练过程中数据的保密性,需要借助第三方协作者 C 进行加密训练。
- 协作者 C 把公钥分发给 A 和 B,用以对训练过程中需要交换的数据进行加密。
- A 和 B 之间以加密形式交互用于计算梯度的中间结果。
- A 和 B 分别基于加密的梯度值进行计算,同时 B 根据其标签数据计算损失,并把结果汇总给 C。C 通过汇总结果计算总梯度值并将其解密。
- C 将解密后的梯度分别回传给 A