联邦学习综述(一)

一、联邦学习概念

当今的AI仍然面临两个主要挑战。 一是在大多数行业中,数据以孤立的孤岛形式存在。 另一个是加强数据隐私和安全性。 我们为这些挑战提出了一种可能的解决方案:安全的联邦学习。 除了Google在2016年首次提出的联邦学习框架之外,我们还引入了一个全面的安全联邦学习框架,其中包括水平联邦学习,垂直联邦学习和联合转移学习。 我们提供联邦学习框架的定义,体系结构和应用程序,并提供有关该主题的现有著作的全面概述。 另外,我们建议在基于联盟机制的组织之间建立数据网络,作为一种有效的解决方案,使知识可以在不损害用户隐私的情况下进行共享。

1.1 联邦学习定义

假定 N N N个数据所有者 { F 1 , . . . , F N } \{ \mathcal{F}_1,...,\mathcal{F}_N\} {F1,...,FN},这些人想用自己的数据 { D 1 , . . . , D N } \{ \mathcal{D}_1,...,\mathcal{D}_N\} {D1,...,DN}共同训练出一个机器学习模型。传统的方法是将这些数据集合成 D = D 1 ⋃ . . . ⋃ D N \mathcal{D}=\mathcal{D}_1 \bigcup ... \bigcup \mathcal{D}_N D=D1...DN来训练一个模型 M S U M \mathcal{M}_{SUM} MSUM。联邦学习的目标依然是他们合作训练一个模型 M F E D \mathcal{M}_{FED} MFED,但是 F i \mathcal{F}_i Fi并不泄露出其数据 D i \mathcal{D}_i Di。除此之外,我们假设模型 M \mathcal{M} M的精确度为 V \mathcal{V} V,那么对于任意 δ > 0 \delta > 0 δ>0,我们应该有:

∣ M F E D − M S U M ∣ < δ | \mathcal{M}_{FED} - \mathcal{M}_{SUM} | < \delta MFEDMSUM<δ

我们就说这个联邦学习算法有 δ \delta δ-精确度损失。

1.2 联邦学习隐私安全

隐私是联邦学习的基本属性之一。 这就需要安全模型和分析来提供有意义的隐私保证。 在本节中,我们简要回顾并比较了用于联邦学习的不同隐私技术,并确定了防止间接泄漏的方法和潜在挑战。

1.2.1 安全多方计算(SMC)

安全多方计算(SMC)最早是由华裔计算机科学家、图灵奖获得者姚启智教授通过百万富翁问题提出的,两个百万富翁X和Y想知道他们两个谁更富有,但他们都不想让对方知道自己财富的任何信息。在双方都不提供真实财富信息的情况下,如何比较两个人的财富多少,并给出可信证明。

安全多方计算的特点:

  • 1、两方或者多方参与基于他们各自隐私或秘密数据输入的计算。
  • 2、参与一方都不愿意让其他任何第三方知道自己的输入信息。

SMC安全模型自然包含多个参与方,并在定义明确的仿真框架中提供安全证明,以确保完全零知识,也就是说,除了输入和输出之外,每个参与方都不知道。零知识是非常需要的,但是这种期望的属性通常需要复杂的计算协议,并且可能无法有效实现。在某些情况下,如果提供安全保证,则可以认为部分知识公开是可以接受的。有可能在较低的安全性要求下用SMC建立安全性模型以换取效率。

1.2.2 差分隐私

另一行工作使用差分隐私或k-匿名技术保护数据隐私。 差分隐私,k匿名和多样化的方法涉及给数据添加噪声,或使用归纳方法掩盖某些敏感属性,直到第三方无法区分个人为止,从而使数据无法还原到 保护用户隐私。 但是,这些方法的根源仍然要求将数据传输到其他地方,并且这些工作通常需要在准确性和隐私之间进行权衡。

1.2.3 同态加密

