随着数字化经济时代的到来,数据作为生产要素其价值愈发明显,越来越多的企业或组织需要与产业链上下游业务伙伴在数据流通和交易领域进行深度合作,只有通过各方数据协同计算,才能更好地释放数据价值。
但用户对隐私日益重视,政策法规趋向严格,数据协作和隐私保护这一矛盾也日益严重,如何用技术手段来解决这一难题呢? 在联邦学习的探索中可以帮你找到答案。
本文整理自数牍科技联合创始人 & CTO 蔡超超在将门创投的技术分享主要内容如下:
1. 隐私计算产生背景:数据价值和隐私
2. 隐私计算技术
安全多方计算
可信执行环境
联邦学习
3. 联邦学习的拓展
分布式机器学习
联邦学习和传统分布式系统的差异
计算挑战
联邦学习的拓展与安全性
实际案例讲解
1. 数据价值和隐私
为什么需要隐私计算呢?数据的产生过程是分散的,数据具有天然的割裂性。不同类型的公司提供不同的业务和服务,产生的数据类型也是不同的,例如社交公司产生用户大量的社交数据,电商产生的是用户的消费数据。但是在计算分析过程中,我们需要以“人”为单位,多维度、全面理解一个人才能进行高效的智能化的推荐。
而且不同机构有不同的覆盖范围,他们分别只能收集到一部分人群的数据。现阶段,智能化的进程仍然需要依赖数据,可数据孤岛的存在成为人工智能发展的一大壁垒,极大限制了企业可利用的数据量。
除此之外,在数据的实际应用中,企业也有保护其核心高价值数据的需求,通过隐私计算和联邦学习实现数据的所有权和使用权分离是一种有效的解决方式。
2. 隐私计算技术
由于企业和机构对数据自身价值的保护以及对用户隐私授权的保护,数据被储存在不同地方,像一个个孤岛难以被有效的连接互动。传统的商业协议无法有效保护数据的安全,原始数据一旦出库,就会面临完全失控的风险。
典型的反面案例就是脸书的剑桥门事件。双方按照协议:Facebook 将千万级别的用户数据转交给剑桥分析公司,用于学术研究。但原始数据一经出库后就完全失控,被用于学术之外的用途,导致 Facebook 面临的巨额罚金。
我们需要从技术层面提供更加安全的解决方案,用来保证数据流通协作过程中达到数据使用权的细分。隐私计算应运而生,它是数据科学与工程、密码学、分布式计算与存储的综合工程,包括多方安全计算、可信硬件、联邦学习等多项技术。
安全多方计算
讲到多方安全计算(MPC),就会提到姚氏百万富翁问题:有两个很有钱的富翁,他们想知道谁更有钱,他们又都不想让除己以外的任何人知道自己实际有多少钱(即不信任任何第三方)。这是一个典型的两方安全计算案例,需要在不分享原始数值的情况下,得出想要的结论。其中相关的技术包括:秘密分享,模糊传输,同态加密,混淆电路。
MPC技术的优点:
•单次随机加密,加密数据无法重复使用;
•加密数据基础上直接进行运算,原始数据不出库/不能被还原;
•每次计算要所有方共同协调:在计算前就要确定参与方。
可信执行环境
可信执行环境(TEE)也是一种解决方案:将计算运行在一个独立的环境中,而且与操作系统并行运行。在CPU 上确保 TEE 中代码和数据的机密性和完整性都得到保护,通过同时使用硬件和软件来保护数据和代码,故而TEE比操作系统更加安全。
市面上常见的解决方案有 Intel 的 SGX,ARM 的 TrustZone,服务器或者 PC 上的解决方案主要是 Intel 的 SGX;而 arm 的 trustzone 主要用在手机 CPU 上,如手机里面的指纹识别,人脸识别过程的数据安全保护。
可信执行环境依赖芯片隔离机制,在隔离区内,数据被解密成明文直接计算,整体效率会比较高。但是由于计算还是在明文层面进行,仍然会带来对应的安全困扰,比如会受硬件漏洞影响;而且更新需要硬件升级,无法快速迭代。
联邦学习
联邦学习(Federated Learning)是另一种解决方案,也是我们今天重点要讲述的方案。
联邦学习最早由谷歌提出,用于解决安卓手机终端用户在本地更新模型的问题。早期联邦学习可以在保证数据隐私安全及合法合规的基础上,通过本地存储数据和模型计算由边缘设备完成,实现共同建模,提升模型的效果。
联邦学习能解决问题和适用场景:
• 多方数据补充,用在样品数量不够充足,数据维度不够丰富的场景;
• 保护数据隐私/核心价值,整个学习训练过程,没有传输任何原始数据,用来保护数据隐私安全。
接下来我们针对联邦学习,进行系统性的讨论,包括起源,雏形,发展,应用等。
3. 联邦学习的拓展
分布式机器学习
严格意义上说,联邦学习其实并不是一个全新的概念,而是基于分布式机器学习发展而来。分布式机器学习,又叫Distributed MachineLearning,是大数据背景下的产物,也是当前机器学习最热门的研究领域之一。
在大数据时代,数据发生爆炸式增长,大数据具有五大特征:大数据量(Volume)、多类型(VarieGty)、低价值密度(Value)、高时效(Velocity)和数据在线(OnGline),大规模训练数据的产生为模型的训练提供了必要条件,同时也带来训练的挑战。
传统的机器学习注重在单机中处理数据的速度,但庞大的数据存储和计算仅在单机上是远远做不到的,而且硬件支持的有限性使得在单机上做大数据处理时显得十分吃力,例如:
数量大、计算复杂度高,单机训练时长远超过可接受的范围,不实用;
存储容量和内存需求增加,单机无法满足需求,难以落地。
将模型计算分布式地部署到多台、多类型机器上进行同时计算,成为必要的解决方式。正如我们上面提到的,将模型计算分布式地部署到多台、多类型机器上进行同时计算是解决大数据运算的必须条件。
上图展示了分布式机器学习的基本框架:数据和模型的切分,单机间的计算协同,单机计算结果的合并;
数据和模型的切分:如何处理的大数据或大模型进行切分,在多个机器上做并行训练。
单机间的计算协同:在把这些数据和模型放到多个计算节点之后就,怎样实现不同机器之间的通信和同步,使得它们可以协作把机器学习模型训练好。
单机计算结果的合并:当每个计算节点都能够训练出一个局部模型之后,怎样把这些局部模型做聚合,最终形成一个统一的机器学习模型。
关于数据切分,训练中所涉及的数据和模型规模巨大,需要基于分布式的机器学习平台,部署了数十个乃至数百个并行运行的计算节点对模型做训练。
第一种模式是数据并行化训练,不同的机器有同一个模型的多个副本,每个机器分配到不同的数据,然后将所有机器的计算结果按照某种方式合并。常见的方法基于“随机采样”,随机采样可以尽量保证每台机器上的局部训练数据与原始数据是独立同分布的。但是也有明显缺点,例如计算复杂度比较高,训练样本未被选中,导致训练样本浪费。
还有一种方法是全局置乱切分的方法,该方法将训练数据进行随机置乱,然后将打乱后的数据顺序划分为相应的小份,随后将这些小份数据分配到各个工作节点上。相比于随机采样方法,其计算复杂度比全局随机采样要小很多,而且置乱切分能保留每一个样本,直观上对样本利用更充分,同时和有放回的随机采样在收敛率上是基本一致的。
数据并行化的目标是将数据集均等地分配到系统的各个节点
(node),其中每个节点都有模型的一个副本。每个节点都会处理该数据集的一个不同子集并更新其本地权重集。这些本地权重会在整个集群中共享,从而通过一个累积算法计算出一个新的全局权重集。这些全局权重又会被分配至所有节点,然后节点会在此基础上处理下一批数据。数据并行化是应用最为广泛的并行策略,但随着数据并行训练设备数量的增加,设备之间的通信开销也在增长。
另一种模式是模型并行:
系统中的不同机器(GPU/CPU等)负责模型的不同部分。常见的场景例如,神经网络模型的规模比较大,无法存储于本地内存,则需要对模型进行划分,不同网络层被分配到不同的机器,或者同一层内部的不同参数被分配到不同机器。对于神经网络这种高度非线性的结构,各个工作节点不能相对独立地完成对自己负责的参数训练和更新,必须依赖与其他工作节点的协作。常用的模型并行方法有,横向按层划分、纵向跨层划分和模型随机划分。
除去上面两类并行方式,还有一类是混合并行
(Hybrid parallelism),在一个集群中,既有模型并行,又有数据并行。例如,在最近的Optimizing Multi-GPU Parallelization Strategies for Deep Learning Training,就提到如何如何使用混合并行的方法(在每个数据并行的基础上,加入多个设备,进行模型并行)从而实现更好的加速。
分布式机器学习系统的另一个挑战是单机间的计算协同。
通信的步调是需要考虑的问题之一,在机器学习过程中,不同机器的数据大小,机器效能,训练速度会有差异,有的机器训练速度比较快,有的机器训练速度比较慢。如果采用同步通信的方式,其他机器需要等最慢的机器完成计算,才能往前继续训练,导致整个进程受集群里最慢的机器的严重影响。
为了实现高效的分布式机器学习的效率,异步通信被广泛关注和使用。在异步通信过程中,每台机器完成本地训练之后就把局部模型、局部梯度或模型更新推送到全局模型上去,并继续本地的训练过程,而不去等待其他的机器。还有通信的拓扑结构:常见的有,基于参数服务器的通信拓扑结构和基于流程图的通信拓扑结构;
另外一点是通信的频率:通信越频繁,通信的代价就会越高,可能会降低训练的速度。常见优化包括模型压缩,模型量化,随机丢弃等等。
除了通信以外,单机的计算结果合并,并聚合成整体模型,也是一个非常具有挑战的一个问题。在业界里常用的方式有参数平均,集成模型等。例如参数平均就是把各个不同的局部模型做简单的参数平均。参数平均是最简单的一种数据并行化。若采用参数平均法,训练的过程如下所示:
参数平均比较简单,但是不适用于非凸问题时,例如深度学习。可以考虑使用模型集成。
通过上面的介绍,我们对分布式机器学习技术有了一定的认识。实际上,联邦学习本质上也是一种分布式机器学习技术/框架。或者说,是某种数据并行化训练。在了解分布式机器学习后,联邦学习将不再神秘。
各个参与方就如同不同的worker,每方保留自己的底层数据,并且无需分享这些数据给其他worker。多个worker携带自己的数据,在加密形态的前提下共建模型,提升AI模型的效果。
最早在 2016 年由谷歌和爱丁堡大学学者提出,原本用于解决安卓手机终端用户在本地更新模型的问题,Google案例中的联邦学习过程:
1. 设备端下载当前模型;
2. 基于本地数据来更新模型;
3. 云端整合多方更新,迭代模型。
从上图我们可以看到,客户端(移动设备)负责模型更新和上载,需要具备一定的计算资源。同时,这里还有很多优化点,包括训练时间,训练频率等。
联邦学习和传统分布式系统的差异
正如我们前面所说,联邦学习本质上也是一种分布式机器学习技术/框架,但是他和和传统分布式系统还是存在明显差异:
• Server与Worker的关系:分布式系统中Server对Worker是完全所有权/控制权,但是在联邦学习中是是相对松散的,并没有所有权/控制权。这也导致了额外的挑战。
• 不同设备数据的差异性:分布式机器学习的每个节点基本上是均衡的,而在联邦学习的架构里,Worker节点与节点之间的数据差距是无法保证的。
在联邦学习架构中,不同worker,还有server不是在局域网内部,需要消耗大量的网络,并需要考虑网络的稳定性。
传统Gboard的推荐系统:敲击键盘的数据会被上传到谷歌的服务器,通过直接收集大量数据来训练智能推荐模型。
基于联邦学习的方案:用户敲击键盘的数据保留在本地。用户的手机中有一个不断更新的模型会根据这些数据进行学习和更新,并将更新的权重加密上传到服务器。服务器收到大量用户的模型后,根据这些模型进行综合训练。
联邦学习方案的突出优点是能隐私保护,即无需传输原始数据,原始数据始终保持在设备本地。
传统的模型跟新需要收集大量数据,定时跟新发布模型;新的模式可以是的设备实时下载模型,并迭代,使得用户行为最快的反应在新的模型中,达到实时更新模型。
一般的联邦学习方案可以分为三个步骤:
Selection:满足条件的设备会向服务器提出请求,参加到训练中来,服务器接收到请求之后,根据参与设备数、超时时间这些因素,选择一部分设备参与到本轮训练中来;
Configuration:服务器的配置主要是服务器选定模型整合的方式,同时服务器会将具体的FL task和当前的FL checkpoint发给各个设备;
Reporting:服务器会等待各个设备将训练的结果返回,并采用聚合算法进行聚合,然后通知设备下次请求的时间,判断更新的成功和失败。在整个过程中,存在着一个步速控制模块,管理设备的连接情况。保证每轮训练有合适的设备参与。
综上所诉,联邦学习的保护了以下几个重要优点:
• 隐私保护性:用户个人数据无需上传到云端,用户的数据无需提供给服务提供商,从而提高用户数据的隐私性;
• 降低了延时:尽管5G时代即将到来,但并不是在任何情况下任何地点的网速都能得到保障。如果将用户所有的数据都上传到云端,且服务本身也是从云端进行的反馈,那么在网速较慢的环境下,网络延时将会极大降低用户体验。而联邦学习加持下的服务则不会出现这种情况,因为服务本身就来自于本地。
联邦学习带来的挑战
联邦学虽然有诸多优点,但在实际落地的过程中还是会遇到各种挑战。
系统异质性:由于客户端设备硬件条件(CPU、内存)、网络连接的不同,联邦学习网络中每个设备的存储、计算和通信能力都有可能不同。此外,不同设备还会出现断网,死机等情况。这种特征影响了联邦学习整体的稳定性。
数据异质性:设备和用户的不同,导致产生的数据类型也有差异。跨设备的特征等可能有很大的变化,导致数据的非独立同分布。目前,主流机器学习算法主要是基于 IID 数据的假设前提推导建立的。因此,异质性会给模型的收敛,精度带来了很大挑战。
通信代价:在联邦学习过程中,原始数据保存在远程客户端设备本地,必须与中央服务器不断交互才能完成全局模型的构建。
联邦学习的拓展
早期的联邦学习主要应用在移动设备的模型更新,在这个过程中,不同设备具有类似的数据和特征空间,需要聚合不同的样本,达到在不分享原始数据的前提下,建立高效的模型。有些前辈基于数据库结构,叫他横向联邦,但是比较难以区分,我们这里暂时称为样本联邦。
相对于样本联邦,它的另一面是特征联邦,就是相同的样本,但是不同的特征在不同机构手里。这个也是非常常见的案例,例如我们开头提到的社交网络公司和电商公司对用户数据收集的案例。
随着联邦学习的发展,联邦学习的范畴从样本联邦到特征联邦拓展。典型的案例,包括线性回归,树状模型等等。
安全性补充
联邦学习的显著优点是不分享原始数据的前提下建立联合模型,但是它是真正的安全吗?不存在任何风险点了么?我下面们从联邦学习的参与者角色和过程,探讨联邦学习的安全性。
安全性挑战之一:中央服务器的存在。在训练过程中传递模型的更新信息仍然不断向第三方或中央服务器报告,第三方可以不断收集所有参与者不同轮的数据,有机会进行分析推导,也是系统中的single point failure。
去除第三方中心,例如,使用多方安全计算实现梯度更新的聚合,将会使得系统的安全性得到提高。
安全性挑战之二:数据传输的问题。在训练过程中传递模型的更新信息仍然不断向第三方或中央服务器报告,虽然梯度不是原始信息,但是依然存在暴露敏感信息的风险。依然有机会可以从梯度、模型参数更新中反推出用户数据,所以需要进一步保护,可加入差分隐私,加密保护等技术手段实现。
安全性挑战之三:单方数据污染。由于每个worker都是独立的,传统的联邦学习中,server并没有高效的鉴别worker数据正常性的能力,导致worker的异常输入并不一定能够及时发现和处理。从而导致单方数据污染,严重影响模型训练过程,和最终的模型效果。甚至有目的的改变模型训练效果,数据源的质量监控,防止训练数据的恶意污染异常重要。
实际应用案例
通过上面的介绍,我们发现联邦学习在以下几个场景下非常有帮助:
• 数据总量不够
• 样品不够充分
• 数据维度不够多
• 数据隐私/核心价值保护
联邦学习的优点是整个学习训练过程,没有传输任何原始数据。那么联邦学可以具体应用在哪些场景中呢?以下两个案例希望能帮你更好的理解联邦学习的实际应用。
案例一:医疗数据联邦建模。A, B, C 代表三家地方医院,各自拥有疾病的诊断数据和诊断结果,但由于病人数目的限制, A, B, C本身的数据大小有限,单独建立的模型效果不佳;
如果将A, B, C数据的联合建模,使得模型样本更加充足。极大的提高疾病预测的准确度,使得智能基本辅助诊断成为可能。
案例二:个人信用风险评估项目。当前金融信贷业务中往往受限于数据不够丰富,在数据可解释性及稳定性、风控模型效果、风险策略和获客成本等层面面临诸多挑战,借助联邦建模可以在保护用户信息不泄露的前提下将来自通信运营商/支付机构等更多维度纳入联合风控模型中,从而构建更精准大数据风控模型用以测算借款自然人。
A是地方性银行,经营信贷业务,拥有完整的欺诈标签和用户存贷款/部分信用卡消费信息;B是通信运营商/支付机构,拥有相同用户的定位,网络浏览等信息,能够在不同维度捕捉用户特征。联邦学习可以聚合不同维度的特征在加密的状态下联合建模,从而提高模型的预测能力和稳定性,打击不法欺诈行为。
根据我们已有的实践效果,发现经过联合分析后可实现:
• 评分卡模型交叉多方数据,增加模型入模变量,模型 AUC 提升近 3%;
• 提升客户风险定价能力,辅助风险策略额外挖掘 2% 产品目标人群;
总结
联邦学习是为了解决跨设备、跨机构间的数据融合问题,无论是从隐私安全还是从保证数据格式统一层面,标准的制定对联邦学习的大规模落地具备重要意义。
从目前整个数据产业看,联邦学习可以增加可用数据的总量,能很好的解决现存数据孤岛的问题;对企业自身而言,使用联邦学习能简单、合法且低成本的获取外部有效的数据信息,快速解决某些因数据量或数据维度不足而导致的困扰,而且也不会造成合作企业间数据或商业机密的泄露。
规范数据使用可以在汇聚更多数据的基础上迎来数据价值挖掘的下一个爆发点,带动 AI 的数据基础设施进步,隐私计算未来会逐步成为 AI 的基础设施。
现阶段要用到联邦学习的场景需求是很多的,但大规模落地还未到来,除了以上提到的政策和标准待完善的问题,还有就是对工程师的技能要求很高,例如使用联邦学习做隐私建模等技术需要更多的知识普及和经验积累,但随着市场需求和技术解决方案的逐步清晰,相信越来越多的企业参与其中,联邦学习助力数据流动,让数据孤岛联结成网,推动人工智能的进一步发展。
互动交流
Q: 根据您工作经验,应用联邦学习的最佳应用场景有哪些?除了隐私数据挖掘以外,还有哪些?您认为目前在实际中应用联邦学习最大的障碍是什么?缺乏高效的学习模型还是缺乏有利的infra 支持,比如移动端计算资源和网络通信速率的限制。
A: 最佳应用场景包括 1: 缺样本,需要多方一起补充 2: 缺特征,需要多方补齐。最大的障碍是效率,不仅仅是网络,也包括算力,需要工程和密码的共同优化。
Q: 多方安全计算和联邦学习的性能问题没有提及,这块会是应用受限的主要困难吗?
A: 在落地的过程中,性能是非常重要的一个限制,这里的性能包括算力,网络通讯量,qps等,在相同安全性的前提下,提升性能也是我们重点优化对象。
-The End-
作者介绍 :
蔡超超 | 数牍科技联合创始人 & CTO
先后任职于Amazon、Facebook 机器学习和联邦学习专家。在Facebook 广告部门期间,作为技术主管主导了多平台图谱、用户画像预测等项目,获得Facebook Distinguished Equity,30多项美国国家专利。加州大学洛杉矶分校(UCLA)机器学习博士。