【从零开始】CS224W-图机器学习-2021冬季学习笔记9.1 Theory of Graph Neural Networks

课程主页:CS224W | Home
课程视频链接:斯坦福CS224W《图机器学习》课程(2021) by Jure Leskovec


1  前言

之前的内容学习了如何设计一个图神经网络,本章将继续介绍GNN的理论知识,主要学习如何提高GNN模型的表达能力(区分不同图结构的能力),并进一步设计一种表示能力最强的GNN模型。

先复习一下学过的GNN模型:

两个模型哪个更好呢?

本课程中用一般用节点颜色指代节点的特征,同色即特征相同。举例:下图中所有节点的特征都相同(黄色)。

2  区分局部邻居结构

举例1:节点1和节点5,因其度数不同而具有不同的局部结构信息,可以直接进行区分。

举例2: 节点1和节点4,具有相同度数,但可根据其邻居的度数不同进行区分。

举例3:节点1和节点2,具有相同的邻居结构,因为在图中是对称的,所以不可区分。(无论多少跳邻居上,都具有相同的局部结构,即位置同构)

我们接下来就要分析GNN节点嵌入能否区分不同节点的局部邻居结构,在什么情况下会区分失败。

我们将通过计算图这一关键概念来理解GNN是如何得到局部邻居结构的。

2.1  计算图

GNN通过聚合邻居节点信息得到的计算图来产生节点嵌入。
举例:节点1和节点2的计算图(两层GNN)

上面两个计算图本质上是一样的:因为GNN只能识别节点特征(颜色),不能识别节点的ID ,所以这两个计算图将被嵌入到同一个表示向量:

 一般来说,不同的局部邻居会得到不同的计算图:

计算图与每个节点周围的有根子树结构(Rooted subtree structures)相同,都通过从根节点递归展开邻居节点来定义。 

2.2  表现力最强的GNN模型

GNN通过捕获这个有根子树结构来得到节点嵌入,表示能力最强的GNN模型能将不同有根子树映射到不同的节点嵌入中(图中表示为不同颜色):

换句话说,表示能力最强的GNN就应该单射地映射有根子树到节点嵌入。

单射(Injective)函数:每个不同的自变量都映射到不同的因变量(不存在多对一的情况),这样可以在输出的Y中完整保留输入数据X中的信息

相同深度的子树可以从叶节点到根节点递归地传递信息,比如通过孩子的数量来区分两棵树:

进一步地,如果GNN每一步聚合都可以保留全部邻居信息,那么所产生的节点嵌入就可以区分不同的有根子树,也就达成了GNN具有最强表示能力的效果。

换句话说,表现能力最强的GNN就是每一步都使用单射邻居聚合函数(保留全部信息),把不同的邻居映射到不同的嵌入上

2.3  小结

GNN通过计算图(以节点为根的子树)来得到节点嵌入。

如果GNN的每一层都使用单射的邻居聚合函数(不丢失任何信息),就可以达成区分不同子树的效果。 

3  聚合函数分析

邻居聚合过程可以被抽象为一个多重集(multi-set, 一个元素可重复的集合,在此处指节点的邻居集合,节点特征可重复)上的函数。如图中以圆点集合作例,节点同色指特征相同:

 接下来我们分析GCN和GraphSAGE的聚合函数:

3.1  GCN的聚合函数

GCN:mean-pool + Linear + ReLU non-linearity

根据GCN原文的定义,GCN的聚合函数无法区分颜色占比相同的多重集(multi-sets):

在上图中,两种颜色的节点占比相同,取平均值会得到相同的结果,即它们在聚合后会传递一个相同的信息。如果用one-hot编码来表示两个不同的节点,GCN均值池化的失败会更加明显:

3.2  GraphSAGE的聚合函数

GraphSAGE:max-pool + MLP 

根据GraphSAGE原文的定义,GraphSAGE的聚合函数无法区分具有相同颜色配置的多重集:

 在上图中,三个多重集都是黄色和蓝色的配置,无论节点数量有多少,只要还是黄色或蓝色的节点,他们特征的最大值都不会改变(除非出现新的颜色)。如果用one-hot编码来表示,最大池化的失败会更加明显:

3.3  小结

根据上文对GNN表示能力的分析,我们得出的主要结论有:

  • GNN的表达能力由其邻居聚合函数决定;
  • 邻居聚合是个多重集上的函数,多重集是一个元素可重复的集合;
  • GCN和GraphSAGE的聚合函数都不能区分某些基本的多重集,因此都不单射,都不够具有表达能力。

