人工智能行业所需数据集不但需求量大、标注困难,还存在严重的“孤岛”问题。在产业的横向与纵向维度上,数据因为种种原因难以联合应用,各方的训练模型因此难以完善,而数据的稀缺又反过来加重了各方对数据的“封闭式保护“,这是一个难解的死循环。“巧妇难为无米之炊”,人工智能最大的“痛点”莫过于此。
面对这个问题,AI从业者一直在努力。2016年,谷歌提出“联邦学习”的概念,为解决此类数据问题提供了新的思路。联邦学习本质上是一种加密的分布式机器学习技术,可以在不披露底层数据和加密形态的前提下共建模型。2018年,微众银行向IEEE标准协会提交关于建立联邦学习标准的提案获批,这也是国际上首个针对人工智能协同技术框架订立标准的项目。
现在,联邦学习的内容和实现方法经过微众AI团队不断的丰满完善,终于为数据的联合应用问题夯实了基础。
一、联邦学习,在鸿沟上架设桥梁
那么,究竟如何在保护数据隐私的情况下实现模型共建?这是联邦学习可以解决的问题。
为此,微众银行将联邦学习的应用范畴进行业务扩展,形成了三类体系:纵向联邦学习、横向联邦学习和联邦迁移学习。
三类体系主要参照用户和用户特征两个维度进行划分。其中,用户维度是指用户ID,此ID一般为一个数据集合,可能包括电话号码、身份证号码等一系列数据,用以区分不同的用户;用户特征维度是指用户财务数据、出行数据、爱好数据等与用户画像有关的特征数据。
接下来,我们分别了解三类联邦学习的概念,以及其是如何按照用户和用户特征维度进行划分的。
纵向联邦学习
纵向联邦学习是指,在两个数据集的用户重叠较多而用户特征重叠较少的情况下,我们把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。
比如说,拥有用户财务数据的银行和拥有用户画像的社交媒体公司,是很难共享数据建立模型的。在这种情况下,纵向联邦学习就派上了用场,先进行样本对齐,继而进行算法拆解,最终在保证数据隐私的情况下建立联合模型,双方皆大欢喜。
横向联邦学习
横向联邦学习是指,在两个数据集的用户特征重叠较多,而用户重叠较少的情况下,我们把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。
最典型的例子是银行间共建反洗钱模型。虽然用户特征重叠很多,但各自样本数量非常单薄。最终的诉求还是在保证各自数据隐私的情况下,共建联合的反洗钱模型,且模型效果超过单边数据建模。
联邦迁移学习
而联邦迁移学习是指在两个数据集的用户与用户特征重叠都较少的情况下,我们不对数据进行切分,而利用迁移学习来克服数据或标签不足的情况。
比如在智慧零售领域,用户购买行为、用户个人偏好和产品特点这三类数据可能分散在三家不同领域的公司,这时候联邦迁移学习就可以帮助大家共同构建模型。
三种联邦学习最终都在不共享数据的情况下,实现了模型的共建,这等于弥合了数据孤岛之间的鸿沟,但从理论到实践,仍然需要开拓者身先士卒。
好在,微众银行AI团队完成了FATE平台的建设并于2019年1月宣布开源(Github:https://github.com/WeBankFinTech/FATE
),而且在3月诞生第一位外部代码贡献者。一个开源的、工业级联邦学习应用构建平台终于到来了。
二、认识FATE,构建联邦学习应用
从架构上看,FATE的核心功能主要分为四层:
1、FATE Workflow:通过DAG图定义联邦学习算法工作流。
2、FATE FederatedML Functions:包含联邦学习算法各个功能组件。
3、EggRoll:分布式计算和存储抽象。
4、Federated Network:跨站点网络通信抽象。
其中最核心的部分是FederatedML Function,分为五层结构,需要重点关注的是Eggroll & Federation API,当中包含了计算与存储引擎,也为目标算法提供了友好的API以供调用。
了解FATE平台的架构设计和功能模块划分仅仅是第一步,开发工程师的学习方式始终是“实践与理论并行”,在这一点上,整个FATE开源平台有着非常详尽的文档注释。
安装部署命令:git clone https://github.com/WeBankFinTech/FATE.git
测试命令:sh ./federatedml/test/run_test.sh
在项目的example文件夹下,还实现了很多例子可以作为参考,比如homo_logistic_regression(https://github.com/WeBankFinTech/FATE/tree/master/examples/homo_logistic_regression
)。
这个例子可以方便的让你测试Homo Logistic Regression算法,即一种横向联邦的逻辑回归方法,测试命令为:sh run_logistic_regression_standalone.sh
运行后的日志存放在:your_install_path / logs / homo_logistic_regression _ {timestamp}
当你通过代码熟悉了FATE开源平台的主要功能和模块,就可以开始着手构建联邦学习应用,主要分为四步:
1、选择一个机器学习算法,设计多方安全计算协议。
2、定义多方交互的信息变量。
3、构建算法执行工作流。
4、基于EggRoll & Federation API实现算法工程流中各个功能组件。
一旦你开始从代码入手,踏上了学习FATE及联邦学习的旅途,人工智能就不再是一个难以企及的高新概念,而是一个你真正可以触达,可以解决的技术问题。
三、FinTechathon大赛揭幕,通过实战挑战自己
一个人踏上这段旅途需要克服很多艰难险阻,没有方向的漫游只能让人迷失。为此,FinTechathon微众银行首届金融科技高校技术大赛应运而生,以实战指导理论学习,通过比赛修正成长路径。
FinTechathon 旨在打造金融科技领域最具影响力的高校科技赛事,是面向前沿技术领域人工智能(AI)和区块链(Blockchain)学生团队的竞赛活动。大赛致力于推动国内及海外高校学生探索金融科技前沿领域的技术突破和应用创新,促进相关专业跨校和校企交流,全面提高学生的创新能力、实践能力和就业竞争力。
本次大赛分为AI和区块链两个赛道。AI赛题将基于横向及纵向联邦学习场景,利用AI联邦学习开源平台 FATE 支持的算法设计创新产品应用;区块链赛题围绕 FISCO BCOS开源平台展开,场景不限,设计并开发区块链系统。评审将基于产品完整性、商业价值、创新性三个纬度对作品进行评选,为你打开金融科技神秘的大门。
除此之外,你将有机会得到:
奖金证书:最高 10 万赛事奖励
就业助力:优先实习与就业机会
大咖交流:与技术领域顶级专家零距离
巅峰对决:与国内外高校精英技术学生同台PK
项目孵化:优秀项目可获得创投机会
持续曝光:获金融科技领域高度关注
大赛团队要求每个参赛团队人数为2-5人,大赛组委会将为个人报名的同学提供组队平台。目前,大赛初赛阶段已正式开启,点击阅读原文链接可直接报名了解详情。我们期待和你一起打造FinTech未来!