共享学习:蚂蚁金服数据孤岛解决方案

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 互联网时代,一切基于数据。解决数据孤岛,是AI行业需要解决的首要问题之一。而隐私泄露和数据滥用是伴随着“数据共享”出现的两大关键词。那么蚂蚁金服如何让数据孤岛在安全环境下进行连接、合作、共创、赋能呢?“共享学习” 与 “联邦学习” 的区别又是什么呢?

如果有A、B、C三位同学,他们各自手上有10、15、20块钱,这时需要在相互不知道对方有多少钱的情况下,不借助力第三方来计算三个人一共有多少钱。请问这时候,我们如何实现呢?——这,就是最经典的秘密共享场景。在看完这篇文章后,答案就出来了~

背景

互联网时代,一切基于数据。

随着人工智能的兴起,数据的质量和数量,已经成为影响机器学习模型效果最重要的因素之一,因此通过数据共享的模式来“扩展”数据量、从而提升模型效果的诉求也变得越发强烈。

但在数据共享过程中,不可避免会涉及到两个问题:隐私泄露和数据滥用。

提到这两个关键词,大家一定都对其背后的缘由有所耳闻:

第一则:2018年3月,剑桥咨询公司通过FaceBook的数据共享漏洞,收集了5000万用户信息,据说有可能利用这些信息操控美国总统竞选,造成恶劣社会影响;事件曝光后,FB公司股票大跌7%,引发一系列后续问题。
第二则:2018年5月,欧盟通过General Data Protection Regulation(GDPR)法案,法案指出:所有与个人相关的信息都是个人数据,对数据的使用行为必须要有用户的明确授权。把对隐私保护的要求提到了一个新的高度。

随着对数据安全的重视和隐私保护法案的出台,以前粗放式的数据共享受到挑战,各个数据拥有者重新回到数据孤岛的状态,同时,互联网公司也更难以收集和利用用户的隐私数据。

数据孤岛现象不仅不会消失,反而会成为新的常态,甚至它不仅存在于不同公司和组织之间,在大型集团内部也存在。未来,我们必须面对这样的现状:如果我们想更好的利用数据,用大数据和AI做更多有意义的事情,就必须在不同组织之间、公司与用户之间进行数据共享,但这个共享需要满足隐私保护和数据安全的前提。

隐私泄漏和数据滥用如同达摩克利斯之剑悬在各个公司和组织头上,因此解决数据孤岛,成为AI行业需要解决的首要问题之一。

如何解决数据孤岛问题?

当前,业界解决隐私泄露和数据滥用的数据共享技术路线主要有两条。一条是基于硬件可信执行环境(TEE: Trusted Execution Environment)技术的可信计算,另一条是基于密码学的多方安全计算(MPC:Multi-party Computation)。

TEE字面意思是可信执行环境,核心概念为以第三方硬件为载体,数据在由硬件创建的可信执行环境中进行共享。这方面以Intel的SGX技术,AMD的SEV技术,ARM的Trust Zone技术等为代表。TEE方案的大致原理如下图所示:

image.png

目前在生产环境可用的TEE技术,比较成熟的基本只有Intel的SGX技术,基于SGX技术的各种应用也是目前业界的热门方向,微软、谷歌等公司在这个方向上都有所投入。

SGX(Software Guard Extensions )是Intel提供的一套软件保护方案。SGX通过提供一系列CPU指令码,允许用户代码创建具有高访问权限的私有内存区域(Enclave - 飞地),包括OS,VMM,BIOS,SMM均无法私自访问Enclave,Enclave中的数据只有在CPU计算时,通过CPU上的硬件进行解密。同时,Intel还提供了一套远程认证机制(Remote Attestation),通过这套机制,用户可以在远程确认跑在Enclave中的代码是否符合预期。

MPC(Multi-party Computation,多方安全计算)一直是学术界比较火的话题,但在工业界的存在感较弱,之前都是一些创业小公司在这个方向上有一些探索,例如Sharemind,Privitar,直到谷歌提出了基于MPC的在个人终端设备的“联邦学习” (Federated Learning)的概念,使得MPC技术一夜之间在工业界火了起来。MPC方案的大致原理如下图所示:

image.png

目前,在MPC领域,主要用到的是技术是混淆电路(Garbled Circuit)、秘密分享(Secret Sharing)和同态加密(Homomorphic Encryption)。

混淆电路是图灵奖得主姚期智教授在80年代提出的一个方法。其原理是,任意函数最后在计算机语言内部都是由加法器、乘法器、移位器、选择器等电路表示,而这些电路最后都可以仅由AND和XOR两种逻辑门组成。一个门电路其实就是一个真值表,假设我们把门电路的输入输出都使用不同的密钥加密,设计一个加密后的真值表,这个门从控制流的角度来看还是一样的,但是输入输出信息都获得了保护。

