对于 AI 飞速发展的今天来说,大规模的多维度、高质量的数据是其成功的关键要素,也是制约其进一步发展的重要瓶颈。随着大家对数据的重要性与隐私性的认知程度的不断提升,跨组织的数据的合作越来越谨慎,相关隐私法律法规也陆续出台 ( GDPR ),这样就造成了大量了的数据孤岛,无法充分的利用数据进行分析、决策,严重制约了 AI 的发展。联邦学习在保证数据隐私安全及合法合规的基础上,打破数据孤岛,实现共同建模,共创共赢,将成为未来 AI 发展的一个重要方向,9N-FL 作为联邦学习的整体开源解决方案,也会在未来发挥越来越大的作用。
本文将通过了解联邦学习的原理以及解决方案 9N-FL,并且结合本公司的业务,进行应用,为大分享如何开辟新的业务模式与增长点。
基于数据孤岛的考量而提出联邦学习,数据孤岛的产生有以下两方面的原因:
上述都限制了数据的流动,造成了大量信息孤岛。如右图所示,主要有两种方式造成信息孤岛:第一是企业获得用户信息越来越难;第二是企业之间数据不共享。
信息孤岛的解决方案是联邦学习。2016 年,谷歌提出在安卓手机用户中进行联邦学习,解决个人用户数据在终端上的隐私问题,它可以不上传用户隐私数据,在终端上进行模型训练。后续众多业内研究机构和组织对联邦学习投入了极大的热情,研究了更加安全、使用范围更广的联邦学习机制,将联邦学习应用到更加广阔的领域。
联邦学习的本质是基于数据隐私保护的一种分布式机器学习技术或机器学习框架。联邦学习的目标是在保证数据隐私安全及合法合规的基础上,在模型无损的前提实现共同建模,提升 AI 模型的效果。
联邦学习框架有以下四个特征:
联邦学习主要分为三大类:横向联邦学习、纵向联邦学习、联邦迁移学习,联邦迁移学习用的稍微少一些。
9N-FL 主要解决的是纵向联邦学习的问题。
如图是联邦学习的架构,主要简单介绍了横向联邦学习架构和纵向联邦学习架构。
项目背景:我们部门主要是做广告营销,在京东站外的一些营销场景中有很多用户,对于我们来说我们并不认识,比如在抖音、快手这些渠道投放广告的时候,这个用户我们不认识,但我们又想给他都放广告,对于头条和快手来说,他们不可能把用户的原始数据给我们。我们就想了一个办法,可以做一下联邦学习,这样对于我们不认识的用户,也可以去进行广告竞拍。
项目大概是在 2019 年 11 月份进行的开发,2020 上半年进行了正式的上线,并且在 2020 年 9 月份完成了正式的对外开源。9N-FL 平台主要包含以下几个重要的部分:
主要创新点:
取得的成绩:自上线以来,九数联邦学习平台(9N-FL)在取得了较好业务成绩的同时,也经受住了业务大数据、大算力的考验。在与媒体进行京东广告投放业务场景中,基于媒体侧大量的数据(例如,媒体兴趣标签)、京东侧大量的用户商业兴趣及商品标签数据,双方使用联邦学习平台联合建模,来优化广告的触发召回、CTR/CVR 模型等多个模块,最终成功上线,取得了大概 15%的收入提升。
这个是 9N-FL 的一个时间轴,2017 和 2018 年做联邦学习的比较多,像微众银行、腾讯、百度、阿里,它们相对来说比较早。京东是在 2019 年 11 月正式开始进行联邦学习平台的开发,当时是基于业务为出发点进行开发;在 2020 年 4 月份,完成了平台的开发落地,双方开始联合建模;在 2020 年中做出了业务效果,并且进行了上线。在 2020 年 9 月,进行了平台的开源,在 github 上搜 9N-FL 就可以搜到。
对于联邦学习来说,它是一个全新的多交叉的领域知识,主要需要以下几个方面的能力:
联邦学习是一个跨多个领域的技术,它包含了大数据、实时计算、云平台、机器学习、深度学习、高并发架构、密码学等方面的一些知识,整体要求比较高。
具体工作分为以下几个方面:
整体架构图中公司 A 和公司 B 的数据是无法打通的,其实这就是一个超大规模的样本匹配工作,为下一步建模做准备。在传统的联邦学习过程中,一条样本就是一个完整的输入,中间可能会进行拆图,没有在最开始的输入过程中拆,只是在中间的某一步进行了拆图。但是联邦学习从纵向上来看,把一个用户的样本数据一下子拆成了两部分,联邦学习的基础就是一个超大规模样本匹配的过程。接着往上就是大规模跨域联合建模,蓝色和紫色模型互不感知,只是在上层进行了数据连接,算一下 loss 作为反向梯度传输。
联邦学习主要解决数据跨域问题,保证数据不出域,也就是计算资源向数据资源靠拢,保证数据安全隐私、安全合规。联邦学习之前,只能用左边的一路或者右边的一路数据进行建模,其实模型能力也是可以的,但两个数据如果结合在一起,从直观或者理论上来说,这个模型能力肯定是有一些显著的增强,我们通过实践证明了这一点。
我们将 9N-FL 的应用场景瞄准了大数据营销这块,当然金融领域也在考虑范畴之内。金融对数据隐私性要求比较高,但对实时性要求不高,所以一般采用加密或比较简单的模型,比如 LR 模型或者树模型,它的数据量也比较小,大概几十万,离线可能跑几个小时。大数据营销这块的场景就比较多。
9N-FL 的整体架构图是一个对称的结构,服务部署在两家公司,每家公司都有一套完整的服务。比如 Coordinator:它是整个系统的总控;Proxy:涉及到跨网,可以理解成 gateway;Resource Manager:资源控制;Trainer:训练器。
详细过程:Coordinator 分为 leader、follower 两个角色。我们平时在机器学习平台训练的时候,只要开启训练就好,因为不涉及跟别人的协调,但是对于联邦学习来说,开启训练的时候涉及一个协调的问题,谁是主导者谁是跟随者?主导发起训练的就是主导者,比如图的左侧是主导者,它就是一个 leader,右侧就是跟随者 follower。所有的调度单元都是基于一个任务来调度,整个系统支持多任务的调度。首先左侧的 Coordinator 通知对端,我要进行训练,并且告诉对端我的样本 meta 信息,包含样本 ( 比如 ctr、cvr 样本 ) 信息、时间信息,两边还有一些协商,就是针对这次任务,我要开启多少个 trainer,比如要开启 20 个,那么两边都开启了 20 个 trainer,但是怎么调度起来呢?联邦学习可以仿照传统的机器学习,也就是现在的样本分了两个训练器,一边消费一半,这种情况下,我把样本拼起来,把训练器拼起来,我们就做了这么一件事儿,把不同的训练器做了个配对。配对完之后就涉及到训练器的协商,左边的训练器会通知右侧训练器,告诉它我在我们这边拿到了一条数据,这个数据的 meta 信息是什么,同时会告诉对端也去拿相应的文件,两边都把相应文件拉下来之后,相当于做了消费同样文件的动作。这样两边就可以同时进行训练,在训练的过程中,不断的交换这些梯度,把整个模型构建起来。Proxy 的作用是路由控制,比如第一个 trainer 把梯度分发给对端 proxy 之后,对端 proxy 知道它是要发给第一个 trainer 而不是发给第二个 trainer。整个 proxy 是一个无状态的服务,它起到一个 gateway 的作用,是整个系统对外的暴露。我可能只监听对外的一些端口,会有一些安全措施在里面,里面的服务包括 Coordinator、Resource manager、Trainer,它们都是不对外的,保证了数据安全。Trainer 主要包含两个动作,一个就是两边取完数据后的协商,另一个就是在训练过程中正向结果的传输和反向梯度的传递。
整体调度:
整体调度这块是整个系统的总控,它控制整个系统的生命周期,比如任务的启动、停止、监控;资源的申请,比如会给 trainer 申请资源;多任务的并发调度,比如我们进行联邦学习的时候,是和多家公司进行合作,每家公司有不同的训练目标,有的是训练转化的、有的是训练召回的,建模方式可能不太一样,所以说是多任务的并行并发调度。
资源管理:
资源管理用的是 K8S。
加密训练:
同态加密:满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可算不可见”。
假如有两个整数 A 和 B,要计算 A+B 的和 C 是多少。两个数据对别人是不可见的,将这两个数据拿给第三方计算,算之前同时先对 A 和 B 进行加密,再对密文计算结果,在整个计算过程中,原始数据 A 和 B 没有暴露,得到密文结果后,再用同态解密的方式将密文解掉。
线性回归模型的训练步骤:例子是基于第三方的方式,第三方持有私钥,他会把公钥发给 A 和 B,公钥进行加密,私钥进行解密。算 loss 和算梯度的整个过程是加密的,之前未加密的计算都对应着一个加密的计算。对于 LR 模型和树模型都有公开的加密解决方案,计算速度偏慢,无法用在在线。京东在做对神经网络加密方案的研究,目前已经在实验阶段,后续会有可用于实时的方案。
这块是京东 9N-FL 开源的情况,大家有问题可以提 issue。
如图是基于媒体侧广告的投放的基本流程,双方收入累计提升 20%+。
京东 9N-FL 起步于 2019 年 11 月,团队比较精简,以下几个方面待完善:
分享嘉宾:
杜宝坤
京东 | 资深算法专家
京东商业提升事业部-广告质量部-资深算法专家,主要负责营销端的联邦学习以及站外的触发算法。拥有十多年的互联网工作经验,曾经供职于百度、360 等多家知名互联网公司。在互联网搜索、推荐与广告等方向的架构与算法方面,有多年的一线开发与项目管理经验,并且成功主导过多个大型项目。2020 年在京东零售数据算法通道委员会的指导下,作为项目技术与业务负责人带领团队完成京东超大规模联邦学习框架 9N-FL 的落地,并且进行技术赋能,与营销媒体端进行合作,取得了不俗的成绩;同时 9N-FL 也于 2020 年 9 月进行开源,回馈社区。
本文转载自:DataFunTalk(ID:dataFunTalk)
原文链接:京东超大规模联邦学习探索实践
领取专属 10元无门槛券
私享最新 技术干货