Graph-MLP: 非消息传递的图节点分类

看标题也是用 MLP 来做图节点分类,以为跟我《从对比链接中蒸馏自知识:非消息传递的图节点分类》撞车了,其实也算不上(而且作者似乎还没开源代码)。

作者主要是训练一个 MLP,仍对最后一层的输出做监督学习,但还对倒数第二层的输出(隐状态)做对比学习:从邻接矩阵中采样子矩阵,拉近子矩阵中的相邻节点、推远不相邻节点,衡量指标是余弦相似度。
这里的邻接矩阵不一定是原始的邻接矩阵,而是正则化后的邻接矩阵的 r 次幂,文章中作者说测试了 r 为 2、3、4 的情况。

但是对于邻接矩阵的阶可调这一点,我认为已经超出作者提出的方法的范围了,跟作者提出的对比方法关系不大。

一方面,作者自己对超参的实验表明,阶影响不大; 另一方面,假如在一个数据集上三阶表现尤其好,那么把三阶邻接矩阵也给 GCN 使用,效果会不会更好?

总之,该方法在三个引用数据集上效果很好,特别是在 Citeseer 和 Pubmed 上,比我方法好多了。

对比来看,我的 CoLinkDist 的对比学习部分是从边集中采样边、并从点集中随机采点组成逆边,好处是不构造邻接矩阵所以空间占用小,但采到的逆边中可能含有边而影响效果。

另外从方法创新上讲,我的主要工作在边蒸馏上,逆边的对比蒸馏只算辅助,而且分叉 MLP 还可以兼容消息传递机制。 所以说不存在撞车(但同时都在做 MLP 节点分类的研究还挺巧的)。

实验上就各有千秋了,我虽然做的数据集多、实验设置多,但是这篇文章围绕提出的方法做了四个额外的研究实验,值得借鉴学习:

  1. 分类速度对比。按理说这是文章(包括我的)的一个重要论点,是要有实验作为论据支持下的。但是我觉得 MLP 比 GCN 快这不是当然的吗就给省了
  2. 超参扰动实验。数据集多了之后会很麻烦,个人还是倾向于从少数数据集中总结出一个经验值或者设置超参的依据,所有数据集都共用。不过可以综合下,以后做论文如果有新提出的超参,就在一些数据集上做扰动实验,然后总结超参的设置经验,在最终的实验中用统一的超参设置
  3. 可视化。个人觉得这在监督学习的背景下其实意义不大,分类指标就能衡量了
  4. 健壮性。我是在做 OGB 实验时才意识到这一点的,LinkDist 也有这样对抗邻接矩阵损坏的特性。后面如果要补充内容,可以引用这篇文章的这个想法,补充健壮性实验

Page Not Found

Try to search through the entire repo.