联邦学习(电子工业出版社)——读书笔记(4)

第五章 纵向联邦学习

纵向联邦学习的定义

把在数据集上具有相同的样本空间、不同的特征空间的参与方所组成的联邦学习归纳为纵向联邦学习(Vertical Federated Learning, VFL),也可以理解为按特征划分的联邦学习。

在这种联邦学习体系下,每一个参与方的身份和地位是相同的。

在VFL的设置中,存在一些关于实现安全和隐私保护的假设。首先,VFL假设参与方都是诚实但好奇的。第二,VFL假设信息的传输过程是安全且足够可靠的,能够抵御攻击。此外,还假设通信是无损的,不会使得中间结果的内容发生变化。一个半诚实的第三方(STP)独立于各参与方,它将会收集中间结果以计算梯度和损失值,并将结果转发给每一参与方。STP收到的来自参与方的信息是被加密过或者被混淆处理过的。因此各方的原始数据并不会暴露给彼此,并且各参与方只会收到与拥有的特征相关的模型参数。

纵向联邦学习的框架

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方接触梯度信息上的掩码,并根据这些梯度信息来更新模型参数。

纵向联邦学习算法

安全联邦线性回归

这种算法利用同态加密方法,在联邦线性回归模型的训练过程中保护属于每一个参与方的本地数据。

具体算法流程见原书。

在实际情况中,将一个第三方加入此过程中并不总是可行的,因为第三方的合法性和可问责性难以得到保障。安全多方计算技术,例如秘密共享,可以用于移除第三方和使联邦学习去中心化。

为了进一步防止C方从A方或B方学习到相关信息,A方和B方可以将它们的梯度信息加上加密随机掩码。

模型的效率依赖于通信开销和给数据加密所需的计算开销。在每一轮迭代中,A方和B方之间发送的信息量随着重叠样本数量的增长而增加。

安全联邦提升树

安全联邦提升数(SecureBoost)可与不具有隐私保护功能的且在非联邦设定下的相同算法提供相同的精确度。

主动方不仅是数据提供方,同时拥有样本特征和样本标签,此外还扮演着协调者的角色,计算每个树节点的最佳分割。被动方只是数据提供者,只提供样本特征,没有样本标签。因此,被动方需要和主动方共同地构建模型来预测标签。

安全的样本对齐

SecureBoost包含两个主要步骤。首先,在隐私保护下对参与方之间具有不同特征的重叠用户进行样本对齐。然后,所有参与方通过隐私保护协议共同地学习一个共享的梯度提升树模型。

XGBoost回顾

决策树集成模型的学习是通过寻找一组最佳的决策树以达到较小的分类损失,并且具有较低的模型复杂度。在梯度提升树中,这个目的是通过迭代优化真实标签和预测标签的损失(如损失的平方或损失函数的泰勒近似)来达到的。

SecureBoost的训练过程

每一个被动方首先要对其所有的特征进行分桶,然后将每个特征的特征值映射至每个桶(buckets)中。基于分桶后的特征值,被动方将聚合相应的加密梯度统计信息。通过这种方法,主动方只需要从所有被动方处收集聚合的加密梯度统计信息。

以下步骤总结了SecureBoost算法中一棵树的训练过程。

  1. 从主动方开始,首先计算gihi,i∈{1, …,N} ,并使用加法同态加密对其进行加密。其中N为样本个数。主动方将加密的gihi,i∈{1, …,N} 发送给所有的被动方。
  2. 对于每一个被动方,根据算法5-1将当前节点样本空间中样本的特征映射至桶中,并以此为基础将加密梯度统计信息聚合起来,将结果发送给主动方。
  3. 主动方对各被动方聚合的梯度信息进行解密,并根据算法5-2确定全局最优分割,Kopt 和Vopt 返回给相应的被动方。
  4. 被动方根据从主动方发送的Kopt 和Vopt 确定特征的阈值,并对当前的样本空间进行划分。然后,该被动方在查找表中记录选中特征的阈值,形成记录[记录id,特征,阈值],并将记录id和IL 返回给主动方。
  5. 主动方将会根据收到的[记录id,IL ]对当前节点进行划分,并将当前节点与[参与方id,记录id]关联。主动方将当前节点的划分信息与所有被动方同步,并进入对下一节点的分割。
  6. 迭代步骤2~5,直到达到训练停止条件

SecureBoost的预测过程

  1. 主动方查询与当前节点相关联的[参与者id,记录id]记录。基于该记录,主动方向相应参与方发送待标注样本的id和记录id,并且询问下一步的树搜索方向(即向左子节点或右子节点)
  2. 被动方接收到待标注样本的id和记录id后,将待标注样本中相应特征的值与本地查找表中的记录[记录id,特征,阈值]中的阈值进行比较,得出下一步的树搜索方向。然后,该被动方将搜索决定发往主动方。
  3. 主动方接收到被动方传来的搜索决定,前往相应的子节点。
  4. 迭代步骤1~3,直至到达一个叶节点得到分类标签以及该标签的权值。

挑战与展望

纵向联邦学习中各参与方彼此间有相对于横向联邦学习更紧密的共生关系,参与方之前需要频繁地互动以交换模型训练中间结果。

纵向联邦学习的训练很容易受到通信故障的影响,从而需要可靠并且高效的通信机制。为了解决这个问题,我们可能需要设计一种流式的通信机制,可以高效地安排每个参与方进行训练和通信的时机,以抵消数据传输的延迟。同时,对于能够容忍在纵向联邦学习过程中发生崩溃的容错机制,也是我们实现纵向联邦学习系统所必须考虑的细节。

目前,大部分防止信息泄露或者对抗恶意攻击的研究都是针对横向联邦学习的场景。之前的研究工作已经证明,只有具备针对性的安全工具,才能让不同的计算种类达到最优效果。

你可能感兴趣的:(机器学习,人工智能)