联邦学习之我见

2019年7月8日,英国信息监管局发表声明说,英国航空公司因为违反《一般数据保护条例》被罚1.8339亿英镑(约合15.8亿元人民币)。伴随着欧盟出台的新法案——《通用数据保护条例》(General Data Protection Regulation, 简称GDPR),数据隐私保护已经成为全世界关注的趋势。个人隐私保护也是2019年RSA大会的重要议题。目前,谷歌针对以上“数据隐私保护”的问题在论文《Communication-Efficient Learning of Deep Networks from Decentralized Data》提出了联邦学习这一概念,旨在保护数据隐私的同时解决“数据孤岛”的问题。

1.联邦学习是什么?

联邦学习是一种加密的分布式机器学习框架,框架允许用户使用分布在不同位置的多个数据集来训练机器学习模型,模型参与各方在不披露底层数据和底层数据的加密(混淆)形态的前提下共建模型。实现了各个企业的自有数据不出本地,仅通过加密机制下的参数交换方式,便可在不违反数据隐私法规的情况下,构建一个虚拟的共有模型,参与各方的身份和地位相同,大家共享计算带来的收益。根据数据的分布特征,联合学习有三个主要类别:

横向联邦学习(Horizontal Federated Learning)

根据特征划分数据集,通常在特征重叠多于用户的情况下实现。例如,在不同地区运营的三家物流公司可能会保留其消费者的类似数据,但消费者之间的重叠相对较小。因为他们的特征几乎相同,所以可以提取具有相同特征的用户来训练模型。

纵向联邦学习(Vertical Federated Learning)

当多个数据集有很大的用户重叠但有不同的特征时,通常使用纵向联邦学习。比如,一家外卖配送机构和在同一地区的医院可能拥有相似的用户群,但会跟踪彼此之间的不同信息。医院跟踪健康数据,而外卖配送机构则跟踪用户浏览习惯和购买数据等信息。纵向联合学习集合了所有的特性,能够为双方合作构建一个模型。

联邦迁移学习(Federated Transfer Learning)

当数据集的用户和特征之间几乎没有重叠时,可以迁移学习使用来避免数据或标签的缺乏。以国内制造商和国外物流提供商为例,由于双方在地理上都受到限制,用户之间几乎没有重叠。由于它们是不同类型的机构,所以它们的特征也几乎没有重叠。在这种情况下,联邦迁移学习就可以与联邦学习结合使用,以提高模型的整体性能。

2.联邦学习能解决什么样的问题?

联邦学习可以避免非授权的数据扩散和解决数据孤岛问题。

“隐私保护”问题:

联邦学习的根本目标和最大的优点在于用户隐私数据的保护,客户端向云端传输的是终端模型的参数,而非终端数据信息。但是,是否向云端只更新模型参数就能保证用户隐私数据没有任何的信息泄漏?答案是否定的。例如,在图像领域,图像数据的梯度和原始数据是成正比关系的,对于单个图像数据,可以通过梯度还原图像效果。联邦学习在解决梯度信息暴露问题中提供了应对方案:一是加大量梯度数据进行混淆,减弱某个梯度对于整个数据样本的影响;二是通过同态加密对原始梯度数据进行加密,保护原始梯度数据的泄漏;三是由谷歌提出的痛过私密共享上传梯度数据,效果与同态加密类似。

“数据孤岛”问题:

由于竞争关系、安全问题、审批流程等因素,数据之间的流通存在难以打破的壁垒。即使行业间有意交换数据,也可能遭遇政策问责,因为重视数据隐私和安全已经成为世界性的趋势。通过联邦学习,可以在无需打通数据的前提下实现联合建模,真正得使用大数据提高模型预测效果。

3.联邦学习是怎么解决问题的

