CS224W 图机器学习06:GNN 的理论理解

1 计算图与邻域信息

关键问题:GNN 节点嵌入能否区分不同节点的局部邻域结构?

GNN 通过邻域定义的计算图生成节点嵌入:

  • 节点 1 和节点 5,因其度数不同而具有不同的邻域结构信息
  • 节点 1 和节点 2,具有相同的邻域结构信息;二者在图中是对称的
  • 节点 1 和节点 4,其 2 跳邻居的信息存在差异(邻居的度不同)

由于 GNN 主要依赖节点特征,而不考虑节点 ID

因此 GNN 无法区分位置同构的节点(节点 1 和节点 2)

2 GNN 的模型表达能力

单射(injective)函数:将不同的输入元素映射为不同的输出

直觉上考虑:单射函数 $f$ 保留了有关输入的所有信息

模型表达能力好的 GNN 模型应该能将不同的计算图单射到不同的节点嵌入:

  • 同深度的子树可以通过从叶节点迭代到根节点来实现信息的表征

启发:模型表达能力好的 GNN 模型应该在每一层中针对邻域信息使用单射聚合函数

这样 GNN 才能在聚合时尽量保留邻域信息,使得最终不同节点具备不同的嵌入表征

3 已有模型的表达能力局限

聚合函数能改善 GNN 的表达能力,尤其是单射聚合函数

概念补充:多重集(multi-sets),同一个元素可以出现多次的集合

邻域聚合函数的输入可定义一个由邻域节点组成的多重集

GCN 的邻域聚合分析:

  • 邻域聚合过程:先逐元素取均值,在进行线性映射与 ReLU 激活
  • GCN 的聚合函数无法区分具有相同颜色(相同特征值)比例的不同多重集

GraphSAGE 的邻域聚合分析:

  • 邻域聚合过程:先应用 MLP ,再逐元素取最大值
  • GraphSAGE 的聚合函数无法区分具有唯一颜色相同的不同多重集

总结:由于邻域信息聚合函数都不是单射的, GCN 和 GraphSAGE 存在局限性

思考:如何设计出最具表达能力的模型?

回答:在多重集上构建一个单射的邻域聚合函数

4 图同构网络 GIN

前置知识:WL 图同构检验

在 WL 图同构检验算法中,使用单射 HASH 函数对邻域信息进行聚合: $$ c^{(k+1)}(v)=\mathrm{HASH}\left(c^{(k)}(v), \left\{c^{(k)}(u)\right}_{u\in N(v)}\right) $$

  • 其中 $c^{(k)}(v)$ 表示根节点的特征,$\left{c^{(k)}(u)\right}_{u\in N(v)}$ 表示邻节点的特征

借助 MLP 的强大拟合能力,GIN 实现了逼近 WL 的邻域信息聚合能力: $$ \mathrm{GINConv}\left(c^{(k)}(v), \left\{c^{(k)}(u)\right}_{u\in N(v)}\right)=\mathrm{MLP}_\Phi\left((1+\epsilon)\cdot\mathrm{MLP}_f(c^{(k)}(v)))+\sum_{u\in N(v)}\mathrm{MLP}_f(c^{(k)}(u))\right) $$

  • 上式右侧满足单射函数处理多重集 $S$ 时的通用格式, $\Phi(\Sigma_{x\in S}f(x))$
  • 上式右侧中, $\epsilon$ 为可学习的标量参数,用于平衡节点本身的信息与邻域信息
  • GINConv 作为可微函数,对 WL 图同构检验算法中的 HASH 函数进行替代

GINConv 函数的目的是确保将不同的输入映射到不同的嵌入

GIN vs WL 算法:

  • WL 算法使用 HASH 函数更新,更新目标是节点的颜色(one-hot 格式)
  • GIN 的更新函数 GINConv 是可微的,可以结合下游任务进行参数的更新
  • GIN 更新的节点嵌入是低维向量,可以捕捉到不同节点的细粒度相似性
  • GIN 借助 MLP 实现逼近 WL 算法的性能,二者均具备较强的图区分能力

不同池化层的表达能力排序:sum > mean > max

5 补充:图训练技巧

针对第二次课下作业的一些图训练的技巧补充

数据预处理:对节点属性进行标准化处理

优化器:Adam 对学习率相对稳健

激活函数

  • ReLU 函数一般效果较好
  • 其他替代方案:LeakyReLU、PReLU
  • 输出层不需要激活函数;每层都会有偏置项

嵌入表示尺寸:32、64 和 128 通常是很好的起点

训练不收敛问题:依次排除 Pipeline、学习率等超参、参数初始化、损失函数

模型开发注意事项:小样本数据任意过拟合;监控训练和验证的损失曲线

往年同期文章