当前位置:   article > 正文

Graphormer(图上Transformer) Do Transformers Really Perform Bad for Graph Representation?_gcn+transformer

gcn+transformer

这个模型是KDD Cup 2021  OGB-LSC(Open Graph Benchmark Large-Scale Challenge)图预测赛道第一名: KDD Cup 2021 | 微软亚洲研究院Graphormer模型荣登OGB-LSC图预测赛道榜首

论文地址: https://arxiv.org/abs/2106.05234

论文代码: https://github.com/Microsoft/Graphormer

内容:提出了图上的Transformer,命名为Graphormer,大致实现:在transfomer的注意力分数中,添加了边信息和空间信息。文章还证明了以往模型,如GCN,GIN,GraphSAGE使其子集,因而Graphormer的效果更强。

1 GCN和Transformer

GCN

  • 老朋友了,每个节点从邻居节点那聚合信息,然后使用聚合的信息和自己原本的信息进行更新
  • 上述是节点级表示,若需要得到图级表示,还需要将整个图的信息用一个读出层进行处理

Transformer

  • 老老朋友了,不解释

2 Graphormer模型架构

结构编码

  • 文中有三种:点度中心性,空间编码和边编码

点度中心性:编码一个节点的重要性

  • 因为衡量的是一个节点的重要性,只需要加到节点表征中去就行
  • 这不是一个新东西了,类似的概念很多,详见: 图或网络中的中心性:点度中心性、中介中心性、接近中心性、特征向量中心性、PageRank_知行合一,止于至善-CSDN博客_特征向量中心性
  • 简单来说,点度中心性的思想是,如果一个节点的邻居节点越多,那么他就重要,计算方法:一个点的点度中心性 = 邻居数 / 总节点数减一(因为一个节点最多就这么多邻居)。例子:
      • 图中D与其他6个节点都相连,从点度中心性的角度来看D非常重要,D的点度中心性为6/6=1
  • 回到Graphormer,首先计算每个节点的入度和出度,然后将其编码为向量,加到他自己的编码中去
    • 嵌入入度和出度的神经网络deg(+代表出度,-代表入度)当然是可以学习到
    • h代表节点特征向量,x使是原本的特征向量,两个z使其节点中心性的编码
    • 此时,对于一个具体的入度或者出度,其对应的节点中心性的编码都是一致的,这是一个很好的特征

空间编码

  • Transformer本身没有处理顺序数据,亦即结构信息的能力。在处理文本的时候手动添加了位置编码。而在图中,需要寻找一种方法处理图的结构信息
  • 本文不是将空间位置直接编码在节点中,非欧数据直接编码空间信息到节点也确实不容易。但是处理相对位置信息就比较好想到了。具体来说,计算每一对节点之间的注意力系数的时候,将空间编码加到注意力系数之中。首先找到节点之间的最短路径长度
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/488318
推荐阅读
相关标签