前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >保持图上位置/距离/度来提升GNN表示能力

保持图上位置/距离/度来提升GNN表示能力

作者头像
Houye
发布2021-07-08 15:59:31
1.1K0
发布2021-07-08 15:59:31
举报
文章被收录于专栏:图与推荐

GNN的经典操作是聚合邻居信息来学习节点表示。在这个过程中,GNN很好的保持了图上的邻居结构,如K层GNN保持了图上的K阶邻居信息。另一方面,图上一些性质(节点之间的距离和位置,节点的度等)对于下游任务也是非常重要的。

image-20210622234209893

这里推荐3篇如何在GNN中保持图的位置/距离/度等信息并本质的提升GNN的表示能力。

image-20210623002207189

其中, Do Transformers Really Perform Bad for Graph Representation?拿到了OGB Graph-level 预测任务上的第一名。

19ICML P-GNN Position-aware Graph Neural Networks

image-20210623000116614

本文来自斯坦福Jure组,算是很早将节点位置信息注入到GNN聚合过程和节点表示中去的工作。对于position-aware,文中给出了清晰的定义,简单来说:节点对的向量表示能够反映其之间的距离(最短路径距离SPD)。

Definition 1. A node embedding

\mathbf{z}_{i}=f_{p}\left(v_{i}\right), \forall v_{i} \in \mathcal{V}

is position-aware if there exists a function

g_{p}(\cdot, \cdot)

such that

d_{s p}\left(v_{i}, v_{j}\right)=g_{p}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right)

, where

d_{s p}(\cdot, \cdot)

is the shortest path distance in

G

.

那如何具体来描述节点之间的距离呢?这里采取了一种间接的策略:

  • 首先选取一些节点集合作为地标,文中叫做anchor-set,其相当于地平线。
  • 计算所有节点到地标的距离。

可以看出,这里算的是绝对距离通过节点到地标的距离来间接反映节点之间的距离。

下图中选取了3个anchor-set

S=\left\{S_{1}, S_{2}, S_{3}\right\}

,其中anchor-set

S_1=\{ v_2, v_1\}

这种做法有2个问题

  • anchor-set如何选?选几个?每个里面有几个节点?
  • 算的是绝对距离,所以无法Inductive。比如新来一张图,无法直接进行预测。

image-20210622235130513

20NIPS Distance Encoding – Design Provably More Powerful Graph Neural Networks for Structural Representation Learning

image-20210623000052785

本文还是来自斯坦福Jure组,探究了节点之间的距离编码(distance encoding, DE)对于GNN能力的提升作用。

和上一篇P-GNN最大的不同在于,DE是直接计算节点对之间的相对距离,并对其进行编码和注入到GNN中去的。

优点是直接计算计算节点对之间的SPD确保了GNN的Inductive能力,且省去了选取anchor-set的麻烦。问题在于SPD的计算也会增加耗时的。

Do Transformers Really Perform Bad for Graph Representation?

image-20210623000033757

这篇文章拿到了OGB Graph-level 预测任务上的第一名。

image-20210623000237136

本文提出了以下3种编码技术。

  • Centrality Encoding,主要是编码节点的度的信息,当做初始节点属性的一部分。直观的想,度越大,节点越重要。
\begin{equation} h_{i}^{(0)}=x_{i}+z_{\operatorname{deg}^{-}\left(v_{i}\right)}^{-}+z_{\mathrm{deg}^{+}\left(v_{i}\right)}^{+} \end{equation}

其中,

\operatorname{deg}^{-}\left(v_{i}\right)

\operatorname{deg}^{+}\left(v_{i}\right)

分别代表节点的入度和出度。

  • Spatial Encoding,其实就是将节点对之间的SPD
\phi\left(v_{i}, v_{j}\right)

映射了一下。

A_{i j}=\frac{\left(h_{i} W_{Q}\right)\left(h_{j} W_{K}\right)^{T}}{\sqrt{d}}+\underline{b_{\phi\left(v_{i}, v_{j}\right)}}
  • Edge Encoding,编码了最短路径上边的信息。本文是针对分子图来设计的,分子之间的不同化学键代表了不同类型/强度的相关性。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图神经网络与推荐系统 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 19ICML P-GNN Position-aware Graph Neural Networks
  • 20NIPS Distance Encoding – Design Provably More Powerful Graph Neural Networks for Structural Representation Learning
  • Do Transformers Really Perform Bad for Graph Representation?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档