定义
在数据集上具有相同的样本空间、不同的特征空间的参与方所组成的联邦学习归类为纵向联邦学习(Vertical Federated Learning,VFL),也可以理解为按特征划分的联邦学习。
架构
VFL系统的训练过程一般由两部分组成:首先对齐具有相同ID,但分布于不同参与方的实体;然后基于这些已对齐的实体执行加密的(或隐私保护的)模型训练。
- 第一部分:加密实体对齐
由于A方和B方公司的用户群体不同,系统使用一种基于加密的用户ID对齐技术,例如文献所描述的,来确保A方和B方不需要暴露各自的原始数据便可以对齐共同用户。在实体对齐期间,系统不会将属于某一家公司的用户暴露出来。
- 第二部分:加密模型训练
在确定共有实体后,各方可以使用这些共有实体的数据来协同地训练一个机器学习模型。训练过程可以被分为以下四个步骤:
-
步骤1 协调者C创建密钥对,并将公共密钥发送给A方和B方。
- 步骤2 A方和B方对中间结果进行加密和交换。中间结果用来帮助计算梯度和损失值。
- 步骤3 A方和B方计算加密梯度并分别加入附加掩码(additional mask)。B方还会计算加密损失。A方和B方将加密的结果发送给C方。
- 步骤4 C方对梯度和损失信息进行解密,并将结果发送回A方和B方。A方和B方解除梯度信息上的掩码,并根据这些梯度信息来更新模型参数。
纵向联邦学习算法
安全联邦提升树 (SecureBoost)
- 安全的样本对齐
SecureBoost包含两个主要步骤。首先,在隐私保护下对参与方之间具有不同特征的重叠用户进行样本对齐。然后,所有参与方通过隐私保护协议共同地学习一个共享的梯度提升树模型。
SecureBoost框架的第一步是实体对齐,即在所有参与方中寻找数据样本的公共集合(如共同用户),共同用户可以通过用户ID被识别出来。
- 训练过程
聚合统计值
寻找最优分割
预测过程
- 步骤1 主动方查询与当前节点相关联的[参与方id,记录id]记录。基于该记录,主动方向相应参与方发送待标注样本的id和记录id,并且询问下一步的树搜索方向(即向左子节点或右子节点)。
- 步骤2 被动方接收到待标注样本的id和记录id后,将待标注样本中相应特征的值与本地查找表中的记录[记录id,特征,阈值]中的阈值进行比较,得出下一步的树搜索方向。然后,该被动方将搜索决定发往主动方。
- 步骤3 主动方接收到被动方传来的搜索决定,前往相应的子节点。
- 步骤4 迭代步骤1~3,直至到达一个叶节点得到分类标签以及该标签的权值。
重复这一过程遍历所有的决策树,最终通过对从所有决策树得到的类标签进行加权求和,得到最终的类标签。