定义:
横向联邦学习也称为按样本划分的联邦学习,各参与方的数据集有相同的特征空间和不同的样本空间。
例如,两家不同地区的商业银行的客户群体有着非常小的交集,他们的数据集有着不同的样本空间。因为相似的业务模型,他们的数据集的特征空间非常相似或相同。这两家银行便可以联合起来进行横向联邦学习。
安全性假设:
横向联邦学习的各参与方都是honest的,只有聚合服务器是honest-but-curious的,并且它是需要被防范的。
横向联邦学习架构:
- 客户-服务器架构
- 各参与方在本地计算模型梯度,并使用同态加密、差分隐私、秘密共享等加密技术,对梯度信息进行掩饰,并将掩饰后的结果发送给聚合服务器。
- 服务器进行安全聚合,如使用基于同态加密的加权平均。
- 服务器将聚合后的结果发送给个参与方。
- 各参与方对收到的梯度进行解密,并使用解密后的梯度结果更新各自的模型参数。
两种联邦学习算法:
- 梯度平均
参与方将梯度信息发送给服务器,服务器将收到的梯度信息进行聚合,再将聚合后的梯度信息发送给参与方。
优点:准确的梯度的信息;有保证的收敛性
缺点:加重通信负担;需要可靠连接
- 模型平均
参与方在本地计算模型参数,并将他们发送给服务器,服务器对收到的模型参数进行聚合,再将聚合的模型参数发送给参与方。
优点:不受SGD限制;可以容忍更新缺失;不频繁的同步;
缺点:不保证收敛性;性能损失;
全局模型评估:
训练过程中和训练结束后,第k个参与方使用本地的测试数据集,对现有的联邦学习模型进行性能评估,得到评估结果。k=1,2......K都执行此操作。第k个参与方给协调方发送本地模型预测结果,k=1,2......K都执行此操作。在收集到K个参与方发送的模型预测结果后,协调方能够计算全局模型性能测试结果。协调方将计算得到的全局模型性能(准确率、精确率和召回率)发送给所有参与方。
- 对等网络架构
在该框架中不存在中央服务器,每一个训练方负责只使用本地数据集训练同一个机器学习模型,训练方使用安全链路在相互之间传输模型参数。为保证任意两方之间的通信安全,需要使用例如基于公共密钥的加密方法等安全措施。
公钥和私钥算法的理解:
如果使用对称加密算法(私钥加密算法),加解密使用同一个密钥,除了自己保存外,对方也要知道这个密钥,才能对数据进行解密。如果你把密钥也一起传过去,就存在密码泄漏的可能。所以我们使用非对称算法(公钥加密算法),过程如下:
- 首先 接收方 生成一对密钥,即私钥和公钥;
- 然后,接收方 将公钥发送给 发送方;
- 发送方用收到的公钥对数据加密,再发送给接收方;
- 接收方收到数据后,使用自己的私钥解密。
由于在非对称算法中,公钥加密的数据必须用对应的私钥才能解密,而私钥又只有接收方自己知道,这样就保证了数据传输的安全性。
由于对等网络架构中不存在中央服务器,所以各训练方必须提前商定发送和接受模型参数信息的顺序。有两种方法:
- 循环传输(cyckic transfer)
训练方们被组成一个链条,第一个训练方将当前的模型参数发送给下一个训练方。该训练方接收到来自上游的模型参数后,将使用本地数据集的小批量数据更新收到的模型参数。它再将更新后的模型参数传输给下一个训练方,直到模型收敛或达到最大的迭代次数和时间。
- 随机传输(randm transfer)
第k个训练方从剩余的个参与方等概率的选择一个发送模型参数,接受到模型参数的参与方使用本地数据集的mini-batch更新接收到的模型参数,之后重复上一个步骤直到所有训练方同意模型参数收敛或达到最大的训练时间。此方法也称为Gossip学习。