想要完成企业的纵向联邦学习,如何选择产品呢

分享嘉宾:范涛 微众银行 高级研究员

注:欢迎转载转载请注明出处

导读:随着大数据的进一步发展,重视数据隐私和安全已经成为了世界性的趋势 同时,大多数行业數据呈现数据孤岛现象如何在满足用户隐私保护、数据安全和政府法规的前提下,进行跨组织的数据合作是困扰人工智能从业者的一大難题而“联邦学习”将成为解决这一行业性难题的关键技术。今天会和大家分享下微众银行主导的新一代联邦学习技术及应用而 FATE 则是聯邦学习落地的一个工业级开源平台。

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

  • FATE:联邦学习开源平台

首先和大家分享下联邦学习的背景

今天的汾享就到这里,谢谢大家

范涛,微众银行高级研究员微众银行联邦学习开源平台 FATE 和联邦学习联盟网络技术负责人。加入微众前曾担任百度金融部门 AI 高级工程师,负责数据仓库 GlobalSearch 项目百度舆情,大数据量化基金等多个项目

原文出处及转载信息见文内详细说明,如有侵權请联系 yunjia_ 删除。

本文参与欢迎正在阅读的你也加入,一起分享

1. AI落地的理想与现实

  • 现实中我们嘚数据质量是非常差的,例如聊天数据中有很多噪音;
  • 数据标签收集是比较困难的,很多场景中的数据是没有标签的;
  • 数据是分散的(这也是最重要的一点)每家应用的数据不一样,比如腾讯用的是社交属性数据阿里用的是电商交易数据,微众用的是信用数据都是汾散来应用的。现实中如何进行跨组织间的数据合作,会有很大的挑战

2.国内数据监管法律体系研究

3.基于联邦学习的技术生态

针对上述問题,微众银行AI团队提出了基于联邦学习的技术生态特点如下:

  • 数据隔离:联邦学习的整套机制在合作过程中,数据不会传递到外部
  • 無损:通过联邦学习分散建模的效果和把数据合在一起建模的效果对比,几乎是无损的
  • 对等:合作过程中,合作双方是对等的不存在┅方主导另外一方。
  • 共同获益:无论数据源方还是数据应用方,都能获取相应的价值

【联邦学习的分类体系】

适用场景:横向联邦学習的本质是样本的联合,适用于参与者间业态相同但触达客户不同即特征重叠多,用户重叠少时的场景比如不同地区的银行间,他们嘚业务相似(特征相似)但用户不同(样本不同)

step1:参与方各自从服务器A下载最新模型;

step2:每个参与方利用本地数据训练模型,加密梯喥上传给服务器A服务器A聚合各用户的梯度更新模型参数;

step3:服务器A返回更新后的模型给各参与方;

step4:各参与方更新各自模型。

步骤解读:在传统的机器学习建模中通常是把模型训练需要的数据集合到一个数据中心然后再训练模型,之后预测在横向联邦学习中,可以看莋是基于样本的分布式模型训练分发全部数据到不同的机器,每台机器从服务器下载模型然后利用本地数据训练模型,之后返回给服務器需要更新的参数;服务器聚合各机器上的返回的参数更新模型,再把最新的模型反馈到每台机器在这个过程中,每台机器下都是楿同且完整的模型且机器之间不交流不依赖,在预测时每台机器也可以独立预测可以把这个过程看作成基于样本的分布式模型训练。穀歌最初就是采用横向联邦的方式解决安卓手机终端用户在本地更新模型的问题的

适用场景:纵向联邦学习的本质是特征的联合,适用於用户重叠多特征重叠少的场景,比如同一地区的商超和银行他们触达的用户都为该地区的居民(样本相同),但业务不同(特征不哃)

       纵向联邦学习的本质是交叉用户在不同业态下的特征联合,比如商超A和银行B在传统的机器学习建模过程中,需要将两部分数据集Φ到一个数据中心然后再将每个用户的特征join成一条数据用来训练模型,所以就需要双方有用户交集(基于join结果建模)并有一方存在label。其学习步骤如上图所示分为两大步:

第一步:加密样本对齐。是在系统级做这件事因此在企业感知层面不会暴露非交叉用户。

第二步:对齐样本进行模型加密训练:

step1:由第三方C向A和B发送公钥用来加密需要传输的数据;

step2:A和B分别计算和自己相关的特征中间结果,并加密茭互用来求得各自梯度和损失;

step3:A和B分别计算各自加密后的梯度并添加掩码发送给C,同时B计算加密后的损失发送给C;

step4:C解密梯度和损失後回传给A和BA、B去除掩码并更新模型。

在整个过程中参与方都不知道另一方的数据和特征且训练结束后参与方只得到自己侧的模型参数,即半模型

预测过程:由于各参与方只能得到与自己相关的模型参数,预测时需要双方协作完成如下图所示:

适用场景:当参与者间特征和样本重叠都很少时可以考虑使用联邦迁移学习,如不同地区的银行和商超间的联合主要适用于以深度神经网络为基模型的场景。

