基本知识
联邦学习是一种分布式机器学习技术,同时也是一种机器学习框架。
联邦学习的目标在于,在确保数据隐私安全以及合法合规的前提下,达成共同建模这一目的,进而提升 AI 模型的效果。
联邦学习有应用举例。不同的银行各自拥有不同用户的画像以及资产特征等数据。如果能够联合多个银行的数据来进行风险预判,那么精准度肯定会比单一数据的精准度高很多。然而在现实当中,由于金融机构数据具有隐私性,所以数据必然不可能实现互通融合。在这种场景下,其核心诉求就是希望能够在确保用户隐私的前提下实现数据的协同建模。而联邦学习就是一个比较友好的解决方案。
联邦学习分类
横向联邦学习
在参与者的数据特征有较多重叠,然而样本 ID 重叠较少的这种情形下适用。横向联邦能够让训练样本的总体数量得以增加。
业态相同或相似意味着特征重叠较多,同时用户 ID 重叠量较少,进而可以进行样本联合。
被称作“特征对齐的联邦学习”,这意味着横向联邦学习的参与者其数据特征是相互对齐的。
适用场景:
横向联邦学习的本质在于样本的联合。这种学习方式适用于参与者之间业态相同,然而触达的客户不同的情况。也就是在特征重叠较多,而用户重叠较少的时候适用。例如不同地区的银行之间,它们的业务是相似的(特征相似),但用户却是不同的(样本不同)。
学习步骤:
l :参与方各自从服务器A下载最新模型;
每个参与方都运用本地的数据来训练模型,之后将加密后的梯度上传给服务器 A,而服务器 A 则会聚合各个用户的梯度,以此来更新模型参数。
l :服务器A返回更新后的模型给各参与方;
l :各参与方更新各自模型。
纵向联邦学习
适用于这种情况:参与者的训练样本 ID 有较多的重叠,然而数据特征的重叠却比较少。纵向联邦能够让训练样本的特征维度得以增加。
被称作“特征对齐的联邦学习”,意味着纵向联邦学习的参与者所拥有的训练样本是相互对齐的。
其中,找出参与者拥有的共同样本,也就叫“数据库撞库”。
步骤
内容
第一步
加密样本进行对齐。这件事是在系统级层面开展的,所以在企业的感知层面,不会将非交叉用户暴露出来。
第二步
对齐样本进行模型加密训练:
:由第三方C向A和B发送公钥,用来加密需要传输的数据;
A 计算与自身相关的特征中间结果并进行加密交互,B 也计算与自身相关的特征中间结果并进行加密交互,通过这种方式来求得各自的梯度和损失。
A 计算出自己加密后的梯度,接着添加掩码并发送给 C;B 同时计算出加密后的损失并发送给 C,并且 B 也计算出自己加密后的梯度并添加掩码发送给 C。
C 解密梯度和损失后,将其回传给 A 和 B。A 去除掩码并更新模型,B 也去除掩码并更新模型。
在我们的项目中,实际上能对齐加密样本,就能满足我们的需求。
在这个过程里,B 是无法得知客户 ID 的,因为对其进行了加盲处理,所以 B 自然也无法解盲。然而,A 能够在加了密的 ID 上进行去盲操作,从而得到有 RSA 签名过的 ID,接着在这个 ID 上面再套一层哈希并存储到数据库中。由于私钥仅由 B 所拥有,所以即便 A 得到了加密的哈希 ID,也无法进行伪造。B 把自己的 ID 进行 RSA 签名加密,接着进行哈希操作。之后,B 将哈希结果和加密过后的 ID 发送给 A。A 凭借这个哈希加密的 ID,能够与之前自己进行加密哈希的 ID 进行匹配求交。在这一过程里,A 无法得知 B 的原始 ID,B 也无法得知 A 的原始 ID。并且,A 不能伪造一个 ID 去和 B 求交,B 同样不能伪造一个 ID 去和 A 求交。而双方都具备控制用来求交的 ID 数据总量的能力。
字节跳动在联邦学习的应用:
实体对齐基于RSA和哈希算法的解决方案
n: (参见RSA加/解密系统)
e: 侧获得的公钥
H(), H()' :哈希函数
C:侧样本集合(ci为原始样本,hci为加密后样本)
S:侧样本集合(si为原始样本,hsi为加密后样本)
d: 侧拥有的私钥,与公钥e对应
过程简述:
要生成一对公钥(n, e)和私钥(n, d),接着把公钥(n, e)发送给……
应用任意链接码: key(CLK)
CLK本质上是一个编码了多个个人身份标识的布隆过滤器( )
布隆过滤器简单来说,是利用一系列随机映射函数,把某组字符串(也就是一个集合)映射成一系列很长的二进制向量。接着,对这些向量进行与操作,从而得到最后代表这组字符串的二进制向量。当有新字符串到来时,能够对其进行相同的映射以及与操作。接着查看它的二进制向量中取 1 的比特,是否在集合对应的二进制向量的同位置处也取 1。若如此,表明该元素在该集合内;若不是,则认为其不在该集合。
)
P.S. 并非完全匹配,而是主要通过极少的错误来换取存储空间的极大节省。
联邦迁移学习
适用场景:
当参与者之间的特征很少且样本也很少时,可以考虑使用联邦迁移学习。例如不同地区的银行与商超之间的联合。这种方法主要适用于以深度神经网络作为基础模型的场景。
迁移学习介绍:
利用数据、任务或模型之间的相似性,把在源领域学习过的模型运用到目标领域,这就是迁移学习,它是一种学习过程。
FATE - AI 是微众银行 AI 部门的联邦机器学习平台。
学习文档:
具体详见: - 功能
2. 联邦学习平台(腾讯自研)
腾讯公司成立了安全联合计算。腾讯公司联合其六大 BG 和 S 线一同构建联邦学习生态。
我们有腾讯自研的、业界领先的联邦学习平台。
3. 太极+联合建模
适用场景:适用于公司内部不同部门的团队,借助太极平台来共同构建联邦学习任务。
方法:太极平台4步联合建模
l :发起方创建联邦工作流
l :发起方分享联邦工作流
l :协作方加入联邦工作流
l :发起方运行联邦工作流
具体操作配置详见:
平台支持多种联邦学习算法,其中包含多种特征工程算法。还有两方及多方样本对齐算法。也有两方/多方纵向逻辑回归算法。以及两方/多方纵向 GBDT 算法。同时有两方纵向主成分分析算法(PCA)。还有纵向神经网络算法。以及横向神经网络算法等。
实现方案方案一、无第三方服务部署
FATE部署
方案二、引入可信第三方
客户和A数据约定数据包(ID集合)并且约定大素数p:
客户运用自身的秘钥,针对客户的数据集进行幂加密操作,从而形成 f(x),接着将其发送给第三方。
A利用第三方提供的 ftp 来下载与特定数据日期相对应的 f(x)数据。接着,A 把 f(x)进行加密处理,使其变成 gf(x),并且对其进行置乱操作。之后,A 通过 RPC 接口将加密置乱后的 gf(x)发送给第三方。
客户获取到第三方的 gf(x) 后,利用自身的秘钥进行解密,从而得到 g(x),接着将 g(x) 传给第三方。
A把自己的数据包进行加密,使其成为 g(y)。接着,A 通过 g(y)进行生成操作。之后,A 将生成的(g(y))数据集通过 RPC 接口发送给第三方。
第三方使 g(y)数据集与 g(x)数据集发生碰撞,从而得到了交集 g(z)。
第三方将交集g(z)通过ftp发送给A;
A解密得到交集用户z。
扩展:无第三方的联邦学习
联邦学习的架构有两种。一种是中心化联邦架构,其形式为客户端/服务器。另一种是去中心化联邦架构,形式为对等。
1. 客户端/服务器架构:需要中央服务器。应用较多。
对等架构中没有第三方服务器参与,参与方直接进行交互。所以,当参与方完成对原始模型的训练后,要将本地模型参数进行加密并传输给其他参与联合训练的数据持有方。不过目前还没有具体的应用。
3.
典型的联邦学习一般会引入可信的第三方。目前存在一些关于无第三方的联邦学习的研究。然而,暂时尚未找到能够落地实现的方案。
MPC协议:复杂度高,性能有瓶颈。
NTP-FL:相比MPC性能有所优化。
工作时间:8:00-18:00
电子邮件
扫码二维码
获取最新动态