秘密分享的基本原理是将每个数字随机拆散成多个数并分发到多个参与方那里。然后每个参与方拿到的都是原始数据的一部分,一个或少数几个参与方无法还原出原始数据,只有大家把各自的数据凑在一起时才能还原真实数据。

同态加密是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同。同态性来自抽象代数领域的概念,同态加密则是它的一个应用。

当前,业界针对数据共享场景,利用上面的技术路线推出了一些解决方案,包括隐私保护机器学习PPML、联邦学习、竞合学习、可信机器学习等,但这些方案只利用了其中的一部分技术,从而只适合部分场景,同时基本处于学术研究阶段,没有在生产环境落地。

共享机器学习:蚂蚁金服数据孤岛解决方案

为了更好的应对形势变化,解决数据共享需求与隐私泄露和数据滥用之间的矛盾,蚂蚁金服提出了希望通过技术手段,确保多方在使用数据共享学习的同时,能做到:用户隐私不会被泄露,数据使用行为可控,我们称之为共享机器学习(Shared Machine Learning)。

共享机器学习的定义:在多方参与且各数据提供方与平台方互不信任的场景下,能够聚合多方信息并保护参与方数据隐私的学习范式。

从17年开始,蚂蚁金服就一直在共享机器学习方向进行探索和研究,在结合了TEE与MPC两条路线的同时,结合蚂蚁的自身业务场景特性,聚焦于在金融行业的应用。

蚂蚁金服共享机器学习方案拥有如下特性:

• 多种安全计算引擎整合,可基于不同业务场景来选择合适的安全技术。既有基于TEE的集中式解决方案,也有基于MPC的分布式解决方案;既可满足数据水平切分的场景,也能解决数据垂直切分的诉求;既可以做模型训练,也可以做模型预测。
• 支持多种机器学习算法以及各种数据预处理算子。支持的算法包括但不限于LR,GBDT,Xgboost,DNN,CNN,RNN,GNN等。
• 大规模集群化。支持大规模集群化,提供金融级的高效、稳定、系统化的支撑。

基于数年沉淀与积累,目前共享机器学习技术已在银行、保险、商户等行业成功落地诸多场景业务。通过在业务中打磨出的金融级共享机器学习能力,沉淀下来一套数据共享场景的通用解决方案,未来会逐步对外开放。

在几年的艰苦研发中,共享学习累积专利50余项。在2019中国人工智能峰会上,共享机器学习获得“紫金产品创新奖”,在8月16日的全球人工智能创业者大会上,获得“应用案例示范奖”。

下面,我们将分享基于上面两种路线的共享机器学习实践细节。

基于TEE的共享学习
蚂蚁共享学习底层使用Intel的SGX技术,并可兼容其它TEE实现。目前,基于SGX的共享学习已支持集群化的模型在线预测和离线训练。

1.模型在线预测

预测通常是在线服务。相对于离线训练,在线预测在算法复杂度上面会相对简单,但是对稳定性的要求会更高。
提升在线服务稳定性的关健技术之一就是集群化的实现——通过集群化解决负载均衡,故障转移,动态扩容等稳定性问题。

但由于SGX技术本身的特殊性,传统的集群化方案在SGX上无法工作。

为此,我们设计了如下分布式在线服务基本框架:

image.png

该框架与传统分布式框架不同的地方在于,每个服务启动时会到集群管理中心(ClusterManager,简称CM)进行注册,并维持心跳,CM发现有多个代码相同的Enclave进行了注册后,会通知这些Enclave进行密钥同步,Enclave收到通知后,会通过远程认证相互确认身份。当确认彼此的Enclave签名完全相同时,会通过安全通道协商并同步密钥。

该框架具备如下特性:

• 通过集群化方案解决了在线服务的负载均衡,故障转移,动态扩缩容,机房灾备等问题;
• 通过多集群管理和SDK心跳机制,解决代码升级,灰度发布,发布回滚等问题;
• 通过ServiceProvider内置技术配合SDK,降低了用户的接入成本;
• 通过提供易用性的开发框架,使得用户在开发业务逻辑时,完全不需要关心分布式化的逻辑;
• 通过提供Provision代理机制,确保SGX机器不需要连接外网,提升了系统安全性。

目前在这套框架之上已经支持包括LR、GBDT、Xgboost等多种常用的预测算法,支持单方或多方数据加密融合后的预测。基于已有框架,也可以很容易的扩展到其它算法。

