1 联邦学习概述
1.1 联邦学习的产生
随着计算机算力的提高,机器学习作为一种大量数据处理手段而被大量运用。
但机器学习发展过程中面临着两大挑战:一是数据安全和数据隐私安全难以保障,二是由于网络安全隔离和行业隐私,不同行业、不同部门之间存在数据壁垒导致数据形成“孤岛”无法安全共享,并且仅凭各部门独立数据训练的机器学习模型性能无法达到全局最优化。
于是,为解决上述问题,谷歌公司率先提出了联邦学习(Federated Learning)概念,其通过将机器学习的数据存储和模型训练阶段移动至本地用户,之后在与中心服务器交互更新模型,这种方式将有效的保证各个用户的数据隐私和安全,同时也会使得机器学习模型得到充分的训练。
简单地说,联邦学习机制类似于分布式机器学习技术,但是又不完全一样。
联邦学习中心结点通过下放模型到各参与结点,各结点在本地进行计算后仅仅返回模型参数,最后中心结点再聚合所有模型参数进行模型的更新。在整个过程中,中心服务器并没有要求各参与方提供本地数据,因此保障了各参与方的数据隐私安全。
核心理念:数据不动模型动,数据可用不可见。
1.2 联邦学习的迭代过程
(1)各参与方接收从中央服务器传递的最新模型;
(2)各参与方根据本地数据得到模型参数;
(3)各参与方将加密梯度上传到中央服务器;
(4)中央服务器聚合各参与方的梯度,得到更新的全局模型。

通过一张图是不是就浅显易懂了呢?
1.3 联邦学习的分类
·横向联邦学习(Horizontal Federated Learning)
适用于联邦学习各参与方的数据有重叠的数据特征的情况,即数据特征在各参与方之间是对齐的,但是各参与方拥有的数据样本是不同的。
例如:不同地区的两家银行,它们虽然可能只有很少的重叠客户,但是客户的数据可能因为相似的商业模式而又类似的特征。

·纵向联邦学习(Vertical Federated Learning)
适用于各参与方之间的训练样本有重叠的数据样本,即参与方之间的数据样本是对齐的,但是数据特征上有所不同。
例如:两家公司提供不同服务(如一家银行和一家电子商务公司),但是在客户群体上有较大交集时,为了得到一个更好的机器学习模型,可以在各自不同数据特征空间上协作。

·联邦迁移学习(Federated Transfer Learning)
适用于各参与方的数据样本和数据特征都很少重叠的情况。
以两个参与方为例,其中一方代表源域(source domain),另一方代表目标域(target domain),我们在源域中学习特征的分布,将源域的特征信息迁移到目标域中,但在这一迁移过程中,本地数据同样不会离开本地。
例如:一家公司拥有丰富的图片信息,另一家公司拥有文字等语言信息,图片和文字属于不同特性的维度空间。利用联邦学习,可以在数据不出本地的前提下,在两家公司之间通过知识迁移来学习到另一方面的特征数据,扩充自身的特征信息,提升模型的性能效果。

2 联邦学习的安全机制
2.1 基于同态加密的安全机制
同态加密定义
同态加密(HE)是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
一个同态加密方案H由一个四元组组成:
H={KeyGen,Enc,Dec,Eval}
KeyGen表示密钥生成函数。对于非对称同态加密,一个密钥生成元g被输入KeyGen,并输出一个密钥对{pk,sk}=KeyGen(g),其中pk表示用于对明文进行加密的公钥,sk表示用于对密文进行解密的私钥。对于对称同态加密,只生成一个密钥sk=KeyGen(g),用于加密和解密操作。
Enc表示加密函数。对于非对称同态加密,一个加密函数用公钥pk和明文m作为输入,并产生密文c=Encpk(m)作为输出。对于对称加密,加密过程使用公共密钥sk和明文m作为输入,并生成密文c=Encsk(m)。
Dec表示解密函数。对于非对称和对称同态加密,私钥sk和密文c被用来作为计算相关明文m=Decsk(c)的输入。
Eval表示评估函数。评估函数Eval将密文c和公共密钥pk(对于非对称同态加密)作为输入,并输出与明文对应的密文,用于验证加密算法的正确性。
用Encpk(·)表示使用公钥pk作为加密密钥的加密函数,用M表示明文空间,用C表示密文空间。一个安全密码系统若满足以下条件,则可被称为同态的(homomorphic):
∀m1,m2∈M,Encpk(m1 ⊙M m2) ← Encpk(m1) ⊙C Encpk(m2)
其中,⊙M和 ⊙C分别表示操作符⊙在明文空间M和密文空间C上的运算。对于M中的任意两个元素m1和m2,在对它们执行⊙M运算操作后对得到的结果进行加密,其结果与m1和m2分别先进行加密再执行⊙C运算操作的结果一致;←符号表示左边项等于或可以直接由右边项计算出来,而不需要任何中间解密计算。
同态加密意义
同态加密机制能够在不对密文进行解密的情况下计算密文,即计算方无需了解明文内容,只需获得密文就可以进行运算了。在联邦学习中,能很好的保护敏感数据和信息的同时进行计算操作。从而做到能处理数据又不暴露原始内容。
2.2 基于差分隐私的安全机制
联邦学习中仍然存在的安全问题
在联邦学习中,虽然计算操作在本地执行,并且只需返回模型参数,但是在模型参数传输过程中若被人截获,并且被对方倒推,是有可能反推得到参与方的原始数据的。所以对模型参数的安全传输也需要安全机制的保障。
差分隐私的定义
差分隐私采用了一种随机机制,使得当输入中的单个样本改变之后,输出的分布不会有太大的改变。它通过在运算结果中添加噪声来干扰其他人通过逆推模型参数结果来获得原始数据。
差分隐私的分类
按照数据收集方式的不同,可分为中心化差分隐私和本地化差分隐私,它们的区别主要在于差分隐私对数据处理的阶段不同。

中心化差分隐私需要一个可信的第三方,将收集的数据集中进行差分隐私运算。而本地化差分隐私是在本地先自己保护好数据后再发送给第三方。
差分隐私常用的三种机制
在添加噪声时,往往采用一下三种机制。

虽然差分隐私能很好地保障模型参数在传输中的安全,但是必须要控制好添加噪声的程度,不然可能会较大程度地影响模型的正确性。
参考资料
[1]贾延延, 张昭, 冯键, 等. 联邦学习模型在涉密数据处理中的应用[J]. 中国电子科学研究院学报, 2020(1):43-49.
[2]杨强,黄安埠,刘洋,程天建. 联邦学习实战[M]. 北京:电子工业出版社, 2021.