浅谈联邦学习Federated Learning

最近人工智能、大数据领域的公众号疯狂给我推送“联邦学习”相关的文章,使得本来并不好奇的我,有了一丝丝揭开它神秘面纱的冲动。公众号的每篇推文写得都很好,但同时也十分学术,作为刚上路的我,当然是基本没能看懂(写得真好,下次不许再写了)。于是在我的穷追猛击下,这篇文章诞生了,从新手小白的角度阐述一下我眼中的联邦学习。

联邦学习的本质

先说结论,联邦学习本质上就是一种机器学习/深度学习方法。为什么这么说呢?你首先看名字,叫作联邦学习,既然带有“学习”二字,那它和机器学习、深度学习必然有密不可分的关系。对于我们平常所见的机器学习和深度学习,整个的学习过程大致可以分为训练、预测和推理三个部分,联邦学习也绕不开这三个过程,它保留着学习方法最本质的特征。因此本质上来说,联邦学习就是机器学习/深度学习,但是它是将多方的数据放在一起进行,然后再去构建学习过程。如果某个公司提出的联邦学习框架号称能够提升算法精度,我觉得这是一句废话,因为联邦学习可以简单理解为增加了样本量进行学习,在保证样本质量的情况下增加样本量,训练结果大部分情况下都会更好,因为这完全不是在同一个维度进行比较的。

为什么需要联邦学习

既然联邦学习的本质就是机器学习/深度学习,那我们为啥需要联邦学习这么个东西,直接在普通机器学习/深度学习过程中加入更多的样本量,它就升级成联邦学习了?
并不是这样的,我们之前只谈论了“联邦学习”中“学习”二字的由来,“联邦”二字代表着多方联合。比如你在A院校,你的同学在B院校,你们想互相交流合作搞学习,这就叫联邦学习。联邦学习出现的背景是数据安全的管控越来越严格,导致很多企业、部门、高校之间的数据不能互通,这就形成了数据孤岛。每个合作方都有大量的数据,却无法使用各方的数据进行合作,创造出更大的价值。联邦学习所需要完成的事情就是:数据不出本地,在保证数据安全的情况下实现多方共同建模,为业务赋能。简单来说,多方合作会形成两方势力:一方被称作guest方,就是甲方爸爸,负责出钱买数据;另一方被称作host方,就是数据的供应方,负责贡献数据。当联邦学习真正运作起来后,其实就是host方将自己的数据提供给guest方,丰富guest方的样本集和样本量,使得guest方能够获得精度更高的模型,而host方开开心心数钱就好了。一般而言,guest方只有一个,host方可以有多个。

联邦学习的分类

联邦学习会涉及到多个不同的参与方,并且每个参与方提供的数据特征会不一样,一般被分类为三种:横向联邦学习、纵向联邦学习和联邦迁移学习。联邦的过程其实就是对数据的对齐,假设有两方各持有一份数据,联邦的过程可以理解为两张表的对齐过程,主要有如下几种对齐方式。

横向联邦学习

浅谈联邦学习Federated Learning_第1张图片

横向联邦学习使用场景是:

  • 参与方的业务类型相同或相似
  • 特征重叠多,用户重叠少

例如参与方A和参与方B的数据都是零售数据,在学习过程中的特征列选取可能类似,都包含着商品购买量、购买价格等特征列,此时就可以选择横向联邦学习,这种方式其实是一种样本的联合,通过对齐特征列的方式扩充了样本数量。

纵向联邦学习

浅谈联邦学习Federated Learning_第2张图片

纵向联邦学习使用场景是:

  • 参与方的业务用户相同或相似
  • 特征重叠少,用户重叠多

例如参与方A和参与方B的数据处于不同领域,但是都包含着用户生日这一列数据,此时可以选择纵向联邦学习,通过用户列将参与方的数据进行对齐,这种方式是一种特征的联合,通过对齐用户的方式扩容了特征列的数量。

联邦迁移学习

浅谈联邦学习Federated Learning_第3张图片

联邦迁移学习使用场景是:

  • 参与方的业务和用户基本无交集
  • 特征重叠少,用户重叠少

在两个几乎毫无交集的领域想要进行联邦学习,就可以使用联邦迁移学习,其过程和普通的迁移学习类似,只是整个过程基于联邦学习平台,保证了数据的安全性和私密性。

总结

其实从上面也可以看出,联邦学习对于普通的学习者和工作者来说是十分遥远且毫不相干的,因为它只在涉及到数据安全的情况下才有必要使用,且使用成本巨大。因此联邦学习框架,也都掌握在几个巨头公司手中,如百度的PaddleFL、微众的Fate(都已开源),腾讯的PowerFL(仅有部署文档,尚未开源)等。虽然联邦学习对于普通学习者而言没有机会使用到,但是它作为相对前沿的技术,涉及到深度学习框架、同态加密算法和分布式计算等技术,对它进行一些简单的了解,能够给我们提供更加开阔的技术视野,感兴趣的同学也可以一起研究,一起探讨~

你可能感兴趣的:(联邦学习,人工智能,机器学习,联邦学习,1024程序员节)