0%

【联邦学习之旅】01 联邦学习简介

作为系列的第一篇,本文会介绍联邦学习的基本概念和相关应用,给大家一个大致的认识。


大数据 vs 隐私

大数据时代,每个人都成为了数据,更可怕的是,这些数据足够多足够准确的话,就会出现比自己更了解自己的算法模型。好在日常生活的方方面面并不是由同一家公司掌控(注:千万不要过度依赖同一家公司的所有服务),所以相对来说个人可能还有点隐私。但如果数据可以任意交易,各种数据都打通之后,那真的是数据之下,一切都是透明的。

好在现在情况在慢慢好转,近年来关于隐私的话题越来越热门,苹果/小米等厂商也在做各种各样不同的尝试,用技术手段为每个人都留下更多的空间。不过在国内,因为法律法规和商业环境问题,数据交易依然简单粗暴,有些公司千方百计收集用户信息,有些公司千方百计购买用户隐私,只为通过算法和运营不断刷新指标。

难道大数据和隐私真的是水火不相容吗?倒也未必,联邦学习也许就是其中一种能够平衡这两者的技术工具。

何为联邦学习

在我看来,联邦学习就是通过加密方法在不暴露数据明文的前提下,能够利用这些数据来更新模型参数,达到更好的训练效果。在这样的设定下,各方的数据都留在本地,计算时各个参与者的身份和地位平等,最终得到的是一个分布式的、共有的模型,并且能够从中共同获益(这个往细想会有很多变化,最后聊)。当然了,这样训练出来的模型必须要和把全部数据放到一起训练的模型效果差别不大,不然就没有多少意义了。

目前来说,联邦学习主要用于跨领域企业的数据合作(同领域的比较敏感,一般比较难合作),长远的愿景是基于这种新的联合建模建立新的业态和模式(我估计至少还需要 5 年)。

联邦学习根据不同的数据类型,主要分为以下三种类型:

横向联邦学习通俗理解就是扩充样本(有些情况我没碰到过,但别人碰到过,我们互相借鉴),取出双方特征相同但用户不完全相同的那部分数据进行训练。简写为:同领域,用户重叠少,特征重叠多。一个可能的场景是不同地区的银行通过联邦学习共建反洗钱模型,不同银行之间不需要交换信息,但模型效果会比单独建模要好。

纵向联邦学习通俗理解就是扩充特征,目前比较多的合作也是纵向联邦,毕竟大家图的都是自己没有的那部分数据,用的是双方用户相同但特征不同的数据。简写为:不同领域,用户重叠多,特征重叠少。一个可能的场景是某银行和某电商联合建模,优化银行的贷款逾期模型,这里银行拥有 X1,Y,电商拥有 X2,银行图的就是电商的 X2 以便提升模型效果。这种方式里,双方需要交换一些中间参数结果,这也使得整个系统复杂度较高。

联邦迁移学习通俗理解就是扩充样本+特征,这种场景相对来说还比较少,因为没有数据支撑的模型,用起来也不放心嘛。理想状态下和看名人传记差不多,名人的经历和所处时代和我们不一样,但是有些经验是相通的。简写为:用户和特征重叠都少。这部分场景我没想到,实话说有点脱裤子放屁,可能主要用来发论文吧。

简单总结一下,大部分场景都是通过联邦学习引入更多的数据源做特征,进行纵向联邦学习。比如车险定价、信贷风控、智慧零售、智慧医疗、小微企业贷款、反洗钱、智能投顾、隐私保护广告等。

联邦学习框架

这里主要列举一样开源的项目(根据开源时间排序),非开源的项目因为我没有了解也没有恰饭,暂时不做介绍。

  • PySyft 是一个深度学习安全隐私计算框架,支持 Tensorflow/Keras/Pytorch,主要用于学术研究和原型开发
  • Asylo 是 Google 发布的机密运算框架,在可信执行环境(Trusted Execution Environment, TEE)中执行
  • Apache Teaclave 原来是百度的 MesaTEE 项目,目前在 Apache 孵化中,也是 TEE 方案
  • CrypTen 是 Facebook 发布的基于 PyTorch 的隐私保护机器学习框架
  • FATE 是微众银行开源的联邦学习平台化方案,大而全
  • Tensorflow Federated 是谷歌开源的联邦学习框架
  • PaddleFL 是百度开源的基于PaddlePaddle的开源联邦学习框架。

目前网络上对于 PySyft 和 FATE 的介绍相对较多,后面的文章中也会主要以这两个框架/平台进行试验和研究。

未来方向

联邦学习对于学术界相对来说还是比较友好的,因为一种新的分布式计算方式,以前的各种算法都可以拉出来实现一次。不过对于商业领域来说,最重要的还是商业模式和场景落地,个人观察如下:

  • 同领域:主要是横向联邦,需要一个公共第三方来保证参与方不会有直接的利益冲突,做基础设施类应用,提高全行业下限水平,可能类似 Apache 基金会等
  • 不同领域:主要是纵向联邦,实际上就是更高级的数据交易,这个的重点在于降低双方的计算成本和部署成本,基础标准化+定制化
  • 平台类:关键是数据源和激励机制,像区块链这样的激励机制就很好,不过目前该领域没有这样的机制,毕竟贡献的数据如何价值量化,是一个难点。另外平台类还需要保证效果和效率,总体来说是基础设施的一环

写在最后

纸上得来终觉浅,学习新技术最重要的还是上手实践,好在现在相对来说文档多一些,接下来的文章里咱就一起一探究竟吧。

参考资料