联邦学习:算法详解与系统实现
上QQ阅读APP看书,第一时间看更新

4.2.3 安全性分析

在联邦学习框架下,数据的安全性是设计算法需要考虑的一个非常重要的方面。在实际应用中,我们将数据安全性分成两个方面来分析,即数据传输的安全性以及接收数据的一方是否可以反推出其他数据源的数据。

1. 信息传输和持有统计

在训练开始的时候,主动方需要将样本的标签进行同态加密后发送给被动方。在每一次节点的分裂过程中,参与方需要将分裂后的左子树的样本空间和右子树的样本空间分发给其他训练参与方,以便进行后续的训练流程。同时,在每一次计算最优分裂点的过程中,所有被动方需要根据自己所持特征的分位点累加对应的标签,得到标签基于特征分位点的累加和(由于是同态加密,该求和依然为密文),并发送给主动方。主动方再经过计算,将最优分裂点的特征和分位数发送给对应的参与方,在节点上进行分裂操作。表4-1总结了联邦随机森林算法中必要的数据传输内容以及对应的数据传输方向,表4-2总结了训练流程中主动方和被动方分别持有的信息。

表4-1 联邦随机森林算法数据传输统计

表4-2 联邦随机森林算法参与方持有数据统计

算法4.3 寻找最优分裂点(主动方执行)

输入:

当前样本的实例空间I;

从m个参与方聚合加密后的梯度的统计信息(算法4.2的输出)

最小信息增益

输出:

最优特征kopt

最优分位数vopt

1:for i=0→m do

2://列举所有特征

3:for k=0→di do

4:yi←0

5://列举所有阈值

6:for v=0→lk do

7:得到加密值

8:yl←yl+

9:yr←y-yl

10:score←max(score,E[Yl]2×nl+E[Yr]2×nr),其中n表示样本(实例)数

11:保留最大分数和对应的kopt、vopt

12:如果score>+E[Y]2×n,返回kopt、vopt,否则返回终止信号

13:end for

14:end for

15:end for

2. 标签安全性

接下来将根据联邦随机森林算法训练流程中的数据传输以及参与方持有的数据,对联邦随机森林算法的安全性进行分析。首先分析,主动方的标签是否可以被被动方探测到。

从标签本身来说,由于非对称加密技术,我们可以认为加密后的标签本身是很难被破解的。其次,由于所有叶节点是保存在主动方的,因此叶节点所保存的预测值(回归树为均值,分类树为一个分位点,如二分类树为50%分位点)是不会被被动方获得的。第三,我们需要考虑叶节点上一层的根节点是否可以探测到叶节点的信息。假设两个叶节点的一个父节点是在某一个被动方,由于子节点的样本空间分割方法是由被动方决定的,因此被动方知道这两个叶节点的样本空间的信息。在这种情况下,被动方可以对这两个子节点的分类情况进行猜测,而其猜测的准确度则是由子节点的纯度(purity)来决定的。同时,由于随机森林算法的每一棵树都具有过拟合的倾向,因此在单棵树上,叶节点的分类被探测到的风险相比于其他算法也会有一定程度的上升,因此我们需要通过一定的技术手段来降低主动方的叶节点被探测到的风险。

算法4.4 分裂样本空间(被动方执行)

输入:

当前节点的实例空间I;

选择的特征kopt

选择的分位数vopt

输出:

左实例空间IL

右实例空间IR

记录标志;

1:根据kopt和vopt将I分为IL和IR

2:为当前的分支(recordid,featureid,split value)生成一个记录

3. 特征安全性

被动方的特征分布是否可以被主动方探测到也是需要分析的。

根据参与方传递的信息以及持有的信息,我们知道主动方对于被动方特征信息了解仅局限于特征数、标签基于特征分位点的累加和以及最优分割后的样本空间。通常来说,这些信息是不足以反推出被动方的特征的。然而在极端情况下,被动方的特征分布仍有被探测到的风险。考虑这样一种情况:一个主动方与一个被动方使用联邦随机森林算法进行建模。主动方无特征,被动方有一个特征。此时,主动方可以随机生成一组标签并发起一个训练,尝试进行一次节点分裂操作。分裂后得到左子树的样本空间IL和右子树的样本空间IR,之后主动方停止训练。此时,主动方得到了被动方的一个特征的分组关系。之后主动方可以通过调整样本空间IL和IR再次训练两组随机树模型,以得到更加精细的样本空间分割,并反复进行这样的操作,直至主动方认为样本分类足够精细后停止。这样,被动方的样本特征的顺序在一定程度上(取决于主动方探测的精细度)就会被主动方探测到,从而造成一定特征信息的泄露。因此,我们也需要使用一些技术手段来保护被动方的特征。

4. 隐私加固联邦随机森林算法

Cheng等人于2019年的论文中提出了一种Completely SecureBoost算法,用来保证主动方的叶节点信息不会由于上文中的被动方的猜测而泄露。其核心思想为先在主动方本地进行一轮提升树建模,从第二轮开始,联合各个参与方一起进行后续的联邦梯度提升树的建模。文章证明了在各个参与方“honest-but-curious”的设定下,主动方标签信息泄露的程度等价于第一轮建模的叶节点的纯度,而该纯度在本地正常建模的情况下可以达到0.5,即无法通过每个叶节点的样本空间信息来猜测该叶节点所携带的决策信息。基于这种思想,我们对联邦随机森林算法进行了迭代,提出了隐私加固联邦随机森林算法。下面我们对该算法进行简要描述。

与Cheng等人所提算法类似,在算法的第一轮,我们使用梯度提升树策略在主动方进行一轮梯度提升树的建模。在第二轮的建模中,通过提升树的计算,我们可以知道在提升树的场景下需要优化以下目标函数:

这里,,是防止过拟合的惩罚函数。为第二轮提升树建模的损失函数对于f1xi)的一阶偏导系数,为第二轮提升树建模的损失函数对于f1xi)的二阶偏导系数。在第一轮提升树建模完毕的情况下,为已知的标量,同时gi与hi也可以通过计算得到。因此,在不考虑过拟合惩罚函数的情况下,我们可以将损失函数改写为如下形式:

此时,我们得到了一个最小化平方损失函数的优化问题,也可以看作一个每个样本标签为的回归问题。我们可以使用回归树对进行求解与预测。预测结果传回主动方后,主动方通过对结果使用二阶偏导系数进行校正,得到真正的第二轮预测结果f2xi)。在实际建模中,我们对进行了同态加密处理,从而保证一阶偏导系数和二阶偏导系数本身不会被泄露。如果被动方通过一些方法猜测出的近似值,也会因为没有gi或hi的信息而无法得知样本的真实标签。

对于被动方的特征保护,针对上文提出的攻击方法,我们对建树过程进行如下改进:通常在构建树模型时给出的分裂决策方程均为“a≤b”的形式,即小于或等于阈值的样本分割到左子树中,大于阈值的样本分割到右子树中。在建树过程中,我们对每一次节点分裂的决策方程的方向进行随机化处理,即每一个节点的决策方程的方向有50%的概率为a≤b,50%的概率为a≥b。在这样的情况下,左右子树的样本空间并不具备固定的方向,从而保证了即使在极端情况下主动方也无法通过一些特定的建模方式探测出被动方的特征分布。

5. 隐私加固通用联邦学习算法

值得一提的是,式(4.2)中的损失函数为固定的平方损失函数,因此在保证gi与hi不泄露的情况下,通过对样本进行重新打标,我们在保证主动方和被动方不泄露自己的特征分布的情况下,也可以使用其他建模方法对损失函数进行拟合,如线性回归、核方法或者深度学习方法等。限于篇幅,我们在此不做展开讨论。