中生代技术
链接技术大咖,分享技术干货
全文:6000字
随着互联网技术发展,人们对于隐私保护的要求不断提升,世界各国纷纷都出台法律法规保护人们的隐私。前段时间我国发布了《民法典》,明确了个人隐私权和信息保护的办法。而这对于数据时代的技术提出了更高要求。
本月初,蚂蚁资深算法专家周俊在2020年AI开发者大会上,分享了支付宝如何利用共享智能技术保护数据安全与用户隐私,我们将内容整理分享给大家。
背景介绍
在金融服务当中,核心三要素是场景、数据和智能化,在场景里面有大量微贷、保险、支付、财富等等相应金融场景,由于海量用户跟场景有大量的交互,所以会形成大量的数据。
在金融场景里处理海量数据里面临几项大挑战:
第一是对时间敏感,用户随着时间在金融场景下的兴趣会发生比较大的变化。
第二由于交互量很大,所以会沉淀下来非常多的数据,并且数据跟传统电商不太一样,由于金融业务多样化,有支付、保险各式各样的服务,带来数据本身也有很大多样性。并且金融场景是互相联系的,要想解决保险、支付、微贷等问题,必须站在更高角度,给出系统性的解法。
最后是安全和隐私,安全跟隐私是整个金融服务迈向智能时代最关键核心的技术,有了对安全和数据隐私理解之后,才能够给大家提供更好金融智能服务,才能将普惠金融服务更多的人。
当前,各家企业与机构都积累了大量的数据,但是由于政策与技术的原因,数据无法打通,形成了一个个的数据孤岛。打造开放平台、共享数据、创造更大价值成为了很多互联网企业的一个迫切的需求。但是,开放平台的建立需要解决以下几个难点:
第一,数据共享在引入巨大价值的同时,也存在泄露的风险。比如说国外社交网络巨头5000万用户数据隐私泄露事件,告诉我们如果数据共享链路不安全,会带来巨大的风险。
第二,公众和政府对隐私保护和数据安全重视程度越来越高,所以欧盟GDPR法律正式实施之后,有很多国家纷纷效仿,立法保护大家的隐私。
第三,对于整个金融科技行业而言,怎么样设计满足安全、隐私和新监管要求下的模式,是摆在所有科技行业从业者面前一道难题。
作为一个科技公司,我们迫切希望能有相应的技术承担社会责任,能够给到用户更好、更安全的隐私保护技术,从而给用户提供更好的服务。
从技术角度来抽象我们遇到的问题,则是:如何让各自拥有数据的双方或多方机构,在不泄露数据隐私的前提下,进行数据融合建模?
在建模里主要有两个大场景,一是水平切分,多个数据方之间特征空间是一样的,每个数据方持有不同的数据。二是垂直切分,数据方持有不同特征空间,每一小块都是完整的多维空间。水平切分主要出现在面向C端用户的场景和一些图像、语音数据的场景,而金融机构之间的合作,则往往以垂直切分为主。
怎么样达到水平切分和垂直切分情况下构建安全保护隐私联合建模方案呢?我们希望达到三个目标,第一隐私数据不能出域,第二模型隐私不能泄漏,第三中间交互信息不能反推隐私信息。
这里面临很大挑战,首先隐私保护机器学习是交叉学科,它面临着又要懂机器学习、密码学,还要对工程系统有更好理解才能打造够工业界的系统。第二,这对工业界来说属于比较前沿的方向,可借鉴的工业级方案非常少。第三,对于工业界追求安全和效率有一个平衡,这样才能更好处理海量用户和海量数据。
蚂蚁共享智能主要技术
我们提出的方案是共享智能隐私保护解决方案,它需要解决问题是多个参与方,并且每个参与方跟数据方不是信任情况下,能够聚合多方信息进行数据分析和机器学习等AI运算,并且能够确保各个参与方之间隐私不能泄漏、数据不能滥用。涉及主要技术包括可信执行环境、安全多方计算、差分隐私等技术。
接下来看一下技术主要涉及一些技术点,首先是差分隐私,差分隐私这个技术提出来时间不短了。顾名思义,差分隐私主要是用来防范差分攻击,即攻击者对数据库进行多次略有差异的查询来推测出原始数据的信息。差分隐私的目标,就是让攻击者在相似数据库上的查询结果难以区分。那么最常用的方法,就是对结果添加噪音。噪音的强度,可以通过需要隐私保护的级别计算得到。隐私保护级别越高,添加的噪音就越大,对结果的扰动就越大。
差分隐私可以有效地保护计算结果的隐私,但是对于多方联合计算过程中的隐私保护,还需要用其他的技术。
共享智能第二项技术是可信执行环境,它是基于硬件的解决方案,主要解决两个大的问题,一个是内存窥探和软件篡改问题,通过内存中开辟加密空间,称为飞地(Enclave)保护来自虚拟机、操作系统和恶意程序的攻击。其次为了确保软件篡改涉及远程认证RA机制,确保在这里执行程序是经过用户认证和授权的程序,通过密码箱飞地的设计,可以在这里完成大量的保护隐私计算。
第三项是多方安全计算技术,包括秘密分享、同态加密和混淆电路。用的比较多的有两个,一个是秘密分享,秘密分享通过原始数据随机拆分,得到密态数据之后,多方协同密态下面进行计算,之后得到相应计算结果,整个优势是计算复杂度比较小,因为有大量密态数据交互,所以网络通讯比较大,同时需要多个参与方参与。
第二同态加密,在密态下面对密态数据进行加密,在密态下面进行计算得到结果,跟明文下得到结果是一样的,通过这样一个原理来实现密态下计算得到相应结果,相对来说计算复杂度要大,因为加减密计算复杂度是非常高的,但是网络通讯相对比较少,因为中间只需要单次通讯就OK了。
这两个技术中间有很强的安全性和封闭性,安全性是这里没有任何信息泄漏,可以很好进行复合运算。
共享智能实施架构概述
介绍完前面背景信息和主要技术之后,我们看一下共享智能怎么实施,怎么用技术解决前面提到的核心问题。
基于TEE的共享智能
首先是基于TEE共享智能,首先利用SGX搭建分布式的TEE可信计算环境,里面有相应计算模块和认证模块,各个参与方之间相应的数据密文传到可信计算环境中完成分布式的计算。
这里面有几个关键技术点,怎么样搭建出来可信异构计算集群,第二怎么在可信计算环境实现各式各样机器学习的框架,从而达到实现机器学习的完整工作流。它的优势是集中式部署,所以部署计算效率相对比较高,第二安全性比较高,即使集群里存在恶意的服务器也有比较好的防护能力,并且支持所有算法,这是TEE共享智能的优势。
如何搭建TEE可信集群呢?我们的目标是对普通用户提供和单机一样的可信执行环境,通过原来方式进行管理,将数据通过认证方式传到可信执行环境进行相应计算。里面有几个点,一是密钥同步中心,通过密钥同步中心用户只需要和同步中心做认证,由同步中心完成集群中其他节点的认证,而不需要用户自己与集群中所有节点做认证。第二,Kubernetes云原生技术,可以很好的实现负载均衡、故障转移的机制,使得可信执行环境本身具备负载均衡,动态扩缩容特性,从而更好支持复杂计算和大数据计算能力,有了复杂计算和大数据计算能力,从而更好实现各式各样分布式AI计算能力。
有了可信计算环境之后,我们看一下怎么实现大规模分布式XGB的算法。在上图中,首先数据提供方通过两个飞地将数据传到可信计算集群里,在集群里对XGB进行了相应的改造,一是所以模型训练的计算都在飞地中完成,保证计算时数据安全;第二飞地之间的通讯通过TLS进行加密,保证了通信的安全;第三对飞地中的内存访问做了Oblivious加固,以防御侧信道攻击。通过这样方式得到分布式XGB模型,在模型发布的时候同样通过权限控制方式,使模型发布也是安全的。
所以从数据提供到训练最后到模型发布,整个端到端的过程都是高安全的。我们通过构造了分布式可信质量空间跟算法进行加固之后,使得大规模数据在这样一个框架里可以实现多种机器学习算法,比如神经网络等方法都可以,同时因为中间每一步都进行了安全加固,所以整个过程是安全可信的。
基于MPC的共享智能
第二是基于MPC的共享智能技术,它主要通过多个协作方之间传递随机数和加密数的方式完成神经网络或者模型构建,所有模型本身都是加密,在密态计算空间完成计算,主要会涉及秘密分享、同态加密和混淆电路等技术。
这里关键技术是密态存储和计算,并且确保这些机器学习算法的安全性,不会泄露信息,在确保安全性之后高效实现大规模深度学习算法。它的优势是数据不需要出域,安全性非常高,这里由于算法复杂度比较高,对于加密函数的性能消耗是非常高的,部分实现难度也很大,因为party A和party B都需要进行部署,降低部署成本也是需要解决的问题。
为了解决这个问题,我们搭出了这样一个架构。主要分了这么几层,最底层是密码学的原语,通过秘密分享、同态加密、混淆电路密码学的原语,同时对底下密码学原语进行了工程效率优化,使得原语本身有更高的效率。基于密码学原理之上,测算出来像矩阵加法、矩阵乘法、数值比较、安全求交的安全算子层,在这之上通过DSL的分装提供了类似Python语言给算法层实现类似于线性模型、树模型、深度模型和图神经网络先进模型,从而更好利用底下三层能力,实现安全版本保护的隐私学习。
我们来看一个具体神经网络的例子,业界在这个问题上主要有两种做法。一种称为安全神经网络,这种方法把训练数据转成密态存储,所有的训练过程都由密态完成,这个方法当然很安全,但是计算效率非常低,不具实用性。另一种方法称为拆分学习,这个方法是数据提供方基于自己的数据单独训练几层网络,之后集中到一个中心化节点上做后续网络的联合训练,这个方法虽然效率高,但是由于浅层网络由数据提供方自己训练,无法联通全局数据,所以在模型效果上大打折扣。
我们提出的基于共享智能的神经网络学习框架方案能够更好保护隐私,并且效率也比较高,在安全、效率、效果之间取得比较好的折中。
具体方式是,数据拥有方之间通过多方计算能够更安全计算出一个中间结果,对这个中间结果能够比较好实现特征之间交互,有了特征之间交互放到一个服务器上,进行隐层相关计算。
我们提出了基于对抗学习的防御机制。该防御机制目的是让数据拥有者自己训练一个防御者模型,目的是模拟攻击者的行为,即尽可能的训练一个模型用于恢复出各自的输入,如上图所示。基于这个框架能搭出DNN、CNN、RNN、GNN等深度学习的模型,并且也有多篇高质量顶会论文产出,有了这个框架之后能够更好实现隐私保护神经网络。
前面讲了MPC下共享智能主要依赖于混合协议密态计算,怎么设计出来更高效的混合协议密态计算呢?这是我们设计出来相应密态计算协议框架,相对已经有框架如ABY框架,一是比较灵活,可以在同态加密和秘密分享之下进行相应转换。第二比较高效,提供DSL的语言提高开发效率,自动进行转换,不需要关注在哪个协议进行转换,这样算法开发同学可以很好屏蔽密态计算特性。第三,给出算法分析和证明,有了这样一个设计之后能够很好支持各式各样机器学习的算法。
介绍完共享智能技术架构进展后,下面来介绍一下共享智能在技术影响力方面的一些进展。
首先是专利方面,今年5月份第三方机构发布全球新兴隐私技术发明专利数量,可以看到阿里巴巴加上支付宝有419个专利,共享智能团队贡献了其中的165个。同时,这两年共享智能受到中国计算机协会、世界人工智能大会等专业机构、权威学术团队和科研机构的认可,在国际标准和联盟标准,以及国家层面取得相关认证,让技术更好地在行业落地。
共享智能落地案例探讨
在过去几年,共享智能在多个实际项目中得到应用。在共享智能业务落地的用户关注点方面,比较TEE和MPC的训练和预测方案,可以看到它们各有优劣。在用户感受到的安全感方面,MPC方面数据不用出域,安全感更强,但在成本、性能和功能方面,TEE方案的表现要比MPC方案更好。
在我们的实践过程中发现,TEE和MPC在同一个项目中可以做一些结合。比如用TEE训练接MPC预测,可以降低前期评估成本;用TEE为MPC加速,可以提升MPC的性能;甚至我们还可以把MPC协议放到TEE里执行,可以进一步的提升安全等级。通过选择不同方案,可以给用户提供更安全,成本更低,性能跟效果更好的隐私计算方案。
在具体案例方面,首先介绍一下共享智能×中和农信案例。中和农信是中国农村做普惠金融最大机构之一,主要服务比较偏远山区的农民,大部分农民以前没有享受过金融服务,我们通过中和农信希望能够让它服务更多偏远山区农民。
原来传统方法是让信贷员通过线下信贷走访方式,去收集信息,然后去判定这个用户是不是应该享受这个服务,这种方式人力成本高、速度比较慢,一个用户大概需要花一个多月时间才能看能不能得到服务,同时可拓展范围比较有限。
通过共享智能的技术,能够让金融服务从原来一个月降到5分钟,同时违约率大幅下降,使更多农民在家里就能够更好享受普惠金融农村服务。
第二个案例,是江苏银行使用MPC共享智能聚合双方信息,提供更好联合模型改进模型的性能,使得合作方能够更精准判定给予更好的决策结果。
第三个案例是联合风控,将蚂蚁安全能力通过共享智能分享到外界,能够将风控模型量化策略和实时计算能力通过跟外部机构进行共建模型、共建枢纽、共同决策的方式,提高风险管控的效率,在反欺诈、虚假交易、团伙作案打击上面提供更有效的方式,使得生态伙伴能够有更强的能力。通过共享智能联合风控方式使得双方平均交易额,每可以新增1500万以上,并且整个风险防控性能准确率提升30%以上,月均资损率降低90%,通过这样技术方案将蚂蚁安全能力提供给全社会、整个行业,让整个行业更好利用蚂蚁安全能力构造更安全、更加好的服务。
共享智能未来展望
对于共享智能的未来,我们的愿景是,让共享智能成为未来数据共享的基础设施。
我们希望能搭建出来一张数据或者信息网络,通过多方安全计算、差分隐私、可信执行环境的技术,能够比较好将各式各样数据商、保险商、传统金融机构等,还有政府机构等各式各样的数据连通起来,能够更好保护隐私和数据安全,同时将数据联合起来获得更好的智能化效果。
有了数据网络之后,在这基础之上提供几个大核心能力。一是共享分析BI能力,我们知道AI预测之前,需要做数据处理、数据分析、自动建模等等相关操作,我们希望这样操作能够含在共享分析技术里面,通过安全版本生命周期,提供给数据分析方,让他们在不感知比较复杂密态隐私技术情况下,能够很好进行共享分析。有了BI能力之后,能够更好构建模型,不怎么损失模型精度,同时能更进一步提升模型速度。我们希望通过密码学、工程系统的研究以及算法优化,能够使得整个过程中AI能力能够更强,更友好高效提供给外部合作方。同时在信息融合方面,我们希望能共建共享图谱,将用户积累下来经验、知识沉淀下来,产生更高效、更准确、更能保护隐私的知识图谱。
通过共享平台,我们可以更好服务业务。包括今天已经在做的联合风控、联合营销、联合政务、联合医疗等。能够解决社会民生中的一些核心棘手问题。
在技术侧,我们希望通过DSL+编译器,能够让算法同学研发更加高效,让很多AI算法通过DSL和编译器直接转成安全版本的AI技术,使得开发效率进一步提升。在接入成本上面,我们希望通过更好产品化,统一化运维部署,降低成本,让整个产品迭代更快、运维成本更低、一键部署能力更强。计算能力上面,希望在算法、工程、协议三者协同优化,使系统的计算方面有进一步的提升,使能力更完备,我们希望让隐私计算AI能力跟明文计算AI能力一样,甚至做得更好。
业务侧我们希望跟更多机构合作立下标杆,并且建立共享智能技术联盟,能够更好的应用和分享共享智能技术,同时期望能够收到更多反馈,形成正向循环,从而推动相应标准的建设。同时在规模层面,和相关机构进一步合作,扩大技术应用规模,实现共享智能成为未来数据共享的基础设施。
- END -
推荐阅读
阿里巴巴闲鱼架构负责人王树彬:万亿交易规模技术架构实践2020-09-05
58转转技术总监骆俊武:监控系统选型?必读本篇!2020-09-04
蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径2020-09-03
平安银行吴建峰:RocketMQ 在银行的应用和实践2020-09-01
阿里高级技术专家张建飞:应用架构分离业务逻辑和技术细节之道2020-08-31
知道创宇总监姚昌林:敏捷开发-如何打破研发交付过程中的“墙”2020-08-28
天弘基金首席架构师李鑫:微服务接口限流的算法及架构实现2020-08-25
阿里高级技术专家邱小侠:微服务架构的理论基础 - 康威定律2020-05-09
阿里技术专家三画:如何画出一张合格的技术架构图?2020-03-16
阿里高级技术专家箫逸:如何画好一张架构图? 2020-09-07
END
#接力技术,链接价值#
点分享点点赞点在看