ICLR 2022 |GNN | GraphSNN (一)

631 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


标题

A NEW PERSPECTIVE ON "HOW GRAPH NEURAL NET- WORKS GO BEYOND WEISFEILER-LEHMAN?" (括号内的内容是个人见解,难免偏颇,望请指正)


主题

  1. 理论上刻画了Message-Passing GNN 比WL-test 的表达能力更强。(当然,这是基于判断不同graph结构的测试上的结论,GNN还有另外一个表达能力就是学习节点等特征的能力。)
  2. 基于以上理论,提出了GraphSNN,在多个区分图结构的数据集上取得了SOTA。

框架

在这里插入图片描述

定义:local isomorphism on neighborhood sub-graphs.

即在neighborhood sub-graphs 上的同构,就叫做邻居子图局部同构。(暂且这么翻译吧。。)

那么什么是neighborhood sub-graphs(邻居子图)呢?见上图:G1G_1vv邻居子图SvS_v就是中间的{v1...v4}\{v_1...v_4\},包括vv自己。

那么什么是overlap子图,比如,假设节点v1v_1的邻居子图为Sv1S_{v1},那么,Sv1S_{v1}SvS_v重叠的部分,即绿色椭圆部分,定义为Svv1=SvSv1S_{vv_1}=S_{v} \cap S_{v_1},即含了{v1,v2,v}\{v1,v2,v\}。再加上Svv2,Svv3,Svv4S_{vv_2},S_{vv_3},S_{vv_4},即为over-subgraphs。

同理,可得出G2G_2的overlab subgraphs。

(Ok,再回到上面的图。上图中,首先分别计算出G1,G2G1,G2中的节点v,uv,u的overlap子图,然后用GMP(graph message passing)框架学习出两个节点的embedding:hv,huh_v,h_u,完事儿。)

接下来作者定义了对于任意两个邻居子图Si,SjS_i,S_j的三种同构类型:

1. subgraph-isomorphism: SisubgraphSjS_i \simeq_{subgraph} S_j

邻居子图是同构的;v1,v2Siv_1,v_2 \in S_i是相邻的,有且仅有当g(v1),g(v2)Sjg(v_1), g(v_2) \in S_j也是相邻的,并且hv1=hg(v1)h_{v_1} = h_{g(v_1)}, hv2=hg(v2)h_{v_2}=h_{g(v_2)}

关于同构的定义其实很简单(即,对于任意两个图G1,G2G_1,G_2, 存在一个bijective mapping,g:G1G2g: G_1 \rightarrow G_2, 使得g(i)=jg(i)=j, iVertex(G1),jVertex(G2)i \in Vertex(G_1), j\in Vertex(G_2),详见:等下补充下同构,WL-test相关知识)。

2. overlap-isomorphism: SioverlapSjS_i \simeq_{overlap} S_j

即对于overlap子图中的每一个对overlap子图是subgraph-isomorphism的,即,SivsubgraphSjuS_{iv} \simeq_{subgraph} S_{ju}.

3. subtree-isomorphism: SisubtreeSjS_i \simeq_{subtree} S_j

只要求节点i,ji,j到其邻居节点构成的图同构,并且hv=huh_v = h_uvN^(i)v \in \hat{N}(i), uN^(j)u \in \hat{N}(j).

见图: 在这里插入图片描述