共享学习:蚂蚁金服提出全新数据孤岛解决方案新浪财经

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

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

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

第一则:2018年3月,剑桥咨询公司通过FaceBook的数据共享漏洞,收集了5000万用户信息,据说有可能利用这些信息操控美国总统竞选,造成恶劣社会影响;事件曝光后,FB公司股票大跌7%,引发一系列后续问题。

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

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

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

如何解决数据孤岛问题?

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

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

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

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

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

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

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

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

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

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

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

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

多种安全计算引擎整合,可基于不同业务场景来选择合适的安全技术。既有基于TEE的集中式解决方案,也有基于MPC的分布式解决方案;既可满足数据水平切分的场景,也能解决数据垂直切分的诉求;既可以做模型训练,也可以做模型预测。

支持多种机器学习算法以及各种数据预处理算子。支持的算法包括但不限于LR,GBDT,Xgboost,DNN,CNN,RNN,GNN等。

大规模集群化。支持大规模集群化,提供金融级的高效、稳定、系统化的支撑。

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

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

基于TEE的共享学习

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

1.模型在线预测

预测通常是在线服务。相对于离线训练,在线预测在算法复杂度上面会相对简单,但是对稳定性的要求会更高。

提升在线服务稳定性的关健技术之一就是集群化的实现——通过集群化解决负载均衡,故障转移,动态扩容等稳定性问题。

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

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

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

该框架具备如下特性:

通过集群化方案解决了在线服务的负载均衡,故障转移,动态扩缩容,机房灾备等问题;

通过多集群管理和SDK心跳机制,解决代码升级,灰度发布,发布回滚等问题;

通过ServiceProvider内置技术配合SDK,降低了用户的接入成本;

通过提供易用性的开发框架,使得用户在开发业务逻辑时,完全不需要关心分布式化的逻辑;

通过提供Provision代理机制,确保SGX机器不需要连接外网,提升了系统安全性。

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

2.模型离线训练

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

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

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

机构用户从DataLab下载加密工具

使用加密工具对数据进行加密,加密工具内嵌了RA流程,确保加密信息只会在指定的Enclave中被解密

用户把加密数据上传到云端存储

用户在DataLab的训练平台进行训练任务的构建

训练平台将训练任务下发到训练引擎

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

基于MPC的共享学习

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

基础算子层:在安全技术层基础上,我们会做一些基础算子的封装,包括多方数据安全求交、矩阵加法、矩阵乘法,以及在多方场景下,计算sigmoid函数、ReLU函数等等;同一个算子可能会有多种实现方案,用以适应不同的场景需求,同时保持接口一致;

安全机器学习算法:有了基础算子,就可以很方便的进行安全机器学习算法的开发,这里的技术难点在于,如何尽量复用已有算法和已有框架,我们在这里做了一些有益的尝试,但也遇到了很大的挑战。

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

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

如图所示,训练步骤为:

机构用户从DataLab下载训练服务并本地部署

用户在DataLab的训练平台上进行训练任务的构建

训练平台将训练任务下发给训练引擎

训练引擎将任务下发给机构端的训练服务器Worker

Worker加载本地数据

Worker之间根据下发的训练任务,通过多方安全协议交互完成训练任务

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

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

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

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

共享学习VS.联邦学习

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

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

第一种联邦学习,旨在解决云+端的训练过程中,端上的隐私不要被暴露的问题,是一个ToC+数据水平切分的场景。除了保护端上的数据隐私外,其重点还在于如何解决训练过程中,端自身可能掉线等问题。

第二种联邦学习则主要用于解决ToB场景中各方隐私不泄露的问题,即可以应用于数据的水平切分场景,也可以应用于数据垂直切分的场景。

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

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

联邦学习只解决数据不出域的情况,这就限制了其可以使用的技术(只有严格的MPC算法才符合这个要求),而共享学习目前基于TEE的集中式共享学习技术,是联邦学习没有涉及的;

联邦学习讲究的是参与各方的「身份和地位」的相同,所以叫联邦;而共享学习则不强调各共享方的地位对等,在很多场景下,不同的参与方是拥有不同的角色的。

因此无论从技术范围还是应用场景上,联邦学习都比共享学习的范围要小。

未来展望

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

THE END
1.相比于离线训练,在线训练的好处有什么?问答离线训练毕竟使用的是 T-1 或者 T-2 的数据去做的,没有对线上实时产生的行为数据进行利用,对于数据的时效性利用相对较差。 比如说,有这样的一个场景,今天我的整个平台只对 14 岁以下的少女做某个运营活动,而平台上充斥了大量的年龄段的客户,整个平台的交互行为都变了,这个时候你的模型还是 T-1 去做的,将https://developer.aliyun.com/ask/446535
2.蚂蚁金服核心技术:百亿特征实时推荐算法揭秘备注:弹性特征带来一个显著的优势:只要用足够强的L1稀疏性约束,在单机上就能调试任意大规模的特征训练,带来很多方便。我们的hashmap实现是KV化的,key是特征,value是vector的首地址。 离线训练优化 经过这样的改造后,在离线批量学习上,带来了以下变化: 在线训练优化 https://maimai.cn/article/detail?fid=1010621115&efid=mIQCHnkj0zjxlpygUmo5mg
3.科学网—[转载]群视角下的多智能体强化学习方法综述基于学习(深度学习、强化学习)设计的迭代式问题求解方法是离线策略学习的基础范式。由于环境及对手的非平稳性,离线训练的蓝图策略通常很难直接运用于在线对抗。在线博弈对抗过程与离线利用模拟多次对抗学习博弈过程不同,博弈各方处于策略解耦合状态,与离线批(batch)式策略学习方法不同,在线博弈对抗策略的求解本质是一个流https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698
4.深度学习难分样本挖掘(HardMining)数据派关键是找出影响网络性能的一些训练样本,针对性的进行处理。 简单来说就是把难分的样本,剔除出来,放到另外一个地方里面。最后将难分样本,给负样本,加强训练分类器。但是,这样又会造成数据不平衡的问题,下面会讲到。 03、方法:离线和在线 在样本训练过程中,会将训练结果与GroundTruth计算IOU。通常会设定一个阈值(0.5https://www.shangyexinzhi.com/article/4713934.html
5.粗排优化探讨得物技术离线在线一致性分析 待补充实际效果 四 样本设计 粗排相较于精排样本选择偏差(SSB)的问题更加严重,借鉴召回经验,可以通过适当采样减少偏差。采样设计的目的也是希望离线训练样本尽可能与线上分布一致。 样本选择方法 负样本可选范围: 曝光未点击样本; 全库除转化外样本; https://blog.itpub.net/70027824/viewspace-3000851/
6.基于Kmeans聚类的CSI室内定位AET对于单个天线对得到fin,对于m个天线的每个天线对使用Kmeans算法,得到训练向量: 2.2 在线定位阶段 在线定位阶段采用与离线训练阶段相同的方法提取到m个天线对的指纹: 将提取到的指纹与训练阶段建立的数据库中的指纹作比较,即将获取到的第i个天线对的指纹矩阵与数据库中的第i个天线对的指纹矩阵,进行两个指纹矩阵中任http://www.chinaaet.com/article/3000057028
7.离线学习(训练)和在线学习(训练)在线训练和离线训练文章浏览阅读1.4w次,点赞4次,收藏4次。https://blog.csdn.net/a133521741/article/details/79221015_在线训练和离线训练https://blog.csdn.net/sinat_40966515/article/details/100073130
8.编程入门实战训练CodeCamp在线编程实战CodeCamp, freeCodeCamp, 在线编程实战训练,是一个以操作实验为基础的编程训练营,它包含了HTML,CSS,Javascript,jQuery,Bootstrap等编程语言编程闯关,让你在实践中提升自己的编程能力。https://www.w3cschool.cn/codecamp
9.强化学习离线模型离线模型和在线模型推荐系统里非常常见,并且往往非常的隐蔽的一种数据分布不一致的情况被称之为冰山效应,也就是说离线训练用的是有偏的冰山上的数据,而在线上预估的时候,需要预测的是整个冰山的数据,包括大量冰面以下的数据!我们看下面这张图。左边是我们的Baseline,绿色的表示正样本,红色表示负样本,灰色部分表示线上由于推荐系统的“https://blog.51cto.com/u_14499/11815202
10.使用Merlin分层参数服务器扩展推荐系统推理推荐模型有两种培训模式:离线和在线。在线培训将新的模型更新部署到实时生产中,对于推荐的有效性至关重要。HPS 雇佣无缝更新机制通过Apache Kafka– 基于消息缓冲区连接训练和推理节点,如图 5 所示。 图5. HugeCTR 推理在线更新机制 更新机制有助于 MLOps 工作流,支持在线/频繁以及离线/再培训更新,无需停机。它还通https://www.eet-china.com/mp/a159829.html
11.推荐系统完整的架构设计和算法(协同过滤隐语义)其中,数据上报和离线训练组成了监督学习中的学习系统,而实时计算和 A/B 测试组成了预测系统。另外,除了模型之外,还有一个在线存储模块,用于存储模型和模型需要的特征信息供实时计算模块调用。图中的各个模块组成了训练和预测两条数据流,训练的数据流搜集业务的数据最后生成模型存储于在线存储模块;预测的数据流接受业务https://cloud.tencent.com/developer/article/1508050
12.人工智能团队研究成果在TKDE发表:样本高效的离线转在线强化学习离线强化学习,即智能体从先前收集的数据集中学习的过程,已被广泛研究并在机器人控制、推荐系统、智慧医疗等领域取得了巨大成功。然而,由于受到离线数据集质量的限制,离线强化学习智能体的性能通常是次优的。因此,在部署之前,通常需要进一步通过在线交互对预训练的离线强化学习智能体进行微调。 http://icfs.jlu.edu.cn/info/1007/3101.htm
13.2020年最值得收藏的60个AI开源工具语言&开发李冬梅SiamMask 是一款实时在线目标跟踪与目标分割统一框架。技术简单、通用、快速高效。它可以对目标实时跟踪。此款库还包含预训练模型。 项目地址:https://github.com/foolwood/SiamMask DeepCamera 世界首个自动机器学习深度学习边缘 AI 平台 ARM GPU 上的深度学习视频处理监控,用于人脸识别以及更多方法。将数码相机变成人工https://www.infoq.cn/article/2uabiqaxicqifhqikeqw