在机器学习过程中,还采用了同态加密来通过加密机制下的参数交换来保护用户数据的隐私性。与差分隐私保护不同,数据和模型本身不会被传输,也不会被对方的数据猜中。 因此,在原始数据级别泄漏的可能性很小。

同态加密(Homomorphic Encryption, HE)是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可算不可见”。同态加密的实现效果如下图所示。

联邦学习综述(一)_第1张图片

1.2.4 间接信息泄漏

联邦学习的先驱作品暴露了中间结果,例如来自诸如随机梯度下降(SGD)等优化算法的参数更新,但是没有提供安全保证,这些梯度的泄漏实际上可能泄漏重要的数据信息。当与数据结构(例如图像像素)一起暴露时。研究人员已经考虑了一种情况,即联邦学习系统的成员之一通过允许插入后门来学习他人的数据来恶意攻击他人。研究人员还开始考虑将区块链作为促进联邦学习的平台。

1.3 联邦学习分类

在本节中,我们讨论如何根据数据的分布特征对联邦学习进行分类。

令矩阵 D i \mathcal{D}_{i} Di表示每个数据所有者 i i i持有的数据。矩阵的每一行代表一个样本,每一列代表一个特征。同时,某些数据集可能还包含标签数据。我们将要素空间表示为 X X X,将标签空间表示为 Y Y Y,并使用 I I I表示样本 I D ID ID空间。例如,在财务字段中,标签可能是用户的信用;在营销字段中,标签可能是用户的购买意愿;在教育领域, Y Y Y可能是学生的学位。特征 X X X,标签 Y Y Y和样本 I D ID ID构成了完整的训练数据集 ( I , X , Y ) (I,X,Y) (I,X,Y)。数据参与方的特征和样本空间可能并不相同,我们根据特征和样本ID空间中各方之间的数据分配方式,将联邦学习分为水平联邦学习,垂直联邦学习和联合转移学习。下面详细介绍针对两方场景的各种联邦学习框架。

联邦学习综述(一)_第2张图片

1.3.1 Horizontal Federated Learning

联邦学习综述(一)_第3张图片

在数据集共享相同特征空间但样本不同的情况下引入了水平联邦学习或基于样本的联邦学习(上图a)。例如,两个区域银行可能具有与其各自区域不同的用户组,并且它们的用户的交集非常小。但是,它们的业务非常相似,因此要素空间相同。2017年,Google提出了用于Android手机模型更新的水平联邦学习解决方案。在该框架中,使用Android手机的单个用户可以在本地更新模型参数,并将参数上传到Android云,从而与其他数据所有者一起共同训练集中式模型。还引入了一种安全的聚合方案,以在其联邦学习框架下保护聚合的用户更新的隐私性。

我们将横向联邦学习总结为:

X i = X j , Y i = Y j , I i ≠ I j , ∀ D i , D j , i ≠ j \mathcal{X}_{i}=\mathcal{X}_{j},\mathcal{Y}_{i}=\mathcal{Y}_{j},\mathcal{I}_{i} \neq \mathcal{I}_{j},\forall \mathcal{D}_i,\mathcal{D}_{j},i\neq j Xi=Xj,Yi=Yj,Ii=Ij,Di,Dj,i=j

横向联邦学习,适用于参与者的数据特征重叠较多,而样本ID重叠较少的情况,例如,两家不同地区的银行的客户数据。“横向”二字来源于数据的“横向划分(horizontal partitioning, a.k.a. sharding)”。联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的,称为横向联邦学习。横向联邦使训练样本的总数量增加。

1.3.2 Verical Federated Learning

联邦学习综述(一)_第4张图片

垂直联邦学习或基于特征的联邦学习(图b)适用于两个数据集共享相同的样本ID空间但特征空间不同的情况。例如,考虑在同一城市中的两家不同的公司,一家是银行,另一家是电子商务公司。他们的用户集可能包含该地区的大多数居民,因此他们的用户空间相交很大。但是,由于银行记录了用户的收支行为和信用等级,并且电子商务保留了用户的浏览和购买历史,因此它们的功能空间大不相同。假设我们希望双方都有一个基于用户和产品信息的产品购买预测模型。

