【机器学习】横向联邦学习&纵向联邦学习区别

文章目录

    • 背景简介
    • 横向联邦学习
    • 纵向联邦学习
    • 参考

背景简介

现实生活中,除了少数巨头公司能够满足,绝大多数企业都存在数据量少,数据质量差的问题,不足以支撑人工智能技术的实现;同时国内外监管环境也在逐步加强数据保护,陆续出台相关政策,如欧盟最近引入 的新法案《通用数据保护条例》(GDPR),我国国家互联网信息办公室起草的《数据安全管理办法(征求意见稿)》,因此数据在安全合规的前提下自由流动,成了大势所趋;在用户和企业角度下,商业公司所拥有的数据往往都有巨大的潜在价值。两个公司甚至公司间的部门都要考虑利益的交换,往往这些机构不会提供各自数据与其他公司做与单的聚合,导致即使在同一个公司内,数据也往往以孤岛形式出现。

基于以上不足以支撑实现、不允许粗暴交换、不愿意贡献价值三点,导致了现在大量存在的数据孤岛,以及隐私保护问题,联邦学习应运而生。

横向联邦学习

适用场景:

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

学习过程:
【机器学习】横向联邦学习&纵向联邦学习区别_第1张图片

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

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

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

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

步骤解读:在传统的机器学习建模中,通常是把模型训练需要的数据集合到一个数据中心然后再训练模型,之后预测。在横向联邦学习中,可以看作是基于样本的分布式模型训练,分发全部数据到不同的机器,每台机器从服务器下载模型,然后利用本地数据训练模型,之后返回给服务器需要更新的参数;服务器聚合各机器上的返回的参数,更新模型,再把最新的模型反馈到每台机器。

在这个过程中,每台机器下都是相同且完整的模型,且机器之间不交流不依赖,在预测时每台机器也可以独立预测,可以把这个过程看作成基于样本的分布式模型训练。谷歌最初就是采用横向联邦的方式解决安卓手机终端用户在本地更新模型的问题的。

纵向联邦学习

适用场景:

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

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

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

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

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

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

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

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

参考

https://zhuanlan.zhihu.com/p/79284686

你可能感兴趣的:(机器学习,(Machine,Learning),机器学习,人工智能)