
4.3.2 SecureBoost算法
SecureBoost是微众银行提出的纵向联邦学习算法,是XGBoost算法在联邦学习环境下的重新实现,在微众银行FATE平台中支持各式各样的场景,完成了许多联邦学习任务。
与非联邦环境下的其他Boosting树模型类似,SecureBoost的核心步骤也是通过计算梯度的方法,完成对损失函数的梯度提升树建模:

其中,l(·,·)为基础损失函数(如分类树为cross enctropy,回归树为mean square error),Ω(ft)为防止过拟合加入的惩罚函数,gi与hi分别为损失函数对预测值的一阶导数和二阶导数。
在联邦学习环境下,我们需要考虑实际建模中数据的隐私保护。通过上述计算并分析传输的数据,在各个参与方之间传输的敏感数据为gi和hi。通过收集这两个值,我们很容易就可以写出用gi和hi反推损失函数中y的数学推导式子,也就是联邦学习任务中最需要保护的样本的标签。因此,SecureBoost中应用了加法半同态加密技术,对需要传递的数据gi和hi进行了同态加密处理,确保未拥有标签的参与方无法解密gi和hi的真实值,从而在保护隐私数据的前提下完成提升树的建模。
SecureBoost适用于多个平台拥有相同的数据样本ID,但各自掌握不同特征集合的场景。其训练和推理要求包含两种角色:一种是拥有标签和部分特征数据的主动参与方,另一种是只拥有特征数据的被动参与方。在SecureBoost应用场景下,应当只有一个主动参与方和多个被动参与方,训练和推理仅能由主动参与方发起。
SecureBoost算法和联邦随机森林算法的区别在于前者用梯度提升的方法传递gi和hi,迭代建立新的决策树;而后者基于随机采样传递y来建立各自独立的决策树。在梯度提升相关的计算已经完成的情况下,两者的整体算法流程大同小异,在此不再赘述。