4  设计单射的多重集函数

我们的目标是设计信息传递框架下表示能力最强的GNN,这要求我们设计出多重集上的单射的邻居聚合函数。

接下来,我们用神经网络建模单射的多重集函数。

4.1  单射的多重集函数

所有单射多重集函数都可以被表示为:(让每一个节点都作为函数 f 的输入)

如果按照节点颜色进行one-hot编码,对其求和就能得到输入多重集的全部信息(每类节点对应向量的一个索引,索引的求和结果就对应该类节点的数量,进而得到不同类节点个数的分布情况)
如图所示: 

(1,2)表示一个黄色两个蓝色

4.2  图同构神经网络(Graph Isomorphism Network,GIN

进一步地,我们如何来表示单射多重集函数中的 \Phi 和 f 两个映射呢?

根据万能近似定理,我们可以使用MLP来模拟这两个函数映射。

万能近似定理(universal approximation theorrm):
“一个包含足够多隐藏层神经元的多层前馈网络,能以任意精度逼近任意预定的连续函数”。
传送门:万能近似定理(universal approximation theorrm)_guoyunfei20的博客

应用MLP,我们可以用神经网络建模出任意一个单射的多重集函数,其形式即变为:

这就是GIN模型的聚合函数。在实践中,MLP的隐藏层维度在100-500就足够了。

GIN传送门:https://arxiv.org/pdf/1810.00826.pdf

GIN模型的聚合函数是单射的,基本没有区分失败的案例,是信息传递类GNN中表达能力最强的。

4.2.1  GIN和WL graph kernel的关系

图同构的概念:简单来说,两个图中的节点和边数量相同且边的连接关系相同(节点的空间位置可能不同),则两个图同构,两个图在拓扑上等价,两个图的邻接矩阵也相同。

参考:【离散数学】图论(七)图的同构

我们通过将GIN与WL graph kernel(获得图级别特征的传统方法,是用来测试图同构的经典算法之一)做关联,来全面了解GIN模型的整个架构。(GIN可以看作WL graph kernel的神经网络版)

先介绍WL kernel中的颜色细化算法:

举例:

迭代至稳定后,如果两个图的颜色集相同,说明它们同构。
下面两个图就显然不同构:

4.2.2  GIN的建模过程

GIN就是用一个神经网络来建模这个单射的哈希HASH函数:

单射函数建立在这个元组上:

GIN的单射聚合函数建模如下:

(ϵ 是个很小的可训练的标量)

在这个式子中,如果输入特征c^{\left ( 0 \right )}\left ( v \right )是one-hot编码(f即one-hot),那么直接加总就是单射的,比如:

这时,我们就仅需 Φ 来确保函数的单射,它需要产生one-hot向量来作为下一层的输入特征:

GIN和WL graph kernel的关系:GIN:逼近WL-test的GNN架构 | 冬于的博客

4.2.3  GIN的节点嵌入过程

GIN和WL kernel的式子基本相同

GINConv相当于可微的color HASH函数,将不同输入映射到不同嵌入中(即单射)。

4.2.4  GIN和WL graph kernel的比较

更新目标更新函数
WL graph kernel节点颜色(one-hot)HASH
GIN节点嵌入(低维向量)GINConv

GIN相较于WL graph kernel的优点在于:

  • 节点嵌入是低维的,因此可以捕获到细粒度的节点相似性
  • GINConv的参数可被学习得到并应用于下流任务

由于GIN与WL graph kernel的建模过程相似,所以二者的表示能力也是相同的。也就是对于一样的图,要么二者都能区分,要么都不能区分。
在理论上和实践上,WL graph kernel都能区分现实中的大部分图,因此GIN也能区分。

5  总结

  • 我们设计了一个可以建模单射多重集函数的神经网络
  • 我们用这个神经网络来聚合邻居信息,得到GIN:表示能力最强的GNN模型
  • 关键在于用element-wise sum pooling代替mean-/max-pooling
  • GIN与WL graph kernel十分相似
  • GIN和WL graph kernel都能区分现实中的大部分图

6  参考文献

1. http://web.stanford.edu/class/cs224w/slides/09-theory.pdf

2. cs224w(图机器学习)2021冬季课程学习笔记11 Theory of Graph Neural Networks_诸神缄默不语的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值