联邦学习(Federated Learning)_lianbangxuexi

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

联邦学习简介

联邦学习Federated Learning是一种新兴的人工智能基础技术其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下在多参与方或多计算结点之间开展高效率的机器学习。其中联邦学习可使用的机器学习算法不局限于神经网络还包括随机森林等重要算法。联邦学习有望成为下一代人工智能协同算法和协作网络的基础。

联邦学习的系统构架

以包含两个数据拥有方即企业 A 和 B的场景为例介绍联邦学习的系统构架。该构架可扩展至包含多个数据拥有方的场景。假设企业 A 和 B 想联合训练一个机器学习模型它们的业务系统分别拥有各自用户的相关数据。此外企业 B 还拥有模型需要预测的标签数据。出于数据隐私保护和安全考虑A 和 B 无法直接进行数据交换可使用联邦学习系统建立模型。联邦学习系统构架由三部分构成。

  • 第一部分加密样本对齐。

由于两家企业的用户群体并非完全重合系统利用基于加密的用户样本对齐技术在 A 和 B 不公开各自数据的前提下确认双方的共有用户并且不暴露不互相重叠的用户以便联合这些用户的特征进行建模。

  • 第二部分加密模型训练。

在确定共有用户群体后就可以利用这些数据训练机器学习模型。为了保证训练过程中数据的保密性需要借助第三方协作者 C 进行加密训练。以线性回归模型为例训练过程可分为以下 4 步 

第①步协作者 C 把公钥分发给 A 和 B用以对训练过程中需要交换的数据进行加密。

第②步A 和 B 之间以加密形式交互用于计算梯度的中间结果。

第③步A 和 B 分别基于加密的梯度值进行计算同时 B 根据其标签数据计算损失并把结果汇总给 C。C 通过汇总结果计算总梯度值并将其解密。

第④步C 将解密后的梯度分别回传给 A 和 BA 和 B 根据梯度更新各自模型的参数。

迭代上述步骤直至损失函数收敛这样就完成了整个训练过程。在样本对齐及模型训练过程中A 和 B 各自的数据均保留在本地且训练中的数据交互也不会导致数据隐私泄露。因此双方在联邦学习的帮助下得以实现合作训练模型。

  • 第三部分效果激励。

联邦学习的一大特点就是它解决了为什么不同机构要加入联邦共同建模的问题即建立模型以后模型的效果会在实际应用中表现出来并记录在永久数据记录机制如区块链上。提供数据多的机构所获得的模型效果会更好模型效果取决于数据提供方对自己和他人的贡献。这些模型的效果在联邦机制上会分发给各个机构反馈并继续激励更多机构加入这一数据联邦。以上三部分的实施既考虑了在多个机构间共同建模的隐私保护和效果又考虑了以一个共识机制奖励贡献数据多的机构。所以联邦学习是一个「闭环」的学习机制。

联邦学习优势

  1. 数据隔离数据不会泄露到外部满足用户隐私保护和数据安全的需求
  2. 能够保证模型质量无损不会出现负迁移保证联邦模型比割裂的独立模型效果好
  3. 参与者地位对等能够实现公平合作
  4. 能够保证参与各方在保持独立性的情况下进行信息与模型参数的加密交换并同时获得成长。

联邦学习分类

联邦学习Federated Learning, a.k.a. Federated Machine Learning可以分为三类

  • 横向联邦学习Horizontal Federated Learning
  • 纵向联邦学习Vertical Federated Learning
  • 联邦迁移学习Federated Transfer Learning

横向联邦学习

数据矩阵也可以是表格例如Excel表格的横向的一行表示一条训练样本纵向的一列表示一个数据特征或者标签。通常用表格查看数据例如病例数据用一行表示一条训练样本比较好因为可能有很多条数据。

横向联邦学习适用于参与者的数据特征重叠较多而样本ID重叠较少的情况。

比如有两家不同地区的银行它们的用户群体分别来自各自所在的地区相互的交集很小。但是它们的业务很相似因此记录的用户特征是相同的。此时我们就可以使用横向联邦学习来构建联合模型。