2.模型离线训练
模型训练阶段,除了基于自研的训练框架支持了LR和GBDT的训练外,我们还借助于LibOs Occlum和自研的分布式组网系统,成功将原生Xgboost移植到SGX内,并支持多方数据融合和分布式训练。通过上述方案,不仅可以减少大量的重复性开发工作,并且在Xgboost社区有了新的功能更新后,可以在SGX内直接复用新功能,无需额外开发。目前我们正在利用这套方案进行TensorFlow框架的迁移。

此外,针对SGX当下诟病的128M内存限制问题(超过128M会触发换页操作,导致性能大幅下降),我们通过算法优化和分布式化等技术,大大降低内存限制对性能的影响。

基于TEE的多方数据共享学习训练流程如下:

  1. 机构用户从Data Lab下载加密工具
  2. 使用加密工具对数据进行加密,加密工具内嵌了RA流程,确保加密信息只会在指定的Enclave中被解密
  3. 用户把加密数据上传到云端存储
  4. 用户在Data Lab的训练平台进行训练任务的构建
  5. 训练平台将训练任务下发到训练引擎
  6. 训练引擎启动训练相关的Enclave,并从云端存储读取加密数据完成指定的训练任务。

image.png

采用该方式进行数据共享和机器学习,参与方可以保证上传的数据都经过加密,并通过形式化验证保证加密的安全性。

基于MPC的共享学习

蚂蚁基于MPC的共享学习框架分为三层:

• 安全技术层:安全技术层提供基础的安全技术实现,比如在前面提到的秘密分享、同态加密、混淆电路,另外还有一些跟安全密切相关的,例如差分隐私技术、DH算法等等;
• 基础算子层:在安全技术层基础上,我们会做一些基础算子的封装,包括多方数据安全求交、矩阵加法、矩阵乘法,以及在多方场景下,计算sigmoid函数、ReLU函数等等;同一个算子可能会有多种实现方案,用以适应不同的场景需求,同时保持接口一致;
• 安全机器学习算法:有了基础算子,就可以很方便的进行安全机器学习算法的开发,这里的技术难点在于,如何尽量复用已有算法和已有框架,我们在这里做了一些有益的尝试,但也遇到了很大的挑战。

image.png

目前我们这套基于MPC的共享学习框架已支持了包括LR、GBDT、GNN等头部算法,后续一方面会继续根据业务需求补充更多的算法,同时也会为各种算子提供更多的技术实现方案,以应对不同的业务场景。

基于MPC的多方数据共享学习训练流程如下:

image.png

如图所示,训练步骤为:

  1. 机构用户从Data Lab下载训练服务并本地部署
  2. 用户在Data Lab的训练平台上进行训练任务的构建
  3. 训练平台将训练任务下发给训练引擎
  4. 训练引擎将任务下发给机构端的训练服务器Worker
  5. Worker加载本地数据
  6. Worker之间根据下发的训练任务,通过多方安全协议交互完成训练任务

训练引擎的具体架构如下:

image.png

其中Coordinator部署于蚂蚁平台,用于任务的控制和协调,本身并不参与实际运算。Worker部署在参与多方安全计算的机构,基于安全多方协议进行实际的交互计算。

用户在建模平台构建好的训练任务流会下发给Coordinator的Task Flow Manager,Task Flow Manager会把任务进行拆解,通过Task Manager把具体算法下发给Worker端的Task Executor,Task Executor根据算法图调用Worker上的安全算子完成实际的运算。

利用这套方法,可以做到数据不出域就可以完成数据共享,训练工具可以部署在本地的服务器。

共享学习 VS. 联邦学习

目前,国内对于数据共享场景的机器学习解决方案,比较熟悉的可能是由谷歌提出的联邦学习概念。

经过我们的了解,其实联邦学习目前涉及两个不同的概念:

• 第一种联邦学习,旨在解决云 + 端的训练过程中,端上的隐私不要被暴露的问题,是一个To C + 数据水平切分的场景。除了保护端上的数据隐私外,其重点还在于如何解决训练过程中,端自身可能掉线等问题。
• 第二种联邦学习则主要用于解决To B场景中各方隐私不泄露的问题,即可以应用于数据的水平切分场景,也可以应用于数据垂直切分的场景。

它们侧重于不同的数据共享场景,采用不同的技术,相比之下,蚂蚁金服的共享学习兼容多种安全计算技术,并且支持多种机器学习算法和使用场景。

除此之外,共享学习和联邦学习的差异在于:

  1. 联邦学习只解决数据不出域的情况,这就限制了其可以使用的技术(只有严格的MPC算法才符合这个要求),而共享学习目前基于TEE的集中式共享学习技术,是联邦学习没有涉及的;
  2. 联邦学习讲究的是参与各方的“身份和地位”的相同,所以叫联邦;而共享学习则不强调各共享方的地位对等,在很多场景下,不同的参与方是拥有不同的角色的。

