LEARN LOCALLY,CORRECT GLOBALLY

1.背景

大规模的图神经网络训练速度较慢,由于当前服务器的计算能力以及网络传输的带宽限制,利用数据并行进行训练加速或者进行采样缩小图的规模

通过现有采样技术缩小图的规模需要对数据进行集中式存储和训练,涉及隐私 分布式训练只需可信第三方服务器,图是相互关联的,做到数据并行有困难,直接切分图会丢失边的信息,有人提出在各节点服务器中传播图中节点的特征

2.我的解答

2.1Local Training with Periodic Averaging

每个机器在本地进行训练出一个忽略割边的GNN模型,然后发送到服务器进行周期性平均,然后得到周期平均后的模型继续进行训练,消除服务器之间的特征交换环节,减少通信开销,但导致了性能衰减由于忽略全局图结构以及不同机器间的节点依赖,

2.2Global Server Correction

在周期平均时增加一个阶段,利用可用的全局图结构修正局部训练出来的GNN模型

2.3传统方法

1.使用最小分割图算法进行图分割,使得割边最少

2.使用重要性采样来分配节点到机器上 ?

3.从其他机器上进行图像采样得出一个子图,作为原始图的近似

?输入特征和隐藏特征?

同时通信输入特征和隐藏特征,能减少每轮的通信开销(由于隐藏嵌入的尺寸较小,需要的节点特征较少)

3.算法具体步骤

3.1本地周期平均训练

首先从服务器中接受到最新的模型参数,每个本地机器迭代Kp**t次进行本地模型的更新。开始时使用较小的步长保证在服务端进行模型平均时本地的模型不会过于发散,随着训练的进行,梯度减小,通信量增大,提高epoch size

3.2全局矫正

全局服务器校正的设计是为了保证训练好的模型不仅从每台本地机器上的数据中学习,还能学习图的全局结构,从而减少图划分带来的信息损失,避免割边。

3.3单机上的GCN算法

一层中的每个节点的更新依赖该节点的所有邻居节点经过本层网络的输出的平均,目标函数为所有节点的损失的平均。

梯度为每个小批次经过网络后最后输出的结果的损失函数的梯度平均

3.4分布式GCN训练

大体上与单机上类似,不同的是采用了mini-batch来减小对内存的压力

3.5图3的解释

第一种情况为各个本地机器中通过节点的通信方式获得邻居节点的信息,梯度为两台机器上的平均。另一种情况为进行邻居节点采样后的梯度计算

3.6

近邻采样和非线性激活导致了方差的下界

mini - batch的存在导致方差的存在,分小批次,不能保证每一批次更新的梯度相同

由于没有掌握图的全局特征以及邻接矩阵,在本地机器上对全局梯度的估计并不是无偏估计。对全局梯度估计的准确性对分类问题来说起到重要作用。局部随机梯度的期望是局部全批梯度的有偏估计,这是因为每个本地机器上的随机梯度是通过使用邻居采样计算的。

4.实验部分

实验环境说明:正常的分布式环境由网络相互连接的各个主机组成,但是本论文使用一台机器进行模拟,CPU作为服务器,8个GPU每个GPU为两个模拟的本地机器提供计算能力,

评价指标:通信大小和通信轮数,wall-clock 挂钟时间 运行程序所需要的时间(不用该评价指标)

算法对比的两个对象(baseline):

  • PSGD-PA 忽略切边,即直接对全局图进行切割后直接在本地机器上进行训练,然后将训练后的模型参数在服务器上进行平均,作为论文中通信代价比较的下界
  • GGS 使用全局邻居节点采样,克服上述缺陷但增大了通信开销(作为分布式GNN算法的代表)

5 .贡献点

1.提出