深入理解联邦学习——纵向联邦学习

分类目录:《深入理解联邦学习》总目录


假设进行联邦学习的数据提供方为 A A A B B B,第三方为 C C C,则纵向联邦学习步骤如下:

  1. 在系统级做加密样本对齐,在企业感知层面不会暴露非交叉用户
  2. 对齐样本进行模型加密训练:
    • 由第三方 C C C A A A B B B发送公钥,用来加密需要传输的数据;
    • A A A B B B分别计算和自己相关的特征中间结果,并加密交互
    • A A A B B B分别计算各自加密后的梯度并添加掩码发送给 C C C,同时拥有类标侧计算加密后的损失发送给 C C C
    • C C C解密梯度和损失后回传给 A A A B B B
    • A A A B B B去除掩码并更新模型

纵向联邦学习

我们以岭回归为例说明纵向联邦学习的训练过程。假设存在数据集 { x i A } ( i ∈ D A ) \{x_i^A\}(i\in D_A) {xiA}(iDA) 和数据集 { x i B , y i B } ( i ∈ D B ) \{x_i^B, y_i^B\}(i\in D_B) {xiB,yiB}(iDB) ,其中 B B B为拥有类标的数据拥有方,我们以线性回归为例说明纵向联邦学习的训练过程:

  1. A A A B B B分别初始化模型参数 Θ A \Theta_A ΘA Θ B \Theta_B ΘB,则目标函数为: min ⁡ Θ A , Θ B ∑ i ( Θ A x i A + Θ B x i B − y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) \min_{\Theta_A, \Theta_B}\sum_i(\Theta_Ax_i^A+\Theta_Bx_i^B-y_i)^2+\frac{\lambda}{2}(||\Theta_A||^2+||\Theta_B||^2) ΘA,ΘBmini(ΘAxiA+ΘBxiByi)2+2λ(∣∣ΘA2+∣∣ΘB2)
  2. u i A = Θ A x i A u_i^A=\Theta_Ax_i^A uiA=ΘAxiA u i B = Θ B x i B u_i^B=\Theta_Bx_i^B uiB=ΘBxiB,则对原目标函数同态加密后( [ [ ⋅ ] ] [[\cdot]] [[]]表示同态加密)可表示为: [ [ L ] ] = [ [ ∑ i ( u i A + u i B − y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] + [ [ ∑ i ( ( u i B − y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] + 2 ∑ i ( [ [ u i A ] ] ( u i B − y i ) ) \begin{aligned}[[L]] &= [[\sum_i(u_i^A+u_i^B-y_i)^2+\frac{\lambda}{2}(||\Theta_A||^2+||\Theta_B||^2)]]\\&=[[\sum_i(u_i^A)^2+\frac{\lambda}{2}||\Theta_A||^2]]+[[\sum_i((u_i^B-y_i)^2)+\frac{\lambda}{2}||\Theta_B||^2]]+2\sum_i([[u_i^A]](u_i^B-y_i))\end{aligned} [[L]]=[[i(uiA+uiByi)2+2λ(∣∣ΘA2+∣∣ΘB2)]]=[[i(uiA)2+2λ∣∣ΘA2]]+[[i((uiByi)2)+2λ∣∣ΘB2]]+2i([[uiA]](uiByi))
  3. 我们令: [ [ L A ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] [ [ L B ] ] = [ [ ∑ i ( ( u i B − y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] [ [ L A B = 2 ∑ i ( [ [ u i A ] ] ( u i B − y i ) ) ] ] [ [ d i ] ] = [ [ u i A ] ] + [ [ u i B − y i ] ] \begin{aligned}[[L_A]]&=[[\sum_i(u_i^A)^2+\frac{\lambda}{2}||\Theta_A||^2]] \\ [[L_B]]&=[[\sum_i((u_i^B-y_i)^2)+\frac{\lambda}{2}||\Theta_B||^2]] \\ [[L_{AB}&=2\sum_i([[u_i^A]](u_i^B-y_i))]] \\ [[d_i]]&=[[u_i^A]]+[[u_i^B-y_i]]\end{aligned} [[LA]][[LB]][[LAB[[di]]=[[i(uiA)2+2λ∣∣ΘA2]]=[[i((uiByi)2)+2λ∣∣ΘB2]]=2i([[uiA]](uiByi))]]=[[uiA]]+[[uiByi]] [ [ L ] ] = [ [ L A ] ] + [ [ L B ] ] + [ [ L A B ] ] [[L]]=[[L_A]]+[[L_B]]+[[L_{AB}]] [[L]]=[[LA]]+[[LB]]+[[LAB]]
  4. 计算梯度: [ [ ∂ L ∂ Θ A ] ] = ∑ i [ [ d i ] ] x i A + [ [ λ Θ A ] ] [ [ ∂ L ∂ Θ B ] ] = ∑ i [ [ d i ] ] x i B + [ [ λ Θ B ] ] \begin{aligned}[[\frac{\partial L}{\partial\Theta_A}]]&=\sum_i[[d_i]]x_i^A+[[\lambda\Theta_A]]\\ [[\frac{\partial L}{\partial\Theta_B}]]&=\sum_i[[d_i]]x_i^B+[[\lambda\Theta_B]]\end{aligned} [[ΘAL]][[ΘBL]]=i[[di]]xiA+[[λΘA]]=i[[di]]xiB+[[λΘB]]

针对数据提供方为 A A A B B B以及第三方为 C C C,纵向联邦学习的训练步骤如下:

\qquad\quad 数据提供方为 A A A数据提供方为 B B B第三方为 C C C
步骤 1 1 1初始化参数 Θ A \Theta_A ΘA初始化参数 Θ B \Theta_B ΘB创建加密秘钥对,并将公钥发送给数据提供方为 A A A B B B
步骤 2 2 2计算 [ [ u I A ] ] [[u_I^A]] [[uIA]] [ [ L A ] ] [[L_A]] [[LA]]并发送给数据提供方 B B B计算 [ [ u I B ] ] [[u_I^B]] [[uIB]] [ [ d i ] ] [[d_i]] [[di]] [ [ L ] ] [[L]] [[L]],并将 [ [ d i ] ] [[d_i]] [[di]]发送给数据提供方 A A A,将 [ [ L ] ] [[L]] [[L]]发送给第三方 C C C
步骤 3 3 3初始化掩码 R A R_A RA,计算 [ [ ∂ L ∂ Θ A ] ] + [ [ R A ] ] [[\frac{\partial L}{\partial\Theta_A}]]+[[R_A]] [[ΘAL]]+[[RA]] 并发送给第三方 C C C初始化掩码 R B R_B RB,计算 [ [ ∂ L ∂ Θ B ] ] + [ [ R B ] ] [[\frac{\partial L}{\partial\Theta_B}]]+[[R_B]] [[ΘBL]]+[[RB]] 并发送给第三方 C C C解密 L L L并发送 ∂ L ∂ Θ A + R A \frac{\partial L}{\partial\Theta_A} + R_A ΘAL+RA给数据提供方 A A A,发送 ∂ L ∂ Θ B + R A \frac{\partial L}{\partial\Theta_B} + R_A ΘBL+RA给数据提供方 B B B
步骤 4 4 4更新参数 Θ A \Theta_A ΘA更新参数 Θ B \Theta_B ΘB

在整个过程中参与方都不知道另一方的数据和特征,且训练结束后参与方只得到自己侧的模型参数,即半模型。由于各参与方只能得到与自己相关的模型参数,预测时需要双方协作完成:

  1. 第三方 C C C将待预测用户ID分别发送给数据提供方 A A A B B B
  2. 数据提供方 A A A B B B分别计算 u A u^A uA u B u^B uB并进行同态加密得到 [ [ u A ] ] [[u^A]] [[uA]] [ [ u B ] ] [[u^B]] [[uB]]
  3. 数据提供方 A A A B B B将同态加密后的 [ [ u A ] ] [[u^A]] [[uA]] [ [ u B ] ] [[u^B]] [[uB]]发送给 第三方 C C C
  4. 第三方 C C C计算同态加密后的预测值 [ [ y ] ] = [ [ u A ] ] + [ [ u B ] ] [[y]]=[[u^A]]+[[u^B]] [[y]]=[[uA]]+[[uB]]再解密得到预测值 y y y

参考文献:
[1] 杨强, 刘洋, 程勇, 康焱, 陈天健, 于涵. 联邦学习[M]. 电子工业出版社, 2020
[2] 微众银行, FedAI. 联邦学习白皮书V2.0. 腾讯研究院等, 2021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

von Neumann

您的赞赏是我创作最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值