这一阵对图神经网络的理论表达能力很感兴趣,所以就读了很多理论相关的文章,感觉还是很巧妙的。
首先记录Jure大神的这篇文章吧。
作者在摘要里提到,本文是提供一个理论的评估GNN的表达能力的框架,并且提供了一个可证明的有最大的表达能力的GNN模型
作者在引言里提到设计GNN主要是基于经验,直觉,实验结果等,不太好。接着
接着作者就提到了WL test。根据作者的介绍,WL test就是迭代的更新一个点的表征为其邻居的表征,它能够将不同的邻居映射到空间里的不同位置,因此有很强的表达能力。
作者将它的贡献总结为:
且作者证明了GIN几乎完美拟合了数据集,而其他的都有很严重的欠拟合问题
作者将GNN形式化为下式,即聚合+更新隐状态
接着作者还介绍了READOUT函数,通过这个函数得到整个图的表征。
作者再次提到了WL test是为了区分图是否同构而提出的一个高效算法,这个问题目前仍然不是P时间可解的。
作者还提到了一种子树结构,即第k次 WL test可以视作一个高度为k的子树,如下图。
作者先提出了一点,最强大的GNN一定会且仅会将两个具有不同的子树结构的点映射到空间里不同的点(显然)
理想的来说,一个GNN可以
1)通过映射到向量空间的不同位置来区分不同的图结构
2)在向量空间的位置来捕捉结构上的相似性
接着,作者证明了任何基于聚合的GNN都不会比WL test强,那么如何让他们一样强呢,那么就得让pooling操作是一个一一映射。
作者首先证明了SUM函数是一个一一映射,即对于 X ⊂ X X \subset \Chi X⊂X, h ( X ) = ∑ x ∈ X f ( x ) h(X)=\sum_{x\in X} f(x) h(X)=∑x∈Xf(x),是一个一一映射。而且,任何多重集上的函数g都可以被分解成 g ( X ) = ϕ ( ∑ x ∈ X f ( x ) ) g(X) = \phi(\sum_{x\in X} f(x)) g(X)=ϕ(∑x∈Xf(x)),但诸如取平均值等不是一一映射。
接着作者证明了对于任意的 c ∈ X , X ∈ X c\in X, X \in \Chi c∈X,X∈X,都有无穷多的 ϵ \epsilon ϵ,使得 h ( c , X ) = ( 1 + ϵ ) ⋅ f ( c ) + ∑ x ∈ X f ( x ) h(c,X)=(1+\epsilon) \cdot f(c)+\sum_{x\in X} f(x) h(c,X)=(1+ϵ)⋅f(c)+∑x∈Xf(x),因此任何在 ( c , X ) (c,X) (c,X)上的函数,都可以被分解成 g ( c , X ) = ϕ ( 1 + ϵ ) ⋅ f ( c ) + ∑ x ∈ X f ( x ) g(c,X) = \phi(1+\epsilon) \cdot f(c)+\sum_{x\in X} f(x) g(c,X)=ϕ(1+ϵ)⋅f(c)+∑x∈Xf(x)
因此GIN模型就被设计出来了。
最后为了求得整个图的表征,为了保留各层的信息,作者设置了如下的函数来READOUT。
大神就是大神,看别的GNN就是“你没那么强,但是很有趣”,感觉很嘲讽。作者简单对比了基于mean和max的聚合方式,并且举出了一些mean和max会失败的例子。
作者有三句感觉很重要的话,MEAN学到的是分布,MAX学到的是不同的元素以及一层的全连接网络是不够的。
但是作者没有讨论基于attention的做法,但是作者相信这套理论是可以分析的。
寒假的是时候看到了一张图片,讲得是拓宽学术的边界,感觉很难,但是我觉得读博士的话的使命就是在拓宽学术的边界,我觉得我以后一定会为了拓宽学术的边界而努力的,一定要!