Fork me on GitHub

百度点石联邦学习技术的应用与实践

导读: 随着信息技术的飞速发展,人类社会进入大数据时代。由希捷科技赞助、国际数据公司(IDC)发布的白皮书《数据时代 2025》预测,2025 年全球数据量将达到 163ZB,将是目前的 10 倍。但据统计 98% 的企业数据都存在数据孤岛问题,各自存储难以流通,使得数据价值无法得到充分利用。而且随着数据量级的增长,数据本身的一些特殊性质,数据流通的问题就显得特别重要。

今天的介绍会围绕下面三点展开:

  • 联邦学习概念
  • 联邦学习关键技术
  • 点石联邦学习平台

分享嘉宾|彭胜波 百度点石(安全部) 高级研发工程师
编辑整理|孙迎港 哈尔滨理工大学
出品社区|DataFun


01 联邦学习概念

首先分享下联邦学习的概念。

1. 行业机遇和挑战

图片

近年来,数据安全及隐私保护日益成为政府、公司和公众关注的焦点。从全球、国内到公司,数据安全及隐私保护领域相关法规政策规范不断完善,执法力度加大、行业典型案例激增。

在大数据时代发展过程中,面临着一些行业机遇与挑战:

  • 大数据产业快速发展,产业规模超万亿元大关
  • 非法贩卖问题和数据隐私泄露
  • 隐私保护技术发展迅速
  • 国际政策法规法律出台
  • 国内政策法规出台
  • 公司制定数据安全规范

图片

以传统的营销场景为例,一般是需要融合多方数据进行建模。一般主要有一方数据、二方数据,有时候还希望有第三方数据存在。所谓一方数据一般就是企业自己收集的消费者数据,比如京东、淘宝的一些购买记录一些付费记录;某 APP 的下载量或用户激活记录数据。这些数据一般都存储在企业自身拥有的数据库中。第二方是指直接从受众那里收集到的数据,比如广告平台提供的用户 CTR 点击下载浏览数据。此外还有用到第三方数据,由第三方平台提供,这种方式一般是为了增强第一方数据,扩大受众范围。因为三方数据存在于不同的企业之中,所以我们在进行营销的时候,想要利用三方的数据,存在着很大难度。

2. 数据共享技术演变

图片

数据共享技术的发展大致上可以总结为三代:

  • 第一代是通过特定的人员使用加密的u盘去拷贝 。一般应用在银行或者一些金融机构,尤其是外包人员想访问金融机构敏感数据的情况。必须使用这种加密u盘或对数据进行脱敏、匿名化、Hash 处理。
  • 二代技术是基于隔离域安全沙箱技术 ,数据提供方将数据放到安全沙箱里,然后需求方去申请数据,申请完数据之后利用这个数据去进行建模,完成一个数据的安全使用过程。
  • 第三代来是目前主流接受的使用无中心的“联邦计算”的形式。

3. 联邦学习场景概述

图片

举例来说明上述提到的联邦学习的应用场景。第一个是姚期智教授在 1982年提出的百万富翁问题,两个富翁想比较一下谁更富有,但是他们同时又不想泄露自己具体的财富值,在这种情况下就需要使用安全多方计算技术。另外一个就是隐私求交的应用,比如某两个人手机里面都有通信录信息,他们想要找到共同好友的同时,又不想泄露除共同好友之外的其他的好友信息。这种情况我们就可以通过隐私求交,也就是 PSI 技术来达到这种目的。

02 联邦学习关键技术

图片

目前点石联邦学习关键技术主要包括:

  • 多方安全计算(MPC)
  • 可信执行环境(TEE)
  • 差分隐私(DP)
  • 联邦学习(FL)

1. 多方安全计算(MPC)

图片

这里主要介绍 MPC 的加法和乘法计算。对于加法来说,参与方 A 和参与方B 把自己的数据分成两份,然后 A,B 双方将其中一份数据分享给另外一方,他们各自利用对方发来那份数据进行一个计算,最后双方将计算结果再进行相加,就得到了最终的结果;而对于乘法来说,计算步骤相对来说复杂一些。乘法过程需要事先构建好一个三元组,然后根据这个三元组里面的元素 a 和 b 与元素 x 和 y 进行一个运算,之后进行一个 Reconstruction 重构操作,然后根据重构元素算出了每一方的 z。

