十年前提起金融科技,人们多半在谈金融信息化建设,世界还没有互联网金融和人工智能应用的姓名。如今,我们立在2020这个山头前后张望,会惊觉变革无时无刻不在各个维度发起,林海翻涛,遍地生辉。为技术创新冲在最前线者有之,为规模化应用落地奋斗者亦有之;传统的金融业务场景和流程被拆解成更细的颗粒,逐步数字化、智能化翻新;解决方案的整体化、平台化特性也逐渐彰显。我们试图从这些维度出发,找出金融科技下一个十年的「先锋阵列」。还有人在争辩谁是前浪后浪,而最敏锐的航海者已经分清潮水的方向。互金巨头的科技赋能「脚本」互金企业集体转型升级,改造传统信贷流程,告别粗放式经营,选择强调自己的科技赋能角色,是过去数年里最受关注的金融科技趋势之一。在今年企业们披露的年报数据中我们可以看见,这样的转型之举已经初有成效。首次将科技收入独立出来的360金融,可以说是行业代表之一。在2019年报里,360金融将收入调整为传统收入和科技收入两部分,以反映公司加码科技的战略决心,以及更加全面真实地反映公司科技转型的业务形态。2019年,360金融传统收入为人民币80.13亿元,科技收入则为12.06亿元,增速高达336%,这一数字在2018年为228%。科技服务占比稳步上升,由年初的0.8%跃升到年底的22%。在电话会议上,CEO吴海生宣布,预计到2020年底,在新增业务中,科技驱动业务量占比将提高到30-50%。360金融对科技业务的总结陈词,某种程度上也概括了互金企业们的转型意图:当金融周期真正到来,传统业务将面临利润大幅缩水的风险;相比之下,科技业务赚取的是智能获客、智能风控这样的技术服务费,虽然在短期牺牲了一定的利润,但由于不承担金融风险,业务稳健性将会加强。具体到业务环节,几组数据或许更能说明这家企业的科技投入效果:截至2019年12月31日,360金融累计注册用户1.35亿,较2018年底增长71.3%;授信用户2472万,同比增长97.1%;在360金融的帮助下获得贷款的用户达到1591万,较2018年增长92.1%。摩根士丹利在报告中指出,运营效率应当兼顾借款用户的数量及质量。在2018年2季度至2019年3季度之间,360金融每季获取新客户超过150万人,远高于同业上市公司。中金公司的报告则表示,2019年,360金融拳头产品360借条的月均MAU达1511万人,月均DAU为165万人,两项排名都位列同类公司之首。逾期率方面,截至2019年12月31日,360金融的M3+逾期率为1.5%。从用户增速和质量不难看出,360金融在获客运营方面颇有心得。该公司表示,这得益于贯穿业务全流程的人工智能技术的应用,例如借助全自动化算法智能投放,利用实时数据和用户全生命周期标签实现智能运营。另外,贷后环节中,智能机器人自动完成+AI机器人的大量应用,极大提高了面向海量用户的服务效率和质量,提升了客户黏性。360金融透露称,其78%的催收工作、77%的电话营销工作、91%的客户服务工作都由相应的机器人完成,即便由人工完成的部分也实现了AI质检机器人的100%覆盖检查。运营的多个环节自主研发了近百款机器人,申请了近四百项发明专利。值得一提的是,360金融在2019年12月上线智信引擎业务,通过数据智能技术构筑生态圈。该业务一方面连接优质和分散的互联网流量场景平台,拓展多元流量变现通道。拍拍贷母公司信也科技,同样是值得注意的典型案例。在科技领域更上一层楼的决心,不只体现在名字的更改上。根据最新财报数据,2020年一季度,信也科技的研发费用为8760万元,这一数字在上一季度(2019Q4)为9310万元。截至2020年5月20日,信也科技共登记软件著作权139项,另有已授权及申请中的专利130项。信也科技称,对业务全流程的精细化运营以及技术微创新是后续科技投入的重点。针对日常流量投放存在的数据分离、批量投放困难、无法实时监控和预警等痛点,信也科技也自主研发了章鱼流量管理平台,其能够通过定位实时数据链路、效果评估、决策优化引擎、智能投放平台,实现媒体渠道精准触达目标客户群体,挖掘潜在用户。解决方案的平台化「历练」在金融科技的下一个十年里,可以预见的是,技术服务商们的产品会更注重整体化、平台化,不再是普通的单点输出。生物识别在金融领域的应用进程,就是由点到线及面,如今正在形成覆盖多渠道、多场景、多模态识别融合的平台解决方案。随着金融业务线上化的蓬勃发展,用户授权环节身份确认的方式日益多样化,涉及的业务场景也不仅是开户、支付。每个业务系统“各自为政”建立独立的身份识别方式,不仅会造成资源浪费,也为后期数据管理、同步维护等方面增加了难度。将多种不同生物识别认证方式集成到一个统一平台中,实现系统间数据整合、资源共享,对于认证效率和系统安全性来说至关重要。身份认证作为金融业务的第一道风控关卡,对技术服务商的综合素质要求不亚于「特种兵」:既要有对不同生物特征的优秀识别能力,又要对金融不同场景逻辑和痛点理解透彻,有强大的数据处理分析能力,以及服务本身足够灵活高效。作为最早一批将生物识别技术引入到银行内部强安全认证业务中的企业,眼神科技是业内率先推动多模态融合,并将多模态融合识别做到平台级的排头兵,拿下了金融行业超过80%的客户。眼神科技打造的ABIS多模态生物识别统一平台,建立在其人脸、虹膜、指纹、指静脉及多模态生物识别融合算法基础上,通过轻量化、高效扩展的微服务架构和丰富标准的服务接口,实现一站式的识别认证服务、统一的数据管理服务及智慧化的运维服务,可以做到按需灵活组合、快速扩展。对金融机构而言,KYC不会只是“认识你的客户”这样简单,要将金融服务上升到“懂得你的客户”层面,而金融科技公司正是这关键一跃的「主演」。眼神科技的这一平台也通过与银行大数据平台的融合,高效、稳定地为客户提供数据分析与识别能力,帮助各大银行为客户提供智能化、个性化的服务体验,增强海量客户数据的风险防控能力,助力银行步入生物识别大数据客户营销时代。目前,眼神科技的ABIS多模态生物识别统一平台在金融行业多场景中已得到广泛应用,包含互联网渠道、柜面业务、自助银行、智慧网点等,在确保客户信息和账户安全的同时,打造优越的客户体验。交通银行、邮储银行、民生银行、华夏银行、渤海银行和数家省级农信社等众多金融机构均已引入。此外,眼神科技也将多模态生物识别融合技术赋能金融以外的更多场景,如学校、社区、政府、公安等,实现了行业合作的深度融合。谁能率先实现数据安全和隐私保护的最高目标?去年下半年的大数据行业震荡,和本月《数据安全法》的正式出台,无一不指向同一个技术趋势:实现数据可用不可见,保证数据安全和隐私保护。在监管更严格、业务更敏感的金融行业,数据的安全有序使用自然被调到了更高的优先级。能够在这一方面上率先获得实质性进展的金融科技企业,自然也有望引领行业趋势。重新审视数据的获取、共享,到使用和加工,链条的每一环都有不小的漏洞,学术界相继出现了安全多方计算、可信执行环境、隐私计算、联邦学习、共享智能等解决路线,在数据控制、处理或实现方式上各有不同。联邦学习这一研究分支,正是在微众银行首席人工智能官杨强教授团队和其领导的IEEE联邦学习标准制定委员会的推动下,成为当今全球人工智能产学两界最受关注的领域之一。从简单定义来讲,联邦学习是在本地,把本地数据建模,模型的关键参数加密,数据加密传到云端也无法解密。云端用算法将数据包们加以聚合,来更新现有模型,模型更新后下传。重要的是,整个过程中,云端服务器不知道每个数据包里的内容。这种多个参与方(如移动设备或整个组织)协作式地训练模型的机器学习方法,将不再需要将分散的训练数据搜集到一起,数据不出本地的特性让数据使用全过程都变得更为安全可靠。在杨强教授带领下开展联邦学习研究的微众银行,内部已投入百余人,打造了一个覆盖技术上下游的联邦学习团队,包含研究、学术、研发、商业、行业应用等多个细分队伍。他们已申请100+项相关专利,牵头推进IEEE联邦学习国际标准与联邦学习国家标准制定。2019年2月,微众银行开源了联邦学习框架FATE,这也是全球首个工业级联邦学习开源框架,能够解决包括计算架构可并行、信息交互可审计、接口清晰可扩展在内的三个工业应用常见问题。它给开发者提供了实现联邦学习算法和系统的范本,大部分传统算法都可以经过一定改造适配到联邦学习框架中来,用户体验上和传统建模差异较小。微众AI团队也发起了「联邦学习生态」(FedAI Ecosystem),在确保数据安全及用户隐私的前提下,建立基于联邦学习的 AI 技术生态,使得各行业更充分发挥数据价值,推动垂直领域案例落地。目前微众已将联邦学习用于金融领域,通过合法合规的多维度联邦数据建模,小微企业风控模型效果约可提升12%,相关企业机构有效节约了信贷审核成本,整体成本预计下降5%-10%,并因数据样本量的提升和丰富,风控能力进一步增强。在微众看来,联邦学习不仅具有加速AI创新发展、保障隐私信息和数据安全的公共价值;从商业层面上看,联邦系统更是一个“共同富裕”的策略,能带动跨领域的企业级数据合作,催生基于联合建模的新业态和模式。
对百度来说,联邦学习+金融会产生怎样的火花?此次课程,他将分享基于联邦学习技术的百度金融安全计算平台(度信)建设与实际应用,讲述如何借力安全技术架构、脱敏方法和合规制度设计,在“用户充分授权、数据来源合法合规”前提下,打破数据孤岛,实现多方数据加密融合建模,助力金融企业业务的开展。以下为谢国斌演讲全文内容,AI金融评论做了不改变原意的编辑:百度智能云的数据孤岛破解之道我们在跟很多的金融客户进行沟通的时候,他们普遍面临的痛点,就是数据孤岛和隐私保护的问题。目前的现状是,一方面要保护客户的隐私,另外一方面,数据孤岛在不同的程度上存在着,去年央行发布的金融科技三年发展规划里,也强调了要“消除信息的壁垒;数据融合。”今年4月,国务院也在《关于构建更加完善的要素市场化配置体制机制的意见》里,强调了数据的共享、数据资源的整合和安全保护。所以,“数据孤岛”和“隐私保护”两者的困境,在业内一直是个难题。行业里做这块技术的公司,一般有如下路径在积极探索:其中一种就是联邦学习;还有与之接近的,就是在做参数交换、梯度交换的时候,会用到的多方安全计算。另一种以硬件加密为主,可信计算(TEE),在内存里做安全加密。以及基于云安全,做安全隔离域的方法。基于刚才说到的痛点,百度推出了度信金融安全计算平台,做数据融合,前提是强调用户要充分授权,数据来源要合法、合规。也提出了联合建模产品,拒绝数据孤岛的存在,产品对上面几种路径都是支持的。今天的要点,主要是分享在联邦学习和多方安全计算技术路径上,我们所做的尝试和产品的研发。我们的金融安全计算平台有以下特点:平台主要服务于金融行业to B客户,会考虑行业里特别关注的一些场景,比如营销、风控、投研、反欺诈。我们基于金融的建模,有一些专用的功能点增强。从安全特性上,无论硬件软件,有多种的方式进行技术加固。金融云专区上,我们通过了国家的四级等级保护;数据流通方面,我们今年通过了信通院的相关技术测评。从计算建模层面看,我们是自主操作,甲方乙方各自操作,全程免编码,流程很简单,性能比同类的算法也要快。私有云、公有云和私有化方面,我们有多种方式部署,产品目前也能提供工业级的使用体验,包括严格的工程封装、项目的验证实测,还有百度沉淀的金融行业案例、提供金融行业的场景的解决方案。度信金融安全计算平台的技术方案我们这个平台建设,刚才提到用三大类技术方案,统一前端入口和统一后台架构。后台的架构,从下往上看,分为执行层、应用层、操作层、场景层。从执行层看,中间是基于多方计算的联邦学习引擎,引擎最下面是基于加密的密码学算法和一些常用的不经意传输、同态加密、密钥分享等。往上是基于密码学算法的多方安全计算,双方或多方的加密数据的协调和交换,隐私的PSI对齐、ID化、联邦分析和联邦学习。再往上是应用层一些基于模型的算法的应用,这个是标准的机器学习建模流程。操作层有可视化的操作平台和4A安全赋能金融行业,打造营销风控端对端的场景化建模功能。我们的平台架构,需要满足三个不同的客户需求:定制化方案要满足客户不同的安全等级要求;有客户对建模要求较高,那对算子、算法、模型多样性、交互和应用性方面要求就高一些,我们也会提供类似的解决方案。还有对不同的资源配置,构建私有云、公有云和专有云支撑,支持不同的部署方案。这个平台的操作很简单,就是三个步骤。先是合作的AB双方,完成本地数据的上传。原则上都是上传到自己的IDC机房里,数据不出域。第二步细分为几个小步骤:1.数据的融合,会通过隐私保护的求交技术PSI,达到双方的数据的可用不可见。强调一下,融合不会泄露双方的数据隐私,比如说甲方有一亿的客户,B方有5000万的客户,双方去求交集,求出来只有500万客户,那么我们只知道这500万的交集,剩下的客户群双方都是不知道的。即使求交了这500万的客户,我们也只有某一个主要的使用方,比如甲方银行在使用的时候,才知道这500万相互求交的客户号码是什么。2.求交的这批客户,我们会进行简单的特征工程,一些算法模型训练,包括像机器学习的逻辑回归、GBDT等,也按照这个数据拆分,做完模型训练、输出模型报告以后,进行模式部署、模型推理和预测发布。第一步上传样本比较简单,把数据上传以后,摁一个按键,就会看到这一横行里数据的上传成功,然后AB双方在这个地方点鼠标发布,数据才传到本地的服务器上面。第二步模型训练,会自动包含刚才说的样本对齐,包括可选的特征工程,还有算法参数、算法选择等。在模型训练过程中,等它出来一个结果,就会有一些像我这里截屏的模型,配置基本信息,比如双方对齐了多少样本,有哪一些特征?这里只能看到特征名称。我们算法所涉及的每一个主要参数是什么样的。这里以逻辑式回归为例,生成模型评估报告,像ROC、KS值等等,就完成整个模型训练。第三步就是模型预测,需要在页面新建预测任务名称,包括描述,还有我们选择哪个预测的模型。生成的模型在这里做选择,再选择要预测的数据集,点蓝色按钮完成整个模型预测过程。一定时间后,就会看到右下角预测成功的显示,整个模型的离线预测就完成了,也可以用新建预测服务以API的方式供外调用。我们平台的设计理念,是全程免编码,通过鼠标的拖拽来完成的。度信平台在银行业、保险业的应用银行信贷产品的互联网营销这家银行开展信贷业务时,需要通过互联网去线上获客,但它并没有这种线上资源或流量去投放,也没有相关风险管理经验,于是它就跟某家互联网公司进行渠道上的联合建模,实现精准获客和控制风险。首先是银行把他的数据和互联网合作方,把数据在自己的机房里边准备好,然后各自联邦学习时,上传梯度参数。在互联网渠道这一端,主要是上传数据,建模发生在银行这端自行操作,就完成了整个建模过程,达到了数据模型建设,完成后确定合适人群。第三步,精准广告投放,包括精准获客,这部分我们项目的客户日均调用量是50万笔。整体贷后表现非常好,降低了风险,也节约了这家银行的成本。线上风控+联邦学习因为银行没有过往的一些互联网行为信息,也需要为此通过互联网渠道来合作、来进行联合建模。联邦学习最后的效果就是,让申请率提升了,通过率又稳定在一定的范围内,不良率低于银行业同业平均水平。这个案例,我们推送的贷款客户金额是超过千万;通过率控制在稳定范围;该案例的不良贷款率是0.38 ,比去年银行业1.81的不良率低了不少。不同险种交叉营销这个案例是一家车险公司的业务,在客户里筛选健康险的意向用户,进行精准点对点促销。建模流程与上个案例类似,由保险公司提供的高响应人群样本和互联网公司的数据进行融合训练,最后结果运用于全量的车险客户群。效果上,这个模型的AUC值达到了0.76,减少了对客户的打扰,也降低了营销的成本。联邦学习落地金融的关键技术点联邦学习本质上是软件加密技术,数据不出域、不出本企业,主要是通过梯度参数出域。从本质上来说是去中心化的方案。横向联邦由谷歌在2016年的时候研发出来,即数据的水平切分,主要用于金融同业间的数据融合。横向联邦学习的计算步骤主要有四:双方发送加密的梯度,安全的聚合,发送聚合的加密梯度参数,再解密梯度更新模型。纵向联邦学习基于数据的垂直细分,主要用于金融业和非金融行业,特别是像一家银行和一家互联网公司的数据融合。两家公司的客户群很多时候是重叠的,特征互补。首先有分发公钥,加密交换中间的结果,再进行加密梯度和损失的计算,然后更新模型。在和金融企业沟通的时候,我们发现他们关注的点有这些:整个联邦学习里,金融企业运用最多的是纵向联邦学习,金融机构更想看到的是和他非同业之间的数据融合。银行在和第三方机构合作时,非常强调这些数据进来以后,对指标的一些增量贡献,在意的是在现有基础上的提升。如果在现有基础上,引入的数据源没有很大幅度的提升、效果不明显,对金融机构的吸引力就会降低。同时金融机构也强调数据源的差异化,如果数据来源都很类似,那对指标的贡献、对模型效果,提升度不是很大。联邦学习是整个框架里的主要技术。另外,多方安全计算所涉及的加密技术,其主要原理如图左所示,四个参与方在针对任何一方都没有可信的情况下,安全地进行多方协同计算。在一个分布式的网络中,多个的参与实体各自持有秘密的输入,完成对某函数的计算;但是要求每一个参与实体,除了计算的最终结果以外,其他的中间过程,包括自己其他客户的原始数据,任何的输入数据都是不可以看到、都是不可以获得的,这保证了参与各方的数据的安全性。在安全计算过程中,所用到的一些密码学或加密技术,概括起来有这么七种。混淆电路,来自于物理学电路原理:一堆人各自拥有隐私数据,想把数据合起来进行计算,但又不想把数据交换给别人,典型的案例就是百万富翁问题。不经意传输,服务的某一个接收方,以不经意的方式得到服务的发送方输入的一些信息、信号,这样就可以保护接受者的隐私不被发送者所知道。秘密的比较协议,计算的双方各输入一个数值,但是他们又希望在不向对方泄露自己的数据的前提下,比较出这两个数的大小。同态加密,用这种方法先计算,后解密,也等价于先解密后计算。同态加密里也有加法同态、乘法同态,包括全同态、偏同态、半同态等,它在联邦学习中应用也较多。秘密分享,将秘密分割存储,多个参与者要相互协作才能恢复秘密的消息,如果有一方没有参与,是没有办法把这个秘密完全恢复出来的。零知识证明,证明者能够在不向验证者提供任何有用的信息情况下,使验证者相信某个论断是正确的。差分隐私,这在业界应用也比较多。百度在多方安全计算方面,有自己的MPC平台架构。我们的平台架构分为这么六层,从基础到应用,有运行环境基于DOCKER的,还有基于云和SERVER的。在基础的运行环境往上,有刚才说到的六七种加密算法。再往上是整个系统包括TLS、4A这一块的安全。再往上是系统平台层,有用户角色管理,包括数据和分布式调度、监控等。再往上看是数据的接入,再到数据的应用。下面我会重点介绍三类算法,都是百度自研的。第一种是逻辑回归,逻辑回归是常用的二分类的分类器,在这种分类器上面我们加了一个基于PrivC的加密算法的逻辑回归,这种算法是基于MPC的安全学习。我们在19年的安全顶会上面发表了关于这个算法的文章,特点是训练速度和在公开的服务器上的明文相比,速度大概会是在明文算法的40倍以内,也就是明文算法假如要用时1分钟,那么我们要用时40分钟。这里有一个案例,就是我们基于深度MNIST公开数据集,6万行784位的运算,我们用时25秒,时间还是比较快的。在下面的截图,我们看到一些Table2,在一些加减还有一些常规的比较上面,基于我们自研的PrivC的算法和公开的其他的一些加密算法,像ABY、EMP、SPDZ等等,我们的运算速度都比他们快,标出的黑色数值是越小越好。我们的准确率和明文算法比,会达到99%左右,比明文算法低一点点,一般的梯度,有时候建模如果控制得不太好,都会有一些模型的损耗,而我们的损耗是比较少的。第二种算法,就是基于梯度提升的算法,有GBDT、XGBoost,再快一点的有LightGBM,我们这种算法叫SecureGBM,它是在LightGBM级别的基础上改造而成的。基于 LightGBM基础上改造而成的这种算法,我们也是发表在19年的IEEE国际大数据会议上,大家看到左下角有一个截图,红色的框是百度自研的叫SecureGBM,蓝色的框,LightGBM-(A,B)就是明文算法,我们算法最后的结果和同类的最好的明文算法去比,在没有用任何加密的和普通的建模相同的条件下,AUC值的差距大概是在3%以内。我们也比较了其他的一些明文算法,在这个图里边是-A或者-B,它是用了一些加密的联邦的一些算法去比AUC值,我们的算法都是比其它的算法会高一些,但我们会比明文的算法大概低三个AUC值,在3%以内。第二个是它的运算速度,从这个截图看到,对比了16,000个样本,我们的算法和明文算法去比的话,我们的速度大概是明文算法的6倍,也就是明文算法如果用一分钟的话,我们会用六分钟,这个已经是非常好的效果了。这个地方我们也提到,我们现在用的这个Paper里边是16,000个样本,如果样本增加到10万个,或者再往上增加,我们这个算法的运算效率会更高。那么我们SecureGBM和明文算法的LightGBM,双方数据在一起,比较了在训练集上的AUC值和F1值,大家会看到有一条红线和一条蓝线,在截图里面红线和蓝线绝大多数时候是靠在一起的,走势是相同的,非常的接近。说明我们的这个算法和明文的LightGBM的算法,在AUC值、在F1、在训练集上和测试集上,达到了非常类似的一个效果。第三种算法基于深度学习,PaddleFL,是在我们百度自研的一个开源的深度学习框架飞桨的基础上,研发出来的开源的联邦学习框架。下面是开源框架的github的网址,通过PaddleFL,使用人员可以很轻松的去复制和比较不同的联邦学习算法,也可以在分布式的大规模集群里面去使用。这种PaddleFL主要用在深度学习算法里边,用在计算机视觉、自然语言处理和推荐算法的一些领域,也提供一些传统的机器学习的训练策略。比如说像多任务学习,还有一些迁移学习、主动学习等等,我们底层也提供基于分布式的训练和Kubernetes的训练任务的弹性的调度能力,可以进行全站开源软件的侵入和部署,下面是基于我们的飞桨的一个的架构图。接下来是编程模型、参数服务器、到端侧训练和弹性调度,再往上是我们联邦学习的训练策略及应用。联邦学习策略这块我们也有纵向的联邦学习,刚才提到的PrivC的逻辑回归,横向的联邦学习,还包括DPSGD基于差分隐私的随机梯度等等。我们也有常态的一些机器学习,像迁移学习,多任务学习,主动学习等基于联邦学习的任务,还有基于深度学习的自然语言处理、视觉、推荐这一块的学习任务,都是在PaddleFL的基础上来做深度联邦学习的建模。PaddleFL的架构设计,图的左边叫编译Compile Time,是首先通过联邦策略,去设计一些算法策略,然后在中间设计训练策略,再用分布式的配置,合成以后,传到中间任务的调度上面。任务调度再传到参数的任务和训练的任务上面生成了job以后,再传到这边运行。运行这一块有参数的服务器和worker,再下面是调度器,整个就会把服务提起来,然后进行分布式的训练,这是PaddleFL的架构设计。同理,我们也有基于MPC的联邦学习,分成三部分,一是图右部分,基于数据的准备,首先有私有数据的对齐和数据加密及分发。二是训练和推理过程,和Paddle的运行模式一样。首先要定义协议,在策略训练和推理完成后,就会到这个图的最右边进行结果的重构。这一块就会把模型的结果或者预测结果,由加密方以加密的形式输出,结果方可以收集加密的结果,在PFM工具中进行解密,再将明文的结果传递给用户,就完成了整个MPC的联邦学习过程。安全保证是金融企业最高优关注点我们先看看现有的模式,现有的模式只有几个,在没有用到联邦学习的时候,状态是自己的IDC机房的网络和外界是隔离的,没有联通互联网,数据不进不出,因为只用到自己的核心系统的数据,数据是物理隔离的。但是这个模式最大的问题,就是在它的建模过程中,会存在着一些天花板,比如刚才提到的KS值,如果做到0.35了,就再也不能再往上做了。模型效果更多的取决于特征工程,而他又没有用过外面的无论是互联网,还有政府,一些运营商的一些领域的数据,那么一些风控也好,营销的行为它是拿不到的,模型的上限是由多维度、多样性来决定的,所以达不到很好的建模效果。于是就衍生出来第二种模式,叫标准分的调用模式,标准分的第二个模式,它也是有自有机房,但是它的网络变成不是隔离的了,而是单通道的,就是它的数据只进不出。在网络这块,因为开了一个单向的通道,有可能存在一些被黑客攻击的风险,这个标准分的调用也有一些弊端。大家知道,进来的只是一些标准分,也就是说,外面的数据过来的可能就是一个变量或者两个变量,它是一个高维特征压缩以后的、降维以后的一些特征的输入,每次输入只有那么两三个特征。这种高维特征压缩降到两三个维度以后,有非常多的特征信息是损失了的,所以它提升的建模效果在信贷场景可能只提升那么一两个点,比如像KS值是0.35,提升到0.37、0.38就到了天花板了。我们今天谈到联邦学习的模式,它的数据通道是双通道的,双方要进行梯度或模型参数的交换。首先,双方数据对上面的一个中间节点要进行上传,但是它的原始数据没有出域,它的参数数据或者模型的参数或者梯度参数,是通过加密的方式来出域的。从这个角度来看,因为它的网络通道打开了,存在潜在的被黑客去攻击的风险。梯度参数的话,从现在的业内的研究来看,也存在一些被反解,或者一些隐私被攻击的方法。还有一个,它有一个强烈假设,就是需要参与的双方或者各方,需要满足诚实、半诚实模型的原则,如果有一方有严重的欺诈,去改变了模型的一些参数,或者是一些游戏规则,模型的安全也会受到一些挑战。这是联邦学习目前和上面的现有模式、标准的模式相比,所面临的一些优点和缺点。那么这里会就提到模型提效,模型提效是一把双刃剑。现有模式下,在右边的这样一个方程式,目标标签Y是来自于金融企业本身,它的X特征也是来自于这家企业,企业只用自有的数据建模,没有外部数据带来模型效果提升,就会面临天花板。我们再看联邦学习这种方式,刚才提到,通过梯度参数的交换来建立模型,那么基本上双方数据没有降维,外部提升的最大好处就是,带来的模型效果提升非常大,与明文相比的话,它的精度损失基本上还是比较小的。但是,在和很多金融企业沟通后,知道它有非常大的短板,企业有各种各样的顾虑。1.建模的过程中,即使想用联邦学习来进行建模,金融企业很多时候并不愿意把自己的特征放进来,但是可能只会将自己客户的ID和目标变量Y放进来,因为金融企业会觉得用联邦学习来建模,有可能存在一些数据安全的问题。2.他们也希望拿到一些数据以后,再做二次建模,以满足金融监管的要求,因为在金融监管这一块,特别是在信贷风控的场景,希望金融机构要自控这个模型本身,而不能把这个模型交给外部的机构去控制。安全保证和数据提效前提下的得与舍在数据的安全保证和数据提效的前提下,联邦学习还要面对什么样的得和舍呢?第一个,从运算速度来看,现有的银行在自己的机房里面进行明文计算的数据建模,它的特点是运算速度很快,可以用像spark、Tensorflow、PaddlePaddle等分布式技术去做这种很成熟的运算。但是到联邦学习就不一样了,刚才提到,它的训练速度至少会比明文计算,少则慢一个数量级,慢10倍几十倍,也有慢两个数量级几百倍的这种可能性。第二块就是它现有的分布式技术还不太成熟,这是他在速度这一块可能需要去考量的。第二个,从算法种类来说,明文算法它是基于Python的开源社区,算法生态非常多,上千种上万种,顶级论文的开源代码,基本上就是按天、按周来迭代,更新的频次非常快。但是在联邦学习的算法过程中,要考虑到数据参数的加密,所以它的研发非常困难,我们的算法种类相对而言都是比较少的。业界现在能看到的也就是那么几种或者几十种,并且也不可能把最新的算法研发出来用在联邦学习这个领域。第三块,就是产品的应用性,因为现在基于明文数据的这种算法,AI开发平台有非常多,支持多种框架,还有它和数据的中台的融合,非常好对接。那么对纯代码方式来讲,金融行业去使用时,因为金融行业很多用户也不是经常做coding,所以他的学习曲线比较难、比较高。刚才也提到如果用代码这种方式,它跟这个操作系统有些时候需要linux shell脚本方式进行交互,那么它的安全性可能会存在一些缺陷。百度的度信平台在这一块用纯界面的方式,也面临着一些开发的周期和实施的难度。这个是联邦学习与建模要考虑的问题。所以我们在考虑安全,在考虑数据对建模效果业务绩效的前提下,我们在运算速度上,在算法的种类的选择上,在产品的应用上,都做了一些权衡和一些损失,但有些时候这种损失和这种权衡是值得的。下面一点,就是百度金融专有云,如果是联邦学习在我们的金融云、专有云上面进行部署的话,我们还额外提供七重的数据安全保障。这七重的数据安全保障在这个图里边用1234567都标注出来了。一块是我们提供异地的灾备,我们在武汉、北京和上海有异地的百度金融云专区。在数据的交换过程中,我们会提供一些芯片级的算法级的加密,包括在网络的通路上,也提供一些加密的传输,让加密的数据被截取以后都是不可用、不可解的。我们参与方的数据在云上的链路也好,在云上的一些硬件的里面,双方都是互不可见的。安全的数据脱敏方法和合规制度保障在完成了整个建模的过程以后,比如说金融企业的数据要有用户要查处,最后模型在使用的时候,有一个数据的健全,如果没有授权的话,是不可以去使用产出模型的。除了联邦学习以外,我们在整个云上、在物理链路上、存储量上、硬件上做了各种各样的加密去保证安全,而不只是运用了联邦学习技术本身,或者只是开发一个平台。在和金融企业的沟通中,我们发现,即便双方要进行联邦数据的融合建模,也可以采取刚才说到的,双方先有两个数据宽表,然后再进行融合的联邦学习。在生成这两个双方的数据宽表的同时,还可以采取一些更加安全的数据脱敏方法,用的比较多的就是K-匿名化,这个是保护客户数据隐私的一种重要方法。我们希望双方在生成数据宽表的时候,甲方和乙方都能够采用类似于匿名化的技术,让双方的原始特征数据脱敏得比较彻底,不能够被反推。虽然联邦学习本身也非常安全,在这个基础上,我们能够用更多的数据脱敏的方法。右边这一种也是类似的,我们会用差分隐私的一个方法,在数据集中里面产生一定的噪声,这种随机造成它可以通过一些概率分布前置来产生,这样就在设计过程中很难去推断出客户的一些隐私。和金融机构合作时,在数据的安全管控上,我们也会提供一整套的安全的合规的保障制度。首先是从公司的治理层面,数据和流程层面及安全的能力层面,我们从不同的角度去看这家金融企业和它合作的另外一个互联网企业,只要用到度信平台,我们会提供一整套的关于安全保障机制的建议。还有一块就是数据的生命周期安全,我们考虑到六个环节,数据的收集和产生要合规,我们有数据的分类分级和安全日志。那么在传输和传递过程中,有加密和传输的安全的监控。第三块就是存储,在存储的安全和数据的加密备份这一块,也要考虑安全。第四就是它整个数据的加工的环境,使用方和用户授权等等,也要保证安全。第五个环节涉及整个的流通与共享,包括对内流通和对外流通,我们要考虑相关的安全性。当我们使用完联邦学习以后,也要有相应的动作,不要让数据留存在双方的服务器里边。整个的安全制度合规保障和数据的生命周期,都是我们在实践中慢慢总结出来的。对于整个联邦学习,额外增加了一些针对金融行业更加安全的一些举措和方法论。我们也通过度信在这样一个平台的实施过程中,慢慢把这种方法论传递给金融机构,传递给合作方,让我们整个在运用联邦学习的过程中,更加保证整个数据的安全,让数据可用不可见。
近日,雷锋网《AI金融评论》联合香港人工智能与机器人学会(HKSAIR),邀请京东数字科技AI实验室首席科学家薄列峰做客公开课,以《京东数科的联邦学习战略全布局》为题进行分享。除了分享横向和纵向联邦学习以外,他也通过案例形式给出了京东数科对联邦学习性能与安全性方面的研究成果,以及区块链和联邦学习的融合讨论。以下为薄列峰的课程分享全程回顾,雷锋网AI金融评论做了不影响原意的编辑:随着互联网发展,数据安全管理越发严格,对数据管理的关注也越来越全面化。怎么在保护数据隐私的情况下,还能做一些好的机器学习模型,应用到各种各样的问题?这就变得越来越重要,需要从集中式机器学习过渡到分布式机器学习。而2006年开始掀起的深度学习热潮,更把AI和机器学习模型对数据的需求推向了顶峰。什么是联邦学习?就是在满足数据隐私安全和监管要求的前提下,让人工智能系统更加高效准确地共同使用各自数据的机器学习框架。应用方面,举一个简单的例子:各企业或机构大家都出不同的数据,相互进行模型学习,又不会看到对方的数据。数据还可能分布在不同的国家,各国数据监管政策有所不同,也可以把分布在各国数据高效利用、训练模型,不存在数据上的交换。两个典型的联邦学习算法,分别是横向联邦学习和纵向联邦学习,横轴表示特征维度,竖轴表示用户维度。横向联邦学习,看两方的数据和标签,用户重合度非常低,特征重合度比较大。这里显示的是用户无重合的极端情况,实际情况中它可能仅仅重合90%用户特征,5%用户重合,到时进行对齐即可。纵向联邦学习,两方用户重合较多,可对用户的部分对齐。A、B各拥有用户一部分数据,可能都会有用户的一部分标注,纵向联邦学习也能去处理。对计算机视觉、自然语言语音识别等领域而言,2006年深度学习(的出现)是非常大的推动。大家熟悉的语音识别、语音合成、人脸识别等应用,都是大量深度学习模型在背后发挥作用。深度学习、梯度下降与横向联邦学习三种典型深度学习首先是深度神经网络(Deep Neural Networks,DNN)在语音识别误差上有30%的简化,性能有非常大的提升。后来是卷积神经网络(Convolutional Neural Networks, CNN),它的训练误差相对于其他方法降低了十个百分点左右,在计算机视觉领域有着非常广泛的应用。递归神经网络(Recursive Neural Networks,RNN)在自然语言处理领域是非常基础性的工具。优化神经网络的典型方法:不管神经网络有多复杂,大家实际上都能把它写成一个f,一个输入加一个参数。常用方法之一是随机梯度下降。大家都知道,优化最基本的是梯度下降,就是精确计算梯度,再对参数的方向和模型参数用梯度做下降。如果我的样本量非常大,有100万、1000万,做梯度下降计算代价非常高。实际运用中,我们可以随机提出采样。极端情况下,可以只采用一个样本去估计梯度,比如包含50-100个样本的小样本集,它的梯度估计不准确,但计算代价非常低,这样能有效优化神经网络参数。如图,红线是随机梯度下降的结果,梯度估计不准所以路线较曲折。蓝线是典型的梯度下降结果,估计比较精确所以不会拐弯的路线。但最终都会去到最优解。虽然红色路线比较长,但它走每一步的代价明显更低,相对于随机梯度而言,整体效率还是更高。这是典型的横向联邦学习框架。设置里下面是客户端(client1,2,3,……,t)。蓝色云是服务端(Server)。横向联邦学习的设置是数据的不同样本存在不同用户端,这实际上是对传统分布式框架的改善。首先每个客户端训练模型,产生参数w1、w2、w3……wt,参数传到云端,服务端对模型做平均,得到 w-。服务端做完模型平均之后,每个客户端再下载模型w-,再对模型做几轮梯度下降或优化,再将模型上传到服务端,循环往复,形成这样一个迭代的过程。在这个过程中,客户端的数据并没有向服务端传递,传递的只是模型的参数w,保护了客户端数据的隐私。它与传统分布式学习的不同之处在于,后者在此传递的是梯度;在联邦学习里,客户端向服务端传的是模型的参数。实际上现在也有证明表示,梯度信息其实也能泄露不少数据信息,而模型参数经过几轮梯度下降后,对数据的保护会做得更好。如图,联邦Average(FedAvg)和 联邦SGD,前者实际使用代数明显更少,就可以收敛,SGD需要的代数明显更多。在很多setting里,在分布式学习里,通信代价通常会是瓶颈,这个差异意味着FedAvg能有效降低这一代价,提升了训练效率,同时也加强了对数据隐私的保护。在这个设置下,实际上服务端还是知道我的模型参数的,有没有可能进一步对我的模型参数加密和保护?其实不需要加密也有相当的安全性,但加密能对攻击、对服务端、对可能的数据欺诈有更好的防护。同态加密简单来讲,这是一个密码学的算法,主要操作是生成公钥和私钥,加密算子,应用到明文,产生密文;用私钥对密文解密,产生明文。同态加密的特点之一就是,两个数m1和m2的和同态加密,等于m1的同态加密加m2的同台加密;m和一个常数相乘的同态加密,等于对这个样本同态加密,再乘以常数。横向联盟学习+同态加密:和刚才的情况类似,传递参数过程中,可对w1……wt同态加密,然后在服务端对同态加密域做平均,以得到模型参数。在这一设置下,服务端不知道私钥,但客户端知道。服务端实际上不能对w-解密,甚至连模型参数也不知道,它只知道同态加密域,但没有私钥就没法解密。客户端下载参数,用自己的私钥解密,再更新自己的模型——因此同态加密也提升了数据安全性。横向联邦学习之人脸识别应用:人脸识别有多场景的数据收集,比如打卡的门禁数据、多角度监控、证件类数据等。甚至还有一些海外业务,海外数据不能传递到国内,联邦学习就能解决这个问题,有效提升在人证场景或配合式场景下的通过率。Q:各方的特征怎么对齐?在横向联邦学习,大家的特征集是一样的。举个例子,a方和b方都是人脸数据,那么模型取的就是人脸数据,可以规范化到一个图像标准,比如说128×128的头像,这样输入x就自然对齐了。除了同态加密,另一个在横向联邦学习应用较多的是差分方法,思路是在分布式学习的时候传递梯度,同时对梯度加噪,以噪声方式保证梯度安全性。纵向联邦学习假设两个公司各有数据的部分特征,同时 b方拥有数据的标记,可以用一个安全的方法对齐数据ID,再做纵向联邦学习。这通常需要一个合作者Collaborator(有些方式可能不需要),AB两方的数据交换都需要对它加密。此处设置为:合作者有公钥和私钥,两个机构a和b,分别都只有公钥,没有私钥,能通过加密保护自己的数据。得到同态加密域的梯度之后,会对梯度加噪声再送到合作者处,合作者会用自己的私钥解密,然后把梯度还给它。在各方得到自己的梯度之后,可以进行梯度下降。Q:若合作者方占主导地位,是否有泄露风险?这是实际操作中需要注意的问题,比如A方特征占10%,B方特征占90%,这块你能写出的方程数量明显少于参数数量,理论上是推不出来的,但随着不平衡性的增加,安全性也会下降。纵向联邦学习某种程度上,是有信息泄露的,但是从大方向说,它泄露的信息足够少以至于别人推不出来主要的特征。线性回归是一个典型的算法。在很多模型的应用中,当样本量较大,线性回归的性能或许不会很好。此处常用的方法之一是随机森林(random forest)。随机森林Step 1:随机森林会对原始特征采样(bootstrapped)。这个步骤是放回式采样,比如说100个训练样本,它会每次放回,然后做采样100个。完成采样后,每个数的训练样本就不一样了,都是原始训练样本衍生出来的。这样主要是为了增加数的随机性和多样性,在树的集成过程中会产生更好的效果。Step 2:建每一棵树时,在每个节点选择一个特征的一个随机子集。举个例子,这里有30位特征,建树时随机选择五维的特征;建每个节点时,随机选的5个特征都不一样,再从中挑选最好的特征,保了每个节点的多样性。建树过程中,可以是深度优先,然后走到叶子节点,直到它满足一个判据,完成树的分支搭建,最后再逐个预测。联邦随机森林大致思路是,主动方、被动方各一,主动方有标记,并加密标记和标记的平方,然后发送给被动方。此处三角号表示对yi、zi进行同态加密。加密后,被动方根据自己每一维的特征,当它的这维特征被整个机制选中的时候,它会针对这个特征做直方图,然后用直方图在同态加密域的yi和zi进行聚合。每一个直方图会把它划分成很多区间,在每个区间做平均,得到Y和Z。简单讲,主动方传同态加密后的y和zi是一个向量,该向量和样本数一样。被动方会对向量做聚合每次会选向量的一个子集,看哪个特征落到区间上,再对传递过来的yi和zi平均进行同态加密域的求和运算。在随机森林里,既要选取特征,也要选阈值,通过该阈值下的特征得分算出y的矩阵,矩阵还给主动方。此处主动方有公钥和密钥,被动方只有公钥无密钥,所以被动方无法解密y和z,它把Y和Z的矩阵传给主动方,后者会依所得进行解密,再计算每个特征和每个阈值的得分,择其得分高者,如此即可完成随机森林中一棵树的某节点构建。重复该过程可构建不同的树和整个随机森林。可以看到,主动方得到被动方的数据,实际只是得到聚合后自己发送的y和z,所以不知道被动方的特征,也很难推导出;被动方只知道主动方同态加密运送来的y和z,并不知道更多的信息,整个过程可以保证安全。何为快速安全的联邦学习框架?传统纵向联邦学习需要用同态加密进行保护,同态加密比较低效,我们是否能设计一个不依赖于同态加密的联邦学习框架?设计快速安全的联盟学习框架有如下特点:第一,隐私能得到保护;第二,利用树状通信结构,有效提升传输效率。利用不同的数聚合信息;第三,新框架支持异步计算,能再次提升数据安全性。同时整个过程只涉及一些内积(此处不确定)计算,包括加噪后内积传递,所以该框架下不会用到同态加密,效率更高。如图,模型隐私在传递过程中,会传递参数和特征的内积,再进行加噪保护,最终有数据结构的聚合。整个框架的安全性如何?可以从理论上证明,这个算法能有效抵御精确攻击和近似推理攻击。看主要算法步骤,在第二步可以看到聚合的是内积+噪声,以及聚合噪声,然后返回到coordinator计算所有参数和所有内积再减去聚合的噪声,得到决策值,不过此处并不得到模型参数,这也正是模型信息能被保护的原因。coordinator在此只知道内积,不知道参数,所以它也无法推断各参与方信息。实现过程要确保通信的安全,数据在通信过程中不会被联邦系统之外的攻击者所获取,也需要一个可信赖的第三方来进行调度。谁做coordinator?可以是监管机构,独立第三方机构等。原始数据主要通过两项:1.任一通信节点接收到的均为加噪声后的内积,由于树状结构的差异,随机数又无法被移离,内积值因此得到保护。2.即使在串通的情况下,多个节点能移离随机数,根据内积本身也只能构造出方程,也无法通过方程精确推断所含变量。有噪声、有内积,方程数明显少于变量数,树机制……这些多重机制都能保证安全性。刚才所讲的逻辑回归还是线性模型范畴,怎样把线性模型推广到非线性模型?这也是关键,推广的非线性模型精度会大幅提升。右边算法概念大致是:先产生随机特征,生成随机数,然后做cos生成随机特征;在随机特征域上,再做刚才提到的这种联盟学习框架,来完成随机特征的参数学习。随机特征这一步引入了非线性函数,它能很好逼近原始核函数。此处,各参与方会有一部分随机特征,特征上的模型参数也保留在各方,不为他人所知。全程将通过噪声、聚合等方式提升安全性。随机梯度下降法,是首次实现了快速安全的异步并行纵向联邦随机梯度算法,并理论上分析了其收敛率核问题的双随机梯度算法,则是首次实现了大规模、高速、安全的基于核方法的纵向联邦学习。测试性能结果对比如下。LIBSVM是很多同学在研究机器学习时常用的工具,PP-SVMV是一个隐私保护算法,FDSKL则是我们目前所设计的算法。可以看到训练时间的对比。PP-SVMV涉及核矩阵,因此在大样本上操作非常慢。FDSKL收敛速度与DSG类似,后者没有联邦学习的设置。FDSKL几乎达到了不在同态加密状态下的训练速度。精度结果对比如下。FDSKL也接近了原始的不用联邦学习的效果。京东数科的最新工作也将在KDD发表。区块链联邦学习区块链受到很大关注,数据上链有透明化、分布式、不能篡改等优势,它是一种不依赖第三方,通过自身分布式节点,进行网络数据存储验证传递和交流的技术方案。区块链的分布式、去中心化特点,和联邦也有一些关系。实际上,联邦学习在大型的多方参与项目中都有类似机制,也可以考虑采用去中心化。最简单的应用是,把联邦学习和区块链结合,建立在区块链上的联邦学习算法。我们也完成了二者更深层次的融合,包括共识机制等。我们认为二者的结合在未来会有越来越多的应用。区块链可以解决数的存储,具有不可篡改性,联邦学习能对数据隐私做表保护,其中有不少地方互补。互动问答精选问:联邦学习可以不加入加密技术,不加密是不是也算对数据隐私保护?还是说得进行加密后,才算是各方进行隐私保护?薄列峰:就像我刚才在横向联邦学习中提到的那样,第一种算法实际上不加密,是用均值进行保护,整个过程中并没有传递数据。不同类型的联邦学习算法,有不同方向的数据保护。现在的问题是,哪一种对信息的保护级别更高,效率更高?同态加密是一种方法;差分隐私基本上就是给梯度加噪。这方面,像我们刚才提到的方法,都是不用同态加密对数据保护的联邦学习算法。问:联盟学习在京东有实际的落地场景和业务吗?薄列峰:有,其实联邦学习就是在做多方机构的落地,比如人脸识别、营销、风控等场景,京东数科都有案例。问:联邦学习和边缘计算的区别是什么?薄列峰:边缘计算讲的是每个用户端有自己的计算设施;联邦学习讲的是对数据隐私的保护,同时合作建模。大概念上还是非常不一样。当然,在做这种分布式联盟协议的时候,它也会用到各自的客户端,有自己的计算设备,在这一点上它会和边缘计算有一些结合点。问:怎样保护在客户端的运算速度?薄列峰:客户端的运算速度,得靠其自身计算资源来进行保护。如果计算资源比较有限,通常它的数据也比较有限,参与更少的计算。如果数据比较多,它的计算资源也多,如果是多个机构合作,这都可以协调。问:实验中列出来的时间对比,是参与方与第三方之间通信,是内网还是外网?薄列峰:我们在实验比较时,没有特别考虑网络延迟因素,是相对理想情况下的比较。有网络延迟的话,在计算的情况就会增加网络延迟。网络延迟针对每次具体的setting并不一样,所以并不容易做标准化的比较。我们比较的是没有网络延迟的情况,具体有网络延迟或者有各种情况,可能还是需要在具体设置里做更好的处理。问:每个客户端上的特征异构以及标签异构如何理解?可以举个例子吗?薄列峰:这个看是水平联邦学习还是垂直联邦学习。在水平联邦学习情况下,各个客户端也有自己的标记。刚才我举了个例子,比如说image net,每一个有1000类,每一类有1000个样本,这样你有100万个样本。假设有100个客户端,然后每个客户端有1万个样本,它有1万个样本标记,然后大家可以用横向联盟学习框架,可以有效地利用每个人手上的样本来建模。最终,每个参与方建造的模型都用了别人的样本,但是又不会去实际获取别人的数据。在纵向联盟框架下,举个例子,大机构和小机构做完用户对齐,大机构作为主动方,小机构是被动方,各参与方都可以商讨解决。像横向联盟学习,在很多时候,参与方其实就是同一个公司的分布在不同的国家的情况,信任度实际上是有保证的。即使说不同的机构之间,大家也是有相互的信任度。如果完全没有信任度,要去做这样的联邦学习,可能还是比较难的。参与方可能会对整个框架进行攻击。它的安全性会变得更加复杂。所以,我们现在还是假设各参与方是honest,是相对比较协作的,在实际应用中是可以做很多协调的。问:目前在联邦学习研究遇到的瓶颈有哪些?是否有后续未来的规划?薄列峰:后续京东数科会在联邦学习上做大量的投入,因为我们认为联邦学习是整个人工智能,包括整个机器学习的基石,它有潜力去改变所有的机器学习算法。我们会做重点布局,研发越来越多的联邦学习算法,来进一步提升联盟学习在各个领域的落地,提升它的有效性和效率,包括和区块链结合这种前沿方向。我们既会去提供一些可信度较高的软件,同时也会去落地,考虑前沿的研究,带动整个联邦学习生态的建设。问:是否可以动态变更合作机构的数量?薄列峰:合作机构的数量,是可以变化的。在纵向联盟学习里,相对比较复杂。它不参与之后,可能有些东西需要重新开始。但横向联盟学习,相对比较容易,因为大家都是拥有不同的样本,假设有1000个参与方,两三个不参与,那就少了千分之2,千分之3的样本,并不影响整个联盟学习的框架。横向联盟学习里,也有一些机制,可以保证参与方突然不参与,还能完成这个模型的训练。问:联邦学习可以用于表情识别吗?薄列峰:可以。举个例子,不同机构之间有表情识别的不同数据,大家可以利用彼此的数据来增强模型,同时又不想把数据给到对方。表情识别更像是一个横向联盟学习问题,怎么激励大公司愿意跟小公司之间共享信息。我的个人理解,它还是商业利益的驱动问题,怎么鼓励这件事。如果现在联邦学习的整个框架,只有一个小公司参与,大公司可能缺乏热情,但是如果有1000个小公司参与,那么这样以小积多,有更越来越多的可供交换的数据,大公司参与的意愿就会变强。问:服务器端,共享梯度和共享模型参数有什么区别?薄列峰:共享模型参数是做了几轮梯度下降,针对共享梯度,它的一大优势是通信代价会低;同时,对整个梯度信息的保护,也会更好。关注「AI金融评论」,在对话框发送关键词“听课”进群,即可收看课程直播,和往期课程全部回放。雷锋网雷锋网
近日,香港人工智能与机器人学会(HKSAIR)创会理事长、微众银行首席AI官、香港科技大学讲席教授杨强老师,领衔HKSAIR《AI金融》系列线上讲座第一课,主讲联邦学习及其四大应用场景。以下为杨强教授演讲全文,雷锋网做了不改变原意的整理:我们这次的课程系列,与当前大家在工业界和学术界非常重视的一个议题相关,就是如何利用数据做人工智能的模型,同时又能够保护用户的隐私,保护数据的安全。很多同学听说过深度学习,听说过监督学习,可能没有听说过联邦学习。这个也是要给大家交代一下联邦学习的由来。为什么我在微众银行建立AI团队?我在观察金融的各个方面能不能用AI的模型给包装起来。因此我们设计了以下四大版块,产品和业务已经出炉,可以说是“AI落地急先锋”。详细说一下AI+服务,比如开户验证身份要进行人脸/语音/指纹识别,又比如小微企业的企业主申请企业贷款上传执照要通过OCR图像识别、文字识别获取,自动产生信用评估。现在AI+服务大概每天能处理百万以上的这种需求。以语音识别为例,我们做到了自主自研,与众多业界领先的语音识别的提供者相比具有明显优势,一是因为我们金融领域的知识,有大量特定话术和专业词汇的储备,在各种具体的特殊环境下都能处理。二是我们有非常先进的联邦学习技术,这就是今天的主题。还有迁移学习,可以很快把通用模型适配到特殊的场景。AI+营销,有了产品也要有能力传播出去,找到对的人和企业,去提供金融服务。怎么找到正确的需求?比如微信朋友圈,大家有时候会看到小微企业贷款广告,说明系统“认出”你是一个小微企业主。我们通过很多的特征来识别,很快赋予额度给小微企业的企业主,秒级批准。另外,推荐系统是非常有用的一个技术,我们把推荐系统和迁移学习、联邦学习结合起来,形成了新的技术优势,后面会细说。在金融行业一个很大的优势,就是风控非常严格,要高效做信用评估,那就需要很多数据,360°来观察企业或者申请贷款的用户。但同时又不希望这些数据的隐私被暴露,如何能够做到这一点?这,就是联邦学习要做的事情。举例:金融保险定价,我们把违约概率大幅缩减,个性化的保险定价提升8倍。小微企业风控模型准确率提高,相应地,坏账率降低。我们有一个叫做揽月的产品,是从卫星视角往下看,能看到企业的经营状况,比方说左下角可以通过卡车个数和活跃度看到矿业的经营状况。右上角是农业种植区域,可以通过卫星评估产量。左上角是洪水泛滥受灾地区,通过卫星对地区受灾的程度进行定价。右下角是烟囱污染,环境在投资里是社会价值的体现,对环境的保护体现了公司治理水平,相应产生的ESG指数,很多也来自于于卫星图像观察。综上所述,这4个版块,2个是前端的(服务、营销),2个是后端的(风控、资管)。金融小数据与隐私保护的双重挑战在这个过程中,数据是非常缺乏的。要保护我们的隐私,同时也想要服务,怎么做到?下面这句话叫做“数据不动,模型动”,希望大家就记住这7个字。这个就是联邦学习的精髓。AlphaGo出现以后,人工智能井喷式发展。但我们周围日常的生活,有的却是小数据,不要以为大公司就一定有大数据。像在金融里面有很多的数据,其实是黑天鹅现象。比方说在反洗钱应用中用于模型训练的洗钱案例,其实数量并没有想象中那么多,还是属于少数现象。这种数据拿它来训练,效果不是很好。在医疗也是这样,每天都有那么多的病人,一定是大数据吗?有一家公司叫做第四范式,用人工智能赋能金融场景。有很多头部银行都在使用它的产品,其中一个案例很有意思:豪车这种大额贷款,如果要建一个模型来做这种大额贷款的信用度的评估,数据往往是在上百例以内,这点样本是没有办法训练一个好的深度模型的,或许可以来训练 support vector machine(支持向量机)或decision tree(决策树),但往往不精确。又比如,大家都很憧憬无人车的到来,但迟迟不来,其中一个重要的原因,就是因为无人车还不靠谱。我们不知道它见到一个它没见过的情况会发生什么,为了应付这种情况,可不可以把所有汽车上面的传感器、摄像头的数据全部聚合在一起,飞快地训练一个无人车的视觉模型?不行,因为每一个在路上的车辆,虽然它可以收集自己前面的影像数据,但是它不肯把这个数据和别人去共享,因为它有很多出行隐私在里面。即使这些无人车都是跟云端在连接的,模型却没有办法及时更新。很多类似的端计算场景,就没有办法真正的实现,因为数据的割裂和短缺。能不能把这些众多的小数据集给聚合起来,成为大数据?过去,确实是这样做的。现在,这样做的结果就是违规。比方说,欧洲在18年就推出了一个非常严格的个人隐私法规,说数据的拥有权是绝对在终端用户那里。如果服务器端的公司,要用户的数据来训练某个模型,比方说搜索引擎的模型,它就一定要得到用户的许可。假设明天它要用同样的数据去训练推荐引擎的模型,那又得到用户那去,得到新的许可。用户如果哪天说不希望你用我的数据在你的模型里了,那么从此以后,这个公司就没有办法用用户的新的数据,这个叫“被遗忘权”。很多巨头因此被罚,Google就被罚了5000多万欧元, Facebook也遭受了滑铁卢。在国内,数据的隐私保护已经是处于一个非常严格的态势,很多大数据公司,在过去都是新贵,但是现在都变成了阶下囚。我们现在在国内的银行里面工作,深知数据是红线,万万碰不得的。应该说,联邦学习现在已经变成了国内外的技术上的一个重大趋势,并且它已经是一个跨领域的概念,它不仅仅是技术,而且是商业,它有自己的商业模式。何为联邦学习?在过去,数据动模型不动,也就是说我们从各地来购买数据,或移动数据到一个中心点,在中心点建立模型。用一个简单的例子来给大家进行解释:假设用一只羊来类比机器学习模型,草就是数据,我们希望羊吃了草以后能够长大。过去的做法是,把草买到一起来建立模型。比方说左边的模型,左边的箭头是指向羊的。羊不动,但是草被购买到中心。相当于用简单粗暴的办法来获取数据,形成大数据,来建立模型。但我们希望能够保护各自的隐私,所以让草不动,让羊动。这样羊既能吃那个地方的草,主人又不知道到底吃了哪些草,久而久之羊就长大了——这个就是联邦学习的新思路,就是让草不出草场,本地主人无法知道羊吃了哪些草,但是羊还是长大了。比如每一个手机都是我们个人在使用,形成了一堆样本。有不同的手机,每个手机基本上取的这些特征都一样,但样本却不同。我们希望在数据不动的情况下,能够聚合这些手机上的数据的这些能力,建立大数据模型。左边所示的数据集们,依次对应右边各终端上面的数据。它们的特征是纵向的,X1、X2、X3是类似的,但样本U1、U2…U10却是不同的。所以这个叫横向切割,按样本切割,简称“横向联邦学习”。我们可以在本地建一个粗糙的模型,用w来表达它的参数,同时对参数加密。有密钥的人才可以看到内涵,别人和服务器也看不到加密后数据包里的内容。服务器得了加密后的参数,就可以通过某种形式,把这些加密后的参数加以更新、聚合、处理,形成一个更大的模型。这里大家可能会有疑问,你得到的是一个加密的包,是一堆乱码,怎么可以把两堆乱码加到一起?还成为一个有意义的模型?这个问题,我留在下一页来解决。每一个地方的数据,就对应这里有一个颜色的小表格,行是每一个用户的数据,列是每一维的特征。可以看到这个特征在不同终端上的特征是类似的,但是用户不一样。按照用户来切割,并没有按照特征来切割。有了这样的一个形态以后,我们就可以把刚才给大家讲的故事,写成一个算法。这个算法里最关键的第4步是把运到服务器端的加密模型,这些包用一个f函数来处理,它是一个机器学习算法,作用在参数上。我们原来有这么一种新型的加密算法,他可以让机器学习的算法可以穿透加密层进到内涵,也就是说我们对一堆加密包的某种数学运算,相当于对于某种数学运算的加密。这其实是一个小学的概念,叫做distribution law(分配律)。同态加密,可以把多项式的加密,分解成每项加密的多项式,A+B的加密,变成A的加密加B的加密,这是非常伟大的贡献。因为这样就使得我们可以拿一个算法,在外面把算法给全部加密,加密的一层可以渗透到里面的每个单元。安卓系统利用刚才所说的横向切割,即横向联邦学习的方法,不断更新一个总的模型,并且把总的模型分配到本地。在这个过程当中没有数据移出本地,并且即使在云端在进行运算的过程当中,也不会偷窥到任何的这个参数和任何的数据本身。所以,谷歌的安卓系统现在已经在使用,通过基博尔系统对输入法进行更新。如果是某互联网公司和某家银行合作,并不按照样本切分,这两家可能具有同样的样本,用户群类似,但却有不同的特征。这种情况下,数据其实是按照特征纵向来切割的,所以我们管这个模式叫做纵向联邦学习。比方说两家数据拥有方各自建立一部分的模型,但是在建立的过程当中,它需要知道那一部分模型所计算的结果和梯度,计算的梯度来告诉最后的结果是在往哪个方向发展,这需要一个gradient和一个era。在交换过程中,又引入刚才所说的同态加密的算法,使得两边可以在不看对方数据内容的情况下,不断更新自己这一部分的模型。这是训练的过程,我们还有使用的过程。使用的过程叫inference,也需要两方来进行。也就是说,如果有一方到一半的时候说不合作了,那么联邦模型就应该停止,这个效果也是可以实现的。我们现在讲了两种模式,一种是横向联邦,那么横向联邦更多的是to c。to b 是几家公司有意愿合作,可能数目不多,但每一个地方的数据都是客观的。在这种情况下,他们要做出1+1>2的效果,就可以用纵向联邦来进行。问:联邦学习和分布式机器学习最能区分的点是什么?可能以前做机器学习的同学做过分布式机器学习,比方说有参数服务器这样的概念。分布式机器学习,目的是加速,加速的办法是通过网络、多个服务器的平行并行计算。它就要考虑把这个数据给切分成不同的块,使得每一块的计算是在不同的服务器上进行的,但是每一块它的分布又是差不多的。但在联邦学习中,我们不能保证所有的数据拥有方,它的数据分布是一样的。分布式机器学习的目标是加速,联邦学习的目的是合作,同时保护隐私,所以最终目的还是不一样。问:联邦学习和安全计算是什么关系?国外是不是有类似的这种经验?安全计算应该说是联邦学习的重要组成部分,联邦学习不是一个孤立的算法,它是一个综合性的学科,安全计算是为它提供工具的。前面说到安全是用同态加密来进行,也可以用其它的方法,比方说姚期智院士发明的Garbled Circuit(混淆电路)。问:区块链听起来和联邦学习有点像,都是在多方进行的,它们是不是有些异同?它的做法可能有些相同,但是也有巨大的不同。相同的地方是它可以用区块链的分布式记账功能来进行有效的激励措施。激励措施是我刚才所没有讲的,就是说怎么鼓励参与方持续地投入,参与到联邦里面来。同时去中心化的概念,也是我们尤其是纵向联邦里面的一个概念。但一个很大的不同是,区块链为了保证 transparency,还有保证数据的不可篡改性,那么它要把同样一份数据多次copy到不同的场景,最后大家要有一个vote的机制,但是联邦学习却不然,联邦学习是一个数据,只有一个copy,它不能够出本地,所以它的目的就是通过这种uniqueness的方法来保证用户的数据的隐私和安全。还有我们新提出来的虎符性概念,就是多方参与,才能够计算。缺了一方,这个就无效,就像战国时代,你要把虎符两个印要对上才能够用兵,这个是联邦学习的一个优点。问:如果有一方数据是坏人怎么办?比如横向联邦,如果有一个手机,它其实是坏人,它参与了计算,那么它每次贡献的模型都是在下毒,也就是说它在把最后的结果在朝着他对它自己有利的方向发展,或者在纵向联邦的时候,两方当中,其中有一方,它的目的就是为了窥探对方的隐私, 怎么办?在场景下,我们有各种各样的做法。比方说做OCR,written text是0,这个是原始数据,我们让计算机识别0。如果不做加密,我们没有一个机制,这种所谓的对抗是可以做到的,坏人是可以通过参数或者一系列梯度的泄露可以反猜原始数据。在建立模型训练的过程当中,如果这个模型的 gradient不断被引向到一个第三方,第三方获取 gradient,最后reconstruct我们就用data,通过这样的办法可以去做窃听。题目也是在去年NIPS得到最佳paper的一个题目,是MIT韩松教授做的。应付它的方法,也是联邦学习的一个拿手好戏。比方说假设一个player,半诚实(Honest-but-curious)就是好奇,但本身不坏。还有人是恶意的,想搞破坏,想得到用户隐私,然后获利。对于不同的假设,可以设计不同的联邦学习算法和多方计算算法来防止下毒,还可以做零知识(Zero knowledge)和一些知识(Some knowledge)分类。服务器端也可以区分是不是恶意中心、恶意的数据节点和非恶意的数据节点。问:金融场景有没有遇到过坏人?在联邦学习里面,如果有同学现在在找题目,说我能不能在联邦学习找一个硕士题目或者找一个PHD的topic?完全有的,但是要聚焦,因为联邦学习涉及的方面实在是太多了,所以如果你要找一个题目,你往往会找一个子题目,比方说如何能够做到安全合规,如何能够设计一种机制防御攻击,提高算法效率。比方说我们科大的陈凯老师,他带领的团队就在设计全世界领先的算法,网络效率可以通过网络的设计,包括网络protocol、芯片的设计来提高。还有王威老师、宋阳秋老师,都在设计算法,他们的算法都是非常精确的。问:你讲模型我还是云里雾里的,模型到底是做什么的?打个比方,现在每个人都用手机,有时候也看抖音,一看就很长时间过去了。为什么抖音能做到这一点?精准的推荐和个性化,利用数据来做推荐系统。如图所示,比方说我们有很多的手机,每个手机上都有数据。抖音的做法,是把每个手机上的数据上传到云端,再利用所聚集的大数据训练模型,再适配到每一个人的个人数据上,就变成个性化推荐模型,再给推到手机端,就是循环往复这样一个过程。这过程有个缺点,就是它侵犯了用户隐私,每个人的数据,云端就会看到。怎么防止?这里我就要说联邦学习+推荐系统,就是联邦推荐,这个也是我们第一次提出federated recommendation的一个算法。它的算法宗旨,就是对每一个手机上的 transaction,用户以前看过的视频或者书,进行矩阵分解,得到用户空间和产品空间。如果你们喜欢数学,你们可能知道本征值、本征向量,线性代数里面的概念,实际上就是求这个值,但基于本地数据求值是非常不准的。所以通过联邦学习,能够让他们既能够利用所有的数据来求 ,同时不把本地的数据暴露给其他任何人。这就是联邦推荐的概念,可以在toB的形势下实现,就是纵向联邦。纵向联邦现在应用在哪里呢?又有一个新的名词,叫做联邦广告。现在互联网的一大经济支柱就是广告,在现有的广告架构下,广告是不可避免地侵犯用户隐私。联邦广告可以让广告方、投放的媒体方、用户方各自保留自己的数据,同时提高投放准确率。问:联邦学习训练后的模型是一个公共的模型,而各个客户端的数据经常是non-iid的,怎么办?联邦学习训练后的模型,是一个公共的模型,而各个客户端的数据经常是分布都不一样,比方说我们有一个手机是女生用的,她看的短视频和一个男生用的手机的看的短视频,可能是完全不一样的短视频,因此我们拿他们两个的数据粗暴地做数据联邦,这个效果是肯定不好的,这是机器学习的一个常识。怎么办?我们还有元学习,和多任务学习、迁移学习是可以解决non-iid问题的。又要给大家提一个新名词,叫做联邦迁移学习,在之前每一端都先要做一个联邦迁移学习,找到自己的一个子空间,在这个数据子空间的比对下,大家可以认识到自己找到的子空间,各自找到子空间是属于同分布的就可以。那么找到子空间,可以用联邦学习来实现。这个领域论文非常的少,所以如果有同学在找题目,我鼓励大家在这个方面发力,一定是明年各个顶会的文章,best paper一定是属于你们的。联邦学习应用案例小微企业信贷风控假设我们要给一些小微企业贷款,又不知道小微企业的情况,第一个可以问询的是央行征信,比方说他过去在某个银行贷过款,信用度如何,但这种数据,它的样本往往是非常少的,所以只是去找央行的数据远远不够。我们希望用到的数据是多方面的,比如工商、税务、舆情,还有各种资产的数据。但是这些数据拥有方,往往都是政府的不同部门、不同的企业。有专门的公司去帮助这些小微企业建立电子化的发票,有从专门的业务角度观察,我们只有用联邦学习才能说服他们来参与,否则他们担心核心资产会被泄露。这里的例子,是我们在企业贷款里面基于联邦学习的风险控制模型。某个银行和某个发票企业最后形成联邦,大为提升准确率,降低坏账率。保险联邦建模保险其实就是风险,风险和数据是分不开的,数据越多,风险越低,因此保险公司在某些程度上也想合作,因为不同的保险公司有不同的数据。有的保险公司是专门为保险公司保险的,叫做再保险公司,比方说瑞士再保险公司,是世界上最大的再保险公司,有100多年的历史,这些公司在过去因为数据割裂,没有办法合作的。现在就在用联邦学习,而且取得了非常好的效果。计算机视觉比方说我们有不同的摄像头,每个摄像头都覆盖一个区域,这个地方的数据是公司的核心资产,不愿意和别的公司去share,但是他又希望利用到别的公司的数据,来增高自己的准确度,这个时候就可以用到联邦学习,我们叫视觉联邦,已经落地实施。每天深圳的建筑工地用来探测危险,影响施工的一些现象,比方说明火抽烟和不戴安全帽的现象。另外,语音识别、IOT在仓储管理的场景,联邦学习也有所应用。不同的仓库可以形成线性联邦,监测地方仓储状况,这些状况就为风控模型和为物流业的决策提供了保障。医学应用我们最近和腾讯的天眼实验室合作,成功构建了一个“脑卒中发病风险预测模型”,通过使用来自就诊记录数量TOP5的医院真实就诊数据验证,联邦学习模型和集中训练模型表现几乎一致,在脑卒中预测模型中的准确率达到80%,仅比集中训练模型准确率降低1%。同时,联邦学习技术显著提升了不同医院的独立模型效果,特别是,对于两家脑卒中确诊病例数量较少的医院而言,联邦学习分别提升其准确率10%和20%以上。联邦学习不仅仅是一个算法,而是一个操作系统。因为有激励机制在里面,可以把不同的行业给凝聚在一起,使得大家有动力,不断用联邦学习来做联盟。除了刚才提到的场景,还有银行和监管联合跨境反洗钱,互联网+保险,互联网+银行风控,互联网+零售,这些问题都可以通过联邦学习更好解决。我们建立生态,建立平台,建立标准。也希望这个不仅仅是一个算法,而是新的paradise。我有的时候跟媒体讲,AlphaGo代表了AI 1.0,它就是说在一个地方有数据,在一个地方有算法,在一个地方可以有一个很好的模型,就是AlphaGo。现在我们进入了AI 2.0,我们在不同的地方有数据、算法、业务,我们还可以做AI,这个是谷歌所没有做到的,中国现在在这个方向是领头的。怎么做到这一点?首先要建立标准。我们特别自豪的一点是,世界上第一个联邦学习的产业联盟,建立的IEEE的标准,已经到了最后一步,马上就要正式发布了,敬请关注。同时在国内,有联邦学习的团体标准,这个也是微众银行领衔发布。我们有一个联邦学习的开源平台,就在Linux Foundation上,是金牌的开源平台,短短两个月就收集到贡献者打的上千星,到现在已经2000以上。在短时间得到这样的认可,也是非常难得。