图神经网络的灵魂三问 沈华伟

 

图卷积神经网络应该相信邻居吗?

出发点:现在的GCN改进方法都局限于对于信息聚合等等方面的改进,但是很少有人关注到邻居信息和自身信息的占比情况,有Attention方法可以解决,但是在实际中可能效果表现不佳,因为attention通常fitting训练集,训练集attention训练的好不代表效果就会好,尤其是在数据比较稀疏的情况下。但是attention对于样本少或图的结构一般来说效果并不一定很好,尤其是在数据比较稀疏的情况下。

方法:
文章设计了几个小组件,用以解决上述的问题,并做了丰富的实验来对文章的问题进行一一论证。

当想到的点改进方法效果可能并不好时,你不应该硬和别比较结果;而应该自己去设计实验,针对自己的改进点来设计一个实验环境,来突出你的论点改进。比如设计稀疏度,你应该在设计的稀疏度很高的情况下,再拿你的方法和别人的来比。也就是针对什么进行的改进那么就在上面情况下进行实验。


沈华伟:图神经网络的灵魂三问

 

 

 

 

GNN在结构上无能为力,他只是用结构做了一个约束、一个平滑,做了一个feature diffusion特征蒸馏的一个承载网络。

加入图片中有一个苯环,那么它能否把这个分子式分成苯;如果在到处都是苯环的情况下才能分成苯,那么就没那么好了。

 

比如说有一张绿色草地上的狗图片,那么你把它分成狗还是草地?也即做的到底是信息抽取还是相似度度量?如果是相似度度量的话,那么无论是分类成草地背景background还是里面的真正关注的东西--狗,都可以;都可以用来度量相似度。但是如果你做信息抽取,只是看一下分子式里面有没有苯结构,现在的GNN做不到,或者必须得设计一些别的方式来做,它本身没办法帮你来实现这个事情。这两年关于图分类的方面,大家一直在想这个事情,到底做的是模式识别,还是只是图相似性度量?

只不过把相似度度量从原来的一个pair转成了一个让它学一个一维的实值的向量表达而已。

 

能否构造一个表达能力更强大的GNN,许多人在做这方面的工作。只不过有些人是启发式的做,另一些人则是通过深的层次来解决。其实层次已经不能提升它的上界了;他已经理论上被圈住了;提升层次你可以提高能力,但是它的bound范围你还是扩大不了。

这两年大家一直都在做的是把一阶1-WL test扩展成K阶;一阶则是以节点对pair为单位,你可以认为他们有边缘性,也就是他们的边;如果两个边之间有共同的一个节点,那么他们俩就是邻近,通过这样的方式来定义邻近。然后你扩充K阶,就相当于K元的K元组来定义邻居,来做聚合。这样也就有了K-GNN的方式;K-GNN收邻近,现在定义GNN就是一个节点把自己的neighbor拿进来,但是那些和自己不相连的其他节点就不考虑了,但是这其实是对它的一个非常简化的方式;那如果你把它定义tuple之后,比如节点A,B,C的邻近,可能是A,B,D,其中A,B是一样的,知识C换了,更换其中一个元素,来实现定义neighborhood。再这样的K阶下,它的表达能力就突破了原来1阶的表达能力了;

当然你也可以设计K-GNN,它的方式和1-GNN类似,第一步是映射,就是把原来的G[S]通过一个映射函数f(0),得到一个新的表达,如上图中1所示;第二步就是把邻居信息聚合(如图中2所示),聚合后再和自己上一轮的表达combine (如图中3所示)。这里上图中用了sum,但只要你做一个变换,他可以代替combine的任何值,这样的方式和GNN的框架一样,只是把它的单位,从原来的2阶的tuple (甚至当前的GNN连2阶的tuple都算不上,它只是一个有边相连的2元tuple),但是这样的GNN已经比原来的GNN已经强很多了,但是它本身的cost比较大,需要处理的对象也增加很多,所以在实际应用中大家并不会这样做。

但是这样的方式给大家提供了一个引子,如果把表达能力提上去,方式就是类似于这样的拓展。这样通过把它所有可能的候选都列出来的方式,并不是我们需要的。我们需要的是逐层的layer-by-layer网络;如果能每层很简单,且能随着层数的增加,其表达能力能逐渐提升,是未来几年大家应该探索的问题。设计一个layer-by-layer网络获得比GNN更强大的表达能力,注意是layer-by-layer网络而不是把所遇的可能情况都枚举出来,那这样的话空间就是一个指数级的了,你列出来也没用;列出来也没法帮助获得我们想要的把相似的对象映射到相近的表达的目的。

posted on 2022-07-01 16:11  lmqljt  阅读(102)  评论(0编辑  收藏  举报

导航