Graph Attention Network的本质是什么?

链接:https://www.zhihu.com/question/275866887

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

33edbe12b74fcec60f3be4be23933084.png

为什么根据邻居节点预测自己的方法(Attention机制)会在graph embedding上有比较突出的表现,针对某一个特殊节点训练出来的参数为什么会有普适性

b9f54ba0a5a8f90a345929276412c718.png

作者:Mr yao
https://www.zhihu.com/question/275866887/answer/1643016079

最近也在研究GAT,但我在作者源代码抽取了一些训练好的attention矩阵进行输出后,发现其值就是类似的平均化,比如,一个节点有n条边,那么每条边的attention值就近似1/n。这就基本上回归到GCN了,表明gat的attention完全没学到任何边的重要性程度,下图是在Cora数据集上部分节点的对应边的attention值(citeseer数据集也类似)

8b74221de93b2e52ca4944344aac0f6c.png

Cora数据集部分节点的对应边的attention值

这个问题我问了GAT的作者,但作者仅说明了在同质图上会出现这种情况,而Cora数据集和citeseer数据集是典型的同质图,但在PPI数据集不会出现这种情况,贴一下原作者的回答:

Hi, and thank you for your issue!

The effect here usually occurs on homophilous datasets (of which Cora and Citeseer are definite cases). By definition, in such datasets, the edges often merely indicate that classes should be shared, so most of the performance can be recovered by something that resembles simple averaging. It is therefore in GATs' interest to learn a distribution that is close to uniform.

This effect does not happen on PPI.
Check out this blog-post from the Deep Graph Library team, which explores this effect detailedly:

https://docs.dgl.ai/en/0.4.x/tutorials/models/1_gnn/9_gat.html

Hope that helps!

Thanks,
Petar

详细去看了博客中的内容后发现也是表明在cora数据集上的attention值类似于平均化,在PPI数据集上有明显的区别,因此GAT在PPI上的效果远超其它GNN方法。但并没有解释为何在cora和citeseer这些同质图数据上gat学不到任何有用的attention值。按照常规的理解,分类问题类似于聚类问题,那么一个节点的n个邻居节点中,与其label相同的邻居节点所对应边的attention值应该更大才能使得其分类效果更好啊(在真实训练时看不到其label,但可以根据特征之间的相似程度来大致判断是否是同一类,比如欧式里的空间的距离),而非是所有边的平均化。

那么为何gat在同质图上学不到任何有用的attention值呢?为何平均化的attention值是趋于gat的利益的呢?

作者:liuxu03
https://www.zhihu.com/question/275866887/answer/1269784122

GAT我觉得最大的贡献在于将attention引入到GNN中,至于其模型效果,在"Pitfalls of Graph Neural Network Evaluation"一文中有非常详尽的实验证明,大部分情况下是不如GCN的......

上述的那篇文章也提到了现如今GNN的方法基本都在Cora,Citeseer和Pubmed上做验证,甚至连train/val/test的划分也完全一致,何尝不是一种对数据集的“过拟合”,也就是只是筛选出了在这三个数据集上能work的GNN模型。


作者:yeee leslie
https://www.zhihu.com/question/275866887/answer/708355331

GAT,GCN 和 Graphsage这几个model的本质都是一样的。aggregate neighbor的feature来学习自己的embeding,都可以理解成neighbor feature的weighted sum 在加上transform去reduce dimension。

GCN 的weighted sum系数是normalized laplace matrix。Graphsage 和 GCN 比较类似, 他自己提出了4种aggregator。GAT可以使不同的neighbor学习到不同的weight,再加上multihead,multihead可以理解为ensemble, 效果比其他两个model要好。

model有几个layer就是不同hop的node之间的message passing。

作者:匿名用户

https://www.zhihu.com/question/275866887/answer/1269921406Attention

本身作为消息传递机制,是去发掘一个系统的子系统之间的相关性。至于所谓普适性,那么一般而言,是没有成立的必然性的,如果对于某个系统或者问题成立,那么只说明问题本身的数据具有这个特点。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

a6dc718209fc5534a41389902f24ffaf.png

Guess you like

Origin blog.csdn.net/woshicver/article/details/120426475