【2019/ICML】Position-aware Graph Neural Networks
TL;DR
目前存在的 GNNs 系列模型都不能捕获给定节点相对于其它所有节点的位置特征,本文中提出一个可以捕获节点特征的图神经网络模型 P-GNN。P-GNN 首先采样 anchor nodes 集合,然后计算给定目标节点相对于 anchor nodes 集合的距离,再学习一个非线性的距离权重的聚合模式。因此 P-GNN 融合节点相对于其它节点的位置信息。论文实验部分在链路预测与社团检测任务中明显优于其它模型。
问题引入
目前的一系列 GNNs 模型不能捕获图中节点的位置信息。在不考虑节点属性特征的情况下,如果图中两个节点如果相邻节点结构相同,那么 GNN 模型将会将这两个节点嵌入到特征空间中的相同位置,即融合得到的特征相同,但实际上这两个节点应属于不同的类。如下图所示:
目前提出了两种方法来解决该问题:
- 以 one-hot 编码来扩充节点的属性;
- 增加 GNN 的深度;
但是以上两种方法存在对应的问题:增添节点属性时不能泛化到节点属性未知的情况,任意深度的 GNN 也不能区分同构图。
基于以上问题,作者提出的 P-GNN 不仅能够融合节点相对于其它的位置信息,还能保持模型的归纳能力和融合节点的属性特征。论文基于的假设是节点位置可以由其与 anchor nodes 节点的距离来量化。P-GNN 首先选择 个节点子集来作为 anchor-sets,然后在前向过程中学习非线性的聚合模式来结合节点属性特征和加权节点和 anchor-sets 间的距离。至于如何选择, 文中提到 Bourgain theorem 来决定。
算法模型
P-GNN 的模型架构如下图所示:
- 个不同大小的anchor-sets
- 消息计算函数 结合两个顶点特征和其距离。
- 矩阵 表示 anchor-sets 消息,第 行表示根据 计算的一个 anchor-ser 消息。
- 可训练的聚合函数, 聚合 anchor sets 中节点的特征信息。
- 可训练的参数 将消息矩阵 映射到低维的向量空间。
整个框架的算法如下图所示:
上面有几点需要说明一下:
个 anchor sets 如何选择?
文中用了一堆理论证明 的大小如何定义,核心是 Bourgain theorem 理论,这里直接记录结果。
其中每个节点的采样概率为:。
消息计算函数 如何定义?
需要计算两个节点间的距离,由于最短路径计算的时间复杂性太高,因此文中提出了 最短路径的计算方法:
将节点间的距离转化为特征的相似性的计算方法:
最终的计算函数 定义为:
消息聚集函数 如何定义?
特征聚合的方式有很多, 等等。论文中采用的是 聚合方式就可以达到很好的效果。
实验对比
采用的数据集:
对于链路预测任务:
其中P-GNN-F表示快速模型,即采用,P-GNN-E表示采用完整的最短路径。
对于节点分类任务: