论文《Vertical Federated Learning: Concepts, Advances, and Challenges》阅读
- 论文概况
- 纵向联邦
- VFL框架介绍
- 问题定义
- VFL 训练协议
- 对通信效率的优化
- 对性能的优化
- 自监督方案(Self-Supervised Approaches)
- 半监督方案(Semi-Supervised Approaches)
- 知识蒸馏方案(Knowledge Distillation Approaches)
- 迁移学习方案(Transfer Learning Approaches)
- 安全性
- 其他
- 总结
今天带来的是一篇综述,主题关于纵向联邦,综述组织合理,内容丰富,而且对新手非常友好,值得推荐!
论文概况
论文由清华大学 AIR 刘洋 等人完成,发表在TKDE上。
论文链接:TKDE
纵向联邦
如图所示,
- 横向联邦 针对的是不同的sample具备相同的特征空间,主要干的事是做梯度的聚合、计算等内容。
- 纵向联邦(狭义)是指不同的 sample,但是具备相同的特征空间,主要目的是为了将不同平台下的重叠用户的特征利用最大化。
- 特征迁移学习 就是两者之间,重叠的 sample 有限,交叉的特征也不是全部,这种情况就是特征迁移的典型场景。
具体比较也可以如表所示:
此外,从应用场景出发,FL也可分类为:cross-silo 和 cross-device。
- Cross-Silo 就是指为了解决数据孤岛问题,让不同的组织、公司数据利用最大化。既可以包含横向、也可以包含纵向。
- Cross-Device 是指跨设备的联邦学习,这种一般是指横向,例如在不同的设备上聚合用户的梯度、模型等。
VFL框架介绍
问题定义
问题形式化如下所示:
min
Θ
ℓ
(
Θ
;
D
)
≜
1
N
∑
i
=
1
N
f
(
Θ
;
x
i
,
y
i
)
+
λ
∑
k
=
1
K
γ
(
Θ
)
(1)
\min _{\boldsymbol{\Theta}} \ell(\boldsymbol{\Theta} ; \mathcal{D}) \triangleq \frac{1}{N} \sum_{i=1}^N f\left(\boldsymbol{\Theta} ; \mathbf{x}_i, y_i\right)+\lambda \sum_{k=1}^K \gamma(\mathbf{\Theta}) \tag{1}
Θminℓ(Θ;D)≜N1i=1∑Nf(Θ;xi,yi)+λk=1∑Kγ(Θ)(1)
典型场景下,VFL 具有 K K K 方。
- 其中下标为 k k k, k ∈ [ 1 , K − 1 ] k \in [1, K-1] k∈[1,K−1] 的是被动方 (passive party),只具有feature,不具有label。
- 只有主动方(active party)具有label,运算在主动方一方完成,下标为 K K K。
γ ( ⋅ ) \gamma(\cdot) γ(⋅) 是 函数正则化。 f ( ⋅ ) f(\cdot) f(⋅) 表示 任务的预测函数。
在VFL场景下,任意数据被
K
K
K 方分割开,共同构成数据的特征空间,i.e.,
{
x
i
,
k
∈
R
d
k
}
k
=
1
K
\{\mathbf{x}_{i,k} \in \mathbb{R}^{d_{k}}\}_{k=1}^{K}
{xi,k∈Rdk}k=1K。被动方只具有feature,即
D
k
≜
{
x
i
,
k
}
i
=
1
N
∀
k
∈
[
1
,
K
−
1
]
\mathcal{D}_k \triangleq\left\{\mathbf{x}_{i, k}\right\}_{i=1}^N \forall k \in [1, K-1]
Dk≜{xi,k}i=1N∀k∈[1,K−1]。主动方具备feature 和 label,如下:
D
K
≜
{
x
i
,
K
,
y
i
,
K
}
i
=
1
N
\mathcal{D}_K \triangleq\left\{\mathbf{x}_{i, K}, y_{i, K}\right\}_{i=1}^N
DK≜{xi,K,yi,K}i=1N
模型可以分为 local 部分 和 global 部分,分别用于每个 Party 各自的计算 和 汇总到 Active Pary 进行预测任务,将 Θ \boldsymbol{\Theta} Θ 重写, F K ( ⋅ ) \mathcal{F}_K(\cdot) FK(⋅) 表示global model,参数集合表示为 ψ K \psi_K ψK;每个local model 表示为 G k ( ⋅ ) \mathcal{G}_k(\cdot) Gk(⋅),参数分别为 θ k \theta_{k} θk。因此,典型的VFL形式化定义可以具体如下:
f ( Θ ; x i , y i ) = L ( F K ( ψ K ; G 1 ( x i , 1 , θ 1 ) , … , G K ( x i , K , θ K ) ) , y i , K ) (2) f\left(\boldsymbol{\Theta} ; \mathbf{x}_i, y_i\right)=\mathcal{L}\left(\mathcal{F}_K\left(\psi_K ; \mathcal{G}_1\left(\mathbf{x}_{i, 1}, \theta_1\right), \ldots, \mathcal{G}_K\left(\mathbf{x}_{i, K}, \theta_K\right)\right), y_{i, K}\right) \tag{2} f(Θ;xi,yi)=L(FK(ψK;G1(xi,1,θ1),…,GK(xi,K,θK)),yi,K)(2)
典型的 VFL 如图所示:
大体的 Pipeline 就是先进行sample的对齐,把 unaligned samples给去掉,针对相同的sample不同的feature 进行本地的训练,party之间只进行中间结果的交流,汇总到Global Model,最终由 Global Model 完成预测。
这里的 Global Model 可以分为 可训练的 (trainable) 和 不可训练的(non-trainable),作者分别表示为 splitVFL 和 aggVFL。如图所示:
VFL 训练协议
作者将 VFL 训练分为两大步骤:
- 隐私保护下的实体对齐(Privacy-Preserving Entity Alignment)
- 隐私保护下的模型训练(Privacy-Preserving Training)
实体对齐就是把不同party下的特征的不同行对应到同一个实体下。现在还有做一对多的模糊对应,用于加强表示,这个按下不表。
训练过程首先就是计算每个local model, H k = G k ( x k , θ k ) H_k = \mathcal{G}_{k}(\mathbf{x}_{k}, \theta_{k}) Hk=Gk(xk,θk)。计算完成后将 H k H_k Hk 发送到 active party,主动方聚合完成后先更新 global model, ∂ ℓ ∂ ψ K \dfrac{\partial \ell}{\partial \psi_{K}} ∂ψK∂ℓ。完事把对应每个 party 的梯度 ∂ ℓ ∂ H k \dfrac{\partial \ell}{\partial H_{k}} ∂Hk∂ℓ 回传,每个 local model 的参数更新如下:
∇ θ k ℓ = ∂ ℓ ∂ θ k = ∑ i ∂ ℓ ∂ H i , k ∂ H i , k ∂ θ k (3) \nabla_{\theta_k} \ell=\frac{\partial \ell}{\partial \theta_k}=\sum_i \frac{\partial \ell}{\partial H_{i, k}} \frac{\partial H_{i, k}}{\partial \theta_k} \tag{3} ∇θkℓ=∂θk∂ℓ=i∑∂Hi,k∂ℓ∂θk∂Hi,k(3)
这一过程伴随着隐私保护的应用,用于防止数据被窃取。
基于加密的隐私保护手段包括:
- 同态加密 HE(Homomorphic Encryption,表示为 [ [ ⋅ ] ] [[ \cdot ]] [[⋅]])
- 安全多方计算MPC(Secure Multi-Party Computation)
- 可信执行环境TEE(Trusted Execution Environment)
此外,还包括其他隐私保护方法,例如:
- 差分隐私DP (Differential Privacy)
- 梯度离散化 (Gradient Discretization)
典型的 VFL 运算流程展示如下:
介绍完了 VFL 的大体情况,下面介绍针对各个方面(包括 通信效率,性能,安全等)对 VFL 的优化。
对通信效率的优化
- Multiple Client Updates(Local Model 多次更新才和 Active Party 通信一次)
- Asynchronous Coordination (Local Model 不用跟 Active Party 同步,限制好相关条件,自由通信。当然可能存在模型还没训练好就请求数据的情况,这种就是各自约束通信条件了)
- One-Shot Communication(就通信一次)
- Compression (数据压缩)
- Sample and Feature Selection(下采样,具体包含 sample 和 feaure 的采样,这种肯定会涉及到性能下降,合理安排)
总结如下表:
对性能的优化
作者这里绘制了一份数据的表示图还挺方便的,展示如下:
align 的 sample 就是说在 横向上 sample 是否有重叠 (overlap);labeled 还是 unlabeled是说是否有标签。作者将多方场景简化为 A 和 B 两方的场景,分别考虑了不同场景下的优化方案。
这里主要优化的目标就是:
- 优化 Global Model 的性能(build a joint VFL model.)
- local model 也能完成预测任务(help participating parties build ** local predictiors**.)
自监督方案(Self-Supervised Approaches)
利用 local party 未标注数据,先完成自监督下的pretrain(看例子好像对比学习居多,大概意思应该是 Refine 本地的 重叠 sample 的表示以提高 Global Model 的性能)。
将公式(1)重写为 两方场景下的 VFL,如下:
min ψ A , θ A , θ B ℓ V F L ( ψ A , θ A , θ B ; D ) (4) \min _{\psi_A, \theta_A, \theta_B} \ell_{\mathrm{VFL}}\left(\psi_A, \theta_A, \theta_B ; \mathcal{D}\right) \tag{4} ψA,θA,θBminℓVFL(ψA,θA,θB;D)(4)
则Self-SL 方案形式化为:
ψ ~ A , θ ~ A , θ ~ B = arg min ψ A , θ A , θ B ℓ S e l f − S L ( ψ A , θ A , θ B ; D a u , D A u u , D B u u ) (5) \tilde{\psi}_A, \tilde{\theta}_A, \tilde{\theta}_B= \argmin_{\psi_A, \theta_A, \theta_B} \ell_{\mathrm{Self-SL}}\left(\psi_A, \theta_A, \theta_B ; \mathcal{D}^{a u}, \mathcal{D}_A^{u u}, \mathcal{D}_B^{u u}\right) \tag{5} ψ~A,θ~A,θ~B=ψA,θA,θBargminℓSelf−SL(ψA,θA,θB;Dau,DAuu,DBuu)(5)
这里的 D a u , D A u u , D B u u \mathcal{D}^{a u}, \mathcal{D}_A^{u u}, \mathcal{D}_B^{u u} Dau,DAuu,DBuu 第一个 a / u a/u a/u 表示 aligned/unaligned,第二个全是 u u u,表示 unlabeled,实际上就是用 non-overlapped samples 去提高 overlapped samples 的表示。
半监督方案(Semi-Supervised Approaches)
同样考虑 无标签数据, 使用 伪标签 (pesudo-label)来提高性能。
如下所示:
min
ψ
A
,
θ
A
,
θ
B
,
D
~
ℓ
V
F
L
(
ψ
A
,
θ
A
,
θ
B
;
D
~
)
+
λ
ℓ
S
e
m
i
−
S
L
(
ψ
A
,
θ
A
,
θ
B
;
D
,
D
A
u
l
,
D
B
u
u
)
,
(6)
\min _{\psi_A, \theta_A, \theta_B, \tilde{\mathcal{D}}} \ell_{\mathrm{VFL}}\left(\psi_A, \theta_A, \theta_B ; \tilde{\mathcal{D}}\right)+\lambda \ell_{\mathrm{Semi}-\mathrm{SL}}\left(\psi_A, \theta_A, \theta_B ; \mathcal{D}, \mathcal{D}_A^{u l}, \mathcal{D}_B^{u u}\right), \tag{6}
ψA,θA,θB,D~minℓVFL(ψA,θA,θB;D~)+λℓSemi−SL(ψA,θA,θB;D,DAul,DBuu),(6)
这里
D
~
\tilde{\mathcal{D}}
D~即为构造的 enriched 的数据。
知识蒸馏方案(Knowledge Distillation Approaches)
将教师模型的知识通过 VFL transfer 到 Active Party。
min ψ A s , θ A s ℓ A ( ψ A s , θ A s ; D A u l ) + λ ℓ K D ( ψ A s , θ A s , ψ A t , θ A t , θ B t ; D a u ) (7) \min _{\psi_A^s, \theta_A^s} \ell_A\left(\psi_A^s, \theta_A^s ; \mathcal{D}_A^{u l}\right)+\lambda \ell_{\mathrm{KD}}\left(\psi_A^s, \theta_A^s, \psi_A^t, \theta_A^t, \theta_B^t ; \mathcal{D}^{a u}\right) \tag{7} ψAs,θAsminℓA(ψAs,θAs;DAul)+λℓKD(ψAs,θAs,ψAt,θAt,θBt;Dau)(7)
迁移学习方案(Transfer Learning Approaches)
将 Active Party A 视为源域,Passive Party B 视为目标域。源域包含 labeled data,迁移到 目标域 不包含 或者 少量包含 label。目标应该是为了提高 B’s local predictor的性能。 形式化表示如下:
min ϕ B , θ B ℓ B ( ϕ B ; θ B ; D B ) + λ 1 ℓ A ( ψ A , θ A , θ B ; D , D A u l ) + λ 2 ℓ T L ( θ A , θ B ; D a u , D A u u , D B u u ) (8) \min _{\phi_B, \theta_B} \ell_B\left(\phi_B ; \theta_B ; \mathcal{D}_B\right)+\lambda_1 \ell_A\left(\psi_A, \theta_A, \theta_B ; \mathcal{D}, \mathcal{D}_A^{u l}\right)+\lambda_2 \ell_{\mathrm{TL}}\left(\theta_A, \theta_B ; \mathcal{D}^{a u}, \mathcal{D}_A^{u u}, \mathcal{D}_B^{u u}\right) \tag{8} ϕB,θBminℓB(ϕB;θB;DB)+λ1ℓA(ψA,θA,θB;D,DAul)+λ2ℓTL(θA,θB;Dau,DAuu,DBuu)(8)
安全性
作者定义了好几个层级的VFL安全性指标如下:
分别如下:
- 最低级 (P0): P1的适当宽松版,适用于非私人的label或model。
- 基础级(P1):本地数据和模型存在本地
- 标准级(P2):中间结果传输保护
- 加强级(P3):整个训练过程保护 (如安全多方计算)
- 严格级(P4):保护训练过程及训练好的模型
攻击场景如下所示:
相关文献总结如下:
其他
还包括 数据评估、数据集总结、作者总结的VFL整体评估框架 VFLow,未来发展方向,就不再赘述了。
总结
论文整体上相当工整,survey的方向也很全面,非常方便作为调研方向的参考。