人工智能目前存在的难题是鱼与熊掌不可兼得,也就是隐私性跟可用性难以兼顾。若是想要AI系统发挥做用,就可能须要牺牲隐私。可是,在大量真实场景中,若是作不到同时兼顾隐私和可用性,会致使不少AI落地的困境。
随着对数据安全和重视和隐私保护法案的出台,曾经粗放式的数据共享受到挑战,各个数据拥有者从新回到数据孤岛的状态。同时,互联网公司也更加难以收集和利用用户的隐私数据,数据孤岛反而成为了常态。若是但愿更好的利用数据,就必须在知足隐私保护和数据安全的前提下,在不一样的组织、公司与用户之间进行数据共享。 算法
为了解决这一问题,国内外很多科技公司前后推出了解决方案,好比谷歌推出的联邦学习、蚂蚁金服提出的共享智能等。本文,InfoQ对蚂蚁金服机器学习算法中台负责人周俊进行了采访,了解共享智能如何解决金融领域的数据共享问题。安全
在介绍技术实践以前,咱们须要花些时间厘清共享智能与联邦学习之间的区别,以方便读者了解本文的讨论范围。服务器
当前,业界解决隐私泄露和数据滥用的数据共享技术路线主要有两条。一条是基于硬件可信执行环境(TEE:Trusted Execution Environment)技术的可信计算,另外一条是基于密码学的多方安全计算(MPC:Multi-party Computation)。网络
TEE字面意思是可信执行环境,核心概念为以第三方硬件为载体,数据在由硬件建立的可信执行环境中进行共享。目前在生产环境可用的TEE技术,比较成熟的基本只有Intel的SGX技术,基于SGX技术的各类应用也是目前业界的热门方向,微软、谷歌等公司在这个方向上都有所投入。架构
MPC(Multi-party Computation,多方安全计算)一直是学术界比较火的话题,但在工业界的存在感较弱,以前都是一些创业小公司在这个方向上有一些探索,例如Sharemind,Privitar,直到谷歌提出了基于MPC的在我的终端设备的“联邦学习”(Federated Learning)的概念,使得MPC技术一晚上之间在工业界火了起来。负载均衡
当前,业界针对数据共享场景,利用如上技术路线推出了一些解决方案,包括隐私保护机器学习PPML、联邦学习、竞合学习、可信机器学习等,不一样解决方案采用的技术路线相互也会有一些重叠。周俊表示,蚂蚁金服提出的共享智能(又称:共享机器学习)结合了TEE与MPC两条路线,同时结合蚂蚁的自身业务场景特性,聚焦于金融行业的应用。框架
简单来讲,共享智能的概念,或者说理念,是但愿在多方参与且各数据提供方与平台方互不信任的场景下,可以聚合多方信息进行分析和机器学习,并确保各参与方的隐私不被泄漏,信息不被滥用。机器学习
关于共享智能与联邦学习的差别,周俊表示,目前,联邦学习涉及两个不一样的概念:分布式
第一种是谷歌提出的联邦学习,旨在解决云 + 端训练过程当中,端上隐私不暴露的问题,这是一个 To C + 数据水平切分的场景。除了保护端上的数据隐私外,其重点还在于如何解决训练过程当中,端自身可能掉线等问题。 函数
第二种是国内提出的联邦学习,主要用于解决 To B 场景中各方隐私不泄露的问题,既可应用于数据的水平切分场景,也可应用于数据垂直切分的场景。它们侧重于不一样的数据共享场景,技术上有不一样的侧重点。
2019年,一篇由多个知名大学和企业撰写的关于联邦学习的综述文章《Advances and Open Problems in Federated Learning》,对联邦学习的定义和描述是比较清晰的。首先,联邦学习的架构是由一台中心服务器和多个计算节点构成,中心服务器会参与到整个计算过程,所以不适用于一些不须要中心服务器节点的应用场景(文章中将这种模式称为Fully Decentralized Distributed Learning )。此外,联邦学习要求原始数据不能出域,这也限制了其可使用的技术方案,而共享智能是从问题出发,做为一个新兴的技术领域,在面临当前各类复杂场景的时候,很难用一套技术方案去解决全部问题,所以共享智能的解决方案中不只包含有相似联邦学习的有中心服务器参与计算的模式,也包含彻底去中心化的方案,还有基于TEE的共享学习方案。
在不一样的场景下,不一样的方案各有优劣。周俊表示,目前,数据共享下的机器学习仍然还有不少待突破的地方,咱们并不纠结于解决问题的是联邦学习仍是去中心化的分布式学习,或者是其它任何技术方案,最终仍是但愿你们可以协力解决这个业界难题。
2016年开始,蚂蚁金服就开始投入到共享智能的研究中,出发点是为了解决业务中遇到的问题,好比机构与蚂蚁金服的信息协同问题。基于此,蚂蚁金服调研了差分隐私、矩阵变换等多种方案,肯定了目前的技术大方向。
纵观整个研发阶段,周俊认为大体能够分为探索期、技术攻坚和技术应用三个时期。
在共享智能的技术细节上,周俊表示,能够按照TEE和MPC两条路线来理解。
蚂蚁共享学习底层使用Intel的SGX技术,并可兼容其它TEE实现。下面着重介绍一下
基于TEE的共享学习中的一种数据加密出域的方案,目前,这种方案已支持集群化的模型在线预测和离线训练。
1. 模型在线预测
预测一般是在线服务。相对于离线训练,在线预测在算法复杂度上面会相对简单,可是对稳定性的要求会更高。提高在线服务稳定性的关键技术之一就是集群化的实现——经过集群化解决负载均衡,故障转移,动态扩容等稳定性问题。
但因为SGX技术自己的特殊性,传统的集群化方案在SGX上没法工做。
为此,蚂蚁金服设计了以下分布式在线服务基本框架:
该框架与传统分布式框架不一样的地方在于,每一个服务启动时会到集群管理中心(ClusterManager,简称CM)进行注册,并维持心跳,CM发现有多个代码相同的Enclave进行了注册后,会通知这些Enclave进行密钥同步,Enclave收到通知后,会经过远程认证相互确认身份。当确认彼此的Enclave签名彻底相同时,会经过安全通道协商并同步密钥。
2. 模型离线训练
模型训练阶段,除了基于自研的训练框架支持了LR和GBDT的训练外,蚂蚁金服还借助于LibOS Occlum(蚂蚁主导开发,已开源)和自研的分布式组网系统,成功将原生Xgboost移植到SGX内,并支持多方数据融合和分布式训练。经过上述方案,不只能够减小大量的重复性开发工做,而且在Xgboost社区有了新的功能更新后,能够在SGX内直接复用新功能,无需额外开发。目前,蚂蚁金服正在利用这套方案进行TensorFlow框架的迁移。
此外,针对SGX当下诟病的128M内存限制问题(超过128M会触发换页操做,致使性能大幅降低),蚂蚁金服经过算法优化和分布式化等技术,大大下降内存限制对性能的影响。
上述方案在多方数据共享学习训练流程以下:
1. 机构用户从Data Lab下载加密工具
2. 使用加密工具对数据进行加密,加密工具内嵌了RA流程,确保加密信息只会在指定的Enclave中被解密
3. 用户把加密数据上传到云端存储
4. 用户在Data Lab的训练平台进行训练任务的构建
5. 训练平台将训练任务下发到训练引擎
6. 训练引擎启动训练相关的Enclave,并从云端存储读取加密数据完成指定的训练任务。
此外,针对有一些数据提供方不但愿数据出域的场景,蚂蚁还提供了使用TEE对训练过程当中的参数信息进行加密的技术方案,篇幅缘由,就不在这里展开了。
蚂蚁基于MPC的共享学习框架分为三层:
目前,这套基于MPC的共享学习框架已支持了包括LR、GBDT、DNN等头部算法,后续一方面会继续根据业务需求补充更多的算法,同时也会为各类算子提供更多的技术实现方案,以应对不一样的业务场景.
基于MPC的多方数据共享学习训练流程以下:
1. 机构用户从Data Lab下载训练服务并本地部署
2. 用户在Data Lab的训练平台上进行训练任务的构建
3. 训练平台将训练任务下发给训练引擎
4. 训练引擎将任务下发给机构端的训练服务器Worker
5. Worker加载本地数据
6. Worker之间根据下发的训练任务,经过多方安全协议交互完成训练任务
训练引擎的具体架构以下:
其中Coordinator部署于蚂蚁平台,用于任务的控制和协调,自己并不参与实际运算。Worker部署在参与多方安全计算的机构,基于安全多方协议进行实际的交互计算。
用户在建模平台构建好的训练任务流会下发给Coordinator的Task Flow Manager,Task Flow Manager会把任务进行拆解,经过Task Manager把具体算法下发给Worker端的Task Executor,Task Executor根据算法图调用Worker上的安全算子完成实际的运算。
利用这套方法,能够作到数据不出域就能够完成数据共享,训练工具能够部署在本地的服务器。
不管是联邦学习仍是共享智能,不少技术实践都优先选择了在金融领域落地。相较于其余领域,金融领域对数据的管控更为严格,对数据隐私更加剧视,所以也是最须要经过技术手段解决数据孤岛问题的领域。
周俊表示,在金融领域,共享智能侧重在解决“开放”这个大领域中的问题,好比联合营销、联合风控等,这两个场景相对更容易看到具体实施效果。相比其余领域,金融领域对数据保护看的更重,数据的流转在该领域中更难,所以采用共享智能技术,能够作到更好的隐私保护,实现数据可用不可见,是一个关键的助推器。
举例来讲,经过数据融合,蚂蚁金服的共享智能帮助中和农信大幅度提升了风控性能,把原来传统的线下模式,变成线上自动过审模式,完成授信只需5分钟,8个月累计放款31.9亿,授信成功人数44万人,业务覆盖20多个省区,300多县城,10000多个乡村。
虽然该技术的落地对金融企业有着重要意义,但不少公司在实际的落地过程当中遇到了问题,多是技术缘由,也多是处于对结果的担心。
采访中,周俊表示,共享智能技术属于交叉领域,涉及到密码学、机器学习等技术,有必定的门槛,企业部署这样的技术,须要结合自身技术能力以及业务需求来综合考量。固然,蚂蚁金服也在积极探索下降企业落地门槛的技术和方案,随着愈来愈多的企业一块儿参与进来,相信不远的未来,共享智能的技术落地将再也不会有过高的门槛。
此外,蚂蚁金服的共享智能是一个开放的生态,但愿更多的企业能参与进来一块儿共建,而不须要从新再去走蚂蚁金服以前走过的不少弯路。金融企业能够根据自身业务发展的须要,及时跟进业界最新进展,从而选择更合适的技术和合做方来解决业务难题。可以让业务赢,解决业务痛点,是这里面最重要的因素。
更为重要的是,共享智能解决的是信任问题,因此大规模落地的前提是用户对共享智能有一个全面的认知和信任。蚂蚁金服经过立标杆、推标准、定向开源等方式来逐步创建用户对共享智能的信任。目前,蚂蚁金服已经在智能信贷领域的多家机构落地了标杆型业务场景。同时,牵头在推动共享智能的行业标准、联盟标准、国家标准以及IEEE、ITU-T等国际标准。周俊表示,咱们相信,随着技术和用户心智的同步发展,共享智能的大规模落地将会很快发生,而最早受益的,是数据驱动的、而且对隐私保护有强需求的金融科技和医疗科技行业。
面向将来,周俊表示,重点仍是继续推进全行业共同解决数据共享问题。蚂蚁金服会逐步开放技术能力,赋能行业中有需求的企业,同时会联合更多单位,包括研究机构、企业等共同推动解决技术难题。最终但愿全行业可以共同打造一个能够在保护用户隐私和防止数据滥用的前提下实现数据互联互通的共享智能网络,更好的实现普惠金融。
周俊,负责蚂蚁金服机器学习算法中台,包括共享机器学习、图机器学习、自动机器学习、对抗机器学习等方向。在阿里8年多时间里,开发过阿里云-飞天分布式操做系统、大数据处理平台MaxCompute以及人工智能平台PAI,作过广告、推荐、搜索等CTR预估方面的工做,目前聚焦在将智能技术更好应用在用户增加、风险智能等核心场景上。