“横向”二字来源于数据的“横向划分horizontal partitioning, a.k.a. sharding”。如图1所示例联合多个参与者的具有相同特征的多行样本进行联邦学习即各个参与者的训练数据是横向划分的称为横向联邦学习。图2给出了一个横向划分表格的示例。横向联邦使训练样本的总数量增加

横向联邦学习也称为特征对齐的联邦学习Feature-Aligned Federated Learning即横向联邦学习的参与者的数据特征是对齐的如图3所示例。“特征对齐的联邦学习”这个名字有点长还是用“横向联邦学习”比较好。

图1 横向联邦学习示例横向联邦使训练样本量增大

图2 横向按行划分数据示例 

图3 横向联邦学习也称为特征对齐的联邦学习横向联邦使训练样本量增大

横向联邦学习的学习过程

  1. 参与者在本地计算训练梯度使用加密差分隐私或秘密共享技术加密梯度的更新并将加密的结果发送到服务器
  2. 服务器在不了解有关任何参与者的信息的情况下聚合各用户的梯度更新模型参数
  3. 服务器将汇总结果模型发回给各参与者
  4. 各参与者使用解密的梯度更新各自的模型。

纵向联邦学习

纵向联邦学习适用于参与者训练样本ID重叠较多而数据特征重叠较少的情况。

比如有两个不同的机构一家是某地的银行另一家是同一个地方的电商。它们的用户群体很有可能包含该地的大部分居民因此用户的交集较大。但是由于银行记录的都是用户的收支行为与信用评级而电商则保有用户的浏览与购买历史因此它们的用户特征交集较小。

“纵向”二字来源于数据的“纵向划分vertical partitioning”。如图4所示例联合多个参与者的共同样本的不同数据特征进行联邦学习即各个参与者的训练数据是纵向划分的称为纵向联邦学习。图5给出了一个纵向划分表格的示例。纵向联邦学习需要先做样本对齐即找出参与者拥有的共同的样本也就叫“数据库撞库entity resolution, a.k.a. entity alignment”。只有联合多个参与者的共同样本的不同特征进行纵向联邦学习才有意义。纵向联邦使训练样本的特征维度增多

纵向联邦学习也称为样本对齐的联邦学习Sample-Aligned Federated Learning即纵向联邦学习的参与者的训练样本是对齐的如图6所示例。“样本对齐的联邦学习”这个名字有点长还是用“纵向联邦学习”比较好。

 图4 纵向联邦学习示例纵向联邦使训练数据特征维度增加

图5 纵向按列划分数据示例

图6 纵向联邦学习也称为样本对齐的联邦学习纵向联邦使训练数据特征维度增加

纵向联邦学习的学习过程

第一步第三方C加密样本对齐。是在系统级做这件事因此在企业感知层面不会暴露非交叉用户。

第二步对齐样本进行模型加密训练

  1. 合作者C创建加密对将公钥发送给A和B
  2. A和B分别计算和自己相关的特征中间结果并加密交互用来求得各自梯度和损失
  3. A和B分别计算各自加密后的梯度并添加掩码发送给C同时B计算加密后的损失发送给C
  4. C解密梯度和损失后回传给A和BA、B去除掩码并更新模型。

联邦迁移学习

联邦迁移学习适用于参与者训练样本ID和数据特征重叠都较少的情况。

我们不对数据进行切分而利用迁移学习来克服数据或标签不足的情况。这种方法叫做联邦迁移学习。

比如有两个不同机构一家是位于中国的银行另一家是位于美国的电商。由于受地域限制这两家机构的用户群体交集很小。同时由于机构类型的不同二者的数据特征也只有小部分重合。在这种情况下要想进行有效的联邦学习就必须引入迁移学习来解决单边数据规模小和标签样本少的问题从而提升模型的效果。

小节

横向联邦学习的名称来源于训练数据的“横向划分”也就是数据矩阵或者表格的按行横向划分。不同行的数据有相同的数据特征即数据特征是对齐的。

纵向联邦学习的名称来源于训练数据的“纵向划分”也就是数据矩阵或者表格的按列纵向划分。不同列的数据有相同的样本ID即训练样本是对齐的。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6