GNN学习 GNN增强和训练
1.图增强
分为结构增强和特征增强
原始的图数据可能并不适合直接用于GNN
特征层面:
- 输入图可能缺少特征
结构层面:
- 图过于稀疏,导致信息传递效率低
- 图过于稠密,导致信息传递代价太高
- 图可能太大,导致GPU装不下
输入图很难是恰好适宜embedding的最优计算图
图增强方法
图特征增强
- 缺少图特征,就进行特征增强
图结构增强
- 图过于稀疏:增加虚拟节点或边
- 图过于稠密:在信息传递时抽样邻居
- 图太大:在计算embedding时抽样子图
图特征增强
存在的问题:
输入的图不含有节点的特征
解决方法
1.constant
我们可以给每个节点分配常数特征
2.onehot
给每个节点分配唯一的ID,将ID转换为独热编码向量的形式
为什么需要特征增强·
因为GNN很难学到特定图结构的问题
常见的节点特征有:
- 节点度数
- 聚集系数
- PageRank
- 中心性
图结构增强
1.添加虚拟节点或虚拟边
为了增强稀疏图
1.添加虚拟边
例子:在二部图的两跳就能达到节点添加虚拟边
一个好处就是在由作者-论文组成的二部图中,可以增加合作作者已经同作者论文之间的连接
2.添加虚拟节点
可以添加一个虚拟节点,这个虚拟节点与图上所有节点连接,这样会导致所有节点的最长距离变成2,这样稀疏图上的信息传递的速度就能大幅提升
2.对邻居节点采样
也就是在传递信息时,不使用一个节点的全部邻居,而改为抽样一部分邻居,缺点是可能会损失一些重要信息,不过我们可以每次抽样不同的邻居来增强模型的健壮性