2. 可信执行环境(TEE)

图片

TEE 是一种基于硬件的实现方案,我们一般将TEE定义为“一组软硬件组件,可以为应用程序提供必要的设施”,它可以为应用程序提供必要的一个保护措施。一般来说他的安全级别有两种,第一种是要求可以抵御软件级别的攻击;另外一种是要求可以同时抵御软件和硬件攻击。具体而言技术特点主要体现在隔离性、软硬件协同性和富表达性。根据 TEE 的技术特定可以总结其优势:

  • 可信区域内可支持多层次、高复杂度的算法逻辑实现。
  • 运算效率高,相较于明文计算仅有 3-4 倍损耗,相比MPC及联邦学习 100+ 倍的运算损耗具有一定的优势。
  • 能够应对恶意攻击模型下的攻击手段,通过可信度量的方式保证TEE的运行逻辑的可信及可度量性。

目前 TEE 主要用于安全性要求比较高的操作,比如密码指纹、用户的人脸认证信息以及移动支付密码等敏感数据的保护。例如,使用手机刷脸支付,首先是第一次手机要将采集的人脸数据存到安全芯片中。当我们用手机去刷脸支付的时候,先通过安全芯片读取我们之前存入的人脸数据 ,然后跟我们手机摄像头当前扫到的人脸数据进行比对,比对校验通过之后,就认为这次识别成功了。目前业界成熟的 TEE 技术有 Intel 的 SGX 和 Arm 的 TrustZone 以及国产的海光 SEV 还有 Risc-V 开源的 KeyStone,当然还有近些年百度开源的 MesaTEE。

3. 差分隐私(DP)

差分隐私是一种很常见的数据保护技术,分为交互式差分隐私和非交互式差分隐私。交互式差分隐私就是一个客户发送一个请求之后,源数据集将真实结果范围,但是通过差分隐私保护算法把这个结果进行混淆之后,再返回给用户。非交互式差分隐私是用户发送一个请求之后,直接拿到一个通过差分隐私保护算法混淆后的数据集。

图片

假设存在一个数据表,该数据是某医院的门诊病历记录,其中包括病人的姓名、年龄、性别、临床诊断等信息。图中蓝色部分是原始数据记录的直方图发布形式。如果攻击者想要知道 Cole 的诊断情况,并且具有强大的背景知识,如攻击者已经知道 Cole 的性别为男、年龄在 60~ 80 岁之间,以及其他人的临床诊断信息,那么攻击者将能够推断出 Cole 的临床诊断信息,从而导致 Cole 的隐私信息被泄露。图中橙色部分给出了经过差分隐私技术处理过的直方图发布的结果,从图中可以看出,即使攻击者知道年龄在 60~80 岁之间除了 Cole 以外所有人的信息,他也没办法获取 Cole 的诊断信息。

差分隐私中一个关键概念是相邻数据集,假设给定两个数据集 D 和 D’,如果它们不同的数据量很少,那么这两个数据集可称为相邻数据集。对于一个随机算法 A 如果其分别作用于两个相邻数据集得到的两个输出分布式难以区分,那么这个算法就被认为达到差分隐私的效果。

这里的随机算法,是指对于特定输入,该算法的输出不是固定值,而是服从某一分布的算法,如下图所示,也就是说这个算法作用于任何相邻数据集(D和D’),得到一个特定输出 O 的概率是差不多,从而观察者通过观察输出结果很难觉察出数据集的细小变化,通过这种方式来达到保护隐私的目的。

4. 联邦学习(FL)

图片

联邦学习是目前主流的隐私保护技术,分为横向联邦,纵向联邦与迁移联邦,其中纵向联邦目前使用场景最多。

横向联邦主要是解决各参与方样本不足的问题 ,其主要原理是每个参与方在本地建模,然后把模型参数汇总到中心服务器,中心服器拿到参与方模型参数之后进行安全聚合,然后把聚合后的平均模型再广播回给各个参与方。各参与方与中心服务器不断地进行参数交互,直到最后的模型损失达某个阈值或训练达到指定迭代次数之后停止训练。横向联邦的应用场景, 包括 C 端设备,输入法:词频统计、输入提示等。

相对于横向联邦来说, 纵向联邦主要解决数据信息维度不足的问题 。比如两个公司进行数据建模,他们事先求出一部分交集上的用户,其中一个公司交集用户上的特征数据是另外一个公司没有的。他希望融合这两个公司的用户数据信息进行联合建模,此时的建模效果往往会比原来单方的数据效果更好一些。

