赞
踩
Federated Learning - 联邦学习
参考文献:
小白也能通俗易懂的联邦学习!
关于联邦学习建模过程中算法交互内容的研究
谷歌最开始提出联邦学习时是为了解决C端用户终端设备上模型训练的问题。
C端用户手机上的智能软件提供服务时背后都得依靠模型,而模型的训练学习全部要基于用户的数据。比如手机上的输入法,基于不同人的打字拼音习惯,输入法会不停更新会慢慢和每个人的打字习惯进行匹配,用户会觉得输入法越来越智能;
那么过去这些手机输入法是如何进行模型训练的?
过去的做法: 将用户每天产生的行为数据全部上传至云端服务器,部署在服务器上的模型基于上传的数据进行训练,然后更新模型,最终实际应用时本地需要请求云端服务。大致流程如下图:
上述这种模型训练的方式,我们也叫做“集中式模型训练”,这种方式有两个弊端:
谷歌提出了一种新的解决方案,并将它命名为“Federated Learning”。总的来说就是:用户数据不出本地,所有模型的训练都是在设备本地进行。本地模型训练完毕后将得到的模型参数or下降梯度,经过加密上传至云端,云端模型接收到所有上传的加密参数or梯度后,结合所有的参数值进行统一的聚合,比如通过加权平均得到新的模型参数or下降梯度,然后将新的结果再重新下发到本地,本地更新得到一个全新的模型;
这种方式我们又叫作“分布式模型训练“,大致的做法如下图:
上述这种模型训练的方式有一个基本的要求:
本地模型-Local Model和云端模型- Global Model的特征必须一致:因为我们是汇总了无数本地模型的参数,基于这些参数对云端模型进行更新。
“横向联邦学习” ,模型之间使用的特征一致,只是使用的样本数据不一样。比如说下图本地模型使用的用户特征都是一样的,但是每个本地模型只能使用本地这一个用户的数据,无法使用其他用户的数据进行训练。
横向联邦学习系统的训练过程通常由如下四个步骤组成:
上述步骤将会持续迭代进行,直到损失函数收敛或者达到允许的迭代次数的上限或允许的训练时间,这种架构不依赖于特定的机器学习算法(如逻辑回归和深度神经网络),并且所有参与方将会共享最终的模型参数。
需要注意的是,上述步骤中参与方将梯度信息发送给服务器,服务器将收到的梯度信息进行聚合(例如,计算加权平均),再将聚合的梯度信息发送给参与方。我们称这种方法为梯度平均,除了共享梯度信息,联邦学习的参与方还可以共享模型的参数。参与方在本地计算模型参数,并将它们发送至服务器。服务器对收到的模型参数进行聚合(例如,计算加权平均),再将聚合的模型参数发送给参与方。我们称这种方法为模型平均。
以下几个疑惑:
B端的延伸—纵向联邦学习
联邦学习最开始被谷歌提出时是为了解决C端用户上传数据隐私问题。但是在实际工业界的问题是B端企业之间的数据孤岛问题。比如京东和腾讯之间的合作。京东和腾讯之间的用户肯定有绝大一部分是重叠的,京东有这部分用户的电商数据,腾讯有这部分用户的社交数据。如果二者将彼此之间的数据共享,那么彼此各项模型上的效果都会有大幅提升,但是实际开展时二者肯定不会共享彼此之间的数据。
B端企业之间的模型目标不一样,特征也不一样,就像京东和腾讯,二者的用户存在重叠,但是场景不同,采集到的用户特征也存在一定差异。这种情况下的联邦学习方案我们叫做 “纵向”。
比如京东&腾讯的用户有ABCDE五个用户是重叠的,腾讯有用户的“性别”&“年龄”数据,京东有“常住区域”、“消费水平”&“购物频次”的数据,二者结合起来可以使用样本数据的所有特征建立一个效果更优的模型。纵向联邦学习的研究是由香港科技大学计算机科学与工程学系主任,第一位华人国际人工智能协会(AAAI)院士&AAAI执行委员会委员-杨强教授牵头发起的。
杨强教授的整体纵向联邦学习架构分为以下几个大的部分。
整体还是比较抽象,我们以一个具体的案例来进行讲解。还是拿京东&腾讯合作的这个案例。
联邦迁移学习适用于参与方的数据样本和数据特征重叠都很少的情况。在实践中,我们经常会面临的情况是,各参与方间并没有足够的共同特征和样本。联邦学习可以结合迁移学习技术,帮助只有少量数据(较少重叠的样本和特征)和弱监督(较少标记)的应用建立有效且精确的机器学习模型,使其可以应用于更广的业务范围。
投毒攻击主要是指在训练或再训练过程中,恶意的参与者通过攻击训数据集来操纵机器学习模型的预测。联邦学习中,攻击者有两种方式进行投毒攻击:数据投毒和模型投毒。
(1)数据投毒
数据投毒是指攻击者通过对训练集中的样本进行污染,如添加错误的标签或有偏差的数据,降低数据的质量,从而影响最后训练出来的模型,破坏其可用性或完整性。例如,攻击者使学习模型的参数值接近他所期望的值,同时使模型输出对某些测试样本的错误预测。有研究显示,采用混合辅助注入策略,通过注入少量有毒样本到训练集就获得了90%以上的攻击成功率。也有研究指出,针对支持向量机算法(SVM)产生的优化梯度,预测其目标函数的变化方向,使用梯度上升策略显著提高了SVM分类器的错误率。
(2)模型投毒
模型投毒不同于数据投毒,攻击者不直接对训练数据进行操作,而是发送错误的参数或是损坏的模型来破坏全局聚合期间的学习过程,比如控制某些参与方传给服务器的更新参数,从而影响整个学习模型参数的变化方向,减慢模型的收敛速度,甚至破坏整体模型的正确性,严重影响模型的性能,有研究者只假设了一个恶意代理(参与方),就实现了对整体模型的隐蔽性的攻击,使得目标模型无法对某类数据正确分类。
对抗攻击是指恶意构造输入样本,导致模型以高置信度输出错误结果。这种通过在原始样本中添加扰动而产生的输入样本称为对抗样本。
从攻击环境来说,对抗攻击可以分为黑盒攻击和白盒攻击。若知道机器学习模型中的参数与内部结构,攻击者可以把所需的干扰看作一个优化问题计算出来。这种情况下的对抗攻击属于白盒攻击。而另一种常见的情境下,攻击者不知道任何模型的信息,只能跟模型互动,给模型提供输入然后观察它的输出,这种情形下的对矿攻击属于黑盒攻击。对抗攻击还可以根据攻击目的分为目标攻击和非目标攻击。根据干扰的强度大小分为无穷范数攻击、二范数攻击和零范数攻击等。
对抗攻击可以帮助恶意软件逃避检测,生成投毒样本,已经被攻击者广泛应用于图像分类、语义分割、机器识别以及图结构等多个领域,称为系统破坏者的一个有力攻击武器。
针对联邦学习面临的多重安全威胁,下表列出了防御上述攻击的一些最新对策。
在各上述各类攻击中,对隐私的攻击威胁性最大,隐私的泄露可能在任何阶段发生,包括数据收集和预处理、模型训练和模型预测。
常见的隐私保护密码技术有:安全多方计算、同态加密、隐私保护的集合运算、差分隐私、秘密共享等。
安全多方计算最初是针对一个安全两方计算问题,并于1982年由姚期智提出和推广在安全多方计算中,目的是协同地从每一方的隐私输入中计算函数的结果,而不用将这些输入展示给其他方。例如,假设一个私有的数值x被分给n位共享方,则每一方P_i只能获知X_i的内容,所有方能够协同地计算
所以,P_i只能根据自己的输入X_i来获知输出值y_i,而不能得知任何额外的信息。安全多方计算的研究大致可以划分为两个类别:通用安全多方计算,以及特定的安全多方计算。
从抽象代数的角度来讲,同态(映射)指的是不同代数系统之间保持运算关系的映射。以带有一个二元运算的代数系统为例,对于两个代数系统<X,>和<Y,?>,如果映射f:X->Y,满足 f(ab)=f(a)?f(b),称f为<X,>到<Y,?>的同态,并称f把<X,>同态映射到<Y,?>。如果一个加密算法能够把明文空间及其运算形成的代数系统同态映射到密文空间及相对应运算形成的代数系统,则称该加密算法为同态加密算法。当然,明文空间带有的运算一般不止1个,比如常用的模n剩余环Zn带有模n加法和乘法两种运算。从定义上可以看到,同态加密算法不需要对密文解密,而可直接对密文进行运算,得到的运算结果,等同于对应明文所作相应运算计算结果的密文。不解密而进行计算,对于隐私保护,具备得天独厚的优势。
差分隐私最开始被开发用来促进在敏感数据上的安全分析,中心思想是,当敌手试图从数据库中查询个体信息时将其混淆,使得敌手无法从查询结果中辨别个体级别的敏感性。它提供了一种信息理论安全性保障,即函数的输出结果对数据集中的任何特定记录都不敏感。因此,差分隐私能被用于抵抗成员推理攻击。差分隐私在向数据引入噪声的同时,权衡了实用性和隐私性。现有的用于机器学习的差分隐私机制,很少能具有可接受的实用性隐私性权衡程度,提供较好隐私保护的设置会导致较多的精度损失。
主要有两种方法给数据加上噪声实现差分隐私:一种是根据函数的敏感性增加噪声,另一种是根据离散值的指数分布选择噪声。在联邦学习中,为了使各方能在各自的分散数据集上进行模型训练,可以使用本地差分隐私,每一个输入方将会扰乱自己的数据,然后将已混淆的数据发布至不受信任的服务器。
一些测评可参考:
参考:
2020 DataFunCON技术实践案例分享会:《 云原生联邦学习的开源框架》
《 FATE: 联邦学习技术落地与应用实践》
文档地址:
文章《联邦学习框架》提到,fate应用全面,包含纵向,横向,迁移等,但是过于臃肿,而且《联邦学习实战》用的dsl是v1版本,而现在已经更新到了v2版本。v2版本比较好用,更加简练,但是网上没有太多教程。最重要的是调试起来真的很可能fate,能一直折磨人都找不到问题所在,又在linux上运行,包含了多种语言,对新手不太友好。
给出了fate中v1和v2的主要区别,v2就是任务预测需要自己配dsl,v1是直接帮你配好了,虽然v2看上去麻烦点,但是还是比较简单的,因为调试起来没那么困难了
AI数据获取难?飞桨PaddleFL开源纵向联邦学习方案,进一步降低企业AI应用门槛…
官网地址
基于数据并行的联邦学习方案请参考
基于多方安全计算的联邦学习方案请参考
PaddleFL GitHub
飞桨开源框架项目地址
飞桨PaddleFL意在帮助联邦学习的探索者更方便地实现不同的策略及算法,在较短的时间内完成框架搭建、算法实现和业务调研等工作。本次PaddleFL 1.0版本主要开源了MPC安全共享计算方案,支持横向、纵向、迁移等多个联邦学习场景,进一步降低企业联邦学习的门槛,使更多数据获取难的企业可以通过联邦学习受益。
Paddle FL MPC (简称PFM)中的安全训练和推理任务是基于多方计算协议ABY3实现的。ABY3论文地址:https://dl.acm.org/doi/10.1145/3243734.3243760
在ABY3协议中,参与方可分为:数据拥有方(以下简称:输入方)、计算方和结果方,三者关系如下图所示:
PFM的整个训练及推理过程主要由如下三个部分组成:数据准备、训练/推理和结果解析,三者关系如下图所示:
数据对齐:PFM允许输入方在不泄露数据的情况下,基于同样的User ID,找出多个输入方的样本集合,在此过程中保证数据加密。这个功能在纵向联邦学习中非常必要。为啥这么说呢?因为在纵向联邦学习中,不同输入方拥有不同的Feature Space,所以需要找到多个数据集中相同的用户。
例如:三个做商品推荐的公司做联邦学习,一个公司持有歌曲相关的数据;一个持有电影相关的数据;一个公司持有用户点击相关的数据。在进行联邦学习之前,三家公司需要找出相同用户的集合,并且保证相同位置(第n条)对应相同的用户。数据对齐后,输入方将数据和模型用Secret Sharing方式加密,并传递给计算方。因为每个计算方只拿到数据的一部分,因此任意一方都无法还原真实数据。
今日开源:阿里达摩院最新框架FederatedScope来了!让联邦学习从可用到好用
介绍网站:https://federatedscope.io/;
开源地址:https://github.com/alibaba/FederatedScope
达摩院团队对 FederatedScope 训练模块进行抽象,使其不依赖特定的深度学习后端,能兼容 PyTorch、Tensorflow 等不同设备运行环境,大幅降低了联邦学习在科研与实际应用中的开发难度和成本。
相比传统的联邦学习框架,FederatedScope 易用性尤为突出,以下几个例子可具体说明:
文章:蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用
文档学习网站:https://secretflow.readthedocs.io
开源地址:https://github.com/secretflow
隐语内置 MPC、TEE、同态等多种密态计算虚拟设备,提供多类联邦学习算法和差分隐私机制。
目前开源的隐私计算框架,如 TensorFlow Federated(TFF)、FATE、FederatedScope、Rosetta、FedLearner、Primihub 等几乎都是针对单个隐私计算路线。这些框架为隐私计算相关社区研究和工业应用都提供了一定支持。
总结来看,主要如下:
来自2021 DataFunSummit 《腾讯音乐:联邦学习RTA在全民K歌投放系统中的应用》
PowerFL是TEG基于腾讯开源的智能学习平台Angel( https://github.com/Angel-ML/angel )构建,内部开源。
FedLab为联邦学习的模拟实验提供了必要的模块,包括通信、压缩、模型优化、数据切分,及其他功能性模块。用户们可以像使用乐高积木一样,根据需求构建他们的联邦模拟环境。我们还提供了一些联邦学习的基准算法的实现,方便用户能更好的理解并使用FedLab。
这个框架在架构设计上,追求使用的灵活和简单方便,FedLab主要有几个特点:
这个工作主要适用于联邦学习的研究者在实验室集群的环境下快速验证联邦学习通信和优化相关的idea,以及联邦学习初学者上手联邦学习的PyTorch实现。
EasyFL 是 Easy Federated Learning 的缩写,从名字上就可以看出,EasyFL 旨在做一个简单易用的联邦学习框架,目标是让不同经验和背景的人都可以更简单、更快速的进行联邦学习实验和应用开发。你可以用 EasyFL:
Github:https://github.com/EasyFL-AI/
EasyFL文档和教程:https://easyfl.readthedocs.io/en/latest/
论文:https://arxiv.org/abs/2105.07603
(IEEE Internet of Things Journal)
团队7篇论文列表:https://weiming.me/#
概述:Fedlearner 是协作式机器学习框架,可以对机构之间分布的数据进行联合建模。
相关文章摘录:
作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,挖掘数据价值。
据介绍,字节跳动联邦学习平台 Fedlearner 已经在电商、金融、教育等行业多个落地场景实际应用。字节跳动联邦学习技术负责人吴迪在接受 InfoQ 专访时表示,联邦学习面临的困难更多是如何为客户争取可感知的最大商业价值,不同行业的伙伴,其产品特点和价值诉求各不相同。
得益于字节跳动在推荐和广告领域长期积累的机器学习建模技术,字节跳动联邦学习找到了帮助企业客户取得可感知商业价值的方向,即基于字节跳动的个性化推荐算法、模型优势,探索、寻找落地场景。例如在电商广告场景的落地案例中,Fedlearner 已经帮助合作方取得了 10% 以上的投放效率增长,跑量消耗提升 15%+,电商平台 ROI 提升 20%+。
website:https://www.tensorflow.org/federated/tff_for_research
github:https://github.com/tensorflow/federated
单位:OpenMind
github:https://github.com/OpenMined/PySyft
论文:https://arxiv.org/abs/1811.04017
概述:PySyft 在主要深度学习框架(如 PyTorch 和 TensorFlow)中使用联邦学习、差分隐私和加密计算(如多方计算 (MPC) 和同态加密 (HE))将私有数据与模型训练分离。
单位:LatticeX Foundation
概述:Rosetta 是一个基于TensorFlow开发的隐私计算框架,它将陆续集成密码学、联邦学习和可信执行环境等主流的隐私计算技术。Rosetta 旨在为人工智能快速提供隐私保护技术解决方案,不需要用户掌握任何密码学、联邦学习和硬件安全执行环境领域的专业知识。Rosetta 在用户接口层复用了 TensorFlow 的对外 API 从而使得用户可以以最低的改造成本将隐私保护功能集成到现有的 TensorFlow 程序中。
github:https://github.com/LatticeX-Foundation/Rosetta
架构:
来自《数据安全流通的解决方案V1.0》
案例,应用在高购买意向会员:
推荐模型的联邦化具有一定的共性,一个联邦推荐模型的训练框架通常适用于具有相同训练方式的其他模型。
对于模型的联邦化,可以划分为基于协同过滤的推荐算法的联邦化、基于深度学习的推荐算法的联邦化和基于元学习的推荐算法的联邦化三个类别。
在此分类下,一些经典的和前沿的推荐模型的联邦化例子及其特点如图 3 所示。
基于不同的隐私保护技术,联邦推荐算法可以分为基于同态加密的联邦推荐算法、基于差分隐私的联邦推荐算法、基于本地差分隐私的联邦推荐算法和基于安全多方计算的联邦推荐算法。图 4 总结了一些隐私保护技术在联邦推荐算法设计中的应用。
推荐系统的联邦化
联邦推荐系统的优化
来自京东九数的《联邦学习介绍》
2020 DataFunCON技术实践案例分享会:《用神盾保护客户隐私非对称联邦解决经典联邦学习的问题》
技术背景-联邦IV
非对称联邦逻辑回归
非对称联邦梯度提升树
操作界面:
来自2021 DataFunSummit
xID去标识化技术
如何通过xID技术保护样本交集信息
来自2021 DataFunSummit
联邦学习该如何入门,学习路径怎样,有没有好的demo,以及paperlist?
Awesome-Federated-Learning-on-Graph-and-Tabular-Data
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。