联邦学习综述:概念、技术、应用与挑战
联邦学习综述:概念、技术、应用与挑战
联邦学习是一种新兴的分布式机器学习框架,它能够在不违反数据隐私法规的情况下,实现多个数据源之间的联合建模。本文将从联邦学习的背景、定义、分类以及隐私安全等方面,全面介绍这一前沿技术的核心概念与关键技术。
从两个方面保护隐私数据
在联邦学习中,隐私数据保护主要通过硬件层面和软件层面的技术手段实现。
硬件层面
- 可信执行环境(Trusted Execution Environment,TEE)
- 边缘计算(Edge Computing,EC)
软件层面
- 在数据以及通信层面对数据进行加密
- 网络安全通信协议
- 密码学技术
- 后量子密码
联邦学习的出现
集中式学习
集中式学习模式下,所有终端的数据需要被传输到主服务器上,由主服务器基于收集到的数据执行机器学习任务。这种模式虽然在传输数据的过程中使用了密码学进行加密,但仍然存在一定的数据安全隐患。
分布式学习
分布式现场学习通过将数据处理限制在设备的边缘环境中,解决了数据安全和隐私保护的问题。然而,这种模式也存在一些缺点,例如数据无法交汇融合,导致模型缺乏全局性和泛化能力。
边缘计算是分布式现场学习的一种实现方式,其主要思路是将需要分析的数据限制在设备的边缘环境中进行现场学习,并将最终的学习结果汇聚到主服务器进行汇总和存储。
优点:
- 无需将敏感数据传输到主服务器进行学习,降低了敏感信息的流通率。
缺点:
- 由于各方缺乏数据上的沟通,导致一个系统内的数据无法交汇融合,无法得到最大的发挥,同时导致各方所学习到的知识过于片面,模型缺乏全局性和泛化能力。
联邦学习的定义与分类
定义
联邦学习是一种“数据不动,模型动”的学习模式。在联邦学习的过程中,各参与方不需要交换样本数据及其变体,仅需要交换与模型相关的中间数据及其变体,然后由主服务器将中间数据进行安全聚合并反馈给参与方;参与方则负责根据聚合后的模型信息进行己方模型的更新,有效保证了各参与方的敏感数据的安全性和隐私性,实现了在融合多个参与方的数据所蕴含的知识的同时保护隐私数据。
分类
横向联邦学习
横向联邦学习(Horizontal Federated Learning,HFL)指的是两个参与方的数据集存在较大的特征空间重叠的情况。此模式下,设定前提为各参与方的数据都是具备标签空间的。
主要步骤:
- 参与方根据自身数据集,构建本地模型。
- 参与方将本地模型的模型信息,如梯度,使用加密算法进行加密,如同态加密,然后把加密后的模型信息发送给主服务器。
- 主服务器根据参与方的模型信息进行安全聚合,常见的安全聚合算法有联邦平均算法(Federated Averaging algorithm,FedAvg)以及异构联邦模型的联邦优化(Federated Optimization in Heterogeneous Network,FedProx)算法等。
- 主服务器将聚合后的信息广播给所有参与方。
- 参与方对主服务器传来的聚合信息进行解密,据此更新本地模型。
重复以上步骤,直至达到预设的停止条件。
优点:能在不得知其他参与方源数据的情况下实现各方知识的交换。
缺点:横向联邦不适用于各参与方之间特征空间差异较大的跨领域联邦学习的情况。
纵向联邦学习
纵向联邦学习(Vertical Federated Learning,VFL)是在具有较多样本数据重叠的参与方之间执行的联邦学习任务。此模式下,设定前提为只有一个参与方的数据具备标签空间,其余参与方的数据不具备标签空间。
例子:
纵向联邦学习更适合执行跨行业跨领域的机器学习任务,如微视与广告商合作提出的联邦广告投放系统。在此系统中,微视具备包括用户画像和用户点播记录等数据,广告平台则具备广告信息、产品信息以及用户购买记录等数据;可见双方的数据集的特征空间截然不同,但是可能存在相同用户。在此情况下,纵向联邦学习可以在不泄露、不交换双方样本数据的同时聚合双方的数据特征和知识特征,构建出一个联邦推荐模型,在提高微视用户的体验度和广告收益的同时提高广告方的营销收益,实现双赢局面。
主要步骤:
- 数据对齐。数据对齐的目的是在保护各参与方隐私和数据安全的前提下,找到共同样本并给予共同样本执行联邦学习任务。常见的数据对齐方法有 Li 等提出的算法。(隐私求交)
- 主服务器发送公钥给各参与方,同时参与方基于共同样本构建初始本地模型;然后将加密后的模型信息,如梯度、损失值等,发送给主服务器。
- 主服务器解密参与方的模型信息,同时计算参与方更新模型所必须的计算结果,并传送回参与方。
- 参与方根据主服务器的计算结果,更新本地模型;同时各方会把中间计算结果共享给其他参与方,用于协助对方计算梯度和损失值等模型信息。
5-1 对于部分纵向联邦学习算法,参与方还会将本地模型的模型标识发送给主服务器保存,以便在预测过程中主服务器知道需要将新数据发送至哪些参与方进行联邦预测。如 secureBoost 算法中,参与方会把[记录 id,特征,阈值]以及分割后的样本空间告知主服务器;同时,主服务器会将当前的处理节点与参与方的划分信息进行关联。因此只有主服务器清楚整棵决策树的结构 ,当有新样本需要预测时,主服务器会将数据发至当前节点所关联的参与方,让参与方利用本地模型计算阈值 ,得知下一步的树搜索方向。
5-2 特别地,部分需要全体参与方参与预测的纵向联邦学习算法,如安全联邦线性回归,则不需要参与方告知主服务器必要的模型标识
联邦迁移学习
联邦迁移学习(Federated Transfer Learning,FTL)是一种在特征空间和样本空间均存在较小重叠的数据集之间执行的联邦学习任务。其学习模式可被总结为:使用某参与方在当前迭代中已训练好的模型参数,迁移到另外一个参与方上,协助它进行新一轮模型的训练。
主要步骤:
- 参与方根据自身数据集构建本地模型。
- 参与方分别运行各自的本地模型,获得数据表征,以及一组中间结果,加密后发送给对方。
- 对方利用接收到的中间结果计算模型的加密梯度和损失值,加入掩码后发给原参与方。
- 各方对接收到的信息进行解密后发回给对方,然后各方利用发解密后的模型信息更新各自的模型。
不断重复以上步骤,直至损失收敛为止。
联邦学习的隐私安全
联邦学习除了解决数据孤岛问题,使得各方数据可以进行联合学习外,还必须解决数据安全问题,实现各方的隐私保护。
安全模型
安全模型是评价一个联邦学习系统是否满足隐私保护要求的标准之一,要求一个安全的联邦学习系统应当满足以下几个安全属性:
- 隐私性。要求能有效保证系统内部各方的数据安全和隐私安全。
- 正确性。每个参与方都能输出计算结果,且计算结果是正确的。
- 公平性。系统能公平看待各方的计算贡献,公平地进行计算结果的聚合。
攻击模式
- 源自服务器的攻击
- 一个诚实但好奇的服务器会试图从参与方的模型更新信息中反推出参与方的隐私数据特点等,但不会提供负反馈信息给参与者,使其错误地更改本地模型。
- 恶意服务器不仅会试图从参与方的模型更新信息中反推出参与方的隐私数据特点等,还会恶意篡改聚合模型,或者提供错误的信息给参与方,破坏参与方的模型性能
- 混合的服务器敌手则同时或者不间断地充当诚实但好奇的服务器敌手和恶意的服务器敌手。
- 源自参与者的攻击
- 有的参与者是诚实但好奇的,它希望窃听其他参与方以及主服务器共享的数据信息,以期从中推理出某些有用的信息。
- 还有恶意的参与者存在,他们的主要目的是反馈错误的模型信息到主服务器,使得联邦模型向着消极的方向更新迭代
- 同样地,也存在混合类型的敌对参与方
- 源自外部的攻击
- 参与者和服务器之间通信更新时,通道上可能存在外部窃听者窃听信息,并由此反推出一些有关模型等的隐私数据,造成联邦内部的通信安全威胁。
- 源自系统漏洞的攻击
- 联邦学习系统本身也可能存在潜在的安全薄弱点,比如系统架构设计不合理等。这些源自系统的漏洞使得攻击者可以发起数据攻击以及模型攻击:
- 数据攻击 主要是指参与者恶意修改数据标签或中间信息,破坏联邦学习的过程。
- 模型更新攻击 通过恶意地恶化本地模型,破坏全局模型的性能。
隐私保护
不经意传输(Oblivious Transfer,OT)
发送方把多条数据基于不同的密钥加密,并将所有公钥发送给接收方,接收方按需使用特定的公钥生成随机数,双方再分别进行异或运算等,最后接收方只会得到特定数据的明文信息,其余数据的运算结果为乱码。混淆电路(Garbled Circuit,GC)
属于不经意传输的一种应用,基本思路是:根据运算函数设计出一个电路,加密方首先对该电路进行加密,即加密方负责电路的生成任务。解密方在不能得知原始电路的情况下,双方通过不经意传输使得解密方可以获得相应的数据,即解密方负责电路的解密任务。秘密共享(Secret Sharing,SS)
基本思路是化整为散,将需要计算的秘密分割成多份小秘密,分别分发给若干个参与方进行处理,最后将结果进行聚合。在此设计下,因为各方只得到了一小部分的秘密,无法重构出真实的秘密,保证了数据的安全性和隐私性。隐私集合交集(Private Set Intersection,PSI)
是一种基于多方的单独输入寻找多方数据的交集,并返回给特定方的技术。隐私集合交集技术常被用于联邦学习的数据对齐任务中。差分隐私(Differential Privacy,DP)
基本思路是针对需要保密的数据加入噪声的处理。该动作虽然有效保护了数据的安全性与隐私性,但噪声的加入会对计算结果产生一定的影响。同态加密(Homomorphic Encryption,HE)
相较于其他加密算法,同态加密的最大优势在于在计算过程中不需要频繁进行加解密的操作,可以直接对密文进行计算,且计算结果解密后得到的值,与直接使用明文计算得到的结果一致,有效提高了计算效率。