GNN学习 GNN增强和训练

发布时间 2023-07-24 10:29:06作者: ANewPro

GNN学习 GNN增强和训练

1.图增强

分为结构增强和特征增强

原始的图数据可能并不适合直接用于GNN

特征层面:

  • 输入图可能缺少特征

结构层面:

  • 图过于稀疏,导致信息传递效率低
  • 图过于稠密,导致信息传递代价太高
  • 图可能太大,导致GPU装不下

输入图很难是恰好适宜embedding的最优计算图

图增强方法

图特征增强

  • 缺少图特征,就进行特征增强

图结构增强

  • 图过于稀疏:增加虚拟节点或边
  • 图过于稠密:在信息传递时抽样邻居
  • 图太大:在计算embedding时抽样子图

图特征增强

存在的问题:

输入的图不含有节点的特征

解决方法

1.constant

我们可以给每个节点分配常数特征

2.onehot

给每个节点分配唯一的ID,将ID转换为独热编码向量的形式

为什么需要特征增强·

因为GNN很难学到特定图结构的问题

常见的节点特征有:

  • 节点度数
  • 聚集系数
  • PageRank
  • 中心性

图结构增强

1.添加虚拟节点或虚拟边

为了增强稀疏图

1.添加虚拟边

例子:在二部图的两跳就能达到节点添加虚拟边

一个好处就是在由作者-论文组成的二部图中,可以增加合作作者已经同作者论文之间的连接

2.添加虚拟节点

可以添加一个虚拟节点,这个虚拟节点与图上所有节点连接,这样会导致所有节点的最长距离变成2,这样稀疏图上的信息传递的速度就能大幅提升

2.对邻居节点采样

也就是在传递信息时,不使用一个节点的全部邻居,而改为抽样一部分邻居,缺点是可能会损失一些重要信息,不过我们可以每次抽样不同的邻居来增强模型的健壮性