假设进行联邦学习的数据提供方为
A
A
A和
B
B
B,第三方为
C
C
C,则纵向联邦学习步骤如下:
在系统级做加密样本对齐,在企业感知层面不会暴露非交叉用户
对齐样本进行模型加密训练:
由第三方
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}(i∈DA) 和数据集
{
x
i
B
,
y
i
B
}
(
i
∈
D
B
)
\{x_i^B, y_i^B\}(i\in D_B)
{xiB,yiB}(i∈DB) ,其中
B
B
B为拥有类标的数据拥有方,我们以线性回归为例说明纵向联邦学习的训练过程:
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+ΘBxiB−yi)2+2λ(∣∣ΘA∣∣2+∣∣ΘB∣∣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
)
)
]=[[∑i(uAi+uBi−yi)2+λ2(||ΘA||2+||ΘB||2)]]=[[∑i(uAi)2+λ2||ΘA||2]]+[[∑i((uBi−yi)2)+λ2||ΘB||2]]+2∑i([[uAi]](uBi−yi))
我们令:
[
[
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
]
]
]=[[∑i(uAi)2+λ2||ΘA||2]][[LB]]=[[∑i((uBi−yi)2)+λ2||ΘB||2]][[LAB=2∑i([[uAi]](uBi−yi))]][[di]]=[[uAi]]+[[uBi−yi]]
[[LA]][[LB]][[LAB[[di]]=[[i∑(uiA)2+2λ∣∣ΘA∣∣2]]=[[i∑((uiB−yi)2)+2λ∣∣ΘB∣∣2]]=2i∑([[uiA]](uiB−yi))]]=[[uiA]]+[[uiB−yi]]则
[
[
L
]
]
=
[
[
L
A
]
]
+
[
[
L
B
]
]
+
[
[
L
A
B
]
]
[[L]]=[[L_A]]+[[L_B]]+[[L_{AB}]]
[[L]]=[[LA]]+[[LB]]+[[LAB]]
计算梯度:
[
[
∂
L
∂
Θ
A
]
]
=
∑
i
[
[
d
i
]
]
x
i
A
+
[
[
λ
Θ
A
]
]
[
[
∂
L
∂
Θ
B
]
]
=
∑
i
[
[
d
i
]
]
x
i
B
+
[
[
λ
Θ
B
]
]
]=∑i[[di]]xAi+[[λΘA]][[∂L∂ΘB]]=∑i[[di]]xBi+[[λΘB]]
计算
[
[
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]]
[[∂ΘA∂L]]+[[RA]] 并发送给第三方
C
C
C
初始化掩码
R
B
R_B
RB,计算
[
[
∂
L
∂
Θ
B
]
]
+
[
[
R
B
]
]
[[\frac{\partial L}{\partial\Theta_B}]]+[[R_B]]
[[∂ΘB∂L]]+[[RB]] 并发送给第三方
C
C
C
解密
L
L
L并发送
∂
L
∂
Θ
A
+
R
A
\frac{\partial L}{\partial\Theta_A} + R_A
∂ΘA∂L+RA给数据提供方
A
A
A,发送
∂
L
∂
Θ
B
+
R
A
\frac{\partial L}{\partial\Theta_B} + R_A
∂ΘB∂L+RA给数据提供方
B
B
B