引言

在阅读GNN相关论文时,经常会碰到一个概念叫做WL test(Weisfeiler-Lehman test),然而网上对这个概念的相关介绍却很少。本人在查阅了一些资料后,将自己对这个概念的理解记录下来,希望能和大家交流学习。由于本人学识有限,有不妥之处还请大家批评指正。

图同构

在介绍具体的Weisfeiler-Lehman test和Weisfeiler-Lehman算法之前,先对图同构(Graph Isomorphism)的概念进行简单的回顾。图同构是图论中用来描述两个图在拓扑结构上是否完全等价的一个概念,如果两个图GGHH完全等价,我们称GGHH是同构的;否则,GGHH是非同构的。显然,两个图GGHH等价的必要条件是:GGHH必须是同阶的(GGHH有相同的节点数目)。描述两个图同构的严格数学定义为:两个简单图GGHH是同构的,当且仅当存在一个将GG的节点1,...,n1, ..., n映射到HH的节点1,...,n1, ..., n的一一对应σ\sigma ,使得GG中任意两个节点viv_ivjv_j相连接,当且仅当HH中对应的两个节点σ(vi)\sigma(v_i)σ(vj)\sigma(v_j)相连接。如果GGHH是有向图,那么同构的定义中还进一步要求对于GG中任意两个相连的节点viv_ivjv_j,边(i,j)(i, j)与它在HH中对应的边(σ(vi),σ(vj))(\sigma(v_i), \sigma(v_j))方向相同。类似地可以定义两个多重图的同构关系。
关于图同构的一个具体例子如下,为方便起见,两图中对应节点被染成了相同的颜色:
Weisfeiler-Leman test与WL subtree kernel

WL test(Weisfeiler-Lehman test)

判断两个图是否为同构的是一个非常困难的问题,目前还没有一个可以在多项式时间内求解的算法。除了一些极端的情况外,WL test是用来判断两个图是否是同构的一个有效的方法,它的一维形式“naive vertex refinement”类似于GNN中的邻居信息聚合。具体操作分为两步:
(1)聚合当前节点vv及当前节点vv邻居节点的标签;
(2)用一个哈希函数将(1)中的聚合结果映射为一个新的标签并赋给节点vv
将上述两个步骤迭代多次,判断两个图GGHH的节点标签是否相同,若相同,则认为图GGHH是同构的;否则,GGHH是非同构的。如果设hih_i表示节点viv_i的标签,那么标签的更新公式可以表示为:
hl(t)(v)=HASH(hl(t1)(v),F{hl(t1)uN(v)}) h_l^{(t)}(v)=HASH(h_l^{(t-1)}(v), F\{h_l^{(t-1)}|u \in N(v)\})
其中,tt表示迭代次数,N(v)N(v)表示图中节点vv的邻居节点集合。

一维Weisfeiler-Lehman test的一个例子

给定有标签的图GGGG^{'}:
Weisfeiler-Leman test与WL subtree kernel
1.聚合两图中每个节点及其邻居节点的标签,当前节点自身的标签和其邻居节点标签之间用逗号隔开,邻居节点标签按升序排列,聚合结果如下:
Weisfeiler-Leman test与WL subtree kernel
2.用定义在多重集上的哈希函数在1中结果的基础上进行计算,得到每个节点的新的标签,并将新标签赋给相应节点:
Weisfeiler-Leman test与WL subtree kernel
Weisfeiler-Leman test与WL subtree kernel
如果两个图GGHH是同构的,则在某次迭代之后,这两个图对应节点的标签会变成完全相同的。

WL子树核(WL subtree kernel)

WL子树核是Shervashidze等人于2011年基于WL test提出的概念,它用来度量两个图之间的相似性。子树核用WL test迭代过程中不同节点标签的数量来作为图的特征向量。在WL test的第k次迭代过程中,一个节点的标签表示以该节点为根,高为k的一个子树结构。听起来有点太抽象了,下面用一个例子来说明:
Weisfeiler-Leman test与WL subtree kernel

上图中左边的部分表示原始的Graph,右边表示在经过两次WL test迭代后,以节点2为根的高为2(这里高的2和两次迭代相对应)的rooted subtree(根子树)的结构。除了上图右边所示的以节点2为根的高为2的根子树结构,以节点1,3,4为根的子树结构如下图所示(涂黑的表示节点2):
Weisfeiler-Leman test与WL subtree kernel
由于节点1和节点4对称,所以节点1和节点4对应的子树结构是相同的,因此,两次WL test迭代后形成的不同节点标签数为3。

参考文献

  1. HOWPOWERFUL AREGRAPHNEURALNETWORKS?
  2. GNN 教程:Weisfeiler-Leman 算法
  3. 图同构

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-04-13
  • 2021-11-11
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-04
  • 2021-11-03
  • 2022-12-23
  • 2021-07-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案