假设有两个企业A与B,企业的A拥有模型需要预测的数据标签,企业B的用户数据没有标签。考虑到用户数据隐私安全,企业A与B无法直接打通数据进行建模,他们可以通过联邦学习的方式来进行联合建模。
在这里插入图片描述
图源:《CCFTF14联邦学习技术研究与应用》 刘洋 范涛
如上图所述,公司A和B,虽然不能交换数据共同建模,但是他们可以把各自模型训练过程中的梯度进行加密后做交换,首先,梯度在离开数据之后是没有实际意义的,也不会有监管和法律风险,其次,传输过程中可以进行同态加密,对方拿到梯度后可以在不知晓原始数据的情况下使用加密函数使用该梯度。联邦学习将模型训练抽象成了利用多个模型间的模型的共享梯度进行建模。具体过程需要经过以下步骤:
第一部分:加密样本的匹配。两个企业的数据之间存在很多区别,需要先将加密样本进行横向或纵向的切分和对齐。在不暴露用户数据信息的前提下,确认数据集间共同的特征维度或者用户,以便训练数据特征维度的确立。
第二部分:使用同态加密作为数据隐私保护工具进行加密模型训练,引入信任第三方C。
(1)第三方C将公钥分发给企业A与B,用于加密各自的计算出的梯度信息,只有第三方C拥有私钥可以解密信息。
(2)企业A与B以加密形式交互用于计算梯度的中间结果。
(3)A和B分别基于加密的梯度值进行计算,同时B根据其标签数据计算损失,并把结果汇总给C,C通过汇总结果计算总梯度值并将其解密。
(4)C将解密后的梯度分别传回A和B,A和B根据梯度更新各自模型的参数。
以上的程序会一直重复,直到整个训练过程的收敛。
在这里插入图片描述
图源:联邦学习-杨强、刘洋、陈天健、童咏昕-CCCF 2018年第11期
联邦学习中的同态加密属于安全多方计算(SMC)的一种,这种加密方式允许直接对密文进行数学运算,并将运算得到的密文解密后,其结果与对明文进行运算的结果一致。即若有加密函数E,解密函数D,将明文A变为E(A),明文B变为E(B),则A+B = E(A)+E(B)。2017年谷歌提出的用于联邦学习的安全聚合(Practical Secure Aggregation for Privacy-Preserving Machine Learning)便是基于此技术。
在这里插入图片描述

同态加密目前有两种类别,其中全同态支持加减乘除乃至幂运算,已有的实现包括Microsoft SEAL,HElib,PALISADE等;半同态仅支持加法运算或者乘法运算,比如Paillier加法同态算法和EIGamal乘法同态算法。由于全同态算法计算时间久、运算效率低等原因,半同态加密算法在实践中应用较多。同态加密的使用,保证联邦学习训练及预测过程中所需要的计算均以加密密文的形式来进行,从而避免了训练数据的泄露。当然联邦学习也可采用其他加密方式。

4.联邦学习的开源框架有哪些

4.1 FATE

FATE是微众银行开发的一个联邦学习框架,它提供了一种基于数据隐私保护的安全计算框架。在人工智能领域,传统的数据处理模式通常是一方收集数据,转移到另一方进行处理和建模,最后把模型卖给第三方。FATE平台支持多方安全计算模式下的逻辑回归、Boosting等机器学习算法。
提供加密方式,支持同态加密、秘密共享和哈希散列等多方安全计算机制
支持单机和多机训练
可使用CPU训练,同时可以使用GPU训练
在这里插入图片描述

FATE联邦学习平台架构

FATE平台目前可以为企业提供风控模型,通过发票数据、央行征信分等标签属性进行联合建模,从而预测小微企业信贷逾期概率。FATE开源平台也在积极研究如何将深度学习算法和框架更好的应用于平台上。
项目地址:https://github.com/FederatedAI/FATE
4.2 Google-TensorFlow Federated
TensorFlow Federated是由谷歌公司开发的联邦学习平台,可用于去中心化数据的机器学习及运算实验。TensorFlow Federated本身包含了多种联邦学习算法供开发人员使用,也为开发人员提供了对新的联邦学习算法进行实验的平台。此外,TensorFlow Federated还可以用于实现非学习计算,比如去中心化数据的聚合分析。
可以将现有Keras或非Keras机器学习模型应用在TFF框架中。可以执行基本任务,例如联合训练或者评估,而无需研究算法的细节。
通过在强大类型的功能编程环境中将TensorFlow与分布式通信运算符结合在一起,简洁地表达自定义联邦算法。
完全兼容并依赖TensorFlow 2.0,弃用python2,仅支持python3
在这里插入图片描述

TensorFlow Federated平台模拟联邦学习系统
TensorFlow Federated开源平台可以应用于边缘设备(例如:手机),使其可以在本地利用本地数据训练模型,进而把训练的模型参数上传至服务器,然后服务器对各个边缘设备上传的模型参数进行聚合。
项目地址:https://github.com/tensorflow/federated

参考资料:

《联邦学习的研究及应用》 Federated Learning 《CCFTF14联邦学习技术研究与应用》 刘洋 范涛