垂直联邦学习是聚合这些不同特征并以保护隐私的方式计算训练损失和梯度的过程,以使用双方的数据共同构建模型。在这种联邦机制下,每个参与方的身份和地位都是相同的,联邦系统帮助每个人建立“共同财富”策略,这就是为什么该系统被称为“联邦学习”。因此,在这样的系统中,我们具有:

X i ≠ X j , Y i ≠ Y j , I i = I j , ∀ D i , D j , i ≠ j \mathcal{X}_{i} \neq \mathcal{X}_{j},\mathcal{Y}_{i} \neq \mathcal{Y}_{j},\mathcal{I}_{i} = \mathcal{I}_{j},\forall \mathcal{D}_i,\mathcal{D}_{j},i\neq j Xi=Xj,Yi=Yj,Ii=Ij,Di,Dj,i=j

安全定义。 垂直联邦学习系统通常假设诚实但好奇的参与者。 例如,在两党的情况下,两党是无冲突的,并且最多只有其中之一受到对手的妥协。 安全性定义是,攻击者只能从其损坏的客户端中学习数据,而不能从其他客户端中学习超出输入和输出所显示内容的数据。 为了促进两方之间的安全计算,有时会引入半诚实的第三方(STP),在这种情况下,假定STP不与任何一方串通。 SMC为这些协议提供了正式的隐私证明。 在学习结束时,每一方只保留与其自身功能相关的模型参数,因此在推理时,两方还需要协作以生成输出。

纵向联邦学习,适用于参与者训练样本ID重叠较多,而数据特征重叠较少的情况,例如,同一地区的银行和电商的共同的客户数据。“纵向”二字来源于数据的“纵向划分(vertical partitioning)”。联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的,称为纵向联邦学习。纵向联邦学习需要先做样本对齐,即找出参与者拥有的共同的样本,也就叫“数据库撞库(entity resolution, a.k.a. entity alignment)”。只有联合多个参与者的共同样本的不同特征进行纵向联邦学习,才有意义。纵向联邦使训练样本的特征维度增多。

1.3.3 Federated Transfer Learning (FTL)

联邦学习综述(一)_第5张图片

联合转移学习适用于两个数据集不仅在样本上而且在特征空间上都不同的情况。 考虑两个机构,一个是位于中国的银行,另一个是位于美国的电子商务公司。 由于地理位置的限制,两个机构的用户群之间的交叉点很小。 另一方面,由于业务不同,双方的特征空间只有一小部分重叠。 在这种情况下,可以应用转移学习[50]技术为联合之下的整个样本和特征空间提供解决方案(图2c)。 特别地,使用有限的公共样本集学习两个特征空间之间的共同表示,然后将其应用于获得仅具有一侧特征的样本的预测。 FTL是现有联邦学习系统的重要扩展,因为它处理的问题超出了现有联邦学习算法的范围:

X i ≠ X j , Y i ≠ Y j , I i ≠ I j , ∀ D i , D j , i ≠ j \mathcal{X}_{i} \neq \mathcal{X}_{j},\mathcal{Y}_{i} \neq \mathcal{Y}_{j},\mathcal{I}_{i} \neq \mathcal{I}_{j},\forall \mathcal{D}_i,\mathcal{D}_{j},i\neq j Xi=Xj,Yi=Yj,Ii=Ij,Di,Dj,i=j

迁移学习,是指利用数据、任务、或模型之间的相似性,将在源领域学习过的模型,应用于目标领域的一种学习过程.迁移学习的核心是,找到源领域和目标领域之间的相似性,举一个杨强教授经常举的例子来说明:我们都知道在中国大陆开车时,驾驶员坐在左边,靠马路右侧行驶。这是基本的规则。然而,如果在英国、香港等地区开车,驾驶员是坐在右边,需要靠马路左侧行驶。那么,如果我们从中国大陆到了香港,应该如何快速地适应 他们的开车方式呢?诀窍就是找到这里的不变量:不论在哪个地区,驾驶员都是紧靠马路中间。这就是我们这个开车问题中的不变量。 找到相似性 (不变量),是进行迁移学习的核心。

