Vinn's Studio

Federated Learning

Word count: 3.3kReading time: 11 min
2021/08/30 Share

联邦机器学习(又名联邦学习、联合学习、联盟学习)是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。

联邦学习背景和重要性

数据孤岛

数据源之间存在着难以打破的壁垒,一般情况下人工智能的所需要的数据会涉及多个领域,例如在基于人工智能的产品推荐服务中,产品销售方拥有产品的数据、用户购买商 品的数据,但是没有用户购买能力和支付习惯的数据。在大多数行业中,数据是以孤岛的形式存在的,由于行业竞争、隐私安全、行政手续复杂等问题,即使是在同一个公司的不同部门之间实现数据整合也面临着重重阻力,在现实中想要将分散在各地、各个机构的数据进行整合几乎是不可能的,或者说所需的成本是巨大的。

GDPR与人工智能挑战

随着大数据的进一步发展,重视数据隐私和安全已经成为了世界性的趋势。每一次公众数据的泄露都会引起媒体和公众的极大关注,例如 Facebook 的数据泄露事件就引起了大规模的抗议行动。同时各国都在加强对数据安全和隐私的保护,欧盟引入的新法案《通用数据保护条例》(General Data Protection Regulation, GDPR)表明,对用户数据隐私和安全管理的日趋严格将是世界趋势,这给人工智能领域带来了前所未有的挑战。研究界和企业界目前的情况是:收集数据的一方通常不是使用数据的一方,如 A 方收集数据,转移到 B 方清洗,再转移到 C 方建模,最后将模型卖给 D 方使用。这种数据在实体间转移、交换和交易的形式违反了 GDPR,并可能遭到法案严厉的惩罚。人工智能的学界和企业界目前暂无较好的解决方案来应对这些挑战。

联邦学习成为可行的解决方案

如何在满足数据隐私、安全和监管要求的前提下,设计一个机器学习框架,让人工智能系统能够更加高效、准确的共同使用各自的数据,是当前人工智能发展的一个重要课题。人们把研究的重点转移到如何解决数据孤岛的问题,提出一个满足隐私保护和数据安全的一个可行的解决方案,叫做联邦学习。联邦学习的特点是:

  • 各方数据都保留在本地,不泄露隐私也不违反法规;
  • 各个参与者联合数据建立虚拟的共有模型,并且共同获益的体系;
  • 在联邦学习的体系下,各个参与者的身份和地位相同;
  • 联邦学习的建模效果和将整个数据集放在一处建模的效果相同或至少相差不大;

联邦学习的定义

联邦学习概述

假设有两个不同的企业 A 和 B,它们拥有不同数据。比如,企业 A 有用户特征数据;企业 B 有产品特征数据和标注数据。这两个企业按照上述 GDPR 准则是不能粗暴地把双方数据加以合并的,因为数据的原始提供者,即他们各自的用户并没有机会来同意这样做。假设双方各自建立了一个任务模型(可以是分类或预测),而这些任务也已经在获得数据时得到了各自用户的认可。但是,由于数据不完整(例如企业 A 缺少标签数据,企业 B 缺少特征数据), 或者数据不充分 (数据量不足以建立好的模型)等原因,在各端的模型有可能无法建立或效果并不理想。

联邦学习就是为了解决这个问题: 它希望做到各个企业的自有数据不出本地,而后联邦系统可以通过加密机制下的参数交换方式(即在不违反数据隐私法规情况下),建立一 个虚拟的共有模型。这个虚拟模型就好像大家把数据聚合在一起建立的最优模型一样。但是在建立虚拟模型的时候,数据本身不移动,也不泄露隐私或影响数据合规,建好的模型在各自的区域仅为本地的目标服务。在这样一个联邦机制下,各个参与者的身份和地位相同,这个机制就是联邦学习。联邦系统帮助企业建立了“共同富裕”的策略。

联邦学习定义

当多个数据拥有方(例如企业)\(F_i, i=1…N\) 想要联合他们各自的数据 \(D_i\) 训练机器学习模型时,传统做法是把数据整合到一方并利用数据 \(D=\{D_i\},i=1…N\) 进行训练并得到模型 \(M_{SUM}\)。然而,该方案由于其涉及到的隐私和数据安全等法律问题通常难以实施。为解决这一问题,提出了联邦学习。联邦学习是指:使数据拥有方 \(F_i\) 在不用给出己方数据 \(D_i\) 的情况下也可进行模型训练并得到模型 \(M_{FED}\) 的计算过程,且该过程能够保证模型 \(M_{FED}\) 的效果 \(V_{FED}\) 与模型 \(M_{SUM}\) 的效果 \(V_{SUM}\) 间的差距足够小,即 \(M_{FED}\) 满足: \[ |V_{FED}-V_{SUM} |<\delta \] 这里 \(\delta\) 是任意小的一个正值。