03 点石联邦学习平台

1. 点石联邦学习平台概述

图片

目前因为 MPC、TEE、DP 和 FL 技术的使用门槛相对来说比较高。点石平台依托于这些安全计算技术,在主从分布式架构基础上提供了数据核实、联合分析、联合建模以及数据脱敏方面的一些算法。优势如下:

  • 能够为多个参与方提供计算,降低了用户使用这些技术的门槛。打造了一种数据可用不可见,相遇不相识的体验场景。
  • 通过平台提供的工程上的优化,实现了并发计算以及算法优化,目前平台支持 10 亿对10亿级别的隐私求交,或者 10 亿级别对百万级别隐私求交,时间能控制在一小时之内完成,此外平台中 NN、XGB 算法支持千万*万维量级数据的联合建模,当然这种情况需要算力的支持。
  • 设计了一种基于 DSL 的任务配置方式,支持可编程可扩展。载入平台内置的算法可以满足大多数复杂的计算场景。
  • 支持私有化 + SaaS 的部署方式,支持云物理机混布方式,方便客户去部署点石联邦学习平台。

2. 点石联邦学习平台设计

图片

接下来给大家介绍点石联邦学习平台设计,从下到上总共分为六层:

  • 运行环境这一层,我们支持物理机、Docker、K8s 和 Slurm。
  • 通信层依赖 TLS、HTTPS 等,保证各参与方之间通信安全,以及参与方与协调方之间通信安全。
  • 调度层提供参与方之间的协调运算以及计算任务的分发。
  • 组件层支持算法的插拔,将算法制作成可插拔的插件,借助 Spark 与 Calcite 支持多源异构数据的读写,支持市面上所有格式数据的读入;将业务需求通过 DSL 进行合约编排,使其支持上层的应用。

3. 点石联邦学习平台计算合约(DSL)

图片

DSL 具体过程有三个步骤:DSL 编写、DSL 授权和 DSL 执行

其中在编写 DSL 时,需要导入数据集,因此我们需要通过授权的方式允许参与方获取数据集。还支持 DSL 授权方式的变更,方便用户使用。通过支持 DSL 配置可视化,直观查看训练步骤。

4. 点石联邦学习平台算法支持

图片

点石联邦学习平台目前支持的算法比较多,算法分类包括:数据核实、联邦学习、MPC 和特征工程。

每种算法都有一些使用场景,比如数据核实可以用于黑名单共享,多头借贷核实和内政查询等。

5. 点石联邦学习平台算法可扩展

图片

平台为了解决密文计算的开销与通讯的开销,设计了分布式的计算架构

比如我们的隐私求交过程,首先我们会将参与方的数据切分到多个工作节点上,然后每个工作节点都进行隐私求交,求完之后再把结果进行汇总。同时根据这个结果,我们做了一些实验,在 1000 万对 10 亿的数据规模下的实验结果,我们发现随着work数的增多,吞吐量是在上升的,计算开销是在降低的。也就是说,在一定场景可以通过扩充资源的条件,达到原来集中式训练的效果,在某些场景下可能比集中式的性能更好。

6. 点石联邦学习平台灵活部署

图片

部署方式就是前面提到的 ** SaaS + 私有化部署方式** 。

协调节点作为整个平台负责整个平台的协调管理,一般部署在公有云,比如说可能是部署在百度上,或者其他的公有云。计算节点,也就是参与方,一般进行私有化部署,但是需要一些配置网络。因为在联合计算时计算节点需要与协调节点之间进行通讯,而且计算节点还需要协调节点提供的一些其他服务,在运算的过程中计算节点还会不间断的定时向这个协调节点发送心跳。

7. 相关资质认证&行业标准

图片

随着平台近几年的深入研究,点石联邦学习研发团队创造了一些成果,获得了一些行业认证,国产化的兼容认证 ,创建了数十项国际以及国家行业标准,同时形成了一些比较优秀的开源案例。
|分享嘉宾|

图片

彭胜波

百度点石(安全部) 高级研发工程师

研究生,2019年毕业,毕业之后在百度主要负责联邦学习平台和算法相关研究。


本文地址:https://www.6aiq.com/article/1669645367769
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出