纵向联邦学习
现在我们介绍另一种联邦学习算法:纵向联邦学习(Vertical Federated Learning)。纵向联邦学习的参与方拥有相同样本空间、不同特征空间的数据,通过共有样本数据进行安全联合建模,在金融、广告等领域拥有广泛的应用场景。和横向联邦学习相比,纵向联邦学习的参与方之间需要协同完成数据求交集、模型联合训练和模型联合推理。并且,参与方越多,纵向联邦学习系统的复杂度就越高。
纵向联邦学习VFL一般由两部分组成:加密实体对齐,加密模型训练。
加密实体对齐
由于A方和B方公司的用户群体不同,系统使用一种基于加密的用户ID对齐技术,来确保A方和B方不需要暴漏各自的原始数据便可以对齐共同用户。在实体对齐期间,系统不会将属于某一家公司的用户暴露出来。
加密模型训练
在确定共有实体后,各方可以使用这些共有实体的数据来协同地训练一个机器学习模型。训练过程可以被分为以下四个步骤:
- 协调者C创建密钥对,并将公共密钥发送给A方和B方
- A方和B方对中间结果进行加密和交换,中间结果用来帮助计算梯度和损失值
- A方和B方计算加密梯度并分别加入附加掩码。B方还会计算加密损失。A方和B方将加密的结果发送给C方
- C方对梯度和损失信息进行解密,并将结果发送回A方和B方。A方和B方解除梯度信息上的掩码,并根据这些梯度信息来更新模型参数
在样本对齐中,最常使用地便是隐私集合求交(Private Set Intersection,PSI)技术。业界PSI实现方案有多种:基于电路、基于公钥加密、基于不经意传输协议和基于全同态加密等。不同PSI方案各有优劣势。例如,基于公钥加密方案不需要辅助服务器运行,但公钥加密的计算开销大;而基于不经意传输方案计算性能高,但通信开销较大。因此在具体应用时,要根据实际场景来选择功能、性能和安全之间的最佳平衡方案。
基于RSA盲签名是一种基于公钥加密的经典PSI方法,也是当前业界纵向联邦学习系统中广泛应用的技术之一。下面以企业A和企业B为例描述RSA盲签名算法的基本流程。
企业A作为服务端,拥有一个包含了标签数据+样本ID的集合。企业B则作为客户端,拥有样本ID集合。首先,企业A利用RSA算法生成私钥和公钥。其中,私钥保留在服务端,公钥则发送给企业B。
服务端利用RSA算法计算出参与样本对齐的ID的签名:
其中是采用私钥d加密的对的RSA加密的结果。
同样,在客户端侧对样本ID进行公钥加密,并乘以一个随机数用于加盲扰动:
客户端侧将上述计算出来的值传输给服务端侧。服务端侧收到值后,使用私钥进行签名并计算:
然后将计算出的和发送给客户端侧。 而客户端侧收到和后,首先完成去盲操作:
并将自己的ID签名与服务端发过来的ID签名进行样本对齐,得到加密和哈希组合状态下的ID交集,
最后,将对齐后的样本ID交集发送给服务端,服务端利用自身的映射表单独求取明文结果。这样企业A和企业B在加密状态下完成了求取相交的用户集合,并且在整个过程中双方非重叠样本ID都不会对外暴露。