联邦学习的分类

孤岛数据的分布特点为依据对联邦学习进行分类。 考虑有多个数据拥有方,每个数据拥有方各自所持有的数据集 \(D_i\) 可以用一个矩阵来表示: 矩阵的每一行代表一个样本,每一列代表一种特征;已标注数据的标签会在侧边栏内显示。在现实应用中,各个数据集的样本或特征不完全相同。具体而言,以包含两个数据拥有方的联邦学习为例,数据分布可以分为以下三种情况:

横向联邦学习

若两个数据集的特征重叠部分较大,而样本重叠部分较小,则考虑把数据集按照横坐标(即特征维度)切分,并取出双方特征相同而样本不完全相同的那部分数据进行训练(利用多方特征的交集作为特征,多方样本的并集作为样本),实现样本规模的扩充。这种方法叫做横向联邦学习

这种情况的典型例子就是联邦学习的参与企业位于不同地区,但是均属同一行业的情况(如地方性银行)。比如有两家不同地区银行,它们的用户群体分别来自各自所在的地区,因此两者各自的用户样本的交集很小。但是,它们的业务很相似,因此记录的用户特征是相同的。此时, 就可以使用横向联邦学习来构建联合模型。

Google 在 2017 年提出了一个针对安卓手机模型更新的数据联合建模方案:在单个用户使用安卓手机时,不断在本地更新模型参数并将参数上传到安卓云上,从而使特征维度相同的各数据拥有方建立联合模型的一种联邦学习方案。

纵向联邦学习

若两个数据集的样本重叠部分较大,而特征重叠部分较小,则考虑把数据集按照纵坐标 (即样本维度)切分,并取出双方样本相同而特征不完全相同的那部分数据进行训练(利用多方特征的并集作为特征,多方样本的交集作为样本),实现特征规模的扩充。 这种方法叫做纵向联邦学习

这种情况的典型例子就是联邦学习的参与企业位于同一地区,但分属不同行业的情况。比如有两个不同机构,一家是某地的银行,另一家是同一个地方的电商。它们的用户群体很有可能都包含该地的大部分居民,因此用户样本的交集较大。但是,由于银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,因此它们的用户特征交集较小。纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力的联邦学习。

目前,逻辑回归模型,树型结构模型和神经网络模型等众多机器学习模型已经逐渐被证实能够建立在这个联邦体系上。

联邦迁移学习

若两个数据集的样本与特征重叠部分都比较小,则简单的联合方法显然无法在这种情况下奏效。此时,可以利用迁移学习来克服数据或标签不足的情况。在联邦学习的框架(各个企业的自有数据不出本地,通过加密机制下的参数交换方式建立一虚拟的共有模型)下的迁移学习,就称为联邦迁移学习

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

不难看出,在这个苛刻场景下都能有效的迁移学习方案,可以轻松应用于前两种场景,具备极大的适用性,因而迁移学习是联邦学习的核心内容。关于迁移学习的具体内容,参见迁移学习

联邦学习的系统架构

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

第一部分:加密样本对齐

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

第二部分:加密模型训练

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

  1. 协作者 C 把公钥分发给 A 和 B,用以对训练过程中需要交换的数据进行加密;
  2. A 和 B 之间以加密形式交互用于计算梯度的中间结果
  3. A 和 B 分别基于加密的梯度值进行计算,同时 B 根据其标签数据计算损失函数的值,并把这些结果汇总给 C,C 通过汇总结果计算总梯度并将其解密;
  4. C 将解密后的梯度分别回传给 A 和 B,A 和 B 根据梯度更新各自模型的参数;

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

CATALOG
  1. 联邦学习背景和重要性
    1. 数据孤岛
    2. GDPR与人工智能挑战
    3. 联邦学习成为可行的解决方案
  2. 联邦学习的定义
    1. 联邦学习概述
    2. 联邦学习定义
  3. 联邦学习的分类
    1. 横向联邦学习
    2. 纵向联邦学习
    3. 联邦迁移学习
  4. 联邦学习的系统架构
    1. 第一部分:加密样本对齐
    2. 第二部分:加密模型训练