联邦学习(Federated Learning)是一种由多方参与的联合计算技术,多方在不泄漏各自隐私数据的前提下,完成模型的训练与推理。
在实际应用中,联邦学习既可以发生在同一企业的不同部门,也可以在不同企业之间。一般在联邦学习框架中,各个参与者的明文数据不出本地,以降低隐私泄漏的风险,多方之间仅交换必需的中间结果以完成训练。
在目前的学术研究与应用中,根据应用场景的不同,联邦学习可以分为横向联邦学习和纵向联邦学习 [1]。在本文中,我们将重点对以上两种联邦学习进行安全性分析,深入探索多方在横向联邦学习和纵向联邦学习中交换的中间结果是否会带来隐私数据泄漏。
Vanilla 横向联邦学习的安全性
Vanilla 横向联邦是联邦学习的一种最初形态,由 Google 在 2016 年提出 [2],该方案最早地展示了如何在不接触用户本地数据的前提下完成模型训练,从而在一定程度上减少了用户的隐私数据泄漏。
图 1:Google 的 Vanilla 横向联邦学习。
上图 1 展示了 Vanilla 横向联邦学习的过程,该方案由以下三个步骤组成:
- Map:中心服务器将当前模型分发给参与者,收到模型的参与者在本地数据上进行参数的有偏估计;
- Aggregate:中心服务器收集参与者的参数估,进行聚合,得到新的模型参数;
- Reduce:中心服务器使用聚合后的新参数作为当前模型。
该方案将重复步骤(1)-(3)直到模型收敛,Google 已将该方案实践于 Google- keyboard 应用。
安全性分析
在 vanilla 横向联邦中,中心服务器获取到了参与者每轮训练的梯度明文,基于这些明文梯度信息,中心服务器可以使用梯度攻击的方法,反推参与者的训练数据。目前常用的梯度攻击方法有两种:(1)全连接网络层攻击 [3](2)非全连接、深度模型的攻击 [4]。
1.全连接网络层攻击
当神经网络模型第一层为全连接层时,中心服务器可以使用方法(1)进行攻击,假设第一层网络为:
a=wx+b
则在反向传播中,w 的梯度为:
其中 ∂l/∂a 为反向传递到第一层的梯度,对每一个神经元,输出维度为 1,即 ∂l/∂a 为标量,∂l/∂w 是原数据 x 的 ∂l/∂a 倍。以图像数据为例,其数据区间为 0~255,中心服务器只需要将某一个神经元的梯度进行 rescale,调整到 0~255 之间,即可直接获得参与者的训练数据。
图 2:全连接网络层攻击结果(2 层网络,每层 512 个 unit)[5]。
上图 2 展示了在该方法在 MLP 模型上的攻击结果,可以看到攻击结果中的数字清晰可辩别。
2.非全连接、深度模型的攻击
当模型为非全连接、深度模型时,例如卷积神经网络、循环网络,中心服务器可以使用方法(2)进行攻击,该方法的基本思路是使用梯度信息作为输入、训练一组假数据。当假数据产生的梯度和真实梯度相近时,假数据就会十分接近真实数据。下图 3 展示了该攻击方案的基本原理。
图 3:针对卷积神经网络的梯度攻击方法。
下图 4、图 5 展示了图像任务和 NLP 任务的攻击结果,可以看到中心服务器可以使用该梯度攻击方法较好地还原图像和文本训练数据。
图 4:卷积神经网络的攻击结果(图像任务)。
图 5:语言模型的攻击结果(NLP 任务)。
安全性分析(结论):vanilla 横向联邦学习虽然避免了中心服务器直接接触用户数据,但仍无法保证用户的隐私数据安全,中心服务器在接收到用户的明文梯度后,可以使用梯度攻击模型恢复出用户的隐私数据。
多种保护机制下横向联邦学习的安全性
在 vanilla 横向联邦学习不安全成为共识的背景下,大量联邦学习数据保护方法被提出,下面我们将对最常用的两种进行讨论:(1)基于 Secure Aggregation 的横向联邦学习(2)基于同态加密的横向联邦学习。
基于 Secure Aggregation 的横向联邦学习
vanilla 横向联邦学习的隐私数据泄漏发生在中心服务器参数聚合的步骤中,中心服务器获得了每个参与者单独的梯度,进而可以使用梯度攻击窃取隐私数据。假设系统保障中心服务器无法获得单个参与者的梯度信息,即可很大程度保护参与者的数据,使得中心服务器无法对某一个参与者直接发起攻击。
Secure Aggregation 就是借助了这种思想,每个参与者在上传模型数据前,在自身的模型上加入大量噪声,然后控制噪声的分布,使得多个参与者的模型在聚合后,数据上的噪声会相互抵消,进而不会影响联邦学习的模型收敛。
这里我们介绍一种使用 one-time pad 进行安全聚合的方法 [6],给定 K 个参与者,假设每两个参与者之间都有一条安全通信的通道,参与者两两之间首先协商一组扰动噪声,参与者 u 会对所有其他参与者生成随机向量 r∈(0,R],其中 R 是一个大整数。随后,参与者 u 和 v 之间会通过他们之间的安全通道交换随机向量 r_(u,v) 和 r_(v,u),然后计算扰动噪声 p_(u,v)=r_(u,v)-r_(v,u) (mod R)。在完成扰动噪声生成后,每个参与者将噪声应用到模型数据上并发送给中心服务器:
,中心服务器进行以下参数聚合:
以上聚合公式也提供了准确性验证,即在聚合过程中,不同参与者模型上的扰动噪声会相互抵消、保证最终聚合模型不受影响。
安全性分析(结论):在使用了 Secure Aggregation 方法后,中心服务器无法获得单个参与者的梯度信息,大大提升了系统的安全性,中心服务器也无法单独使用梯度攻击对参与者的隐私数据进行攻击。
基于同态加密的横向联邦学习
除了 Secure Aggregation 方法外,我们亦可使用同态加密技术对参与者的梯度信息进行保护。同态加密是密码学研究中的「明珠」,其特殊性质在于,可以直接在密文上进行计算而无需解密。根据同态加密算法在密文上支持算子的不同,可以将其分为:加法同态、乘法同态和全同态算法。
在横向联邦学习中一般使用支持加法的同态加密算法,即参与者在上传模型数据前,首先对其进行加密,然后中心服务器收到密文后,在密文上进行加法聚合,再将密文结果返回给参与者,假设使用的同态加密为部分同态,则参与者需要先解密、再完成模型更新;如果使用的同态加密为全同态加密,则参与者无需进行解密,可以在密文的模型上进行更新。
下图 6 展示了一个标准的基于加法同态加密的横向联邦学习框架,该框架的运算流程可以概括为以下三个步骤:
- Map:中心服务器将当前加密模型分发给参与者,收到模型的参与者先对模型进行加密,再在本地数据上进行参数的有偏估计;
- Aggregate:中心服务器收集参与者的加密参数估计,进行聚合,得到新的、密态下的模型参数;
- Reduce:中心服务器使用聚合后的新加密参数最为当前模型。
图 6:基于加法同态加密的横向联邦学习 [3]。
基于全同态的横向联邦框架:除了使用加法同态算法之外,还可以使用全同态对横向联邦里的参数信息进行保护。在使用了全同态加密后,不止中心服务器上的参数聚合在密文下,参与者本地的模型更新也是在密文下,多方需要预先规定训练次数,在达到指定数量后停止训练。
安全性分析(密钥管理):在对基于同态加密的联邦学习系统进行安全性分析之前,还有一点需要我们额外注意的,那就是同态加密算法在使用中如何管理密钥。大部分同态加密算法仅有一个私钥,即在使用中,所有的参与者持有同一组公私钥、然后将公钥分享给中心服务器。但这种模型安全性较低,一旦有一个参与者与中心服务器共谋,系统的安全性就下降到了 vanilla 联邦学习。以上问题目前有一个较好的解决方案,即使用阈值同态加密算法 [10,11],该类型的同态加密算法支持多个私钥存在,并且当一定数量以上的私钥参与,才能将密文成功解密,近期阈值同态加密研究火热 [7,8,9],受到了广泛关注。
安全性分析(总结):在使用了同态加密之后,中心服务器无法获取任何有效的明文信息,所以也无法进行梯度攻击。并且借助阈值同态加密,多个参与者可以各自持有一个私钥,可以大大提升了系统的安全性,可以说参与者的数据十分安全。
纵向联邦安全性分析
除了横向联邦学习之外,另一种在实际中大量应用的是纵向联邦学习。从分布式计算的角度考虑,横向联邦是一种数据并行的思路,而纵向联邦是模型并行的思路。不同点是,横向联邦(数据并行)对模型没有要求,不管是线性模型、神经网络,都可以很轻松的套用横向联邦的框架进行实现;而纵向联邦(模型并行)中,每个解决方案都和模型紧密绑定,一般需要对单机版本的模型进行拆解,规定好每个参与者本地需要计算的内容、以及多方之间需要交换的信息。所以说纵向联邦的安全性分析需要对每个算法进行,不同的算法实现方式可能会有不同的安全性。
在本文中,我们将以 FATE 联邦学习框架中的纵向线性回归为例,对其数据安全性进行分析。
下图 7 展示了 FATE 中使用的纵向线性回归算法模型, ⟦.⟧ 代表同态加密后的密文。我们可以发现,联邦建模中 A、B 双方交换的信息均为同态加密后的,每一轮训练中 A、B 仅能获得自身模型的梯度,无法反推对方的隐私数据。
图 7:带第三方的纵向线性回归模型算法流程 [1]。
安全性分析(总结):纵向联邦学习算法和模型紧密相关,不同的联邦算法设计可能会有不同的安全性,所以我们在设计纵向联邦学习算法时,就需要对安全性进行考虑。本文以 FATE 中使用的线性回归模型为例进行了分析,FATE 使用同态加密作为基础隐私保护技术,多方之间传递的信息均为同态加密后的,所以可以保障参与者的隐私数据安全不泄漏。
结语
最近,我们看到网络上有很多针对联邦学习安全性的讨论,绝大部分的质疑主要集中在联邦学习可以被梯度攻击,从而使其安全性下降。但是,梯度攻击只能被利用在 vanilla 联邦学习上,而 vanilla 联邦学习不会被用于生产系统中。在生产系统中,如本文的分析和介绍,联邦学习往往会利用同态加密或者差分隐私等技术进一步保护传递的参数,从而使得联邦学习无法被攻击,保证安全性。
我们希望通过文本为读者们展示一个更加准确的联邦学习全貌,从而使得读者们可以更加准确地了解到联邦学习的安全性现状。