文章目录
Info
最近很热门的一篇文章
代码已经开源
https://github.com/yanghu819/Graph-MLP
1 Motivation
基于谱和基于空间的GNN的特征聚合方法都依赖邻接矩阵去完成信息传递
文章的motivation认为GNN里面的信息传递模块是不必要的
2 Contribution
提出了不使用信息传递机制的Graph-MLP,这是第一次应用在节点分类任务上
提出了Graph-MLP,去掉信息传递模块
model level仅包含MLP,激活函数,正则化层
loss level设计了neighboring contrastive loss,使用邻接矩阵去缩小MLP和GNN的差距
提出了Neighboring Contrastive loss
实验显示Graph-MLP的效果很理想,在提高计算效率的情况下能达到和现有GNN的同样效果,某些情况下甚至能超过现有的baseline
3 Solution
传统GNN计算方法
一般经过L层得到结点特征的最终表示
Graph-MLP
结构
input:随机采样的B个结点,以及它们的特征
然后传入多层MLP,得到节点特征以及两个输出
其中X是结点特征矩阵,LN是图中的Layer Norm
Z 用作计算NContrast loss
Y 用作计算classification loss
Loss
在这里使用邻接矩阵的信息
-
NContrast loss
计算公式
sim衡量两个节点的相似度,
γ
i
j
\gamma_{ij}
γij表示结点i和结点j之间的连接强度
取值如下:
邻居节点视为正样本,不计算它们的连接强度
-
cross-entropy loss
传统的交叉熵损失函数
最后的loss由上面这两项拼接起来
l o s s f i n a l = l o s s C E + l o s s N C loss_{final} = loss_{CE} + loss_{NC} lossfinal=lossCE+lossNC
Training
-
前向传播
随机采样B个结点,获得它们的临界信息和节点特征
计算loss时不考虑那些没有邻居(正样本)的结点(没有解释原因)
-
推理
input:节点特征
邻接矩阵作为loss存在于model中,传统GNN把邻接矩阵作为emb信息传递给model,Graph-MLP则不需要,因此对于某些特殊的链接该模型具有更强的稳定性
4 Evaluation
数据集、baseline、结果见下图:
还有消融实验的就不贴了
5 Summarization
论文设计了MLP和Loss来代替传统GNN里面的消息传递模块,很新颖的做法
Loss里面使用的对比学习的思想,对于相邻的结点将它们的表示尽可能的统一,不相邻的结点将它们的表示加以区分