1.4 Acchitecture for a federated learning sysmte

在本节中,我们说明联邦学习系统的一般体系结构。 请注意,水平和垂直联邦学习系统的体系结构在设计上有很大的不同,我们将分别介绍它们。

1.4.1 Horizontal Federated Learning

联邦学习综述(一)_第6张图片

图3显示了水平联邦学习系统的典型体系结构。在该系统中,具有相同数据结构的k个参与者借助参数或云服务器协作学习机器学习模型。这种系统的训练过程通常包含以下四个步骤:

  • Step 1: 参与者在本地计算训练梯度,使用加密,差分隐私等技术掩盖梯度的更新,并将掩蔽的结果发送到服务器;
  • Step 2: 服务器执行安全聚合,而无需了解有关任何参与的信息;
  • Step 3: 服务器将汇总结果发回给参与者;
  • Step 4: 参与者使用解密的梯度更新各自的模型。

继续执行上述步骤,直到损失函数收敛为止,从而完成了整个训练过程。 这种架构独立于特定的机器学习算法(逻辑回归,DNN等),并且所有参与者都将共享最终的模型参数。

1.4.2 Vertical Federated Learning

假设公司A和公司B希望共同训练机器学习模型,并且他们的业务系统各自具有自己的数据。 此外,公司B还具有模型需要预测的标签数据。 出于数据隐私和安全原因,A和B无法直接交换数据。 为了确保在训练 过程中数据的机密性,需要第三方协作者C的参与。 在这里,我们假设协作者C是诚实的,并且不与A或B串通。 受信任的第三方C是一个合理的假设,因为第三方C可以由政府等机构扮演,也可以由诸如Intel Software Guard Extensions(SGX)之类的安全计算节点代替。 联邦学习系统由两部分组成,如下图所示。
联邦学习综述(一)_第7张图片

第1部分:加密实体对齐。 由于两家公司的用户组不同,因此系统使用基于加密的用户ID对齐技术来确认双方的普通用户,而A和B不会暴露各自的数据。 在实体对齐期间,系统不会公开彼此不重叠的用户。

第2部分:加密模型训练。 确定公共实体后,我们可以使用这些公共实体的数据来训练机器学习模型。 培训过程可以分为以下四个步骤(如图4所示):

  • 步骤1:合作者C创建加密秘钥,将公钥发送给A和B;
  • 步骤2:A和B加密并交换中间结果以进行梯度和损失函数计算;
  • 步骤3:A和B分别计算加密的梯度并添加额外的掩码,A和B也计算损失函数的值, A和B向C发送加密后的值;
  • 步骤4:C解密并将解密的梯度和损失发送回A和B; A和B取消遮盖渐变,相应地更新模型参数。

1.4.3 Federated Transfer Learning

假设在上面的垂直联邦学习示例中,甲方和乙方只有很少的一组重叠样本,并且我们有兴趣学习甲方中所有数据集的标签。对于重叠的数据集。为了将其覆盖范围扩展到整个样本空间,我们引入了转移学习。这不会改变图4所示的总体架构,而是会更改甲方和乙方之间交换的中间结果的细节。具体而言,转移学习通常涉及学习甲方和乙方特征之间的通用表示,并将其最小化通过利用源域参与方(在这种情况下为B)中的标签来预测目标域参与方的标签中的错误。因此,甲方和乙方的梯度计算与垂直联邦学习方案中的梯度计算不同。在推论时,它仍然需要双方计算预测结果。

联邦学习综述(二)

你可能感兴趣的:(联邦学习,机器学习)