遷移学习介绍:迁移学习是指利用数据、任务、或模型之间的相似性,将在源领域学习过的模型应用于 目标领域的一种学习过程。其實我们人类对于迁移学习这种能力是与生俱来的。比如我们如果已经会打乒乓球,就可以类比着学习打网球再比如,我们如果已经會下中国象棋就可以类比着下国际象棋。因为这些活动之间往往有着极高的相似性。生活中常用的“举一反三”、“照猫画虎”就很恏地体现了迁移学习的思想

联邦迁移学习的步骤与纵向联邦学习相似,只是中间传递结果不同(实际上每个模型的中间传递结果都不同)这里重点讲一下联邦迁移的思想:

1.同态加密技术保护隐私

纵向联邦学习的技术实现,首先应做好两点来保护数据隐私:

  • 建模样本 ID 差集不向对方泄露,在合作之初需要进行用户匹配需要找出用户的交集,但是不能泄露差集因为这是企业最核心的资产。
  • 任何底层 ( XY ) 数據不向对方泄露,建模过程中如何保证数据不被泄露
  • 通过 RSA 和 Hash 的机制,保证双方最终只用到交集部分且差集部分不向对方泄露。
  • 采用同態加密技术这个过程中,各方的原始数据以及数据加密态都没有被传输。交互部分双方通过损失中间结果,用同态加密的机制进行茭互模型训练完之后,会各自得到一个模型各自的模型会部署在各自的一方,就是如果我只提供了3个特征那么我只有3个特征的模型,只提供2个特征就只有2个特征的模型,任何一方的模型都没法单独去应用只有共同应用的时候,才能进行决策

2.基于隐私保护的样本 id 匹配

刚才提到基于隐私保护的样本id 匹配,和大家分享下具体的技术方案比如,A 方有 [u1u2,u3u4] 四个用户,B 方有 [u1u2,u3u5],那么整个过程中如哬保证双方知道 [u1,u2u3],而 A 方不知道 B 方有 [u5]B 方不知道 A 有 [u4]?

这里是通过RSA 和 Hash 的机制做到的B 方会作为公钥的生成方,会把公钥给到 A 方A 方基于 Hash 引鼡一个随机数,再交互传给 B 方B 方同时做 Hash 然后传给 A 方,A 方会最后做一个结果的交集整个过程中,你可以看到没有任何一个明文数据传递過来即使采用暴力或者碰撞的方式,依然解析不出原始的 id通过这套机制,我们很好的保护了双方的差集部分

分享了匹配过程中隐私保护的问题,接下来分享一个通用的技术同态加密。

刚才提到建模过程中引用了同态加密技术,比如对两个数字进行加密加密后两個数字的密文可以进行数学运算,比如加法其结果依然是密文,对密文解密后得到的结果和它们明文的加法结果是一样的

通过这样的哃态加密技术,我们把它应用到机器学习包括特征工程中。接下来会重点介绍联邦机制下特征工程和机器学习建模的一些细节。

我们知道特征工程是机器学习建模中非常重要的一环在联邦机制下,如何完成联邦特征工程尤其 A 方只有 X 没有 Y,如果想做一个 WOE 或者 IV 值的计算昰非常困难的那么如何在联邦学习的机制下,A 方利用 B 方有 Y 的数据计算 WOE 和 IV 值且在这个过程中 B 方没有泄漏任何数据?

首先B 方对 y 以及 1-y 进行哃态加密,然后给到 A 方A 方会对自己的特征进行分箱处理,进而 A 方在分箱中进行密文求和的操作再把结果给到 B 方进行解密,然后算出 A 方烸个特征分箱的 WOE 值和 IV 值在这个过程中,没有明文数据传输A 方不知道 B 方的 y 值,同时 B 方也不知道 A 方每个特征的值是什么从而在安全隐私保护的情况下,完成了特征工程的计算

说完特征工程,再讲下最核心的机器学习比如常见的逻辑回归,这是经典的 loss function 和梯度刚才说的哃态加密的特性,目前用到的是半同态的技术所以,需要对 loss function 和梯度进行多项式展开来满足加法操作。这样就可以把同态加密的技术应鼡在 loss function 和梯度中

在很多现实的业务应用中,树模型是非常重要的尤其是 XGBoost,对很多应用来说提升非常明显,因而被业界广泛使用在联邦机制下,如何构建这样的树这里我们提出了 SecureBoost 技术方案,双方协同共建一个 boosting 树我们证明了整个过程中是无损的。

SecureBoost 的核心技术点上图為基于 SecureBoost 构建的树,A 和 B 代表不同数据的 ownerL0,L1L2,L3L4 代表不同 feature 的分割点编码,整颗树由 A 和 B 共同维护每一方只维护自己的树节点,对另外一方嘚树节点信息不可见(只知道编码不知道编码具体含义),保证整个训练和预测过程都是安全的

构建 SecureBoost 核心的关注点是如何构建分裂节點,尤其一方只有 X另一方有 ( X,Y ) 的情况

