横向联邦学习(Horizontal Federated Learning)又称同构联邦学习(Homogenous Federated Learning)指的是参与各方拥有同样特征空间,而在样本空间上互不相同的联邦学习。
横向联邦学习要达到两个基本目标:
- 不交换样本也能利用全部样本进行模型的训练,训练效果与聚集全部样本后训练一致
- 训练过程交换的中间数据也不能暴露样本信息
关于目标1,其实很容易达到,早在96年FJ Provost等人就提出了Distributed Rule Learning(http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.57.2129&rep=rep1&type=pdf),说明使用多台计算机并行处理不同的样本可以大大加速模型训练。到了2014年,李沐等人依据在百度的大规模机器学习实践提出了ParameterServer模式(http://papers.nips.cc/paper/5597-communication-efficient-distributed-machine-learning-with-the-parameter-server.pdf)又大大提升了分布式机器学习在集群架构和算法实现的泛用化程度。所以实现目标1并不是HFL的最大挑战,至少这一目标已经被工业界和学术界基本攻克。
难度在于目标2,漏洞就在于分布式机器学习引入的梯度传输,可能会导致反推回原始数据。最近比较火的一个报道是MIT的Han Song组在 NeurIPS 2019 发表的 Deep Leakage from Gradients(https://hanlab.mit.edu/projects/dlg/),其中报道了一个用20行基于PyTorch核心代码的样例,运用GAN的思想,让分布式训练中的一个攻击方可以从整个模型更新梯度的过程中,不断生成与其他参与各方相同的数据,从而实现『偷取』数据。 而国内自媒体也喜欢『见得风就是雨』,发表了一些诸如『联邦学习因为梯度泄露问题受影响』的观点(https://zhuanlan.zhihu.com/p/96945857)。
有这样的观点的同志,大概是不了解横向联邦学习要解决的基本问题本身就包含梯度泄露。早在2017年,谷歌的Bonawitz等发表了『Practical Secure Aggregation for Privacy-Preserving Machine Learning』这篇文章,详细阐述了针对梯度泄露攻击设计的Secure Aggregation协议
Secure Aggregation协议有几个有意思的特点:
- 通过选择部分用户的加密梯度更新,类似于异步参数更新策略,来防御clients中的攻击者。这个可以基本可以解决DLG的问题,而DLG基本上依赖于同步参数更新策略的强假设:需要获得被攻击方样本集合上梯度值的精确值,随机选择会大大降低DLG的性能。
- 基于Secret Sharing的思想,让Server只知道Aggregated Gradients,防止Server想做坏事
这篇文章的Related Work很值得一读,还提出了其他一些可能的解决方法。
相对于被国内炒作了一波的DLG,我个人觉得另外一个针对横向联邦学习的攻击想法挺有意思的,IJCAI 2019上阿里巴巴的安全研究专家洪澄提出过,如果横向联邦中只有两个client,而其中一个又是Adversary Party的话,防御起来就很困难。谷歌并没有给出这种极端情况下的解决方案。洪澄研究员的论文原文我找不到了,有链接的朋友可在评论里面贴一下。
能比这种情况更极端的情况,大概就是只有两个Client,而且都是Adversary Party吧(狗头保命)