目录
一、联邦学习(目标:解决数据的协作和隐私问题)
1、特点:
-
数据隔离: 联邦学习的整套机制在合作过程中,数据不会传递到外部。
-
无损: 通过联邦学习分散建模的效果和把数据合在一起建模的效果对比,几乎是无损的。
-
对等: 合作过程中,合作双方是对等的,不存在一方主导另外一方。
-
共同获益: 无论数据源方,还是数据应用方,都能获取相应的价值。
2、联邦学习体系
-
纵向联邦学习(样本对齐的联邦学习)
-
1、概念:如果参与者的数据中样本重叠多,特征重叠少。例如:同一地区的银行和电商,就需要先将样本对齐,由于不能直接比对,我们需要加密算法的帮助,让参与者在不暴露不重叠的样本情况下,找出相同的样本后,联合他们的特征进行学习
2、特点:样本重叠多,特征重叠少,
3、使用场景:两个数据集的用户(U1,U2,......)重叠部分较大,而用户特征(X1,X2,......)重叠部分较小;
4、如何实现纵向联邦学习、保护好数据隐私: 建模样本ID差集不向对方泄漏,在合作之初需要进行用户匹配,找出用户的交集,并且不能泄漏差集,因为这是企业最核心的资产
方案一:
-
RSA 和 Hash 的机制,保证双方最终只用到交集部分,且差集部分不向对方泄露。
-
还是以前面提到的企业A和企业B来解释。假如企业A有[A1,AB2,AB3,AB4,AB5]五个客户,企业B有[AB2,AB3,AB4,AB5,B6]五个客户,那么如何在整个训练和应用的过程中保证双方只知道共同客户[AB2,AB3,AB4,AB5],而企业A不知道企业B有客户[B6],企业B不知道企业A有客户[A1]?
-
事实上,这可以用RSA和Hash机制来实现。企业B作为公钥的生成方,把公钥给企业A,企业A基于Hash引用一个随机数再交互传给企业B,企业B同时做Hash传给A,那么企业A就会最后做一个结果的交集。整个过程中,没有任何明文数据的传递,即使采用暴力或者碰撞方式,依然不能解析出原始的ID,通过这种机制就能很好保护企业A和企业B客户的差集部分。
方案二:
-
用同态加密技术
用同态加密技术,这个过程中,各方的原始数据,以及数据加密态都没有被传输。交互部分,双方通过损失中间结果,用同态加密的机制进行交互,模型训练完之后,会各自得到一个模型,各自的模型会部署在各自的一方,就是如果A只提供了3个特征,那么A只有3个特征的模型,只提供2个特征,就只有2个特征的模型,任何一方的模型都没法单独去应用,只有共同应用的时候,才能进行决策
-
-
横向联邦学习(特征对齐的联邦学习)
-
1、概念:如果联邦学习的参与者们业务相似,数据的特征重叠多,样本重叠少,例如:不同地区的两家银行,就可以通过上传参数,在服务器中聚合更新模型,再将最新的参数下放完成模型效果的提升。
-
2、特点:样本重叠少,特征重叠多
3、使用场景:两个数据集的用户特征(X1,X2,......)重叠部分较大,而用户(U1,U2,......)重叠部分较小;
-
联邦迁移学习
1、概念:如果样本和特征重合的都不多,希望利用数据提升模型能力,就需要将参与者的模型和数据迁移到同一空间中运算。
2、特点:样本重叠少,特征重叠少
3、使用场景:两个数据集的用户特征(X1,X2,......)重叠部分较大,而用户(U1,U2,......)重叠部分较小;
3、联邦学习应用案例
两个场景和视觉领域的应用:
-
保险行业个性化定价
对保险公司而言,个性化定价是很困难,因为保险公司一般只有业务数据、承保数据和理赔数据,用这么局限的数据来对客户做千人千面的定价基本无法实现。而通过联邦学习,可以融合来自互联网企业的数据集,综合出险数据和互联网数据(如年龄、职业、特定行为次数、出险概率等等)来构建基于保险定价的联邦学习产品,实现较精确的个性化保险定价。
-
小微企业信贷风险管理
银行往往会希望获取到完备的数据集,例如来自央行征信报告、上下游、行政、税务、财务、舆情、无形资产、司法、声誉、工商等方面的数据,但实际情况却是非常受限的,基本只能获取到央行征信报告。因此就可以利用联邦学习,对合作企业用户的其他方面数据特征属性进行联合建模,来提高预测的准确度。
-
视觉领域
在装备制造业、物联网AIOT、智慧安防等行业,行人检测、出行检测、区域检测、设备异常检测、安全帽检测、火焰检测、烟雾检测等情境下,由于存在标签数量少、数据分散、集中管理成本高等问题,就可以借助联邦学习拓宽市场,进一步提升算法准确率,形成网络效应,降低长尾应用成本,提升视觉业务总体的利润率。
二、机器学习集合Fate框架
一、基本概念:
1、Fate概念:
微众银行AI团队于2019年1月份宣布对外开源的联邦学习平台,,它定位于工业级联邦学习系统,能够有效帮助多个机构在符合数据安全和政府法规的前提下,进行数据使用和联合建模
2、Fate设计原则:
-
支持多种主流算法:为机器学习、深度学习、迁移学习提供高性能联邦学习机制
-
支持多种多方安全计算协议:同态加密、秘密共享、哈希散列等
-
友好的跨域交互信息管理方案,解决联邦学习信息安全审计难的问题
3、Fate框架的由来
-
式建模过程的联邦化
-
C协议下分布式算法(on WAN)易理解和易维护
-
点数据传输安全性和可管理性,如何让交互部分是可以被管理和被审计的
-
基础架构自适应,联邦学习可能会运行在CPU、GPU和端上,怎么让上层架构不受底层的影响
二、整体架构:
1、 EggRoll:分布式计算和存储的抽象;
(1) 核心功能:分布式计算和存储抽象
(2) 编程框架:面向算法开发者,通过API实现分布式计算
(3) 计算/存储架构:
-
学习一方分布式计算和存储
-
模块
(4) Meta-Service:元信息管理
-
Roll:数据/计算 调度(to eggs),聚合操作等
-
Egg:计算、存储引擎
2、 Federated Network:跨域跨站点通信的抽象;
(1) 核心功能:跨站点网络通信抽象
(2) 编程框架:Federaton API:面向算法开发者,通过API实现跨站点通信和交互。
(3) 通信架构
-
联邦学习不仅需要分布式计算,还需要多个参与方跨站点通信和交互
-
模块
-
Meta-Service:元信息管理
-
Proxy:应用层联邦学习路由
-
Federation:Global Object(i.e. data to be 'federated' among parties)抽象和实现
-
FATE-Exchange
-
3、 FATE FederatedML:联邦学习算法模块,包含了目前联邦学习所有的算法功能;
(1) 核心功能:联邦学习算法各个功能组件
-
eggRoll & Federation API:底层是 EggRoll 的算子,比如 Map 和 MapValues,Remote 和 Get 可以完成整个分布式计算的抽象;
-
MPC Protocol:包括同态加密、秘密共享等多种多方安全协议,
-
Numeric Operator:会抽象出数学算子,比如加法或者乘法;
-
ML Operator:用建好的数学算子构建机器学习算子,而不用管底层的安全协议是什么;
-
Algorithms:有了 ML 算子之后就构建各种算法模型。
4、 FATE-Flow | FATE-Board:完成一站式联邦建模的管理和调度以及整个过程的可视化;
(1) 核心功能:联邦建模Pipeline和可视化
(2) 整个一站式联合建模Pipeline需要统一的调度管理,而FATE-Board的作用就是将建模流程、步骤和效果等通过可视化的方式呈现出来,实现整个联合建模 Pipeline 可视化追踪,记录联邦学习的全过程。FATE-Flow能够完成下述管理:
-
联邦机制下多方非对称DAG图Paser
-
联邦建模生命周期管理
-
联邦建模实验管理
-
联邦建模模型管理
-
联邦多方任务调度
5、 FATE-Serving:联邦学习在线推理模块。
· 核心功能:联邦在线模型服务
三、利用FATE平台进行开发的流程如下:
-
选择一个机器算法,设计多方安全协议;
-
定义多方交互的数据变量
-
构建执行工具流
-
基于EggRoll&Federation Api实现算法工作流中各个功能组件
四、具体使用FATE进行项目构建
1.数据准备及数据预处理
1.1获取数据集
1.下载数据集:车辆贷款违约预测
随着监管政策步入关键落地期,受合规监管标的限额影响,曾备受追捧的大额标的逐渐消失,小额分散的车贷业务成为了网贷平台转型的主要方向之一。车贷资产由于进入门槛低、借款额度低、流动性高、限期短等优点,但如何做好风险防控依然是行业的主要问题之一。国内某贷款机构就面临了这样的难题,该机构的借款人往往拖欠还款或拒不还款,导致该机构的不良贷款率居高不下。面对信贷风控问题,可建立风险识别模型来预测可能违约的借款人。
数据集给定某机构实际业务中的相关借款人信息,包含53个与客户相关的字段,其中loan_default字段表明借款人是否会拖欠付款。我们将通过FATE联邦训练方式的集训练模型,来预测测试集中loan_default字段的具体值,即借款人是否会拖欠付款,以此为依据,降低贷款风险。
2.读取数据,观察数据信息
3.观测数据的属性名;
4.数据处理
(1) 首先要提取出我们最终要预测的属性值:
(2) 删除无用特征:
(3) 重新观察保留下来的特征:
(4) 数据归一化:
5.总结数据特征
6.创建索引
7.打乱数据,重新观察数据特征
1.2横向数据集切分
将数据集切分为特征相同的横向联邦形式切分策略:
前120000个数据作为训练数据,后30000个数据作为测试数据
训练数据中,前60000个作为机构A的数据,存为loan_1_train.csv,后60000个数据作为机构B的数据,存为loan_2_train.csv
测试数据不切分,存为loan_eval.csv
今天分享就到这里!