基于同态加密的机制,B 方会把1阶梯度和2阶梯度传递给 A 方A 方基于分箱之后的结果算出每个分箱中嘚1阶梯度和2阶梯度的求和值,然后传递给 B 方B 方会解密这个求和值,算出信息增益然后给到 A 方。求分裂节点的核心就是如何算信息增益通过这样的机制,就可以算出每个分裂节点同时没有泄露任何隐私信息。


联邦学习目前已经赋能众多关键领域取得了不错的效果:

  • 銀行+监管,联合反洗钱建模
  • 互联网+银行联合信贷风控建模
  • 互联网+保险,联合权益定价建模
  • 互联网+零售联合客户价值建模

以其中的两个場景以及在视觉领域的应用来说明:

对于保险公司如果想做个性化的定价,是一件非常困难的事情保险公司只有一些业务数据、承保数據和理赔数据,通过这样的数据对用户做千人千面的定价是非常难的。通过联邦学习机制可以融合多个数据源,来构建这样一个千人芉面的定价

这是我们目前在做的案例,当你购买权益产品之后如果违章了,可以帮你免赔在这里每个人看到的价格是不一样的,这僦是我们通过联邦学习帮它们做的我们综合了出险数据和互联网数据,如标签、用户画像构建了一个基于保险定价的联邦学习产品。

2.尛微企业信贷风险管理

很多时候对小微企业我们只有央行的征信报告想要更精准的刻画企业的信用状况,需要更多的数据比如发票、笁商、税务的数据。

这是我们的一个案例我们利用了开票金额和央行的征信数据共建了一个联邦学习模型,来预估每个企业的风险

3.联邦学习在视觉领域的应用

与 AI 公司探索重塑机器视觉市场,利用联邦学习的机制相对于本地建模,进一步提升算法准确率并且形成网络效应,降低长尾应用成本提升视觉业务总体利润率。


1. 联邦学习开源平台:FATE微众银行AI团队

FATE 定位于工业级联邦学习系统能够有效帮助多个機构在符合数据安全和政府法规前提下,进行数据使用和联合建模

  • 支持多种主流算法:为机器学习、深度学习、迁移学习提供高性能联邦学习机制。
  • 支持多种多方安全计算协议:同态加密、秘密共享、哈希散列等
  • 友好的跨域交互信息管理方案,解决了联邦学习信息安全審计难的问题
  • 一站式建模过程的联邦化
  • 跨站点数据传输安全性和可管理性,如何让交互部分是可以被管理和被审计的
  • 异构基础架构自適应,联邦学习可能会运行在 CPU、GPU 和端上如何让上层不受底层的变化而变化。

接下讲下 FATE 的整体架构:

  • EggRoll:分布式计算和存储的抽象;
  • FATE FederatedML:联邦學习算法模块包含了目前联邦学习所有的算法功能;
  • FATE-Flow | FATE-Board:完成一站式联邦建模的管理和调度以及整个过程的可视化;

一站式联合建模Pipeline,其鋶程:在开发环境下其流程是从联邦统计->联邦特征工程->联邦模型训练,当上线部署的时候会有联邦在线推理模块底层则会采用多方安铨计算协议去支持上层各种联邦算法。

FATE 的五大核心功能

  • MPC Protocol:包括同态加密、秘密共享等多种多方安全协议
  • Numeric Operator:会抽象出数学算子,比如加法戓者乘法;
  • ML Operator:用建好的数学算子构建机器学习算子而不用管底层的安全协议是什么;
  • Algorithms:有了 ML 算子之后就构建各种算法模型。

EggRoll是整个分咘式计算和存储的抽象。面向算法开发者通过 API 实现分布式计算和存储。上面为 EggRoll 的整体架构图

Federated Network:联邦学习不仅需要分布式计算,还需要跨站点通信和交互上层会提供一个 API 给到开发者,通过 Remote 和 Get 就可以完成数据点的收发具体模块,如上图

整个一站式联合建模 Pipeline 需要统一的調度管理。右边为 A、B 双方的建模流程某些步骤是 A、B 双方共有的,某些步骤可能只有一方有所以 FATE-Flow 完成了下述管理:

FATE-Board 的目的是实现整个联匼建模 Pipeline 可视化追踪,记录联邦学习的全过程可以监控建模进行到哪个步骤,以及模型效果如何

这是FATE 的部署架构,每一方都是差不多的是一个对称的结构,通过 EggRoll实现分布式计算和存储通过 Federation Service 和外部交互。

现实中FATE 是如何应用的呢?这里和大家分享一个示意图会在每一方部署一套 FATE 系统,双方都是在各自部署的 FATE 系统中进行交互

如果对 FATE 感兴趣,作为开发者利用联邦学习框架实现算法只需要四步:

  1. 选择一個机器学习算法,设计多方安全计算协议
  2. 定义多方交互的数据变量

7.目前 FATE 项目中的算法和案例

如上图这是目前FATE 项目中的算法和案例,会根據需求不断增加各种各样的算法。

我要回帖

 

随机推荐