文章目录
1 论文的动机
2021 NeurIPS:缺失邻居生成联邦图学习 论文链接
一个大规模图由于存储或者是隐私问题等存储在不同的子图中,如何在不共享子图之间信息的情况下训练一个好的可以综合不同子图之间信息的模型?(without sharing actual data,how to obtain a globally powerful graph mining model)。 子图内存储的信息可能和全局图的信息具有很大的偏差(biased)。
于是本文做出了以下贡献:
( 1 ) FedSage,它训练了一个基于FedAvg的GraphSage模型集成多个局部子图上的节点特征、链接结构和任务标签;
( 2 ) FedSage +,它沿着FedSage训练一个缺失的邻居生成器,以处理跨本地子图的缺失链接。
2 图采样和聚合GraphSAGE (SAmple and aggreGatE)简介
2017 NeurIPS:大规模图数据的归纳式表示学习 论文链接
2.1 采样
定义:由于大规模图结构中包含大量的节点和边,直接对所有信息进行处理会非常耗时且计算成本高昂。因此,GraphSAGE采用了采样技术来选取每个节点的一小部分邻居进行处理。
目的:GraphSAGE采用了采样技术来选取每个结点的一小部分邻居进行处理。这种采样机制使得算法能够高效地处理大规模的图数据。
例子:
2.2 聚合和合并
定义:在采样了节点的局部邻居之后,接下来的步骤是对这些局部信息进行聚合,以生成节点的向量表示。这个过程涉及到定义一个或多个聚合函数,如均值(MEAN)、池化(POOLING)或长短时记忆网络(LSTM)等,用于从邻居节点的特征中提炼出有用的信息,并汇总成当前节点的嵌入表示。
例子
3 算法一: FedSage
3.1 分布在本地系统中的子图(Subgraphs Distributed in Local System)
记号:定义全局图
G
=
{
V
,
E
,
X
}
G = \{V, E, X\}
G={V,E,X}。
V
V
V 代表结点集合,
E
E
E代表集合,
X
X
X代表结点特征集合。在联邦系统中,有中心服务器
S
S
S,
M
M
M个分布式子图数据的拥有者。
G
i
=
{
V
i
,
E
i
,
X
i
}
G_i = \{V_i, E_i, X_i\}
Gi={Vi,Ei,Xi}是
D
i
D_i
Di拥有的子图
(
1
≤
i
≤
M
)
(1 \le i \le M)
(1≤i≤M)。
问题设定:
V
=
V
1
∪
V
2
∪
.
.
.
∪
V
M
V = V_1 \cup V2 \cup ... \cup V_M
V=V1∪V2∪...∪VM
V
i
∩
V
j
=
∅
V_i \cap V_j = \empty
Vi∩Vj=∅
e
v
,
u
∈
E
,
w
h
e
r
e
v
∈
V
i
a
n
d
u
∈
V
j
,
e
v
,
u
∈
E
i
∪
E
j
e_{v,u} \in E, \;where\; v \in V_i \; and \; u \in V_j , e_{v,u} \in Ei \cup Ej
ev,u∈E,wherev∈Viandu∈Vj,ev,u∈Ei∪Ej
目标:本文的系统使用了一个FL框架来协同地在多个data owner的独立的子图上进行协同学习,没有源图数据共享,来获得一个全局的节点分类器F。
ϕ
∗
=
a
r
g
m
i
n
R
(
F
(
ϕ
)
)
=
1
M
∑
i
M
R
i
(
F
i
(
ϕ
)
)
ϕ ∗ =argminR(F(ϕ))= \frac{1}{M}∑_i^M R i (F_i (ϕ))
ϕ∗=argminR(F(ϕ))=M1∑iMRi(Fi(ϕ))
3.2 孤立图上的协同学习(Collaborative Learning on Isolated Subgraphs)
利用简单高效的Fed Avg框架,将节点分类器F固定为Graph Sage模型。GraphSage模型的归纳性和可扩展性为训练具有异构查询分布的不同子图以及后期对全局图的推理提供了便利。我们将使用FedAvg框架训练的GraphSage模型称为FedSage。
以子图
G
i
G_i
Gi 举例,
h
v
0
=
x
v
h_v^0 = x_v
hv0=xv,F计算v的表征 如下:
h
v
k
=
σ
(
ϕ
k
⋅
(
h
v
k
−
1
∣
∣
A
g
g
(
h
u
k
−
1
,
∀
u
∈
N
G
i
(
v
)
)
)
)
h_v^k = σ ( ϕ^k ⋅ ( h_v^{k − 1} ∣ ∣ A g g ( h_u^{k − 1} , ∀ u ∈ N_{G_i ( v ) }) ) )
hvk=σ(ϕk⋅(hvk−1∣∣Agg(huk−1,∀u∈NGi(v))))
重要的有 关FedSage更新方式的说明 :
假设经过
e
c
e_c
ec 轮的训练通过分布式的子图系统获得一个共享的全局节点分类器(参数为
ϕ
ϕ
ϕ)。
在每一轮训练t中:
ϕ
i
←
ϕ
−
η
∇
l
(
ϕ
∣
{
(
G
i
(
v
)
,
y
v
)
∣
v
∈
V
i
t
}
)
ϕ_i ← ϕ − η ∇ l ( ϕ ∣ \{ ( G_i ( v ) , y_v ) ∣ v \in V_i^t \} )
ϕi←ϕ−η∇l(ϕ∣{(Gi(v),yv)∣v∈Vit})
其中
v
i
t
v_i^t
vit 是在
t
t
t轮中从所有节点中采样出的训练节点。
然后central server S收集最近的
{
ϕ
i
∣
i
∈
[
M
]
}
\{ ϕ_i ∣ i ∈ [ M ] \}
{ϕi∣i∈[M]},S设置
ϕ
ϕ
ϕ为前面收集的值的均值。
最后S将 ϕ ϕ ϕ广播到所有的data owner,完成了一轮的训练过程。
在经过了 e c e_c ec 轮的训练之后,整个系统返回F作为全局分类器的输出,它不局限于和偏向于任何一个data owner。
问题:data owner之间有可能是存在链接的,但是这种链接是缺失的,且这种信息不能被任何data owner所记录的。
4 算法二:FedSage+
4.1 Missing Neighbor Generator (NeighGen)
NeighGen的神经架构如下图所示,Neigh Gen由编码器He和发生器Hg两个模块组成。
4.2 Graphsage和Neighgen的联邦学习
类似于单独使用Graph Sage,通过将损失函数设置为L,可学习参数设置为{ θe,θd,θf,φ },可以将FedAvg应用于Graph Sage和Neigh Gen的联合训练。然而,我们观察到通过直接平均NeighGen在整个系统中的权重来进行合作会对其性能产生负面影响,即平均单个NeighGen模型的权重并不能真正让它从不同的子图中产生不同的邻居。考虑到我们构建Neigh Gen的目标是通过在每个子图中生成不同的缺失邻居来方便训练一个集中式的Graph Sage分类器,因此我们不一定需要一个集中式的Neigh Gen。因此,我们不训练单个集中式Neigh Gen,而是为每个数据拥有者Di训练一个本地Neigh Geni。为了让每个Neigh Geni生成与其他子图Gj相似的不同邻居,我们在fGeni中添加一个跨子图特征重构损失如下:
5 实验分析
利用Louvain algorithm来划分子图。数据集划分情况如下:
LocSage:无邻居生成。
LocSage+:无邻居生成+多个data owner共同参与训练。
FedSage:有邻居生成。
FedSage+:有邻居生成+多个data owner共同参与训练。
Fedsage差不多可以达到GlobSage的效果了。(损失很小)