目前,数据共享下的机器学习仍然还有很多可突破的地方,这些不同只是对当前状态的一个比较,希望大家能对共享学习有更好的理解。

未来展望

让数据孤岛在安全环境下进行连接、合作、共创、赋能,是蚂蚁金服共享机器学习的核心使命。

共享机器学习作为一个安全与AI的交叉学科,正在越来越受到关注,尤其是在金融行业,有着广阔的应用空间。但是,这个领域的各项技术,也远未到成熟的阶段。我们团队经过两年的摸索,也只是取得了阶段性的一些成果,在算法的计算性能以及支持算法的多样性等各个方面,还有一段路要走。

9月27日杭州云栖大会,蚂蚁金服将向外界首次分享共享学习的理念和实践,欢迎届时关注。后续我们也会分享更多共享学习方面的研究进展及实践经验, 欢迎业界同仁交流探讨,共同探索更多更强的数据孤岛解决方案,推进数据共享下的机器学习在更多场景下落地。

相关文章
|
数据采集 存储 监控
【建议收藏】|某大型金融集团内部数据治理实战总结
近几年,企业都在做数字化转型。 数字化转型是为了使组织更好地适应数字时代的变革,提高效率、降低成本、增强竞争力。是将业务和流程数字化,以实现更快、更准确、更可靠的数据处理和决策。是以数据驱动的精细化运营、业务创新增长和商业模式创新。
1225 0
【建议收藏】|某大型金融集团内部数据治理实战总结
|
存储 供应链 数据库
大型集团公司如何打破“信息孤岛”问题?
本文重点结合了企业信息系统的需求,给出了整合企业现有信息系统的方法,能有效解决企业信息孤岛的问题,并帮助企业快速实施应用系统集成、建设信息一体化工程,将各种系统和应用高效集成起来,使信息资源得到充分利用。
|
存储 云计算
阿里云产品体系分为6大分类——云计算基础——存储服务
阿里云产品体系分为6大分类——云计算基础——存储服务自制脑图
82 1
阿里云产品体系分为6大分类——云计算基础——存储服务
|
存储 云计算
阿里云产品体系分为6大分类——云计算基础——存储服务——智能存储
阿里云产品体系分为6大分类——云计算基础——存储服务——智能存储自制脑图
350 1
阿里云产品体系分为6大分类——云计算基础——存储服务——智能存储
|
存储 弹性计算 NoSQL
坚持伙伴优先,共创数据存储新生态
共建存储生态,普惠千行万业。
500 1
|
小程序 Java 人机交互
智慧校园大数据云平台源码,实现基础数据共享、应用统一管理
智慧校园云平台电子班牌系统,利用先进的云计算技术,将教育信息化资源和教学管理系统进行有效整合,实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统,以考勤、课表、通知、家校互通等功能为切入点,从班级建设、校园文化、班级文化、学生工作、信息发布、家校共育六大方面,着力打造满足用户场景,深度贴合学校教育的改革需求。
290 0
|
存储 数据采集 SQL
知识点!典型的工业企业大数据分析平台解决方案(含数据治理)
当前,工业企业产生的数据与日俱增,如何利用大数据为企业产生驱动力、竞争力成为工业企业面临的重要问题。
知识点!典型的工业企业大数据分析平台解决方案(含数据治理)
|
数据采集 存储 供应链
谈谈大型集团数据资产管理能力建设方法
对于大型集团企业来讲,数字化转型的成败直接关系到集团的可持续发展,尤其当前最紧迫的任务就是数据体系建设。
|
存储 SQL 大数据
数据湖驱动更大规模存储,帮助互金行业释放数据价值
利用DLA+ OSS极致分析能力来应对业务波峰波谷。一方面轻松应对来自品牌客户的临时分析。另一方面利用DLA的强大计算能力,分析按月、季度广告投放,精确计算出一个品牌下面会有多少个活动,每个活动分媒体,分市场,分频道,分DMP的投放效果,进一步增强了加和智能流量平台为品牌营销带来的销售转化率。
6439 0
数据湖驱动更大规模存储,帮助互金行业释放数据价值
|
机器学习/深度学习 存储 负载均衡
蚂蚁金服共享智能技术实践:如何降低数据共享的难度?
人工智能目前存在的难题是鱼与熊掌不可兼得,也就是隐私性跟可用性难以兼顾。如果想要 AI 系统发挥作用,就可能需要牺牲隐私。但是,在大量真实场景中,如果做不到同时兼顾隐私和可用性,会导致很多 AI 落地的困境。
630 0
蚂蚁金服共享智能技术实践:如何降低数据共享的难度?