联邦学习之跨客户端信息重建

主要基于

  • Subgraph federated learning with missing neighbor generation. NIPS’21

  • Fedni: Federated graph learning with network inpainting for population-based disease prediction. IEEE Transactions on Medical Imaging’22


FedSage+

FedSage = FedAVG+GraphSage

FedAVG:

本地训练 (Local Training / Multiple Local Epochs):

  • 每个被选中的客户端 k 使用其本地数据集对接收到的模型 $W_{global}$ 进行训练。
  • 这意味着客户端 k 会在其本地数据上运行多轮(epochs)的随机梯度下降(或其他优化算法),以最小化其本地损失函数 ,从而得到一个本地更新后的模型$W_{local,k}$。

模型上传 (Model Upload): 客户端将本地训练完成后的模型参数发送回服务器。

模型聚合 (Model Aggregation):

  • 服务器收集来自各个客户端的本地模型参数。
  • 服务器通过对这些本地模型参数进行加权平均来更新全局模型: $W_{global}^{t+1}=\sum_{k=1}{n_k}W_{local,k}$

GraphSAGE:

伪代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Input:
G = (V, E) // 图结构
x_v // 节点 v 的初始特征向量,对于所有 v 属于 V
K // 聚合的层数 (搜索深度)
W^k // 第 k 层的权重矩阵 (可学习参数), for k = 1...K
AGGREGATE_k // 第 k 层的聚合函数 (例如 MEAN, POOL, LSTM), for k = 1...K
N(v) // 节点 v 的邻居集合
SAMPLE(S, num_samples) // 从集合 S 中随机采样 num_samples 个元素

Output:
z_v // 节点 v 的最终嵌入向量 (在第 K 层之后), for all v 属于 V (或目标子集)

Procedure:
// 初始化第 0 层的隐藏表示为节点的输入特征
h_v^0 ← x_v for all v ∈ V

// 对于每一层 k 从 1 到 K
FOR k = 1 TO K DO
// 对于图中的每一个节点 v (或者需要计算嵌入的目标节点)
FOR v ∈ V DO
// 1. 邻居采样: 从节点 v 的邻居中采样固定数量的邻居
// S_k 是为第 k 层预设的采样邻居数量
sampled_neighbors_of_v ← SAMPLE(N(v), S_k)

// 2. 聚合邻居信息:
// 从采样的邻居节点获取它们在上一层 (k-1) 的表示
// 并使用聚合函数 AGGREGATE_k 来汇总这些表示
h_N(v)^k ← AGGREGATE_k({h_u^(k-1) FOR u ∈ sampled_neighbors_of_v})

// 3. 更新节点表示:
// 拼接节点 v 在上一层的表示 h_v^(k-1) 和聚合后的邻居表示 h_N(v)^k
concatenated_representation ← CONCAT(h_v^(k-1), h_N(v)^k)

// 通过一个全连接层 (使用权重 W^k) 和非线性激活函数 sigma (例如 ReLU)
h_v^k ← σ(W^k ⋅ concatenated_representation)
END FOR
END FOR

// 最终的输出嵌入是第 K 层的隐藏表示
z_v ← h_v^K for all v ∈ V (or target subset)

RETURN z_v

FedSage+

FedSage+ 在 FedSage 的基础上引入了一个关键组件:缺失邻居生成器 (Missing Neighbor Generator, 通常称为 NeighGen)。通过显式地处理跨客户端连接的缺失问题,尝试恢复更完整的图结构信息。

dgen用了预测缺失邻居数量,fGen用了预测特征向量。

Fedni

随机从某个节点出发,使用BFS获取子图作为训练集,以学会从子图生成完整图的能力。

想法

(1)FedSage+的思想有点类似BERT,而另一篇论文Fedni利用了GAN的思想引入了鉴别器,和FedSage+的随机删除不同,他是使用广度优先搜索算法来实现节点删除。像FedSage+和Fedni都有一些NLP和CV中的比较先进的思想相类似的想法。那么它的未来方向是不是还可以参考比如CV中的diffusion model、NLP中的GPT系列等思想?

(2)FedGraph是由服务端来分配采样邻居策略,是不是意味着服务端知道所有子图间的连接数据,这样的话是不是隐私性/安全性没有FedSage+那么好,有没有可能存在攻击服务端来获取各子图之间连接的关系情况?

(3)联邦学习怎么和鲁棒性产生联系?


联邦学习之跨客户端信息重建
https://lijianxiong.work/2023/20230323/
作者
LJX
发布于
2023年3月23日
许可协议