随着电商平台和社交媒体平台的爆炸式增长,推荐算法已经成为很多企业不可或缺的工具。通常而言,推荐算法有两个主流方向:基于内容的推荐系统、基于协同过滤的推荐系统。
user
和 item
的内容信息来进行推荐,如用户的职业、item
的类型。user-item
交互数据(如购买、评分等)来进行推荐。论文 《Graph Convolutional Matrix Completion》
将矩阵补全问题视为一个图的链接预测问题:协同过滤中的交互数据可以由用户节点和 item
节点之间的二部图来表示,观察到的评分/购买由链接来表示。内容信息自然地以节点特征的形式包含在这个框架中。评分预测问题变为预测 user-item
二部图中的 labeled link
。
论文提出了图卷积矩阵补全 graph convolutional matrix completion: GCMC
:一种 graph-based
的自编码器框架用于矩阵补全,它建立在图上深度学习的最新进展的基础上。自编码器 auto-encoder
通过在二部图上消息传递的形式来产生 user latent feature
和 item latent feature
。这些潜在 user representation
和 item representation
用于通过双线性解码器重建评分链接rating link
。
当有额外的辅助信息side information
可用时,将矩阵补全问题视为二部图上的链接预测问题带来的好处尤为明显。将辅助信息和交互数据结合在一起可以有效缓解冷启动问题。论文证明了所提出的图自编码器模型有效地结合了交互数据和辅助信息。
相关工作:
自编码器auto-encoder
:user-based
或 item-based
自编码器是最近一类 state-of-the-art
协同过滤模型,可以视为我们的图自编码器模型的一个特例,其中仅考虑了 user embedding
或仅考虑了 item embedding
。
《Autorec: Auto-encoders meet collaborative filtering》
是第一个这样的模型,其中 user
(或 item
)部分观察到的评分向量 rating vector
通过编码器层 encoder layer
投影到潜在空间,并使用具有均方重构误差损失mean squared reconstruction error loss
的解码器层 decoder layer
进行重构。
《A neural autoregressive approach to collaborative filtering》
提出的 CF-NADE
算法可以被认为是上述自编码器架构的一个特例。在 user-based
的设置中,消息仅从 item
传递给user
;而在 item-based
的设置中,消息仅从 user
传递给 item
。
我们的图自编码器同时考虑了
item
传递给user
,以及user
传递给item
。
注意,与我们的模型相比,CF-NADE
给未评分的 item
在编码器中被分配了默认评分 3
,从而创建了一个全连接的交互图 interaction graph
。CF-NADE
对节点进行随机排序,并通过随机切割 random cut
将传入消息划分为两组,并仅保留其中一组。因此,该模型可以看做是一个降噪自编码器,其中在每次迭代中随机丢弃输入空间的一部分。
我们的模型仅考虑观测的评分,因此不是全连接的。
分解模型:很多流行的协同过滤算法都是基于矩阵分解 matrix factorization: MF
模型,这种方式假设评分矩阵可以很好滴近似为低秩矩阵:
其中:
embedding
矩阵,每一行代表一个用户的 user embedding
向量,即user latent feature representation
。item embedding
矩阵,每一行代表一个 item embedding
向量,即item latent feature representation
。embedding
向量的维度,并且满足 user
集合,item
集合。在这些矩阵分解模型中:
《Probabilistic matrix factorization》
提出的概率矩阵分解 probabilistic matrix factorization: PMF
假设 《Matrix factorization techniques for recommender systems》
提出的 BiasedMF
通过融合 user-specifc bias, item-specific bias, global-bias
来改进 PMF
。《Neural network matrix factorization》
提出的 Neural network matrix factorization: NNMF
通过将 latent user feature
和 latent item feature
传递给前馈神经网络来扩展 MF
方法。《Local low-rank matrix approximation》
提出的局部低秩矩阵近似介绍了使用不同低秩近似的组合来重建评分矩阵的思想。带辅助信息的矩阵补全matrix completion with side information
:在矩阵补全问题中,目标是使用低秩矩阵来逼近 rank
的最小化是一个棘手的问题。
《Exact matrix completion via convex optimization》
使用最小化核范数nuclear norm
(矩阵的奇异值之和)来代替秩的最小化,从而将目标函数变成了可处理的凸函数。
Inductive matrix completion: IMC
将 user
和 item
的内容信息融入到特征向量中,并预估 user
item
其中 item
user embedding
矩阵和 item embedding
矩阵。
《Matrix completion on graphs》
提出的 geometric matrix completion: GCM
模型通过以 user graph
和 item graph
的形式添加辅助信息,从而对矩阵补全模型进行正则化。
在 《Collaborative filtering with graph information: Consistency and scalable methods》
提出的 GRALS
将一种更有效的交替最小二乘优化方法引入了图正则化矩阵补全问题。
最近,《Geometric matrix completion with recurrent multi-graph neural networks》
提出,通过在图上使用卷积神经网络将 graph-based
辅助信息融合到矩阵补全中,并结合递归神经网络来建模动态评分生成过程。
和他们不同,GCMC
直接使用图卷积编码器/解码器对评分的二部图进行建模,通过一个non-iterative
步骤即可预测 unseen
的评分。
相比之下,
sRGCNN
需要用迭代式的多个step
才能预测评分。
给定用户集合 item
集合 item
我们将矩阵补全问题转化为链接预测问题。考虑二部图 item
如下图所示:
user-item
之间的评分(评分在 1~5
分之间),或者未观测(评分记作 0
)。user-item
评分的二部图,边对应于评分行为,边上的数字对应于评分数值。矩阵补全问题转化为链接预测问题的核心是:链接如何对应到评分?
GCMC
的做法是:每个等级的评分对应一条边,因此有种不同类型的边。
- 每种类型的边都有一个编码器,所有编码器的结果聚合得到
node embedding
。- 每种类型的边都有一个解码器,所有解码器的结果求期望得到预估的评分。
但是,这里没有考虑评分之间的大小关系:评分为
1
要小于评分为。因此这里忽视了非常重要的评分排序关系。
之前的 graph-based
推荐算法通常采用 multi-stage pipeline
,其中包括图的特征抽取模型(如 graph embedding
模型)以及图的链接预测模型。这些模型都是独立分开训练。
但是最近的研究结果表明:通过端到端的技术来建模图结构化数据可以显著提升效果。在这些端到端技术中,应用于无监督学习和链接预测的图自编码graph auto-encoder
技术尤为突出。因此我们提出一种图自编码器的变种来应用于推荐任务。
图自编码器由一个编码器和一个解码器组成,其中:
编码器模型:
embedding
矩阵,每一行代表一个节点的 embedding
向量,node embedding
向量维度。解码器模型:embedding
对于二部图
其中:
user embedding
矩阵,item embedding
矩阵。
{0,1}
内取值,item
因此,
这里对每种类型的边定义了一个邻接矩阵,不同的邻接矩阵代表了不同的模型,因此类似于
《Convolutional Networks on Graphs for Learning Molecular Fingerprints》
提出的neural graph fingerprint
模型。
类似地,我们重新定义解码器为:
解码器输入一对 user-item
的 embedding
向量,并返回 user
item
我们通过最小化预测评分矩阵 RMSE
(将评分预测视为回归问题)或者交叉熵(将评分预测视为分类问题)。
最后,我们注意到可以将最近提出的几个矩阵补全 state-of- the-art
模型纳入我们的框架中,并将它们视为我们模型的特例。
这里我们选择了一种特定的编码器模型,它可以有效地利用图中 location
之间的权重共享,并为每种边类型
我们选择局部图卷积 local graph covolution
作为编码器模型。这类局部图卷积可以视为消息传递的一种方式,其中消息在图的链接之间传递和转换。
在我们case
中,我们为每个评分等级分配一个level-specific
变换,使得从 item
其中:
left normalization
) 或者
根据论文的描述,这里应该是
和 ,即类型为 的邻域。此外,还要求满足: 以及 。
level-specific
权重矩阵。
同理,用户 item
这里也可以选择使用不同的
level-specific
权重矩阵(即 user -> item
和item -> user
传递消息时,权重矩阵不同)。
在消息传递之后:
representation
向量。representation
向量聚合,从而得到节点的单个聚合向量。embedding
向量。以下公式为用户节点 embedding
计算公式,item
节点 embedding
也是类似的。
其中第一行公式称作卷积层,第二行公式称作 dense
层。
注意:
当没有辅助信息可用时, dense
层对于 user
和 item
都采用相同的参数矩阵
当存在辅助信息可用时, dense
层对于 user
和 item
都采用单独的参数矩阵
这里卷积层只有一层。虽然可以堆叠更多的卷积层来构建更深的模型,但是在最初的实验中我们发现堆叠更多卷积层并不能提高性能。
同理,堆叠更多的 dense
层也不能提高性能。因此,最终我们选择单层卷积层 + 单层 dense
层的组合作为图编码器。
这里给出的模型仅仅是一种可能性。虽然编码器的选择相对简单,但是也可以选择不同的变种。例如:
attention
机制从模型中学习每个消息的权重,从而替代消息的归一化常数 我们使用双线性解码器 bilinear decoder
来重建二部图的链接。令用户 item
其中每个评分等级 embedding
向量的维度。
每个评分登记
关联一个 用于编码、关联一个 用于解码。
模型最终预估的评分为所有评分等级预估结果的期望值:
损失函数:模型训练期间我们将 GCMC
模型的损失函数定义为:最小化预估评分
其中:
mask
矩阵:对于观测值对应的项,因此,上述目标函数仅在所有观测的评分上优化。
GCMC
模型的整体框架如下所示。模型由图卷积编码器
user-> item
或者 item -> user
传递并变换消息。user embedding
和item embedding
的 pair
对来预估评分。node dropout
:为使得模型能够很好地泛化到未观测的评分,我们以概率 node dropout
。注意:和常规 dropout
一样,在消息丢弃之后需要 rescale
。
这种 node-level
的 dropout
和常规的 dropout
不同。常规的 dropout
是在message-level
进行 dropout
,称作 message dropout
。
message dropout
中,每条消息随机独立地丢弃,使得最终 embedding
对于边的扰动更为鲁棒。node dropout
中,每个节点随机独立地丢弃,使得最终 embedding
对于特定用户和特定 item
的影响更为鲁棒。这会缓解一些热门用户或热门item
的影响。最后,我们还对卷积自编码器的 dense
层的隐单元使用了常规的 dropout
。
mini-batch
训练:为了训练较大的数据集(如 MovieLens-10M
数据集),我们需要对观测数据进行采样,从而进行 mini-batch
训练。这是将 MovieLens-10M
的完整模型加载到 GPU
内存所必须的。
我们从每个等级的观测评分中采样固定比例的评分,然后仅考虑该 mini-batch
的损失。这样我们在训练过程中仅需要考虑当前 mini-batch
中出现的 user
和 item
。这既是正则化的有效手段,又可以降低训练模型需要的内存。
通过在 Movielens-1M
数据集上使用 mini-batch
训练和 full-batch
训练的实验对比(对比时针对二者分别调优了各自的正则化参数),我们发现二者产生了可比的结果。
最后,对于 MovieLens-10M
以外的其它数据集,我们选择 full-batch
训练,因为 full-batch
训练相比 mini-batch
训练的收敛速度更快。
在 GCMC
的实现中,我们可以使用高效的稀疏矩阵乘法来实现图自编码器模型,其算法复杂度和边的数量呈线性关系,即
假设聚合函数 accum
为累加,则图卷积编码器为(采用左归一化):
其中:
degree matrix
,
这里是否要替换为
,即评分等级 下的邻接矩阵的度矩阵?
另外,采用对称归一化的图卷积编码器以及双线性解码器的向量化 vectorization
也以类似的方式进行。
理论上可以将包含每个节点的信息(如内容信息)的特征直接作为节点的输入特征(即特征矩阵 item
)及其兴趣时,将内容信息直接馈入图卷积层会导致严重的信息流瓶颈bottleneck of information flow
。
此时,可以通过单独的处理通道 channel
,从而将用户特征向量或 item
特征向量以辅助信息的形式纳入全连接层中。
由于内容信息灌入到模型的最后一层,因此上述的信息流瓶颈不会出现,因为瓶颈只会出现在中间层。那么这么做对不对?理论依据是什么?
我们选择输入特征矩阵 one-hot
表示。令用户节点 embedding
为:
其中:
bias
向量。
user
节点的参数为 item
节点的参数为 user,item
类型的节点使用两套不同的参数。
因为
user
节点和item
节点具有不同的输入特征空间。
本文实验中使用的数据集中,用户内容以及 item
内容的信息大小有限,因此我们使用这种辅助信息的方式。
注意:辅助信息不一定要以节点特征向量的形式出现,也可以是图结构(如社交网络)、自然语言或者图像数据。此时可以将上式中的 dense
层替换为适当的可微模块,如 RNN
、CNN
或者其它图卷积网络。
编码器权重共享:在辅助信息的方式中,我们使用节点的 one-hot
向量作为输入。此时矩阵 user
节点(如果节点 item
节点)或者 item
节点(如果节点 user
节点)。
但是,并非所有用户拥有评分等级为 item
拥有评分等级为
遵从 《A neural autoregressive approach to collaborative filtering》
我们实现了以下权重共享策略:
由于更高的评分等级包含的权重矩阵数量更多,因此我们称这种权重共享为有序权重共享 ordinal weight sharing
。
为什么更高评分包含的权重矩阵数量更多?完全没有道理。
解码器权重共享:对于成对双线性解码器,我们采用一组基权重矩阵 basis weight matrix
其中:
这种解码器的权重共享是一种有效的正则化手段。
数据集:我们在多个常见的协同过滤 benchmark
数据集上评估我们的模型。
MovieLens
(100K,1M, 10M
)数据集:包含多个用户对多部电影的评级数据,也包括电影元数据信息(如电影题材)和用户属性信息(如用户年龄、性别、职业)。该数据集有多个版本,对应于不同的数据量。Flixster
数据集:来自于社交电影网站 Flixster
的电影评分数据集,数据集包含了用户之间的好友关系。Douban
数据集:来自豆瓣的电影评分数据集,数据集包含用户之间的好友关系。YahooMusic
数据集:来自 Yahoo! Music
社区的用户对音乐家的评分数据集。对于 Flixster,Douban, YahooMusic
数据集,我们使用《Geometric matrix completion with recurrent multi-graph neural networks》
论文提供的预处理的子集。预处理后,每个数据集包含 3000
个用户节点以及 3000
个 item
节点,以及对应的 user-user
或 item-item
交互图。
下图给出了数据集的统计信息,其中Features
表示是否包含用户特征或者item
特征,Ratings
表示数据集的评分数量,Density
表示评分矩阵中已观测评分的占比,Rating level
表示评分等级范围。
baseline
模型:
MC, IMC, GMC, GRALS, sRGCNN
。具体细节参考前文所述。PMF, I-RBM, BiasMF, NNMF
。 具体细节参考前文所述。LLORMA-Local, I-AUTOREC, CF-NADE
。 具体细节参考前文所述。另外我们还对比了我们不带额外信息的GCMC
模型,以及带辅助信息的 GCMC+Feat
模型。
参数配置:
所有 baseline
方法直接采用原始论文中的实验结论数据(因此也不需要实现和运行这些 baseline
方法)。
对于 GCMC
模型,我们通过验证集从以下超参数范围选择最佳的超参数:
accumulation
:stack vs sum
。vs
否。vs
对称归一化。node dropout
比例: 另外,除非另有说明,否则我们使用以下超参数配置:
0.01
的 Adam
优化器。500
的单层卷积层(使用 ReLU
激活函数) + 维度 50
的单层 dense
层(无激活函数)。最后,我们使用学习模型参数的指数移动平均(衰减因子 0.995
)在保留的测试集上评估模型。
Movielens-100k
数据集(特征向量形式的辅助信息实验):我们直接使用数据集原始的 u1.base/u1.test
的训练集/测试集拆分结果。对于该数据集,我们使用辅助信息来参与所有模型的训练。在该数据集我们对比了矩阵补全 baseline
方法和我们的 GCMC
方法,其中:
GMC, GRALS, sRGCNN
通过 user/item
特征。对于 GCMC
的超参数,我们将原始训练集按照 80:20
进行训练集/验证集的拆分,然后通过验证集来调优超参数:在图卷积中使用 stack
作为累积函数,选择
对于 GCMC
模型,我们不带任何辅助信息。对于 GCMC + Feat
我们使用辅助信息,并且辅助信息的 side information layer
使用维度大小为 10
的 dense
层(采用 ReLU
激活函数)。
我们使用 1000
个 full-batch epoch
来训练 GCMC
和 GCMC + Feat
。我们随机重复执行 5
次并报告测试集上的平均 RMSE
结果。整体评估结果如下(baseline
数据直接来自于 《Geometric matrix completion with recurrent multi-graph neural networks》
)。
结论:
我们的 GCMC
方法明显优于baseline
方法,即使在没有辅助信息的情况下也是如此。
和我们方法最接近的是 sRGCNN
方法,它在用户和 item
的近邻图上使用图卷积,并使用 RNN
以迭代的方式学习表示。
实验结果表明,使用简单的解码器(而不是复杂的 RNN
)直接从学到的user embedding/ item embedding
中直接评估评分矩阵可以更有效,同时计算效率更高。
MovieLens-1M, MovieLens-10M
数据集(无辅助信息的实验):在该数据集上我们和当前的 state-of-the-art
协同过滤算法(如 AutoRec, LLorma, CF-NADE
)进行比较。
我们采取和 《A neural autoregressive approach to collaborative filtering》
相同的训练集/测试集拆分方式,拆分比例 90:10
。另外,baseline
方法的结果直接使用该论文的数值。
该数据集不带任何辅助信息,因此我们没有比较 GCMC + Feat
。我们对原始训练集按照 95:5
随机拆分为训练集/验证集,然后通过验证集来调优超参数:
对于 MovieLens-1M
数据集,我们使用 sum
作为累计函数,选择
对于 MovieLens-10M
,我们使用 stack
作为累计函数,选择
另外考虑到该数据集的评分等级数量翻倍,我们选择解码器的基参数矩阵数量
一旦选择好超参数之后,我们就在整个原始训练集上重新训练模型,并利用训练好的模型来评估测试集。
对于 MovieLens-1M
我们训练 3500
个 full-batch epoch
,对于 MovieLens-10M
我们训练 18000
个 mini-batch step
(对应于 batch size =10000, epoch = 20
)。
我们按照 90:10
随机拆分原始训练集/测试集,并重复执行 5
轮,报告模型在测试集上的平均 RMSE
。所有 baseline
评分来自于论文 《A neural autoregressive approach to collaborative filtering》
中的数据。对于 CF-NADE
我们报告了最佳性能的变体。
结论:
GCMC
方法可以扩展到大规模数据集,其性能可以达到 user-based
或者 item-based
协同过滤的 state-of-the-art
方法。CF-NADE
引入的几种技术,如:layer-specific
学习率、特殊的ordinal
损失函数、评分的自回归建模,这些都和我们的方法正交,因此这些技术也可以和我们的 GCMC
框架结合使用。Flixster, Douban, YahooMusic
(图形式的辅助信息实验):这些数据集包含了一些图结构的辅助信息。我们通过使用这些图的邻接向量(根据degree
进行归一化)作为相应的 user/item
的特征向量,从而引入辅助信息。
注意:辅助信息的图是社交网络等
user-user
图,或者item-item
图。它们不同于user-item
二部图。
我们根据论文 《Geometric matrix completion with recurrent multi-graph neural networks》
的训练集/测试集拆分。所有 baseline
方法的结果都取自于该论文的数值。
我们从训练集中按照 80:20
随机拆分为训练集/验证集,然后通过验证集来调优超参数:在图卷积中使用 stack
作为累积函数,选择
对于 GCMC
模型,我们使用辅助信息,并且辅助信息的 side information layer
使用维度大小为 64
的 dense
层(采用 ReLU
激活函数)。
我们使用 full-batch
训练 200
个 epoch
。
最终我们重复执行 5
轮,并报告模型在测试集上的平均 RMSE
。其中 Flixster
有两组结果:左侧结果表示同时引入了 user
辅助信息和 item
辅助信息;右侧结果表示仅考虑 item
辅助信息。
结论:GCMC
在所有baseline
中取得了 state-of-the-art
效果。
注意:
GCMC
在所有三个数据集上都采用相同的超参数配置,如果针对各自数据集调优,效果会进一步提升。
冷启动实验:为深入了解 GCMC
模型如何通过辅助信息来提升冷启动性能,我们选择 MovieLens-100K
数据集,随机选择固定数量的冷启动用户 MovieLens=100K
原始数据仅包含具有至少 20
个评分的用户。
我们考察当 GCMC
的性能(
可以看到:对于冷启动用户,使用辅助信息能够带来显著的提升,在只有一个评分的用户上表现尤为突出。
图是一种普遍存在的结构,广泛出现在数据分析问题中。现实世界的图(如社交网络、金融网络、生物网络和引文网络)代表了重要的丰富的信息,这些信息无法仅仅从单个实体中看到(如一个人所在的社区、一个分子的功能角色、以及企业资产对外部冲击的敏感性)。因此,图中节点的 representation learning
旨在从节点及其邻域中抽取高级特征,并已被证明对许多 application
非常有用,如节点分类、节点聚类、以及链接预测。
最近的工作集中在 node representation
的深度学习方法上。其中大多数深度学习方法遵循邻域聚合(也称作消息传递 message passing
)方案。这些模型迭代式地聚合每个节点的 hidden feature
及其周围邻域节点的 hidden feature
,从而作为该节点的新的 hidden feature
。其中每一次迭代都由一层神经网络来表示。理论上讲,执行 hidden feature
的聚合过程,利用了以节点 Weisfeiler-Lehman
图同构测试graph isomorphism test
的推广,并且能够同时学习图的拓扑结构以及邻域节点特征的分布。
但是,这种聚合方式可能会产生出人意料的结果。例如,已经观察到 GCN
的深度为 2
时达到最佳性能;当采用更深网络时,虽然理论上每个节点能够访问更大范围的信息,但是GCN
的效果反而更差。在计算机视觉领域中,这种现象称作学习退化 degradation
,该问题可以通过残差连接来解决,这极大地帮助了深度模型的训练。但是在 GCN
中,在很多数据集(如,引文网络)上即使采用了残差连接,多层 GCN
的效果仍然比不过 2
层 GCN
。
基于上述观察,论文 《Representation Learning on Graphs with Jumping Knowledge Networks》
解决了两个问题:
jumping knowledge network: JK-Net
框架。该框架和现有的模型不同,JK-Net
为每个节点灵活地利用不同的邻域范围,从而实现自适应的结构感知表示 structure-aware representation
。通过大量实验,论文证明了 JK-Net
达到了 state-of-the-art
性能。另外,将 JK-Net
框架和 GCN/GraphSage/GAT
等模型结合,可以持续改善这些模型的性能。
模型分析:为评估不同邻域聚合方案的行为,论文分析了节点 representation
依赖的邻域范围。论文通过节点的影响力分布 the influence distribution
(即不同邻域节点对于 representation
的贡献的分布)来刻画这个邻域范围。邻域范围隐式的编码了 nearest neighbors
的先验假设。
具体而言,我们将看到这个邻域范围严重受到图结构的影响。因此引发了一个疑问:是否所有的节点 tree-like
子图、expander-like
子图)。
进一步地,论文形式化地分析将 eigenvalue
的函数。
改变的局部性changing locality
:为了说明图结构的影响和重要性,请回想一下许多现实世界的图具有强烈局部变化的结构locally strongly varying structure
。在生物网络和引文网络中,大多数节点几乎没有连接,而一些节点 (hub
)连接到许多其它节点。社交网络和 web
网络通常由 expander-like
部分组成,它们分别代表 well-connected
实体和小社区 small community
。
除了节点特征之外,这种子图结构对于邻域聚合结果也有非常大的影响。邻域范围扩张的速度(或者叫影响半径的增长)通过随机游走的 mixing time
来刻画(即:从节点
例如考虑如下 GooglePlus
的社交网络,该图说明了从正方形节点开始的随机游走的扩散(随机游走的扩散也代表了影响力分布的扩散)。可以看到:不同结构的子图带来不同的邻域范围。
a
中,来自核心区域内节点的随机游走很快就覆盖了几乎整个图(随机游走覆盖的节点以绿色表示)。b
中,来自tree
形区域节点的随机游走经过相同的 step
之后,仅覆盖图的一小部分(随机游走覆盖的节点以绿色表示)。c
中,来自 tree
形区域节点使用更长的 step
之后达到了核心区域,并且影响力突然快速扩散。 在graph representation
模型中,这种随机游走的扩散转换为影响力分布。这表明:在同一个图中,相同数量的随机游走 step
可以导致非常不同的效果。因此我们需要根据具体的图,同时结合较大的邻域范围和较小的邻域范围:
JK network
:上述观察提出一个问题:能否有可能对不同的图和不同的节点自适应地调整邻域范围。为此论文 《Representation Learning on Graphs with Jumping Knowledge Networks》
提出了 JK-Net
框架,该框架在网络最后一层选择性地组合不同邻域范围,从而自适应地学习不同邻域的局部性locality
。如,将不同邻域范围 jump
到最后一层,因此这个网络被称作 Jumping Knowledge Networks: JK-Nets
。
相关工作:谱图卷积神经网络 spectral graph convolutional neural network
使用图拉普拉斯特征向量作为傅里叶基,从而在图上应用卷积。与诸如邻域聚合之类的空间方法spatial approach
相比,谱方法spectral method
的一个主要缺点是:需要提前知道图拉普拉斯矩阵(是 transductive
的)。因此,谱方法无法推广到 unseen
的图。
定义图
定义图
假设基于消息传递的模型有 hidden feature
为 hidden feature
的维度。为讨论方便,我们选择所有层的 hidden feature
维度都相等。另外,我们记
定义节点
则典型的消息传递模型可以描述为:对于第 hidden feature
更新方程为:
其中:
AGG
为聚合函数,不同的模型采用不同的聚合函数。GCN
图卷积神经网络(《Semi-supervised classification with graph convolutional networks》
)hidden feature
更新方程为:
其中 degree
。
《Inductive representation learning on large graphs》
推导出一个在 inductive learing
中的 GCN
变体(即,GraphSAGE
),其hidden feature
更新方程为:
其中 degree
。
Neighborhood Aggregation with Skip Connections
:最近的一些模型并没有同时聚合节点及其邻域,而是先聚合邻域,然后将得到的neighborhood representation
和节点的上一层representation
相结合。其hidden feature
更新方程为:
其中
在这种范式中,COMBINE
函数是关键,可以将其视为跨层的跳跃连接 skip connection
。 对于COMBINE
的选择,GraphSAGE
在特征转换之后直接进行拼接,Column Network
对二者进行插值,Gated GCN
使用 GRU
单元。
但是,该跳跃连接是 input-specific
的,而不是 output-specific
的。考虑某个节点 skip
。则后续更高层 skip
。我们无法做出这样的选择:对于第 skip
、对于第 skip
。即跳跃连接是由输入决定,而不是由输出决定。因此,跳跃连接无法自适应地独立调整 final-layer representation
的邻域大小。
Neighborhood Aggregation with Directional Biases
:最近有些模型没有平等地看到邻域节点,而是对“重要”的邻居给与更大的权重。可以将这类方法视为 directional bias
的邻域聚合,因为节点受到某些方向的影响要大于其它方向。
例如:GAT
和 VAIN
通过 attention
机制选择重要的邻居,GraphSAGE
的 max-pooling
隐式地选择重要的邻居。
这个研究方向和我们的研究方向正交。因为它调整的是邻域扩张的方向,而我们研究的是调整邻域扩张的范围。我们的方法可以和这些模型相结合,从而增加模型的表达能力。
在下文中,我们证明了 JK-Net
框架不仅适用于简单的邻域聚合模型(GCN
),还适用于跳跃连接 (GraphSAGE
)和 directional bias
(GAT
)。
我们首先利用 《Understanding black-box predictions via influence functions》
中的敏感性分析 sensitivity analysis
以及影响力函数的思想,它们衡量了单个训练样本对于参数的影响。给定节点 representation
。从这个影响范围,我们可以了解到节点
我们通过衡量节点 final representation
的影响程度,从而测量节点
影响力得分和分布的定义:给定一个图 hidden feature
, final representation
。
定义雅可比矩阵:
定义节点 influence score
为:雅可比矩阵
其中:
定义节点 influence distribution
为:所有节点对于节点
对于任何节点 representation
的影响。
考虑在
其物理意义为:随机游走第
步到达节点 的概率。
类似的定义适用于具有非均匀转移概率的随机游走。
随机游走分布的一个重要属性是:如果图是非二部图non-bipartite
,则它随着 spread
,并收敛到极限分布。收敛速度取决于以节点 spectral gap
(或者 conductance
) 的限制bounded
。
不同聚合模型和节点的影响力分布可以深入了解各个 representation
所捕获的信息。以下结果表明:常见的聚合方法的影响力分布和随机游走分布密切相关。这些观察暗示了我们接下来要讨论的优缺点。
假设 relu
在零点的导数也是零(实际上 relu
函数在零点不可导),则我们得到 GCN
和随机游走之间的关系:
定理:给定一个 GCN
变体,假设以相同的成功率
证明:令
则有:
这里我们简化了
这里
假设存在
其中
则根据链式法则,我们有:
对于每条路径
现在我们考虑偏导数
其中 relu
激活函数在
假设
因此有:
另外,我们知道从节点
假设每一层的权重相同:
这里的证明缺少了很多假设条件的说明,因此仅做参考。
很容易修改上述定理的证明,从而得到 GCN
版本的近似结果。唯一区别在于,对于随机游走路径
其中 degree
接近时。
类似地,我们也可以证明具有directional bias
的邻域聚合方案类似于有偏的随机游走分布。这可以通过替换掉上述定理中相应的概率得到证明。
从经验上看,我们观察到即使假设有所简化,但是我们的理论分析仍然接近于实际情况。
我们可视化了训练好的 GCN
的节点(正方形标记)的影响力分布的热力图,并与从同一节点开始的随机游走分布的热力图进行比较。较深的颜色对应于较高的影响力得分(或者较高的随机游走概率)。我们观察到 GCN
的影响力分布对应于随机游走分布。
为显示跳跃连接的效果,下图可视化了一个带跳跃连接的 GCN
的节点的影响力分布热力图。同样地,我们发现带跳跃连接的 GCN
的节点影响力分布大致对应于 lazy
随机游走分布(lazy
表示每步随机游走都有较高的概率停留在当前节点,这里 lazy
因子为 0.4
)。由于每次迭代过程中,所有节点的局部信息都以相似的概率进行保留,因此这无法适应不同高层节点的各种各样的需求。
为进一步理解上述定理,以及相应邻域聚合算法的局限性,我们重新审视了下图中社交网络的学习场景。
expander
(左图)内部开始的随机游走以 step
快速收敛到几乎均匀分布。根据前述的定理,在经过 representation
几乎受到 expander
中所有任何其它节点的影响。因此,每个节点的 representation
将代表 global graph
,以至于过度平滑并带有节点自身的非常少的信息。tree-like
(右图)开始的随机游走,其收敛速度较慢。这使得经过消息传递模型的聚合之后,每个节点的 representation
保留了更多的局部信息。如果消息传递模型的层数 representation
。
最后我们描述了热力图的相关细节,并提供了更多的可视化结果。
热力图中的节点颜色对应于影响力分布得分或者随机游走分布的概率。颜色越浅则得分越低、颜色越深则得分越高。我们使用相同的颜色来表示得分(或者概率)超过 0.2
的情形,因为很少有节点的影响力得分(或概率)超过 0.2
。对于得分(或概率)低于 0.001
的节点,我们没有在热力图中展示。
首先我们比较 GCN
的影响力分布 vs
随机游走概率分布,以及带跳跃连接的 GCN
的影响力分布 vs
惰性随机游走概率分布。
目标节点(被影响的节点或者随机游走的起始节点)标记为方块。
数据集为 Cora citation
网络,模型分别为 2/4/6
层训练好的 GCN
(或者带跳跃连接的 GCN Res
)。我们使用 《Semi-supervised classification with graph convolutional networks》
描述的超参数来训练模型。
影响力分布、随机游走分布根据前述的公式进行计算。
lazy
随机游走使用 lazy factor = 0.4
的随机游走,即每个节点在每次转移时有 0.4
的概率留在当前节点。
注意:对于degree
特别大的节点,GCN
影响力和随机游走概率的颜色有所不同。这是因为我们这里的 GCN
是基于公式
这使得在 GCN
影响力模型中,degree
更大的节点,其权重越低。
然后我们考察了不同子结构,这些可视化结果进一步支持了前述的定理。
下图中,使用 2
层的 GCN
模型分类错误,但是使用 3
层或 4
层 GCN
模型分类结果正确。
当局部子图结构是 tree-like
时,如果仅仅使用 2
层 GCN
(即查看 2-hop
邻域),则抽取的信息不足以支撑其预测正确。因此,如果能够从 3-hop
邻域或 4-hop
邻域中抽取信息,则可以学到节点的局部邻域的更好表示。
下图中,使用 3
或 4
层的 GCN
模型分类错误,但是使用 2
层 GCN
模型分类结果正确。这意味着从 3-hop
或 4-hop
邻域中抽取了太多无关的信息,从而使得节点无法学到正确的、有助于预测的 representation
。
expander
子结构中,随机游走覆盖的节点爆炸增长,3-hop
或者 4-hop
几乎覆盖了所有的节点。因此这种全局信息的 representation
对于每个节点的预测不是很理想。bridge-like
子结构中,抽取更远的节点的信息可能意味着从一个完全不同的 community
中获取信息,这可能意味着噪音并影响最终预测。前述观察提出了一个问题,即:在通用聚合方案中使用固定的、但是结构依赖的影响力半径大小是否能够实现所有任务中节点的best representation
。
oversmoothing
。为此,我们提出了两个简单有效的体系结构调整:跳跃连接 + 自适应选择的聚合机制。
如下图所示为 JK-Net
的主要思想。
itermediate representation
中仔细挑选(jump
到最后一层),从而作为最终的节点 representation
。由于这是针对每个节点独立完成的,因此模型可以根据需要为每个节点调整有效邻域范围,从而达到自适应的效果。
可以理解为常规的
GCN
模型之上再添加一个聚合层。
JK-Net
也使用通用的层聚合机制,但是最终的节点 representation
使用自适应选择的聚合机制。这里我们探索三种主要的聚合方法,其它方法也可以在这里使用。
令 representation
(每个中间层代表了不同的影响力范围),并将它们 jump
到最后一层。
concatenation
聚合:直接拼接
node-adaptive
的。node-adaptive
的。max-pooling
聚合:对 feature coordinate
选择信息最丰富的layer
。这种方式是自适应的,并且不会引入任何其它额外的学习参数。
LSTM-attention
聚合:注意力机制通过对每个节点 representation
对于节点 representation
为所有中间层的 representation
的加权平均:
对于 LSTM-attention
:
LSTM
的输入,并对每层 LSTM hidden feature
LSTM hidden feature
hidden feature
softmax layer
应用到 attention
得分。attention
得分的加权和,作为节点 final representation
。LSTM-attention
是 node-adaptive
的,因为不同节点的 attention score
是不同的。实验表明,这种方法适用于大型复杂的图。由于其相对较高的复杂度,会导致在小型图上过拟合。
另外,也可以将 LSTM
和最大池化相结合,即 LSTM max-pooling
。
这种
LSTM
聚合的方式太复杂,可以简单地基于来计算一个注意系数,然后基于注意力来聚合。
JK-Net
的实现比较简单,大量的篇幅都在形容理论。但是,这里的理论仅仅是解释问题,并没有解决问题。这里的layer aggregation
方式既没有理论解释,也没有解决问题(针对不同的节点自适应地选择不同的邻域大小):
- 为什么如此聚合?论文未给出原因。
- 不同的聚合方式代表了什么样的领域大小?这里也没有对应的物理解释。
层聚合layer aggregation
函数设计的关键思想是:在查看了所有中间层学到的 representation
之后,确定不同影响力范围内子图representation
的重要性,而不是对所有节点设置固定的、相同的影响力范围。
假设 relu
在零点的导数也是零(实际上 relu
函数在零点不可导),则 layer-wise max-pooling
隐式地自适应地学习了不同节点的局部影响力。layer-wise attention
也是类似的。
推论:假设计算图中相同长度的路径具有相同的激活概率 layer-wise max-pooling
的 JK-Net
中,对于任意
证明:假设经过层聚合之后节点 representation
为
其中
根据前述的定理,我们有:
其中:
下图给出了采用 max-pooling
的 6
层 JK-Net
如何学习从而自适应引文网络上不同的子结构。
在 tree-like
结构中,影响力仍然停留在节点所属的 small community
中。
相反,在 6
层 GCN
模型中,影响力可能会深入到与当前节点不想关的其它 community
中;而如果使用更浅层的 GCN
模型,则影响力可能无法覆盖当前节点所在的 community
。
对于 affiliate to hub
(即 bridge-like
)节点,它连接着不同的 community
,JK-Net
学会了对节点自身施加最大的影响,从而防止将其影响力扩散到不想关的community
。
GCN
模型不会捕捉到这种结构中节点自身的重要性,因为在几个随机游走step
之后,停留在 bridge-like
节点自身的概率很低。
对于 hub
节点(即 expander
),JK-Net
会在一个合理范围内将影响力扩散到相邻节点上。这是可以理解的,因为这些相邻节点和 hub
节点一样,都具有信息性。
JK-Net
的结构有些类似于 DenseNet
,但是一个疑问是:是否可以像 DenseNet
一样在所有层之间都使用跳跃连接,而不仅仅是中间层和最后一层之间使用跳跃连接。如果在所有层之间都使用跨层的跳跃连接,并使用 layer-wise concatenation
聚合,则网络结构非常类似于 DenseNet
。
从 graph theory
角度审视 DenseNet
,图像对应于规则的 graph
,因此不会面临具有变化的子图结构的挑战。确实,正如我们在实验中看到的,使用 concatenation
聚合的模型在更规则的图(如图像、结构良好的社区)上表现良好。
作为更通用的框架,JK-Net
接受更通用的 layer-wise
聚合模型,并在具有更复杂结构的图上实现更好的 structure-aware representation
。
数据集:
引文网络数据集 (Citeseer, Cora
) :数据集中每个节点代表一篇论文,特征为论文摘要的 bag-of-word
,边代表论文之间的引用链接。节点类别为论文的主题。
Reddit
数据集:数据集中每个节点代表一个帖子,特征为帖子所有单词的 word vector
。如果某个用户同时在两个帖子上发表评论,则这两个帖子之间存在链接。节点类别为帖子所属的 community
。
PPI
数据集:数据集包含 24
个图,每个图对应于一个人体组织的蛋白质结构图。图中每个节点都有 positional gene sets, motif gene sets, immunological signatures
作为特征, gene ontology sets
作为标签。
我们使用 20
个图进行训练、2
个图进行验证、剩余的 2
个图作为测试。
数据集的统计信息如下表所示:
baseline
模型:GCN
、GraphSage
、GAT
。
实验配置:
在 transductive
实验中,我们只允许访问单个图中的节点子集作为训练数据,剩余节点作为验证集/测试集。
在 Citeseer, Cora, Reddit
数据集上的实验是 transductive
的。
在 inductive
实验中,我们使用多个完整的图作为训练数据,并使用训练时未见过的、剩余的图作为验证集/测试集。
在 PPI
数据集上的实验是 inductive
的。
对于 Citeseer
和 Cora
数据集,我们选择GCN
作为 base
模型,因为在我们的数据集实验中它超越了 GAT
。
我们分别选择 MaxPooling(JK-MaxPool)
、Concatenation(JK-Concat)
、LSTM-attention(JK-LSTM)
作为最终聚合层来构建 JK-Net
。在进行最终聚合时,被聚合的 representation
除了图卷积中间层的 representation
之外,我们还考虑了第一个线性变换的 representation
(可以理解为第零层的 representation
)。最终预测是通过 final
聚合层的 representation
之上的全连接层来完成。
我们将每个图的节点根据 60%:20%:20%
的比例随机拆分为训练集、验证集、测试集。对于每个模型,我们将层数从 1
到 6
,针对验证集选择性能最佳的模型(及其对应的卷积层深度)。
JK-Net
配置:
0.005
的 Adam
优化器。0.5
的 dropout
。hidden feature
维度(Citeseer
为 16
,Cora
为 32
)。0.0005
的 每组实验随机执行3
次并报告准确率 accuracy
的均值和标准差(标准差在括号中给出),实验结果如下表所示。可以看到:
就预测准确率而言,JK-Net
优于 GAT
和 GCN
这两个baseline
。
尽管 JK-Net
总体表现良好,但是没有始终如一的赢家,并且各个数据集上的性能略有不同。
模型名字后面括号中的数字(1~6
之间)表示表现最佳的层数。仔细研究 Cora
的结果发现:
GCN
和 GAT
都在模型为2
层或 3
层时才能达到最佳准确率。这表明局部信息比全局信息更有助于分类。
层数越浅,则表明邻域范围越小,则表明是局部信息。
JK-Net
在模型为 6
层上获得最佳性能,这表明全局信息和局部信息事实上都有助于提高性能。这就是 JK-Net
这类模型发挥价值的所在。
LSTM-attention
可能由于复杂性太高,从而不适用于此类小模型。因此 JK-LSTM
在这两个数据集中表现最差。
对于 Reddit
数据集,由于它太大使得无法由 GCN
或 GAT
很好地处理。因此我们使用可扩展性更高的 GraphSAGE
作为 JK-Net
的 base
模型。
在 GraphSAGE
中存在不同的节点聚合方式,我们分别使用 MeanPool
和 MaxPool
来执行节点聚合,然后跟一个线性变换。考虑到 JK-Net
最后一层的三种聚合模式MaxPooling、Concatenation、LSTM-attention
,两两组合得到 6
种 JK-Net
变体。
我们采用和原始论文完全相同的 GraphSAGE
配置,其中模型由两层卷积层组成,hidden layer
维度为 128
维。我们使用学习率维 0.01
的 Adam
优化器,无权重衰减。
实验结果如下表所示,评估指标维 Micro-F1
得分。结论:
当采用 MaxPool
作为节点聚合器、Concat
作为层聚合器时,JK-Net
获得了最佳的 Micro-F1
得分。
注意:原始的 GraphSAGE
在 Reddit
数据集上的表现已经足够好(Micro-F1 = 0.950
),JK-Net
继续将错误率下降了 30%
。
Reddit
数据集中的社区是从表现良好的中等规模大小的社区中挑选而来,这是为了避免太大的社区中包含大量噪音、太小的社区是 tree-like
的。结果,该图比原始 Reddit
数据集更加规则,因此不会出现子图结构多样性的问题。
在这种情况下,node-specific
自适应邻域选择所增加的灵活性可能不是那么重要,而 concatenation
的稳定特点开始发挥作用。这也是为什么 JK-Concat
效果较好的原因。
对于 PPI
数据集,我们用它来证明自适应 JK-Net
的强大能力,该数据集的子图结构比 Reddit
数据集的子图结构更多样和复杂。
我们将 GraphSAGE
和 GAT
都作为 JK-Net
的 base model
。GraphSAGE
和 GAT
有很大的区别:GraphSAGE
基于采样,其中对每个节点的邻域采样固定的邻居数量;GAT
基于 attention
,它考虑每个节点的所有邻居。这种差异在可扩展性和性能方面导致巨大的差距。鉴于 GraphSAGE
可以扩展到更大的图,因此评估 JK-Net
在 GraphSAGE
上的提升显得更有价值。但是我们的实验在二者上都进行。我们的评估指标为 Micro-F1
得分。
对于 GraphSAGE
,我们遵循 Reddit
实验中的配置,只是在可能的情况下使用 3
层网络,并训练 10
到 30
个 epoch
。带有 *
的模型采用2
层(由于 GPU
内存限制),其它模型采用 3
层。作为对比,采用两层的 GraphSAGE
性能为 0.6
(未在表中给出)。
实验结果见下表。
对于 GAT
及其 JK-Net
变体,我们使用两层或三层网络,其中有 4
个 attention head
,每个 head
有 256
维(共 1024
维)。最后一个预测层有 6
个 attention head
,每个head
有 121
维。我们将这 6
个 head
执行均值池化,并灌入到 sigmoid
激活函数。我们在中间 attention
层之间引入跳跃链接。
所有这些模型都使用学习率为 0.005
的 Adam
优化器,并使用 batch size = 2
的 mini-batch
训练。
我们的 baseline
为 GAT
和 MLP
模型,网络层数从 2,3
之间选择。由于 GPU
内存限制,JK-Dense-Concat
和 JK-Dense-LSTM
的层数为 2
。
实验结果见下表。
结论:
LSTM-attention
聚合器的JK-Net
超越了具有 concatenation
聚合器的非自适应性 JK-Net
模型,以及 GraphSAGE/GAT/MLP
等 baseline
模型。30
个 epoch
之后,JK-LSTM
在 Micro-F1
得分上比 GraphSAGE
高出 0.128
(绝对提升)。PPI
这类具有不同结构的复杂图上特别有效。目前有很多流行的图神经网络算法。
graph embedding
算法使用随机游走或矩阵分解来直接训练每个节点的 embedding
,这类算法通常以无监督的方式学习并且不需要节点的特征信息。spectral graph convolutional neural network
、消息传递 message passing
方法(或者也称作邻域聚合 neighbor aggregation
方法)以及基于 RNN
的邻域聚合方法。所有这些方法中,消息传递方法由于其灵活性和良好的性能最近引起了特别的关注。已有一些工作通过使用 attention
机制、随机游走、edge feature
来改善基础的邻域聚合方式,并使得邻域聚合可以扩展到大图。但是,所有这些方法对于每个节点仅支持非常有限的邻域规模。事实上,如果能够使用更大的邻域,则可以为模型提供更多的有效信息。尤其是对于图的外围节点或者标签稀疏的节点。
增加这些算法的邻域大小并不简单,因为这些方法中的邻域聚合本质上是拉普拉斯平滑的一种,如果层数太多将导致过度平滑 over-smoothing
。在JK-Net
的论文中,作者强调了这个挑战,并建立了随机游走和消息传递机制之间的关联。通过这个关联我们发现:随着层数的增加,GCN
会收敛到随机游走的极限分布。这个极限分布是整个图的属性,和随机游走的起始节点无关。因此这个分布无法描述随机游走起始节点的邻域(因为过度平滑)。因此 GCN
的性能必然会随着卷积层数量(具体而言是随着 aggregation
层的数量)的增加而下降。
为解决这个问题,论文 《 PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALIZED PAGERANK》
首先分析了这个极限分布和 PageRank
之间的内在联系,然后提出了personalized propagation of neural predictions: PPNP
算法,该算法利用 Personalized PageRank
衍生而来的消息传递方案。PPNP
算法增加了消息回传根节点的机会,从而确保 PageRank Score
编码了每个根节点的局部邻域。这个回传概率 teleport probability
使得我们能够平衡以下两方面的需求:保留节点的局部性(即,避免过度平衡) vs
利用来自大型邻域的信息。
作者表明,这种消息传递方案允许使用更多的层(理论上无限多),而不会导致过度平滑。另外,PPNP
的训练时间相比以前的模型相同或者更快,参数数量相比以前的模型相同或者更少,计算复杂度和边的数量呈线性关系。此外,PPNP
利用一个大的、可调整的邻域来分类,并且可以轻松地和任何神经网络相结合。实验表明,PPNP
超越了最近提出的几种 GCN-like
的半监督分类模型。
在传统的消息传递方法中, propagation
和 classification
固有地耦合在一起,即 classification
依赖于 propagation
。但是在 PPNP
中,作者将 propagation
和 classification
解耦,使得二者相互独立。这使得我们能够在不改变神经网络的情况下实现更大的邻域。而在消息传递方法中,如果想多传递一个 step
就需要多加一个 layer
。
PPNP
的基本思想是:首先预测节点的标签(classification
步骤),然后利用标签传播算法重新修正得到最终的标签(propagation
步骤)。这种方法有效的前提是:相邻节点具有相似的label
。
PPNP
还允许传播算法、以及根据节点特征执行预测的神经网络独立开发。这意味着我们可以将任何 state-of-the-art
预测方法和PPNP
的传播算法相结合。作者甚至发现:在训练期间没有使用到任何图结构信息的模型,仅在inference
阶段使用PPNP
的传播算法可以显著提升模型预测的准确性。
相关工作:
有些工作试图在每个节点添加跳跃连接,从而改善消息传递算法的训练,以及增加每个节点上可用的邻域大小。如,JK-Net
将跳跃连接和邻域聚合方案相结合。但是这些方法的邻域范围仍然有限,当消息传递的 layer
数量很少的情况下非常明显。
虽然可以在我们的 PPNP
中使用的神经网络中添加跳跃连接,但是这不会影响我们的传播方案。因此,我们解决邻域范围的方法和这些模型无关。
《Deeper Insights Into Graph Convolutional Networks for Semi-Supervised Learning》
通过将消息传递和 co-training & self-training
相结合来促进训练,通过这种组合实现的改善与其它半监督分类模型报告的结果相似。
注意,大多数算法,包括我们的算法,都可以用 co-training & self-training
进行改进。但是,这些方法使用的每个 additional setp
都对应一个完整的训练周期,因此会大大增加训练时间。
在最近的工作中,人们通过将跳跃连接和 batch normalization
相结合,提出了避免过度平滑问题的Deep GNN
(《Mean-field theory of graph neural networks in graph partitioning》
、《Supervised Community Detection with Line Graph Neural Networks》
)。
但是,我们的模型通过解耦预测和传播,从而简化了体系结构并解决该问题。并且我们的方法不依赖于任何临时性ad-hoc
技术,这些临时性的技术进一步复杂化模型并引入额外的超参数。
此外,我们的 PPNP
在不引入额外层的情况下增加了邻域范围,因此和 Deep GNN
相比,训练速度会更快更容易。
定义图
假设每个节点
假设每个节点 one-hot
向量
假设图的邻接矩阵为 self-loops
的邻接矩阵。
卷积神经网络GCN
是一种用于半监督分类的简单且应用广泛的消息传递算法。假设有两层消息传递,则预测结果为:
其中:
label
分布。对于两层 GCN
,它仅考虑 2-hop
邻域中的邻居节点。基本上有两个原因使得消息传递算法(如 GCN
)无法自然地扩展到使用更大的邻域:
over-smoothing
。因此,模型失去了局部邻域的信息。理论上,邻域大小和神经网络的深度是不相关的、完全正交的两个因素。它们应该互不影响才对。实际上在 GCN
中它们是相互捆绑的(给定神经网络深度就意味着给定了邻域大小),并导致了严重的性能问题。
我们首先关注第一个问题。在 JK-Net
中已经证明:对于一个 GCN
,任意节点
如果选择极限 irreducible
且非周期性的,则这个随机游走概率分布
显然,极限分布取决于整个图,并且独立于随机游走的起始节点
我们可以考察极限分布和 PageRank
之间的联系来解决这个局部邻域失去焦点 lost focus
问题。
极限分布和 PageRank
的区别仅在于前者在邻接矩阵中增加了自循环,并对分布进行了归一化。原始的 PageRank
的分布为:
其中
建立这种联系之后,我们现在可以考虑使用结合了根节点的 PageRank
变体 -- Personalized PageRank
。
我们定义回传向量 teleport vector
one-hot
向量,只有节点 1
、其它元素为 0
。
对于节点 Personalized PageRank
的分布为:
其中 teleport probability
(也叫做重启概率)。
通过求解该等式,我们得到:
可以看到:通过使用回传向量
因为在该模型中,节点
考虑所有节点的回传向量,则我们得到了完整的 Personalized PageRank
矩阵
其中
注意到由于对称性
事实上这里需要考虑矩阵
证明:要想证明矩阵
由于
通过 Gershgorin circle theorem
可以证明 1
,因此
为了将上述影响力得分用于半监督分类,我们首先根据每个节点的自身特征来生成预测 prediction
,然后通过我们的 Personalized PageRank
机制来传播prediction
从而生成最终的预测结果。这就是personalized propagation of neural predictions: PPNP
的基础。
PPNP
模型为:
其中:
注意:由于
PPNP
每个节点预测的 label
分布。
事实上,还可以用任何传播矩阵来代替
可以看到,PPNP
将神经网络预测和图的传播相互分离。这种分离还解决了上述提到的第二个问题:神经网络的深度现在完全独立于传播算法。正如我们将在 GCN
和 PageRank
联系时所看到的,Personalized PageRank
能够有效地使用无限多个卷积层,这在传统的消息传递框架中显然是不可能的。此外,分离还使得我们可以灵活地运用任何方法来生成预测。
这个就是标签传播
label propagation: LP
的思想,将MLP
和LP
相结合。该方法有效的前提是:相邻节点具有相似的label
。
PPNP
传播的是prediction
,而传统GCN
传播的是representation
。
虽然在 inference
阶段,生成单个节点的预测和传播这个预测是连续进行的(看起来是多阶段的),实际上模型的训练是端到端的。即,在反向传播期间梯度流经传播框架(相当于隐式地考虑了无限多个邻域聚合层)。因此,采用传播框架之后大大提高了模型的准确性。
直接计算完整的 Personalized PageRank
矩阵
为解决这个问题,重新考虑等式:
除了将 Personalized PageRank
矩阵 prediction
矩阵 Topic-sensitive PageRank
的变体,其中每个类别对应于一个主题。在这个角度下,teleport set
。因此,我们可以通过采用 Topic-sensitive PageRank
来近似计算 PPNP
,我们称其为 approximate personalized propagation of neural predictions: APPNP
。
APPNP
通过 Topic-sensitive PageRank
的幂次迭代 power iteration
来达到线性复杂度。Topic-sensitive PageRank
的幂次迭代和带重启的随机游走相关,它的每个幂次迭代步定义为:
其中:prediction
矩阵 starting vector
和 teleport set
的作用;
注意:这个方法保持了图的稀疏性,并且从未构建一个
但是,
为 的稠密矩阵, 为 的归一化形式,因此也是稠密矩阵。 的计算复杂度为 ,对于千万甚至亿级的图而言,这个计算复杂度仍然是不可行的。
可以证明:当 APPNP
收敛到 PPNP
。
证明:APPNP
的迭代公式:
在经过
当取极限
这就是 PPNP
。
PPNP/APPNP
的传播框架 propagation scheme
不需要训练任何其它额外的参数。与 GCN
这样的模型不同,GCN
通常需要为每个 propagation layer
(GCN
中的传播层就是聚合层)提供更多的参数。因此,PPNP/APPNP
中可以使用很少的参数传播得更远。实验结果表明:这种传播能力确实非常有益。
将 PPNP
视为不动点fixed-point
迭代,这和最原始的图神经网络 GNN
模型存在关联。图神经网络中也是需要通过迭代来求解不动点,但是PPNP
和GNN
存在以下几点不同:
PPNP
的不同点迭代实际上通过 Personalized PageRank
已经求解到,因此直接使用 Personalized PageRank
矩阵 PPNP
在传播之前应用学到的特征变换,而 GNN
中在传播过程中应用学到的特征变换。PPNP/APPNP
中,影响每个节点的邻域大小可以通过回传概率
越大,则停留在局部的概率越大,邻域越小;反之,则邻域越大。
最后,我们给出 PPNP
模型的示意图。
Personalized PageRank
来传播预测 注意该模型是端到端训练的,而不是 pipeline
训练的。
数据集:我们使用四个文本分类数据集。
CITESEER
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。CORA-ML
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。PUBMED
:引文网络,每个节点代表一篇论文,边代表它们之间的引用。MICROSOFT ACADEMIC
数据集:引文网络,每个节点代表一篇论文,边代表 co-authorship
。对于每个图,我们使用其最大连通分量。所有数据集都使用论文摘要的 bag-of-word
作为特征。下图给出了这些数据集的统计信息,其中 SP
表示平均最短路径长度。
注意:更大的图不一定具有较大的直径(以 SP
来衡量)。总体而言,这些图的平均直径为 5~10
,因此常规的两层 GCN
网络无法覆盖整个图。
因为使用了不同的训练配置和过拟合,很多实验评估都遭受了肤浅的统计评估superficial statistical evaluation
和实验偏差experimental bias
。
实验偏差的原因是:对于训练集/验证集/测试集的单次拆分没有明显区分验证集和测试集,或者对于每个数据集甚至是数据集的每次拆分都微调超参数。正如我们评估结果中显示的,消息传递算法对于数据集的拆分以及权重初始化非常敏感,因此精心设计的评估方法非常重要。
我们的工作旨在建立一个全面彻底的评估方法:
首先,我们对每个实验执行 100
次,其中每次都是随机拆分训练集并随机初始化权重。我们采用 Glorot
权重初始化方法。
其次,我们将数据集拆分为可见集和测试集,这种拆分固定不变。其中测试集仅用于报告最终性能,并不会进行训练和超参数择优。
1500
个节点,剩余节点为测试集。MICROSOFT ACADEMIC
网络,可见集采样了 5000
个节点,剩余节点为测试集。可见集被随机拆分为训练集、验证集、以及早停集。训练集中每种类别包含 20
个节点,早停集包含 500
个节点,剩余节点作为验证集。
我们选择20
个不同的随机数种子并固定下来,接下来选择其中的一部分用于随机拆分可见集--测试集、另一部分用于随机拆分训练集--验证集。 另外,每种数据拆分都进行 5
次随机初始化,因此实验一共进行 100
次。
为进一步防止过拟合,考虑到所有实验的数据集都使用 bag-of-word
特征,因此我们对所有数据集都采用相同数量的层数、相同的hiddel layer
维度、相同的 dropout
比例、相同的
为防止实验偏差,我们使用 CITESEER
和 CORA-ML
上的网格搜索来分别优化所有模型的超参数,并在模型之间使用相同的早停准则:patience = 100
的阈值,以及最多 epoch
(实际上永远无法达到这么多 epoch
)。
只要在早停数据集的准确率提升或者损失函数降低,则重设 patience
。我们选择在早停数据集上准确率最高的 patience
。该准则受到 GAT
的启发。
最后,为了确保我们实验配置的统计鲁棒性,我们通过 bootstrapping
计算出置信区间,并报告主要结论的 t-test
的 p-value
。
据我们所知,这是迄今为止对 GCN
模型的最严格的研究。
Baseline
方法:
GCN
:图卷积神经网络。N-GCN
:结合了无监督的随机游走和半监督学习两方面优势的 N-GCN
模型。GAT
:图注意力神经网络。bootstrapped feature propagation: FP
:将经典的线性的图扩散结合 self-training
框架,从而得到的 FP
网络。jumping knowledge networks with concatenation: JK
:JK-Net
网络。GCN
我们还给出了未经过超参数优化的普通版本 V.GCN
来说明早停和超参数优化的强大影响。模型配置:
V.GCN
:使用原始论文的配置,其中包括两层的卷积层、隐层维度 dropout
、200
个 step
,以及早停的 patience = 10
。
择优的 GCN
:使用两层卷积层、隐层维度 dropout rate = 0.5
的 dropout
、
N-GCN
:每个随机游走长度使用 4
个 head
以及隐层维度 1 step
到 4 step
。使用 attention
机制来合并所有head
的预测。
GAT
:使用优化好的原始论文的超参数,除了 0.01
。和原始论文相反,对于 PUBMED
数据集我们并未使用不同的超参数。
FP
:使用 10
个传播 step
、10
个 self-training step
,每个 step
增加
我们在预测中添加交叉熵最小的训练节点。每个类别添加的节点数基于预测的类别的比例。注意,该模型在初始化时不包含任何随机性,因此我们在每个 train/early stopping/test
集合拆分时仅拆分一次。
JK-Net
:我们使用 concatenation
层聚合方案,采用三层卷积神经网络,每层的隐层维度 dropout rate = 0.5
的 dropout
。但是正则化和 dropout
并不作用在邻接矩阵上。
PPNP
:为确保公平的模型比较,我们为 PPNP
的预测模型使用了神经网络,该网络在结构上和 GCN
非常相似,并具有相同的参数数量。我们使用两层网络,每层的隐层维度为
我们在第一层的权重矩阵上应用 dropout rate = 0.5
的 dropout
。
对于 APPNP
,我们在每个幂次迭代步之后,都会对邻接矩阵的 dropout
重新采样。
对于传播过程,我们使用
对于 MICROSOFT ACADEMIC
数据集,我们使用
注意:PPNP
使用浅层的神经网络和较大的 APPNP
不同深度的网络对于验证集的准确率。可以看到:更深的预测网络无法提高准确率,这可能是因为简单的 Bag-of-word
特征以及训练集太小导致的。
另外,我们使用 Adam
优化器并且所有模型的学习率都为 0.01
。我们使用交叉熵损失函数,并且将特征矩阵按行进行
不同模型在测试集上的指标如下表所示,其中第一张表为 Micro-F1 Score
,第二张表为 Macro-F1 Score
,最后两张表为 t
检验结果。*
表示模型在 PUBMED, MS ACADEMIC
上 Out Of Memory
。
结论:
我们的 PPNP/APPNP
在所有数据集上均明显优于 SOA baseline
方法。
我们的严格的比较方式可能会低估 PPNP/APPNP
的优势。通过 t
检验表明,该比较结果具有统计学意义
这种严格的比较方式还表明:当考虑更多的数据集拆分、适当地超参数优化、合理地模型训练时,最近的一些工作(如 N-GCN, GAT, JK-Net, FP
等)的优势实际上消失了。
在我们的配置中,一个简单的、经过超参数优化的 GCN
就超越了最近提出的这几种模型。
我们给出不同模型在不同数据集上,由于不同的随机初始化以及不同的数据集拆分带来的测试准确率的变化。这表明严格的评估方式对于模型比较的结论至关重要。
此外,这还展示了不同方法的鲁棒性。如 PPNP, APPNP, GAT
通常具有较低的方差。
我们考虑不同模型的训练时间。这里考虑每个 epoch
的平均训练时间(而不是整个训练过程的时间)。我们并未考虑收敛速度(需要多少个 epoch
收敛),因为不同模型的超参数都各自调优,并且不同模型使用的 early stopping
准则不同(调优之后各自的 patience
不一样)。*
表示无法实现,因为无法训练;**
表示在 PUBMED, MS ACADEMIC
上 Out Of Memory
。
结论:
PPNP
只能应用于中等规模的图,APPNP
可以扩展到大图。
平均而言,APPNP
比 GCN
慢 25%
,因为 APPNP
的矩阵乘法的数量更多。但是 APPNP
的可扩展性和 GCN
相似。
APPNP
比GCN
慢一些但是效果好一点点,所以这是一个速度和效果的trade-off
。此外,如果GCN
总的训练时间与APPNP
相同(即,GCN
多25%
的epoch
),是否二者效果一致?这样的话,APPNP
就没有什么优势了。
APPNP
比其它更复杂的模型(如 GAT
)快得多。
由于现实世界数据集的 label
比例通常很小,因此研究小样本模型的性能非常重要。下图依次给出 CORA_ML, CITESEER, PUBMED
数据集上,每个类别训练节点数量
结论:训练的label
节点越稀疏,PPNP/APPNP
的优势越大。这可以归因于 PPNP/APPNP
较高的传播范围,从而将label
节点传播到更远的地方。
为支持这种归因,我们找到了更多的证据:我们比较了 APPNP
和 GCN
的准确率的提升幅度 ,发现准确率提升幅度依赖于测试节点和训练集的距离(以最短路径衡量)。如下面最后一幅图所示,横坐标为最短路径(单位为 hop
),纵坐标为提升幅度,APPNP
相对于 GCN
的性能提升,随着测试节点到训练集的距离的增加而增加。这表明距训练集较远的节点从 APPNP
的传播范围的增加中收益更多。
我们评估了幂次迭代power iteration
数量 K
来表示)对于模型准确性的影响。
结论:
对于 GCN-like
(对应于 PageRank
方法),其性能随着
对于 APPNP
(对应于 Personalized PageRank
),其性能随着
当 APPNP
收敛到 PPNP
。但是我们发现,当 APPNP
已经足以有效地逼近 PPNP
。有趣的是,我们发现这个数字和数据集的半径相符。
我们评估了超参数
结论:
注意:较高的
PPNP
和 APPNP
虽然分为预测网络
Never
:表示从来不使用传播。这表示我们仅使用节点特征来训练和使用一个标准的多层感知机 MLP
Training
:表示我们使用APPNP
来训练模型(采用了传播),但是在inference
时仅使用 Inference
:表示我们仅使用特征来训练多层感知机 inference
时结合传播来预测。Inf & Training
:表示常规的 APPNP
模型,即在训练和 inference
时总是使用传播。结论:
Inf & Training
总是可以获得最佳结果,这验证了我们的方法。
在大多数数据集上,仅在 inference
中使用传播时,准确率下降得很少。
训练期间跳过传播可以大大减少大型数据集的训练时间,因为所有节点都可以独立地处理。
这也表明我们的模型可以与不包含任何图结构信息的预训练神经网络相结合,并可以显著提高其准确性。
Training
相对于 Never
也有较大的改善。这表明仅在训练期间进行传播也是有价值的。因此我们的模型也可以应用于 online/inductive learning
,其中只有特征信息(而不是观察到的邻域信息)可用。
图卷积网络 graph convolution network: GCN
将卷积神经网络CNN
推广到图结构化数据。图卷积 graph convolution
操作对节点的所有邻居应用相同的线性变换,然后是均值池化和非线性激活函数。通过堆叠多个图卷积层,GCN
可以利用来自遥远邻居的信息来学习 node representation
。GCN
及其变体已被应用于半监督节点分类、inductive node embedding
、链接预测、 以及知识图谱,超越了不使用图结构的多层感知机 MLP
以及不使用节点特征的 graph embedding
方法。
然而,图卷积操作使得 GCN
难以高效地训练。考虑一个 GCN
,节点的第 hidden feature
需要递归地通过其邻域内所有节点的第 hidden feature
来计算。因此,如下图 (a)
所示,单个节点的感受野receptive field
的大小随网络层数呈指数型增长。
《Semi-supervised classification with graph convolutional networks》
提出通过 batch
算法来训练 GCN
,该方法同时计算 batch
内所有节点的 representation
。但是,由于 batch
算法收敛速度慢,以及需要将整个数据集放入到 GPU
中,因此无法处理大规模数据集。《Inductive representation learning on large graphs》
尝试邻域采样 neighbor sampling: NS
的方法为GCN
提出随机训练算法。在 NS
算法中,他们并未考虑节点的所有邻居,而是为每个节点在第 (b)
所示。这可以将感受野的大小减小到 GCN
网络,选择 GCN
相当的性能。理论上当 MLP
。虽然 Hamilton
的方法复杂度降低,但是仍然比 MLP
要大
另外,使用基于邻域采样的随机训练算法能否确保模型收敛,尚无理论上的保证。
在论文 《Stochastic Training of Graph Convolutional Networks with Variance Reduction》
中,作者为 GCN
设计了新颖的基于控制变量的 control variate-based
随机逼近算法,即 GCN with Variance Reduction: VRGCN
。
VRGCN
利用节点的历史激活值(即历史hidden feature
)作为控制变量control variate
。作者表明:通过邻域采样NS
策略得到的 hidden feature
的方差取决于 hidden feature
的幅度magnitude
(因为 hidden feature
是一个向量),而VRGCN
得到的 hidden feature
的方差取决于 hidden feature
和它历史均值之间的差异 difference
。
另外,VRGCN
还带来了理论上的收敛性保证。VRGCN
可以给出无偏的(相比较于原始的 GCN
)、零方差的预测。并且训练算法可以收敛到GCN
损失函数的局部最优值,而与采样大小 VRGCN
可以通过仅对节点采样两个邻居节点来显著降低模型的时间复杂度,同时保持模型的质量。
作者在六个 graph
数据集上对 VRGCN
进行了实验测试,并表明 VRGCN
显著降低了具有相同感受野大小的 NS
的梯度的偏差 bias
和方差 variance
。尽管仅采样 VRGCN
在所有数据集上的可比数量的 epoch
中实现了与精确算法相同的预测性能,即,VRGCN
降低了时间复杂度同时几乎没有损失收敛速度,这是我们可以预期的最好结果。在最大的 Reddit
数据集上,VRGCN
算法的训练时间相比精确算法(《Semi-supervised classification with graph convolutional networks》
)、邻域采样算法(《Inductive representation learning on large graphs》
)、重要性采样算法(《Fastgcn: Fast learning with graph convolutional networks via importance sampling》
)要少 7
倍。
我们以半监督节点分类任务的 GCN
作为说明,当然我们的算法不局限于任务类型,也不局限于模型类型。我们的算法适用于任何涉及到计算邻居平均激活值的其它模型,以及其它任务。
给定图
每个节点 label
label
,这部分节点的集合记作 label
。
定义邻接矩阵
定义传播矩阵 propagation matrix
其中 self-loop
的邻接矩阵。
因此一个图卷积层可以定义为(假设当前为第
其中:
hidden feature
矩阵,也称作激活矩阵 activataion matrix
。
第 hidden feature
向量,也称作激活值 activation
。
假设 GCN
模型有 GCN
模型的训练损失函数为:
其中:
final representation
。卷积层通过 hidden feature
向量为:
它就是 hidden feature
的加权和。
定义节点 receptive field
为:为计算
GCN
,节点 L-hop
邻域集合。GCN
退化为一个多层感知机 MLP
,其中不涉及任何图结构信息。对于多层感知机,节点 GCN
训练损失函数的 batch
梯度为:
由于每次迭代都涉及整个标记节点集合 batch
梯度代价太大。
一个可行的方案是采用随机梯度作为 batch
梯度的近似值:
其中 mini-batch
。
但是,由于感受野太大,mini-batch
梯度的计算代价仍然很高。例如,NELL
数据集的 2-hop
邻域平均包含 1597
个节点,这意味着在一个 2
层 GCN
中,为计算单个节点的梯度需要涉及 1597/65755 = 2.4%
的全部节点。
为降低感受野大小,GraphSAGE
提出了邻域采样neighbor sampling: NS
策略。 在第 NS
策略随机采样 hidden feature
其中
因此 NS
策略降低了感受野大小,从 L-hop
邻域大小降低到采样后的邻域大小
我们将 NS
估计量,而 exact
。
上述邻域采样策略以矩阵的形式可以重写为:
其中传播矩阵
在 GraphSAGE
的随机梯度下降过程中,存在两个随机性来源:
mini-batch
尽管 NS
策略中节点的 final representaion
矩阵 NS
策略中随机梯度下降 SGD
的收敛性得不到保障,除非采样大小
在 GraphSAGE
中,由于梯度是有偏的,因此 NS
策略中的采样大小 exact
策略相近的预测性能。
在 GraphSAGE
中Hamilton
选择 MLP
的感受野(大小为 1
),因此训练仍然代价较高。
FastGCN
是另一种类似于NS
的基于采样的算法。FastGCN
并没有为每个节点采样邻域,而是直接采样每一层的、所有节点共享的感受野。
对于第 FastGCN
首先采样 hidden feature
其中重要性分布:
我们将这种邻域均值 hidden feature
的估计称作重要性采样 importance sampling: IS
。
IS
采样策略和 NS
采样策略的区别在于:前者为第 IS
可以视为 NS
,因为每个节点 NS
可以看作是 IS
的一种。尽管 IS
策略的感受野大小为 NS
策略的感受野大小 IS
仍然仅在采样大小
从实验来看,我们发现 IS
策略的效果要比 NS
更差,这是因为:在 IS
策略中我们为所有节点采样了共同的一组节点集合,对于部分节点我们采样到了它们的很多个邻居,对于另一些节点我们没有采样到任何邻居。对于后者,这些节点的邻域均值 hidden feature
hidden feature
我们提出一种新的基于控制变量control variate: CV
的算法,该算法基于历史 hidden feature
来降低估计量的方差。
当计算邻域均值 hidden feature
affordable
的近似值。每次计算
令
定义:
其中
这里的核心思想是:主要的
不用递归计算,可以直接从内存中获取到;次要的 需要递归计算,但是仅对它采样一小部分的邻域。同时,这进一步促进了模型权重的缓慢变化。 因为主要部分是精确值,次要部分是近似值,因此这会大幅度降低近似计算带来的影响。
则有:hidden feature
CV
估计量。写作矩阵的形式为:
其中
这里我们仅对
由于我们预期
即估计量的偏差和方差都为零。
我们定义控制变量 control variate
为:
我们将控制变量 NS
的
现在
仅依赖于不需要递归计算的 ,因此 也不需要递归计算。
采用 CV
估计量来训练 GCN
的方法和 NS
估计量都相同。具体而言,在 GCN
的每轮迭代中都执行以下算法。
VRGCN
迭代算法:
随机选择一个 mini-batch
的节点
构建一个计算图,其中包含当前 mini-batch
每个节点的 hidden feature
计算时需要的其它节点的 hidden feature
根据下面的前向传播公式进行传播:
这里控制变量
的矩阵形式为: 。
通过反向传播计算梯度,并更新参数。
更新 hidden feature
历史均值
其中,第二步的计算图是通过每层的感受野 hidden feature
mini-batch
。
我们自顶向下构建
令
对于第
注意:我们假设
VRGCN
的感受野如下图 (c)
所示,其中红色节点为感受野,其 hidden feature
mini-batch
。蓝色节点的历史 hidden feature
均值 mini-batch
。
为便于理论分析估计量的方差,这里我们假设所有的特征都是一维的。通过分别处理每个维度,我们的分析结论可以推广到多维。
假设
其中
根据以上结论,对于 NS
估计量我们有:
即邻域内所有邻居pair
对的加权 hidden feature
之间的距离之和。如果邻域内所有节点的
同样地,对于 CV
估计量我们有:
相比较于 NS
估计量,这里仅需要将 CV
估计量通常都比 NS
估计量的方差更小。
进一步地,正如我们在下文中分析到的,由于训练期间 间
除了较小的方差,CV
估计量比 NS
估计量还具有更强的理论收敛性保证。这里我们提出两个定理:
inference
期间,CV
会在 epoch
之后产生 exact
预测。假设算法执行多个 epoch
,在每个 epoch
中我们将节点集合 mini-batch
:mini-batch
hidden feature
均值。
注意:在每个 epoch
中我们扫描所有节点,而不仅仅是标记的训练节点,从而确保每个 epoch
中对每个节点的历史 hidden feature
均值至少进行了一次更新。
记第 SGD
随时间更新,在测试期间
记第 exact hidden feature
为 CV
估计量的 hidden feature
为
在第 mini-batch
对于 exact
算法,其损失函数和梯度分别为:
对于 exact
算法,如果 constant
序列,则可以忽略下标
对于 CV
算法,其损失函数和梯度分别为:
梯度
mini-batch
因此我们考虑
以下定理解释了 CV
的近似预测和 exact
预测之间的关系:
对于一个 constant sequence
epoch
之后),通过 CV
估计量计算的 hidden feature
和 exact
计算的相等。即:
其证明见原始论文附录。
该定理表明:在 inference
期间,我们可以使用 CV
估计量进行前向传播 epoch
(通常 GCN
网络中 exact
预测。这优于 NS
估计量,因为除非邻域大小无穷大,否则 NS
估计量无法恢复 exact
预测。
和直接进行 exact
预测的 batch
算法相比,CV
估计量可扩展性更强,因为它不需要将整个图加载到内存中。
以下定理表明,无论邻域采样大小 SGD
训练仍然收敛于局部最优。因此我们可以选择任意小的
定理:假设:
激活函数
损失函数的梯度
对于任意的采样
损失函数
其中
则存在 SGD
迭代时,有:
其中:
[1, N]
之间均匀随机分布的变量。
每次迭代都使用 CV
的近似梯度
其中步长
从定理中我们看到:
简而言之,我们证明了近似梯度 SGD
收敛到局部最优解。
这里我们引入第三种随机性来源:对输入特征的随机 dropout
。
令 dropout
算子,其中 iid
的伯努利随机变量,
记 dropout
的期望。
引入 dropout
之后,即使在 GCN
中采用 exact
算法,hidden feature
dropout
。
此时节点的邻域均值 hidden feature
在 dropout
场景下, dropout
控制变量 control variate for dropout: CVD
。
我们的方法基于权重缩放 weight scaling
技术来近似计算均值 dropout
模型中,我们可以运行没有 dropout
的模型的copy
,从而获得均值 (d)
所示。
我们通过 CVD
估计量。
我们将
其中:
CV
估计量中的 dropout
)和 dropout
)之间的差距。因此定义:
则有:
第一项考虑
dropout current value
和no-dropout current value
之间的gap
,使用是为了计算方差的方便。第二项考虑 no-dropout current value
和no-dropout avg value
之间的gap
。第三项就是no-dropout avg value
本身。
考虑第一项对于 dropout
具有零均值,即
第一个等式成立是因为当移除 dropout
时, CVD
估计量就退化为 CV
估计量。
因此,CVD
估计量是无偏的。下面我们即将看到,如果 CVD
估计量具有良好的方差。
假设节点的hidden feature
之间不相关,即
假设
则有:
令
这些结论的证明参考原始论文的附录。
通过上述结论,我们有:
我们将第一项视为从 dropout
中引入的方差 variance from dropout: VD
,第二项视为从邻域采样中引入的方差 variance from neighbor sampling: VNS
。理想情况下,VD
应该等于 VNS
应该等于零。
和前述相同的分析,我们可以通过将 VNS
。令 :
根据这里的第一个结论,CVD
的 VD
部分为:exact
估计量的 VD
部分。
我们总结出所有这些估计量及其方差,推导过程参考原始论文。
exact
: VNS
部分为零, VD
部分为 NS
估计量:VNS
部分为 VD
部分为 CV
估计量:VNS
部分 VD
部分CVD
估计量:VNS
部分 VD
部分为 CV/CVD
的 VNS
取决于 NS
的 VNS
取决于非零的
有两种可能的dropout
方式:
区别在于:第一种方式是在邻域聚合之前应用 dropout
、第二种方式在邻域聚合之后应用 dropout
。《Semi-supervised classification with graph convolutional networks》
采用前者,而我们采用后者。
实验效果上,我们发现这两种方式的效果都相差无几,因此不同的方式不影响模型的效果。采用第二种方式的优势是提升训练速度:我们可以对输入进行预处理,并定义
由于大多数GCN
仅有两层卷积层,因此这种方式可以显著减少感受野大小,并加快训练速度。我们称该优化为预处理策略 preprocessing strategy
。
我们在六个数据集上通过实验验证了 VRGCN
算法的方差和收敛性,其中包括来自GCN
的 Citeseer, Cora, PubMed, NeLL
四个数据集以及来自 GraphSAGE
的 PPI, Reddit
两个数据集。
对于这些数据集的统计见下表所示。最后两列给出了节点的 1-hop
邻域平均大小、2-hop
邻域平均大小。由于是无向图,因此每条边被计算两次,但是 self-loop
仅被计算一次。
PPI
数据集(多标签分类数据集)我们报告测试集的 Micro-F1
指标,对于其它多分类数据集我们报告准确率 accuracy
。Citeseer, Cora, PubMed, NELL
数据集,baseline
模型为 GCN
;对于 PPI, Reddit
数据集,baseline
模型为 GraphSAGE
。Citeseer, Cora, PubMed, NELL
数据集上重复执行 10
次,在 Reddit, PPI
数据集上重复执行 5
次。Titan X GPU
上完成。首先我们评估预处理PreProcessing: PP
的影响。我们比较了三种配置:
M0
:dropout
在前、计算邻域均值在后,且计算邻域的 exact
均值(未对邻域进行任何采样)M1
:计算邻域均值在前、dropout
在后,且计算邻域的 exact
均值(未对邻域进行任何采样)M1 + PP
:计算邻域均值在前、dropout
在后,且使用较大的邻域大小 exact
的。实验结果如下所示。我们固定了训练的 epoch
,然后给出不同配置的 GCN
在不同数据集上的测试accuracy
。我们的实现不支持 NELL
上的 M0
配置,因此未报告其结果。
可以看到:三种配置都具有相近的性能,即更换 dropout
的位置不会影响模型的预处性能。因此后续的收敛性实验中,我们以最快的 M1 + PP
配置作为 exact baseline
。
然后我们评估 VRGCN
的收敛性。我们将 M1 + PP
配置作为 exact baseline
,然后对比 MLP
。我们对四种近似策略进行比较,其中
NS
:没有使用预处理的 NS
估计量(邻域采样)。NS + PP
:采用了预处理的 NS
估计量。IS + PP
:采用了预处理的 IS
估计量(重要性采样)。CV + PP
:采用了预处理的 CV
估计量。CVD + PP
:采用了预处理的 CVD
估计量。当 epoch
都具有很低的、相近的时间复杂度,相比之下 baseline M1 + PP
的 baseline
相比,它们的收敛速度。
首先我们不考虑 dropout
(dropout rate = 0
),然后绘制不同方法每个 epoch
的损失函数值,如下图所示。
在前 4
个数据集中,CV + PP
的损失曲线和 exact
损失曲线相重叠;部分数据集上未给出 NS
损失曲线和 IS + PP
损失曲线,因为损失太大;我们并未绘制 CVD + PP
,因为当 dropout rate = 0
时,它等价于 CV + PP
。
结论:
CV + PP
总是可以达到和 M1 + PP
相同的训练损失。NS, NS + PP, IS + PP
由于它们的梯度是有偏的,因此其训练损失更高。这些结果和前述定理相符。定理指数:CV
估计量的训练能够收敛到 exact
的局部最优,和
然后我们考虑使用 dropout
,然后比较每个 epoch
使用不同方式训练的模型验证accuracy
。其中不管训练算法采取何种方式,inference
都采用 exact
算法来预测。结果如下图所示。注意:NS
在Reddit
数据集上收敛到 0.94
、在 PPI
数据集上收敛到 0.6
,由于太低所以未在图中给出。
结论:
当存在 dropout
时,CVD + PP
是唯一可以在所有数据集上达到和 exact
算法相近的验证准确率的算法。
当存在 dropout
时,CVD + PP
的收敛速度(以 epoch
数量衡量)和 M1 + PP
相当。这意味着尽管 CVD + PP
的收敛速度几乎没有损失。
这已经是我们期待的最佳结果:具有和 MLP
可比的计算复杂度,但是具有和 GCN
相近的模型质量。
在 PubMed
数据集上,CVD + PP
性能比 M1 + PP
好得多,我们怀疑它找到了更加的局部最优值。
对 PPI
以外的所有其它数据集,简单的 CV + PP
的准确率就可以和 M1 + PP
相媲美。
在 Reddit,PPI
数据集上,IS + PP
性能比 NS + PP
更差。这可能是部分节点没有采样到任何邻居,正如我们前文所述。
我们对 IS + PP
的准确率结果和 FastGCN
的报告结果相符,而他们的 GraphSAGE baseline
并未实现预处理技术。
下面给出了在最大的 Reddit
数据集上达到给定的 96%
验证准确率所需要的平均训练 epoch
和训练时间。可以看到:CVD + PP
比 exact
快 7
倍左右。这是因为 CVD + PP
的感受野大小显著降低。
另外,NS, IS + PP
无法收敛到给定的准确率(即无法收敛到 96%
验证准确率)。
我们使用相同的、由 M1 + PP
训练的模型,然后采用不同的算法进行预测,并给出预测质量。
如前所述,CV
可以达到和 exact
算法相同的测试准确率,而 NS, NS + PP
的性能要差得多。
最后,我们比较了训练期间第一层权重每一维梯度的平均 bias
和方差(对权重自身进行了归一化)。
结论:
dropout
的模型,CV + PP
的梯度几乎所无偏的。dropout
的模型,CV + PP
he CVD + PP
梯度的bias
和方差通常小于 NS
和 NS + PP
。图卷积网络 graph convolutional network: GCN
在解决许多 graph-based
的应用程序中变得越来越流行,包括半监督节点分类、链接预测、推荐系统。给定一个图,GCN
使用图卷积操作逐层获得 node embedding
:在每一层,节点的 embedding
是通过收集其邻居的 embedding
来获得的,然后是一层或几层的线性变换和非线性激活。然后将最后一层的 embedding
用于一些终端任务。
由于 GCN
中的图卷积运算需要利用图中节点之间的交互来传播 embedding
,因此 GCN
的训练非常困难。和其它神经网络不同,GCN
的损失函数中每个节点对应的损失不是相互独立的,而是依赖于大量其它节点,尤其是当GCN
的深度很深时。相比之下,其它神经网络的损失函数中,每个样本的损失是相互独立的。由于节点的依赖性,GCN
的训练非常缓慢并且需要大量的内存,因为反向传播阶段需要将图中所有的 embeding
存储到 GPU
内存中。
为了说明研究可扩展的 GCN
训练算法的必要性,我们从以下三个因素来讨论现有算法的优缺点:内存需求、epoch
训练速度(每个 epoch
的训练时间)、epoch
收敛速度(每个 epoch
损失函数下降的值)。这三个因素对于评估训练算法至关重要。注意:内存需求直接限制了算法的可扩展性,epoch
训练速度和epoch
收敛速度一起决定了整个训练时间。
令 embedding
维度、GCN
的深度。
full-batch
梯度下降:GCN
原始论文使用 full-batch
梯度下降来训练。为计算整个训练集损失的梯度,它需要存储所有中间 embedding
(intermediate embedding
),从而导致
另外,尽管每个 epoch
训练时间高效(单个 epoch
训练时间很短),但是单个 epoch
的收敛速度很慢,因为每个 epoch
仅更新一次参数。
整体而言,full-batch
梯度下降内存需求差、epoch
训练速度快、epoch
收敛速度慢。
mini-batch
随机梯度下降:GraphSAGE
使用了基于 mini-batch
的随机梯度下降来训练。由于每次迭代仅基于 mini-batch
梯度,因此它可以减少内存需求,并在每个 epoch
进行多次更新从而加快 epoch
收敛速度。
但是,由于邻域扩展问题,mini-batch
随机梯度下降会引入大量的计算开销:为计算第 embedding
,而这又需要邻域节点的邻域节点在第 embedding
,并向底层不断递归。这导致计算的时间复杂度和 GCN
的深度
GraphSAGE
提出使用固定数量的邻域样本,而 FastGCN
提出了重要性采样。但是这些方法的开销仍然很大,并且当 GCN
层数更深时情况更糟。
整体而言,mini-batch
随机梯度下降内存需求好、epoch
训练速度慢、epoch
收敛速度快。
VR-GCN
:VR-GCN
提出方差缩减variance reduction
技术来减少邻域采样规模。尽管这种方法成功地降低了邻域采样的数量(在Cluster-GCN
的实验中,VR-GCN
对每个节点仅采样 2
个邻居的效果很好),但是它仍然需要将所有节点的中间 embedding
存储在内存中,从而导致 VR-GCN
的内存需求可能太高导致无法放入到 GPU
中。
整体而言,VR-GCN
内存需求差、epoch
训练速度快、epoch
收敛速度快。
论文 《Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks》
提出了一种新的 GCN
训练算法,该算法利用图聚类结构 graph clustering structure
来加速GCN
的训练。
作者发现:mini-batch
算法的效率可以通过 embedding
利用率 embedding utilization
的概念来刻画。 embedding
利用率和单个 batch
内的边的数量成正比。这一发现促使作者利用图聚类算法来设计 batch
,目标是构造分区partition
使得同一个分区内的边的数量比跨区之间的边的数量更多。
基于图聚类 graph clustering
的思想,作者提出了 Cluster-GCN
:一种基于图聚类算法(如 METIS
)来设计 batch
的算法。进一步地,作者提出一个随机多聚类框架 stochastic multi-clustering framework
来改善 Cluster-GCN
的收敛性。
核心思想是:尽可能地将内存和计算控制在
batch
内。这要求仔细安排batch
内节点。但是,这么做破坏了
mini-batch
的随机性要求,因为mini-batch
要求随机选取个节点( 为 batch-size
),而Cluster-GCN
中的采样方法不再随机。这使得mini-batch
梯度不再是full-batch
梯度的无偏估计。作者的解决办法是:随机将多个簇合并为一个大簇,然后将这个大簇作为
mini-batch
,使得batch
内的节点分布尽可能和full-batch
一致。
Cluster-GCN
带来了巨大的内存优势和计算优势:
Cluster-GCN
仅需要将当前 batch
中的节点 embedding
存储在内存中,内存复杂度为 batch-size
。这比 VR-GCN
、full-batch
梯度下降、以及其它 mini-batch
随机梯度下降等方法要小得多。Cluster-GCN
在每个 epoch
都具有相同的时间代价,并且比邻域搜索方法快得多。Cluster-GCN
相比其它 SGD-based
方法具有可比的竞争力。Cluster-GCN
算法易于实现,因为它只需要计算矩阵乘法,而无需任何邻域采样策略。整体而言,Cluster-GCN
内存需求好、epoch
训练速度快、epoch
收敛速度快。
通过对几个大型图数据集进行全面实验,证明了 Cluster-GCN
的效果:
Cluster-GCN
在大型图数据集(尤其是深层 GCN
)上实现了最佳的内存使用效率。例如在 Amazon2M
数据集上的 3
层 GCN
模型中,Cluster-GCN
使用的内存比 VR-GCN
少 5
倍。
对于浅层网络(例如 2
层),Cluster-GCN
达到了和 VR-GCN
相似的训练速度;但是当网络更深(如 4
层)时,Cluster-GCN
可以比 VR-GCN
更快。这是因为 Cluster-GCN
的复杂度和层数 VR-GCN
的复杂度是
Cluster-GCN
能够训练具有很大 embedding size
并且非常深的网络。
尽管之前的一些工作表明:深层 GCN
无法提供更好的性能,但是作者发现通过适当的优化,深层 GCN
可以帮助提高模型准确性。例如使用 5
层 GCN
,Cluster-GCN
在 PPI
数据集上的accuracy
为 99.36
,而之前的最佳效果为 98.71
。
给定图
label
label
的节点集合为 定义一个包含 GCN
,其中第
其中:
representation
矩阵, representation
向量的维度。representation
向量。
为简化讨论,我们假设
其中 self-loop
的邻接矩阵。
ReLU
。
GCN
模型的损失函数为:
其中:
final representation
。我们首先讨论之前方法的一些不足,从而启发我们提出 Cluster-GCN
。
原始GCN
:原始 GCN
中,作者通过 full-batch
梯度下降来训练 GCN
,其计算代价和内存需求都很高。
embedding
矩阵 epoch
仅更新一次参数,因此模型需要训练很多个 epoch
才能收敛。GraphSAGE
:GraphSAGE
通过 mini-batch SGD
来改善 GCN
的训练速度和内存需求。SGD
不需要计算完整的梯度,而是仅在每轮更新中基于一个 mini-batch
来计算梯度。
记 mini-batch
节点集合为 SGD
迭代中,梯度的估计量为:
尽管mini-batch SGD
在收敛速度方面更快,但是它在 GCN
训练过程中引入了另一种计算开销,这使得它与 full batch
梯度下降相比,每个 epoch
的训练速度慢得多。原因如下:考虑计算单个节点 embedding
representation
,而这又依赖于这些邻域节点的邻域节点在第 representation
,... 。
假设 GCN
具有 degree
为 hop-k
(representation
向量需要
如果一个 batch
中有很多节点,则时间复杂度就不是那么直接,因为不同节点具有重叠的 top-k
邻域,那么依赖的节点数量可以小于最差的
为反应 mini-batch SGD
的计算效率,我们定义 embedding
利用率 embedding utilization
的概念,从而刻画计算效率。
在算法过程中,如果节点 embedding
计算之后,被第 embedding
计算过程使用了 embedding
利用率为
mini-batch SGD
,由于图通常比较大且稀疏,因此 hop-k
邻域之间几乎没有重叠),则 mini-batch SGD
在每个 batch
需要计算 embedding
,这导致每个 mini-batch
的训练时间为 epoch
的训练时间为 full-batch
梯度下降,每个 embedding
将在更上一层中重复利用 degree
),因此具有最大的 embedding
利用率。结果 full-batch SGD
在每个 epoch
需要计算 embedding
,训练时间为 embedding
就可以得到一个节点的梯度,相比之下 mini-batch SGD
需要计算 embedding
。如下图所示给出了传统的GCN
中指数级邻域扩展(左图)。红色节点是扩展的起始节点,不同颜色代表不同的 hop
。
为了使得 mini-batch SGD
顺利工作,已有的一些算法试图限制邻域扩展的大小,但是这无法提升 embedding
利用率。
GraphSAGE
均匀采样一个固定大小的邻域,而不是完整的邻域集合。我们将这个固定大小记作 embedding
,并且也使得梯度估计的准确性降低。
FastGCN
提出了一种重要性采样策略来改善梯度估计。
VR-GCN
提出了一种策略,通过存储所有 embedding
的历史均值,从而应用于未采样邻居节点的 embedding
计算。
尽管存储所有 embedding
的内存需求很高,但我们发现该策略非常有效,并且在实践中即使对于非常小的
Cluster-GCN
技术受到以下问题的启发:在 mini-batch SGD
更新过程中,能否设计 mini-batch
以及对应的计算子图,使得最大程度地提高 embedding
利用率?解决该问题的关键在于将 embedding
利用率和聚类相结合。
考虑我们计算 batch
1
层到第 embedding
。定义 embedding
利用率是这个 batch
内链接的数量
因此,为了最大化 embedding
利用率,我们应该设计一个 batch
batch
内链接的数量,这使得我们可以将 SGD
更新的效率和图聚类算法联系起来。
现在我们正式地介绍 Cluster-GCN
。对于图 subgraph
:
其中
经过节点的重新排列之后,图
其中:
同样地,我们可以根据 label
为 label
组成。
现在我们用块对角矩阵 cluster
(每个 cluster
对应一个 batch
)。
令 embedding
矩阵变为:
其中
因此损失函数可以分解为:
在每一步我们随机采样一个簇 SGD
更新。在这个更新过程中,仅依赖于当前 batch
的子图 label
可以看到,Cluster-GCN
仅需要进行矩阵乘法和前向/反向传播,而之前的 SGD-based
方法中需要对邻域进行搜索,因此我们的方法更容易实现。
Cluster-GCN
使用图聚类算法对图进行分组。图聚类算法(如 Metis
和 Graclus
)旨在对图的节点进行划分,使得簇内的链接比簇间的链接更多,从而更好地捕获图的聚类和社区结构。这正是我们需要的结果,因为:
embedding
利用率等于每个 batch
的batch
内链接数量。下图给出了在完整图 hop
。
可以看到:Cluster-GCN
可以避免繁重的邻域搜索,从而将精力集中在每个簇内的邻居上。
我们比较了两种不同的节点划分策略:随即划分random partition
、聚类划分 clustering partition
。
我们分别通过随即划分、METIS
聚类划分将图划分为 10
个分组,然后每个分组作为一个 batch
来执行 SGD
更新。数据集为三个 GCN
公共数据集,评估指标为测试集 F-1 score
。可以看到:在相同 epoch
下,使用聚类划分可以获得更高的准确性。这表明使用图聚类很重要,并且不应该使用随机划分。
算法复杂度:由于仅考虑 batch
的复杂度仅有矩阵乘法 batch
的时间复杂度为 epoch
的时间复杂度为
平均而言,每个 batch
只需要计算 embedding
,它是线性的而不是 batch
的空间复杂度为
另外,我们的算法仅需要将子图加载到 GPU
内存中,无需加载整个图(虽然整个图的存储通常不是瓶颈)。
我们在下表中总结了时间复杂度和空间复杂度。显然,所有 SGD-based
算法在层数方面都是指数复杂度。对于 VR-GCN
,即使 GPU
的内存容量。
接下来我们介绍我们的 Cluster-GCN
算法,它兼顾了 full-batch
梯度下降下每个 epoch
的时间复杂度、以及在普通 SGD
梯度下降下的空间复杂度。
其中:embedding
维度(为方便起见,所有层的 embedding
以及输入特征的维度都是 node degree
,mibi-batch size
,
注意:
由于采用了方差缩减技术,VR-GCN
的 GraphSAGE
和 FastGCN
。
对于空间复杂度,embedding
。
为简单起见,我们忽略了存储Graph
以及子图的需求,因为它们通常都是固定的,且通常不是主要瓶颈。
Cluster-GCN
具有最好的计算复杂度和最好的空间复杂度。
从实验部分得知,
Cluster-GCN
的最大优势是内存需求更小从而可以扩展到更大的图。训练速度和训练准确率方面,Cluster-GCN
和VR-GCN
各有优势(在不同的层数方面)。
尽管前述的 Cluster-GCN
实现了良好的计算复杂度和空间复杂度,但是仍然有两个潜在的问题:
batch
的节点分布和原始数据集不一致,从而导致在 SGD
更新时,batch
的梯度是完整梯度的一个有偏的估计。我们以 Reddit
数据集为例,考察随机划分来选择 mini-batch
、通过 Metis
聚类算法选择 mini-batch
的数据分布的差异,划分数量为 300
个分区。数据分布以batch
内节点标签分布的熵来衡量。我们给出不同batch
的标签熵 label entropy
的分布直方图如下所示,可以看到:
batch
具有较低的标签熵,这表明聚类的 batch
倾向于某些特定的 label
,从而与整体的数据分布不一致。这可能会影响 SGD
算法的收敛性。batch
具有较高的标签熵,这表明随机 batch
的数据分布和整体数据分布更为一致。为解决这些问题,我们提出了一个随机多重聚类框架 stochastic multiple clustering: SMC
,该框架通过随机合并多个簇,从而减少 batch
之间的数据分布差异。
我们首先将节点划分到 batch
batch
通过这种方式,所有簇间链接将被重新合并到模型中,并且簇的随机组合可以使得 batch
之间的数据分布的差异更小。
这种随机多重聚类框架如下图所示,每个 batch
包含 2
个簇,相同的 batch
的簇具有相同的颜色。不同的epoch
中选择不同的簇组合。
这种方法只能缓解问题,但是无法解决问题。因为即使是随机组合多个簇,新的
batch
内节点分布与整体分布仍然是有差异的。
我们在 Reddit
数据集上进行实验,对比了 SMC
和普通 Cluster-GCN
的效果。在 Cluster-GCN
中我们选择划分为 300
个分区,在 SMC
中我们选择划分为 1500
个分区并随机选择 5
个簇来构成一个 batch
。
实验结果如下图所示,其中 x
轴为 epoch
, y
轴为 F1-score
。可以看到随机多重聚类可以显著改善 Cluster-GCN
的收敛性。
Cluster-GCN
算法:
输入:
one-hot
或者 multi-hot
向量)max-iter
batch
的簇的数量 输出:模型的参数 embedding
矩阵
算法步骤:
通过 METIS
聚类算法划分
迭代:
Adam
优化算法使用梯度 输出模型的参数 embedding
矩阵
METIS
是 Karypis Lab
开发的一个功能强大的图切分软件包,支持多种切分方式。优势:
METIS
具有高质量的划分结果,据称比常规的谱聚类要准确 10% ~ 50%
。METIS
执行效率非常高,比常见的划分算法块 1~2
个数量级。百万规模节点的图通常几秒钟之内就可以切分为 256
个簇。METIS
具有很低的空间复杂度和时间复杂度,从而降低了存储负载和计算量。GCN
原始论文表明:对 GCN
使用更深的层没有任何效果。但是,实验中的这些数据集太小,可能没有说服力。例如,实验中只有数百个节点的图,太深的GCN
可能会导致严重过拟合。
另外,我们观察到更深的 GCN
模型的优化变得更困难,因为更深的模型可能会阻碍前几层的消息传递。在原始 GCN
中,他们采用类似于残差连接的技术,使得模型能够将信息从前一层传递到后一层。具体而言,第
这里我们提出另一种简单的技术来改善深层 GCN
的训练。在原始 GCN
中,每个节点都聚合了来自前一层邻域的representation
。但是在深层 GCN
的背景下,该策略可能不太合适,因为它没有考虑深度。
凭直觉,附近的邻居应该比远处的节点贡献更大。因此我们提出了一种更好的解决该问题的技术:放大邻接矩阵 GCN
层的聚合把更大的权重放到前一层的 representation
上。即:
这种方式看起来似乎合理,但是这对所有节点都使用相同的权重,无论其邻居数量是多少,这现得有些不合适。此外,当使用更深的层时,某些数值可能出现指数型增长,可能会导致数值不稳定。因此我们提出修改版,从而更好地维护邻域信息和数值范围。
我们首先将一个单位矩阵添加到原始的
就是带自环的归一化矩阵。
然后对消息进行传播:
其中
实验表明这种对角线增强 diagonal enhancement
技术可以帮助构建更深的 GCN
并达到 state-of-the-art
性能。
这就是人工构造的
attention
:对self
施加相对更大的重要性(这意味着对邻居施加更小的重要性)。可以通过GAT
来自适应地学习self
和邻居的重要性。根据论文的实验,当层数很深时,模型效果退化并且训练时间大幅上涨,因此没有任何意义。所以这一小节的内容没有价值。
我们在两种任务上评估了 Cluster-GCN
的效果:在四个公共数据集上的 multi-label
分类任务和 multi-class
分类任务。这些数据集的统计信息如下表所示。
注意:
Reddit
数据集是迄今为止我们所看到的最大的 GCN
公共数据集。Amazon2M
数据集是我们自己收集的,比 Reddit
数据集更大。这些数据集的 training/validation/test
拆分如下表所示:
baseline
方法:我们比较了以下 state-of-the-art
的 GCN
训练算法以及 Cluster-GCN
方法:
VRGCN
:保留图中所有节点的历史embedding
均值,并仅采样少数几个邻居来加快训练速度。我们采用原始论文中的建议,将采用邻居数量设为 2
。GraphSAGE
:对每个节点采样固定数量的邻居。我们使用原始论文中默认的邻居数量 :双层GCN
第一层、第二层采样数量分别为 由于原始 GCN
很难扩展到大图,因此我们不比较原始 GCN
。根据 VRGCN
论文所述,VRGCN
比 FastGCN
更快,因此我们也不比较 FastGCN
。
实验配置:我们使用 PyTorch
实现了 Cluster-GCN
。对于其它baseline
,我们使用原始论文提供的代码。
所有方法都采用 Adam
优化器,学习率为 0.01
,dropout
比例为20%
,权重衰减weight decay
为零。
所有方法都采用均值聚合,并且隐层维度都相同。
所有方法都使用相同的 GCN
结构。
在比较过程种我们暂时不考虑 diagonal enhancement
之类的技术。
对于 VRGCN
和 GraphSAGE
,我们遵循原始论文种提供的配置,并将 batch-size
设为 512
。
对于 Cluster-GCN
,下表给出了每个数据集的分区数量,以及每个 batch
的簇的数量。
所有实验均在 20
核的 Intel Xeon CPU(2.20 GHz)
+ 192 GB
内存 + NVIDIA Tesla V100 GPU(16GB RAM)
上执行。
注意:在 Cluster-GCN
种,聚类算法被视为预处理步骤,并且未被计入训练时间。聚类只需要执行一次,并且聚类时间很短。
此外,我们遵从FastGCN
和 VR-GCN
的工作,对 GCN
的第一层执行 pre-compute
,这使得我们节省了第一层昂贵的邻域搜索过程。
为了用于 inductive setting
,其中测试节点在训练期间不可见,我们构建了两个邻接矩阵:一个邻接矩阵仅包含训练节点,另一个邻接矩阵包含所有节点。图划分仅作用在第一个邻接矩阵上。
为了计算内存用量,对于 TensorFlow
我们使用 tf.contrib.memory_stats.BytesInUse()
,对于 PyTorch
我们使用 torch.cuda.memory_allocated()
。
我们首先在训练速度和训练准确性方面评估 Cluster-GCN
。我们给出两层GCN
、三层GCN
、四层 GCN
在三个中等规模数据集PPI、Reddit、Amazon
上的训练时间和预测准确性,如下图所示。其中 x
轴为训练时间(单位秒),y
轴为验证集准确性(单位 F1-Score
)。
由于 GraphSAGE
比 VRGCN、Cluster-GCN
更慢,因此 GraphSAGE
的曲线仅出现在 PPI、Reddit
数据集上。
对于 Amazon
数据集,由于没有节点特征,因此我们用一个单位矩阵 334863 x 128
。因此,计算主要由稀疏矩阵运算决定(如
结论:
PPI
和 Reddit
数据集中,Cluster-GCN
的训练速度最快,同时预测准确性也最好。Amazon
数据集中,Cluster-GCN
训练速度比 VRGCN
更慢,预测准确性除了三层GCN
最高以外都差于 VRGCN
。Cluster-GCN
比 VRGCN
更慢的原因可能是:不同框架的稀疏矩阵的运算速度不同。VRGCN
在Tensorflow
中实现,而 Cluster-GCN
在 PyTorch
中实现。PyTorch
中的稀疏张量支持目前处于早期阶段。
下表中我们显示了 Tensorflow
和 PyTorch
对于 Amazon
数据集执行前向、反向操作的时间,并使用一个简单的、两层线性网络对这两个框架进行基准测试,括号中的数字表示隐层的维度。我们可以清楚地看到Tensorflow
比 PyTorch
更快。当隐层维度更高时,差异会更大。这解释了为什么 Cluster-GCN
在Amazon
数据集中训练时间比 VRGCN
更长。
对于GCN
而言,除了训练速度以外,内存需求通常更重要,因为这将直接限制了算法的可扩展性。
epoch
所需的内存。为加快训练速度,VRGCN
需要在训练过程中保持历史 embedding
,因此和 Cluster-GCN
相比 VRGCN
需要更多的内存。GraphSAGE
也比 Cluster-GCN
需要更多的内存。下表中,我们给出了不同方法在不同数据集上训练两层GCN
、三层GCN
、四层 GCN
所需要的内存。括号中的数字表示隐层的维度。可以看到:
Cluster-GCN
的内存使用并不会增加很多。因为每当新增一层,引入的额外变量是权重矩阵 VRGCN
只需要保持每一层的历史 embedding
均值,但是这些 embedding
通常都是稠密向量。因此随着层的加深,它们很快统治了内存需求。Cluster-GCN
比 VRGCN
有更高的内存利用率。如在 Reddit
数据集上训练隐层维度为 512
的四层 GCN
时,VRGCN
需要 2064MB
内存,而 Cluster-GCN
仅需要 308MB
内存。 迄今为止评估GCN
的最大的公共数据集是 Reddit
数据集,其统计数据如前所述。Reddit
数据集大约包含 200K
个节点,可以在几百秒之内训练 GCN
。
为测试 GCN
训练算法的可扩展性,我们基于 Amazon co-purchasing
网络构建了一个更大的图,图中包含 200
万节点、6100
万边。原始的 co-purchase
数据来自于 Amazon-3M
。
图中每个节点都是一个商品,图中的连接表示是否同时购买了两个商品。每个节点特征都是从商品描述文本中抽取的 bag-of-word
,然后通过 PCA
降维到 100
维。此外,我们使用 top-level
的类别作为节点的label
。下表给出了数据集中频次最高的类别:
我们在这个大型数据集上比较了 Cluster-GCN
和 VRGCN
的训练时间、内存使用、测试准确性(F1-Score
来衡量)。
可以看到:
GCN
,VRGCN
训练速度更快;但是对于更深的GCN
,Cluster-GCN
训练速度更快。VRGCN
比 Cluster-GCN
需要多得多的内存,对于三层GCN
时VRGCN
所需内存是 Cluster-GCN
的五倍。当训练四层GCN
时 VRGCN
因为内存耗尽而无法训练。Cluster-GCN
在四层GCN
时可以达到该数据集上的最佳准确性。 这里我们考虑更深层的 GCN
。我们首先给出 Cluster-GCN
和 VRGCN
在 PPI
数据集上不同深度的训练时间的比较,其中每种方法都训练 200
个 epoch
。
可以看到:VRGCN
的训练时间因为其代价较高的邻域发现而呈现指数型增长,而 Cluster-GCN
的训练时间仅线性增长。
然后我们研究更深的GCN
是否可以得到更好的准确性(衡量指标为验证集的 F1-score
)。我们在 PPI
数据集上进行实验并训练 200
个 epoch
,并选择dropout rate = 0.1
。其中:
Cluster-GCN with (1)
表示:原始的 Cluster-GCN
。
Cluser-GCN with (10)
表示:考虑如下的 Cluster-GCN
:
Cluster-GCN with (10) + (9)
表示:考虑如下的 Cluster-GCN
:
Cluster-GCN with (10) + (11)
表示:考虑如下的 Cluster-GCN
:
其中
可以看到:
对于2
层到 5
层,所有方法的准确性都随着层深度的增加而提升,这表明更深的 GCN
可能是有效的。
当使用 7
层或 8
层时,前三种方法无法在 200
个 epoch
内收敛,并会大大降低准确性。可能的原因是针对更深GCN
的优化变得更加困难。其中红色的数字表示收敛性很差。
即使是第四种方法,它在层数很深时虽然收敛,但是模型效果下降、训练时间暴涨(根据前面的实验),因此没有任何意义。
此外,原始
Cluster-GCN
在五层时达到最好的效果,所以对角增强技术失去了价值。
为考察更深层GCN
的详细收敛性,我们给出了采用对角增强技术(即 GCN
在不同 epoch
上的验证准确性(F1-Score
)。
可以看到:我们提出的对角增强技术可以显著改善模型的收敛性,并得到较好的准确性。
采用了对角增强技术的 Cluster-GCN
能够训练更深的 GCN
从而达到更好的准确性(F1-Score
)。我们在下表中给出不同模型在不同数据集上的测试F1-Score
。
可以看到:
PPI
数据集上,Cluter-GCN
通过训练一个具有 2048
维的隐层的 5
层 GCN
来取得 state-of-the-art
效果。Reddit
数据集上,Cluster-GCN
通过训练一个具有 128
维隐层的4
层 GCN
取得 state-of-the-art
效果。这个优势并不是对角增强技术带来的,而是因为
Cluster-GCN
的内存需求更少从而允许训练更深的模型,而更深的模型通常效果更好。
前面的实验都未考虑 ClusterGCN
的预处理时间(如,数据集加载,graph clustering
等等)。这里我们给出 Cluster-GCN
在四个数据集上的预处理时间的细节。对于 graph clustering
,我们使用 Metis
。结果如下表所示。可以看到:
graph clustering
算法仅占用预处理时间的很小比例。graph clustering
可以扩展到大型的数据集。此外,graph clustering
仅需要执行一次,并且之后被后续的训练过程重复使用。
关系学习relational learning
同时利用了样本自身的属性以及样本之间的关系。例如:患者诊断不仅需要考虑患者本身的信息,还需要考虑患者亲属的信息。因此,关系学习不会假设数据点之间的独立性,而是显式建模它们之间的依赖关系。图是表示关系信息relational information
的自然的方式,并且已经有很多利用图结构的方法,如图神经网络GNN
。
虽然图结构在某些领域可用(如社交网络),但是在另一些领域中我们必须构造图结构。
一种常用的人工构造图结构的方法是:基于样本之间的某种相似性来构建 kNN
图。这种方法被很多算法采用(如 LLE,IsoMap
),但是它存在不足:模型效果取决于
另外在这种方法中,图的构建和 GNN
参数的学习是相互独立的,图的构建需要启发式方法并反复实验。
另一种方法是简单地使用核矩阵 kernel matrix
来隐式建模样本之间的相似性,但是得到了稠密的相似性矩阵(对应于全连接图)维代价。
论文 《Learning Discrete Structures for Graph Neural Networks》
提出了不同的方法同时学习了图的构建和 GNN
参数,即 LDS-GNN
。简单而言,论文提出了学习图生成概率模型,其中节点来自于训练集和测试集,边被建模为随机变量,其参数视为 bilevel
学习框架中的超参数。论文在最小化内层目标函数(GCN
训练误差)的同时对图结构进行迭代式采样,并通过最小化外层目标函数(GCN
验证误差)来优化边的分布参数。
两层优化:内层在训练集上优化训练损失,外层在验证集上优化验证损失。该方法仅用于小型图,计算量很大并且不能保证收敛性。
据作者所知,这是针对半监督分类问题中,同时学习图结构和 GNN
参数的第一种方法。此外,论文使用基于梯度的超参数优化来处理不连续的超参数(边是否存在)。通过一系列实验,结果证明了论文的方法比现有方法的优势,同时验证了图生成模型具有有意义的边概率(即:边是否存在的概率)。
相关工作:
半监督学习 Semi-supervised Learning
:基于图的半监督学习的早期工作使用图拉普拉斯正则化graph Laplacian regularization
,包括标签传播 label propagation: LP
、流形正则化 manifold regularization: ManiReg
、半监督嵌入 semi-supervised embedding: SemiEmb
。这些方法假设给定一个图,其中边代表节点之间的某种相似性。
《Revisiting semi-supervised learning with graph embeddings》
提出了一种方法,该方法不使用图进行正则化,而是通过联合classification
和 graph context prediction
这两个任务来学习 embedding
。《Semi-supervised classification with graph convolutional networks》
提出了第一个用于半监督学习的 GCN
。现在有许多 GCN
变体,所有这些变体都假设给定了图结构。与所有现有的 graph-based
半监督学习相反,LDS
即使在图不完整或图缺失的情况下也能工作。
图合成和生成 graph synthesis and generation
:LDS
学习图的概率生成模型。
《On the evolution of random graphs》
提出的随机图模型,其中边概率被建模为独立同分布的伯努利随机变量。degree
分布(《Graphs overtime: densification laws, shrinking diameters and possible explanations》
)、网络直径(《Collective dynamics of small-world networks》
)。《Kronecker graphs: An approach to modeling networks》
提出了一种基于 Kronecker
乘积的生成模型,该模型将真实图作为输入并生成具有相似属性的图。然而,这些方法的目标是学习一个复杂的生成模型 generative model
,该模型反映了训练图的属性。另一方面,LDS
学习图生成模型,并将其作为分类问题的一种良好的手段,并且LDS
的输入不是图的集合。
最近的工作提出了一种无监督模型,该模型学习推断实体之间的交互,同时学习物理系统(如弹簧系统)的动力学(《Neural relational inference for interacting systems》
)。与 LDS
不同,该方法特定于动态交互系统,是无监督的,并且使用变分自编码器。
最后,我们注意到 《Learning graphical state transitions》
提出了一个完全可微的神经模型,能够在 input/representation/output level
处理和生成图结构。然而,训练模型需要根据 ground truth graph
进行监督。
链接预测:链接预测是一个几十年前的问题。有几篇综述论文涵盖了从社交网络到知识图谱中的链接预测的大量工作。虽然大多数方法都是基于 node pair
之间的某种相似性度量,但是也有许多基于神经网络的方法(《Link prediction based on graph neural networks》
)。
我们在本文中研究的问题与链接预测有关,因为我们也想学习learn
或扩张extend
一个图。然而,现有的链接预测方法不会同时学习一个 GNN node classifier
。统计关系学习 statistical relational learning: SRL
模型通常通过二元或一元谓词的存在来执行链接预测和节点分类。然而,SRL
模型本质上是难以处理的,并且网络结构和模型参数学习步骤是独立的。
离散随机变量的梯度估计:由于两个 bilevel objective
的难以处理的特性,LDS
需要通过随机计算图 stochastic computational graph
来估计超梯度hypergradient
。使用得分函数估计器(也称作 REINFORCE
)会将外层目标视为黑盒函数,并且不会利用 inner optimization dynamics
是可微的。相反,路径估计器 path-wise estimator
并不容易使用,因为随机变量是离散的。
LDS
借鉴了之前提出的解决方案(《Estimating or propagating gradients through stochastic neurons for conditional computation》
),但是代价是估计有偏。
给定图
邻接矩阵
图拉普拉斯矩阵为
每个节点
所有节点的输入特征向量拼接为特征矩阵
每个节点 label
one-hot
向量为
所有节点的label
向量拼接为label
矩阵
定义所有的邻接矩阵的取值空间为 label
矩阵的取值空间为
则图神经网络的目标是学习函数:
其中
为学习目标函数,我们在训练集上最小化经验损失:
其中:
point-wise
损失函数。在 GCN
中,一个典型的
其中:
Bilevel program
是一种优化问题,其中目标函数中出现的一组变量被约束为另一个优化问题的最优解。Bilevel program
出现在很多常见下,比如超参数调优、多任务学习、meta-learning
学习等。
给定外层目标函数 outer objective
inner objective
outer variable
inner variable
bilevel program
定义为:
直接求解上式非常困难,因为内层问题inner problem
通常没有闭式解。一种标准的求解方式是:利用迭代式的动态优化过程
令
假设
我们称其为超梯度hypergradient
。其中
这种技术允许我们同时调优多个超参数,其调优数量比经典的超参数优化技术大几个量级。
但是这种方法需要执行更多的
,计算量剧烈增长。
在现实世界中,经常会出现带噪音的图(noisy graph
)、结构残缺的图(incomplete graph
)、甚至完全没有图结构( missing graph
) 。为解决这些问题,我们必须在训练 GCN
网络参数的同时,还需要学习图结构。
我们将这个问题构造为一个 Bilevel program
问题,其中外层变量为图生成概率模型的参数,内层变量为 GCN
模型的参数。我们的方法同时优化了 GCN
模型参数以及图生成概率模型的参数。下图给出了我们方法的示意图:
假设真实邻接矩阵 nosisy, incomplete, missing
),我们的目标是寻找最小泛化误差的模型。给定验证集
其中
因此:
我们将 GCN
的最佳参数。
我们将
注意,
是在训练集 上评估, 是在验证集 上评估。
即使是很小的图,bilevel
问题也难以直接求解。另外,上述模型包含连续变量(GCN
参数)和离散变量(网络结构),这使得我们无法直接求解梯度(离散型变量无法求导)。
一种可能的解决方案是对离散型变量构造连续性松弛 continuous relaxation
;另一种方案是对离散型变量使用概率分布。这里我们采用第二种方案。
我们利用二元伯努利随机变量对图的每条边进行建模,并假设每条边是否存在是相互独立的,则我们可以采样一个图
这种边的独立性假设可能并不成立。假设
和 之间存在边、 和 之间存在边,那么 和 之间存在边的可能性较大。也就是边的存在不是独立的。
我们基于图结构的生成模型来重写 bilevel
问题为:
利用期望,现在内层目标函数和外层目标函数都是伯努利分布的参数的连续函数。
上式给出的 bilevel
问题仍然难以有效求解,这是因为内层目标函数对于 GCN
而言没有闭式解(目标函数非凸)。因此有效的算法仅能找到近似的解。
在给出近似解之前,我们先关注于GCN
模型的输出。对于具有 GCN
的期望输出为:
不幸的是,即使对于很小的图,计算这个期望值也非常困难。于是我们可以计算期望输出的经验估计:
其中
注意:
bilevel
中学到的 GCN
给定具有伯努利随机变量的图生成模型(边的概率分布
如果将伯努利参数直接作为 GCN
的邻接矩阵,则这相当于一个全连接图,图中每条边的权重就是边存在的概率。此时计算GCN
输出的计算复杂度为
如果采样 GCN
的平均输出,由于每个采样的图都是稀疏图,则总的计算复杂度为
另外,使用图生成模型的另一个优势是:我们能够在概率上解释它。而学习稠密的邻接矩阵则无法做到。
对于具有百万级别以上的大型图,
时间复杂度的图采样过程完全是不可行的。因此该方法仅适用于小型图。
现在我们考虑 bilevel
问题的近似解。
我们基于图结构的生成模型来重写 bilevel
问题为:
其中图生成模型的参数 GCN
模型参数
对于内层问题,我们考虑期望 0
或 1
)。因此即使对于很小的图,其计算复杂度也非常高。但是,换个角度来看,我们可以利用迭代式的动态优化过程
其中
在合适的假设下,当 SGD
收敛到权重向量
这种方法就是标准的随机梯度下降,其中邻接矩阵
在每个 step
发生改变。但是,这种方式是否保证能够收敛到最小值?论文并未证明。直觉上看,难以保证收敛,因为在梯度下降过程中不断在变化,这导致 GCN
所应用的图在不断变化。
对于外层问题,令
根据:
我们有:
我们使用所谓的 straight-through
估计,并令
最后,我们对上式采用单个样本的蒙特卡洛估计来更新参数 0
到 1
之间)。
在计算外层问题的超梯度时,需要对
这在时间和空间上都代价太大。
此外,我们依赖于梯度的有偏估计,因此并不期望从完整的计算中获得太多收益。因此我们建议截断计算,并在每 short-horizon
优化过程,其中带有对 warm restart
。
LDS
算法:
输入:
kNN
的 输出:最佳的权重
算法步骤:
如果没有邻接矩阵 kNN
来初始化邻接矩阵
通过
外层迭代,当停止条件未满足时(基于验证集):
内层迭代,当内层目标函数还在下降时(基于训练集):
采样一个新的图:
优化内层目标函数:
如果
采样一个新的图:
计算
迭代
优化外层目标函数:
返回最佳的权重
LDS
算法包含外层停止条件和内层停止条件。
对于内层停止条件,我们发现以内层目标函数的下降作为内层停止条件非常有效。
我们持续优化 patience
窗口为
对于外层停止条件,我们发现使用早停策略非常有效。
我们选择一部分验证集
但是当需要优化的参数数量太多、验证集规模太小时,可能会存在验证集的过拟合。
每次外层迭代中,对超梯度的估计都存在偏差。偏差即来自于 straig-through
估计,也来自于超梯度的截断。尽管如此,我们从实验中发现该算法能够取得良好的效果,并能够在边的分布空间中找到适合于当前任务的参数。
LDS
借鉴了之前提出的启发式方案,但是代价是超梯度估计是有偏的。
给定一个函数
straight-through
估计量为:
则有:
通常
LDS
算法有两个缺陷:
transductive learning
,无法扩展到未见过的节点。对于新的、未见过的节点,需要从头开始重新训练模型。我们针对三个目标进行了一系列实验:
首先,我们在节点分类问题上评估 LDS
,其中图结构虽然可用但是缺失了一定比例的边。这里我们将 LDS
和包括普通 GCN
在内的基于图的学习算法进行比较。
其次,我们想验证我们的假设,即 LDS
可以在没有图的半监督分类问题上取得有竞争力的结果。这里我们将 LDS
和许多现有的半监督分类算法进行比较。
此外,我们对比了一些图算法,图是通过在数据集上创建的 kNN
近邻图。
最后,我们分析了学到的图生成模型,从而了解LDS
如何学到有意义的边的概率分布。
数据集:
图数据集:Cora, Citeseer
是图的两个基准数据集,输入特征是 bag of word
,任务是节点分类。我们遵循之前的工作,执行相同的数据集拆分和实验配置。
为评估残缺图上 LDS
的鲁棒性,我们通过随机采样 25%, 50%, 75%
的边来构造残缺图。
非图数据集:我们使用 scikit-learn
中的基准数据集,如 Wine, Breast Cancer(Cancer), Digits, 20 NewsGroup(20News)
等数据集,这些数据集都不是图结构。我们用这些非图数据集来评估 LDS
。
对于20 NewsGroup
数据集,我们从中挑选出 10
个类别,然后使用词频超过 5%
的单词的 TF-IDF
作为特征。
FMA
数据集:该数据集从 7994
个音乐曲目中提取了 140
个音频特征,任务是音乐风格分类。
所有这些数据集的统计信息如下:
baseline
方法:
对于图算法,我们对比了以下方法:普通 GCN
、GCN-RND
、标签传播算法label propagation: LP
、流形正则化算法manifold regularization: ManiReg
、半监督 embedding
算法semi-supervised embedding: SemiEmb
。其中 ManiReg, SemiEmb
将一个 kNN
图作为拉普拉斯正则化的输入。
GCN-RND
是在普通 GCN
的每个优化step
中添加随机采样的边。通过这种方法,我们打算证明:仅将随机边添加到 GCN
中不足以提高模型的泛化能力。
对于非图算法,我们对比了以下方法:GC
、 逻辑回归logistic regression: LogReg
、支持向量机 support vector machines: Linear and RBF SVM
、随机森林random forests: RF
、前馈神经网络 feed-forward neural networks:FFNN
。
当没有图结构时,GCN
退化为前馈神经网络,此时我们通过下列的手段来构造图结构:
Sparse-GCN
。Dense-GCN
。RBF
核的稠密图,记作 RBF-GCN
。kNN
近邻图的稀疏图,记作 kNN-GCN
。对于 LDS
,我们使用 KNN
近邻图作为初始的边概率,即 kNN-LDS
。另外,我们进一步比较了 LDS
的稠密版本,此时我们学习一个稠密的相似度矩阵,记作 kNN-LDS(dense)
。
当需要用到 kNN
时,需要考虑两个超参数:k
值的选择、度量函数的选择。我们从 cosine
距离 ,然后通过验证集的准确性来调优这两个超参数。
对于 kNN-LDS
,
GCN
和 LDS
配置:
对于所有用到 GCN
的网络,我们使用两层 GCN
网络,隐层维度为 16
,采用 ReLU
激活函数。
我们使用 0.5
的 dropout rate
来执行 dropout
,从而执行额外的正则化。
我们使用 Adam
优化器,学习率从
SemiEmb
核 FFNN
使用相同数量的隐层维度、相同的激活函数。
我们使用带正则化的交叉熵损失函数:
其中 one-hot
向量,
对于 LDS
,除了已知的边或者 kNN
构造的边我们设置为
我们将验证集平均划分为验证集 (A)
和早停集(B)
。对于外层目标,我们使用 (A)
上的不带正则化的交叉熵损失,并通过随机梯度下降对其进行优化。
我们通过超参数调优来优化外层循环的步长
最后我们采样
对于 LDS
和 GCN
,我们以 20
步的窗口大小来应用早停。
其它方法的实现来自于 skicit-learn
或者原始论文。所有方法的超参数都是通过验证集的 accuracy
来调优。
我们比较了在图数据集(Cora
左图、Citeseer
中间图)的残缺图上的结果。我们给出边的每个保留比例,以及对应的验证集准确率(虚线,用于早停)和测试集准确率(实线),阴影表示标准差。所有结果都随机执行5
次并取均值。
可以看到:
LDS
在所有情况下都具有竞争性优势,准确率提升了 7%
。最终 Cora
和 Citeseer
的准确率分别为 84.1%
和 75.0%
,超越了所有的 state-of-the-art
模型。100%
)时,LDS
还可以通过学习其它额外的、有用的边来提高 GCN
模型的泛化准确率。GCN
和 GCN-RND
对比中可以看到,随机添加边并不能减少泛化误差,这对于模型没有任何帮助。右图给出超梯度截断的更新次数 LDS
的影响。
20
并不会带来明显提升,同时会增加计算成本上述实验更详细的结果如下表所示,其中(+-
表示标准差)。
我们考虑 LDS
在 Cora,Citeseer
数据集上期望的边的数量,从而分析学到的图生成器采样的图的属性。
LDS
期望的边的数量高于原始图的边的数量,这是可以预期的,因为 LDS
具有比普通 GCN
更高的准确率。LDS
学到的图仍然是非常稀疏的,如,对于 Cora
而言平均只有不到 0.2%
的边。这有助于 LDS
的内层循环中有效学习 GCN
。我们考察 LDS
在所有数据集上的半监督学习效果。每个实验随机执行 5
次并报告平均的测试准确率和标准差(以 +-
表示)。有竞争力的结果以粗体展示。
结论:
Wine,Cancer,FMA
),但是在 Digits,Citeseer,Cora,20news
等其它数据集上效果较差。LP, ManiReg, SemiEmb
只能改善 Digits,20news
数据集的效果。kNN-GCN
效果很好,并提供了具有竞争力的结果。kNN-LDS
是所有数据集中最具竞争力的方法之一,并且在图数据集上获得最高的收益。kNN-LDS
的性能略优于其 dense
模型,并且其稀疏图可以扩展到更大的数据集。我们给出LDS
(Cora
数据集(保留 25%
的边)学习过程中,三种类型的节点(训练集、验证集、测试集,对应于下图的从左到右)的平均的边概率的演变,每种类型一个节点。对于每个样本节点,所有其它节点被划分为四个分组:底层真实图中相邻的节点(True link
)、相同类别的节点(Same class
)、不同类别的节点(Different classes
)、未知类别的节点(Unknown classes
) 。图中灰色竖线指示内层优化何时重启。纵坐标以 log 10
来表示。
LDS
将相同类别标签样本之间存在边的概率提高了 10
到 100
倍。LDS
能够为真实相邻的边赋予一个较高的概率。我们给出LDS
(Cora
数据集(保留 25%
的边)学习完成之后,三种类型的节点(训练集、验证集、测试集,对应于下图的从左到右)的边的概率的归一化直方图,每种类型一个节点。对于每个样本节点,所有其它节点被划分为两个分组:相同类别的节点(Same class
)、不同类别或未知类别的节点(Different/Unknown classes
) 。直方图统计按照 log 10
分为六个桶。
可以看到:LDS
学到边的高度非均匀的概率分布能够反应节点的类别。
我们给出LDS
(Citeseer
数据集(保留 25%
的边)学习完成之后,被 kNN-GCN
误分类但是被 kNN-LDS
正确分类的测试集的三个节点的边的概率的归一化直方图。。对于每个样本节点,所有其它节点被划分为两个分组:相同类别的节点(Same class
)、不同类别或未知类别的节点(Different/Unknown classes
) 。直方图统计按照 log 10
分为六个桶。
可以看到:
LDS
学到边的高度非均匀的概率分布能够反应节点的类别,这和前面的结论相同。我们用 t-SNE
进一步可视化了 GCN
和 LDS
学到的 embedding
。下图给出了 Citeseer
数据集上使用 Dense-GCN
(左)、kNN-GCN
(中)、kNN-LDS
(右)学到的 embedding
的的 t-SNE
可视化。该 embedding
是最后一层卷积层的输出。
可以看到:kNN-LDS
学到的 embedding
在所有不同类别之间提供了最佳分隔。
近年来图神经网络GNN
被广泛使用,不幸的是只有图结构的数据才能使用 GNN
。很多真实世界中的数据(如社交网络)天然就是图结构数据,但是对于下游任务而言,这些天然的图结构是否对于当前任务是最优的则不一定。更重要的是,很多场景下可能没有图结构数据,因此需要从原始数据中构造图结构数据。
graph representation
。GNN
,但是这些方法仅优化了针对下游任务的图结构,并未利用已被证明在图信号处理中非常有用的技术。《Learning Discrete Structures for Graph Neural Networks》
提出了一种新的方法(即,LDS-GNN
),该方法通过近似求解一个 bilevel program
从而共同学习图结构和 GCN
参数。但是,该方法存在严重的可扩展性问题,因为它需要学习 transductive learning
,这意味着该方法在测试期间无法应用于新的、未见过的节点。为解决这些限制,论文 《Deep Iterative and Adaptive Learning for Graph Neural Networks》
提出了一种用于 GNN
的深度迭代和自适应学习框架 Deep Iterative and Adaptive Learning for Graph Neural Networks: DIAL-GNN
,该框架共同学习针对具体任务的最优图结构和 GNN
网络参数。DIAL-GNN
将构建图的图学习graph learning
问题转换为数据驱动的相似性度量学习问题 similarity metric learning
。
然后作者利用自适应图正则化来控制生成的图结构的平滑性smoothness
、连接性connectivity
以及稀疏性 sparsity
。更重要的是,作者提出了一种新颖的迭代方法来搜索隐藏的图结构hidden graph structure
,该隐藏的图结构将初始图结构优化到监督学习(或半监督学习)任务的最优图结构。另外,论文的方法可以同时处理transductive learning
和 inductive learning
。
最后,通过广泛的实验表明,在下游任务性能以及计算时间方面,论文提出的 DIAL-GNN
模型可以始终超越或者接近 state-of-the-art
基准模型。
给定
图结构学习任务的目标是自动学习图结构 GNN-based
模型来应用于下游的预测任务。
大多数现有方法通过预处理过程来基于人工规则或特征来构造图,如 kNN
近邻图。和这些方法不同,我们提出的 DIAL-GNN
框架将问题描述为一个迭代式学习问题,该问题以端到端的方式联合学习图结构和 GNN
参数。
DIAL-GNN
整体架构如下图所示,其中最左侧图中的虚线表示原始的图结构 kNN
近邻图构建的图结构。
构建图的一个常用策略是:首先基于某种度量来计算节点pair
对之间的相似度,然后在下游任务中使用人工构建的图。和这些方法不同,我们为图结构学习设计了一个可学习的度量函数,它将与下游任务的模型一起训练。
Similarity Metric Learning
:类似于 multi-head attention
机制,我们设计了 multi-head
余弦相似度:
其中:
head
的数量。head
的权重向量,它在所有节点之间共享,并代表一个视图 perspective
。每个视图捕获了节点之间的部分相似语义。我们用
这里采用权重向量的逐元素乘积,而不是基于矩阵乘法的投影(即,
)。如果采用矩阵乘法的投影,那么模型容量更大同时参数也更多(权重矩阵 vs
权重向量)。 这里多个视图的相似性取平均,也可以考虑取最大值或者中位数?
Graph Sparsification
:邻接矩阵应该是非负的(度量 metric
也应该是非负的),而 [-1,1]
。此外,很多真实的图结构都是稀疏的。进一步地,一个稠密图不仅计算代价较高,而且对于大多数场景意义不大。
因此我们仅考虑每个节点的
.
在图信号处理 graph signal processing
中,对图信号广泛采用的假设是:value
在相邻节点之间平滑变化。
给定一个加权无向图 smoothness
通常由迪利克雷能量 Dirichlet energy
来衡量:
其中:
trace
。可以看到:最小化
上述平滑损失 smoothness loss
最小化存在一个平凡解 trivial solution
: sparsity
。考虑 《How to learn a graph from smooth signals》
的做法,我们对学习的图结构施加了额外的约束:
其中:F
范数。
第一项通过对数的 barrier
来惩罚不连续图的形成,即连通性connectivity
。
当存在孤立节点
时, 等于零(不考虑 ),因此 趋向于正无穷,因此第一项趋近于正无穷。
第二项惩罚第一项造成的较大degree
,从而控制稀疏性。
在构造邻接矩阵
时,通过对低于阈值 的元素置零来人工提供稀疏性。而这里通过正则化进一步提供而稀疏性。
图的总体正则化损失为上述损失之和,从而控制学习的图结构的平滑性、连通性、稀疏性:
其中
我们期望图结构能起到两个作用:它应该遵循节点之间的语义关系;它应该适合下游预测任务的需求。
因此,我们通过结合任务预测损失和图正则化损失来联合学习图结构和graph representation
,即:
注意:我们的图学习框架与各种GNN
无关,也和预测任务无关。为方便讨论,我们采用两层 GCN
,其中第一层将节点特征映射到 embedding
空间,第二层将embedding
映射到输出空间:
其中:
sigmoid
或 softmax
)。label
矩阵,对于节点分类任务,softmax
函数,
现在我们讨论如何获得归一化的邻接矩阵 initial graph structure
可用,则完全丢失初始图结构是有害的。
之前的一些工作通过执行 masked attention
从而将初始图结构注入到图结构学习中,但是这会限制图结构学习的能力。因为这种方法无法学到初始图结构中不存在、但是实际上有用的那些边。我们假设最优图结构和初始图结构的差异很小,因此我们认为最优图结构和初始图结构、度量学习学到的图结构满足以下关系:
其中:
上式等价于:
。
如果初始图结构 kNN
近邻图从而作为初始图结构。
“最优图结构和初始图结构的差异很小” 这是一个非常强的假设。当
时模型就回退到使用初始图结构的版本。
以前的一些工作仅依靠原始节点特征并基于某些注意力机制来学习图结构。我们认为这有一些局限性,因为原始节点特征可能不包含足够的信息来学习号的图结构。我们的初步实验表明:简单地在这些原始节点特征上应用一些注意力函数无助于学习有意义的图。
为解决上述限制,我们提出了一种用于图神经网络的深度迭代和自适应学习框架,即 Deep Iterative and Adaptive Learning framework for Graph Neural Network: DIAL-GNN
。具体而言,除了基于原始特征计算节点相似度之外,我们还引入了另一个可学习的、基于节点 embedding
计算到的相似度度量函数。这么做的目的是在 node embedding
空间上定义的度量函数能够学习拓扑信息,从而补充仅基于原始节点特征学到的拓扑信息。为了结合原始节点特征和节点 embedding
双方的优势,我们将最终学到的图结构作为它们的线性组合:
其中:
DIAL-GNN
算法:
输入:
label
矩阵 输出:最优图结构 label
矩阵
算法步骤:
随机初始化GCN
模型参数
如果初始邻接矩阵 kNN
来给出初始邻接矩阵:
根据
其中,
。
计算节点 embedding
:
计算预测损失:
计算图正则化损失:
计算联合损失:
迭代,停止条件为:
基于
基于
multi-head
余弦相似度来计算。
根据度量学习矩阵
计算
计算节点 embedding
:
计算预测损失:
计算图正则化损失:
计算联合损失:
总的损失为:
如果为训练截断,则反向传播
从上述算法可以看到:
算法使用更新后的节点 embedding
embedding
这个迭代过程动态停止,直到学到的邻接矩阵以指定的阈值收敛,或者最大迭代步
采用动态的阈值收敛相比固定的迭代步,在 mini-batch
训练时优势更为明显:我们可以使得mini-batch
中每个样本图exaple graph
动态停止(每个样本表示一个图)。
在所有迭代之后,总的损失将通过所有之前的迭代进行反向传播,从而更新模型参数。
收敛性分析:理论上证明迭代式学习过程的收敛性是一个挑战,因为所涉及的学习模的任意复杂性,这里我们从概念上理解它为何在实践中有效。下图给出了迭代式学习过程中,学到的邻接矩阵 embedding
可以看到:在第
进一步地,我们用
node embedding
矩阵(即更小的 根据这一推理链条,我们可以轻松地扩展到后续的迭代。
现在讨论为什么在实践过程中
我们将在实验部分经验性地检验迭代式学习过程的收敛性。
模型复杂度:
embedding
维度。embedding
矩阵的算法复杂度为 假设迭代式图学习的迭代次数为
这里我们进行一系列实验,从而验证DIAL-GNN
框架的有效性,并评估不同部分的影响。
数据集:
Cora
和 Citeseer
是评估图学习算法的两个常用的基准数据集,输入的特征是 bag-of-word
,任务是节点分类。在这两个数据集中,图结构可用。Wine, Breast Cancel, Digits
是三个非图数据集,任务是节点分类。在这些数据集中没有图结构。inductive learning
数据集:为了证明IDAL-GNN
在 inductive learning
任务上的有效性,我们分别对 20Newsgroups
数据集(20News
)、movie review
数据集(MRD
)进行文档分类和回归任务。我们将每个文档视为一个图,其中文档中的每个单词作为图的节点。对于 Cora,Citeseer
,我们遵循之前工作的实验配置(GCN, GAT, LDS-GNN
)。对于 Wine, Cancer, Digits
,我们遵循LDS-GNN
的实验配置;对于 20News
,我们从训练数据中随机选择 30%
样本作为验证集;对于 MRD
,我们使用 60%:20%:20%
的比例将数据集拆分为训练集、验证集、测试集。
所有实验都是采用不同的随机数种子执行 5
次的均值。
baseline
方法:
在 transductive learning
中的 baseline
为 LDS-GNN
。与我们的工作类似,LDS-GNN
也是共同学习图结构和 GNN
参数,但是 LDS-GNN
无法应用于 inductive-learning
。因为它旨在直接优化底层图的边上的离散概率分布,这使得它无法在测试阶段处理 unseen
的节点或图。
LDS-GNN
论文给出了几种半监督baseline
的实验结果,这里我们直接复制结果到这里,而并没有花时间重跑这些 baseline
。
对于 Cora,Cteseer
数据集,我们还将 GCN, GAT
作为 baseline
。
为评估 DIAL-GNN
在带噪音的图上的鲁棒性,我们还将 DIAL-GNN, GCN
在添加额外噪声的边、或删除已有的边的图上进行比较。
对于非图数据集,我们给出了一个 kNN-GCN
作为 baseline
,其中先在数据集上构建 kNN
近邻图,然后对这个图应用 GCN
。
对于 inductive learning
,我们将 DIAL-GNN
和 BiLSTM, kNN-GCN
进行比较。
实验配置:
在我们所有实验中(拷贝的实验除外),除了输出层之外,我们在GCN
最后一层卷积层之后、输出层之前应用 dropout rate = 0.5
的 dropout
。
在迭代式学习过程中,除了 Citeseer
(无 dropout
)、Digits
(dropout rate = 0.3)
,我们也在 GCN
中间的卷积层应用 dropout rate = 0.5
的 dropout
。
对于文本数据集,我们选择数据集中词频超过10
次的单词,并训练了一个 300
维的 GloVe
向量。
对于长文本,为提高效率我们将文本长度限制为最大 1000
个单词。
在word embedding
层和 BiLSTM
层之后,我们使用 dropout rate = 0.5
的 dropout
。
我们使用 Adam
优化器,batch size = 16
。
对于 20News
,隐层维度为 128
;对于 MRD
,隐层维度为 64
。对于其它benchmark
,隐层维度为 16
。
对于 text benchmark
,我们将学习率设为0.001
;所有其它benchmark
,学习率为 0.01
,并应用 0.0005
的权重衰减。
下图给出了benchmark
上 DIAL-GNN
相关的超参数。所有超参数都在验证集上进行了优化:
在transductive learning
和 inductive learning
上的实验结果如下所示。其中上图为 transductive learning
,评估指标为测试准确率accuracy
(+-
标准差);下图为 inductive learning
,评估指标分别为测试准确率(分类问题)和测试 R2 score
(回归问题) ,括号内为+-
标准差。
结论:
DIAL-GNN
在 7
个 benchmark
中有6
个优于所有的 baseline
方法,这证明了 DIAL-GNN
的有效性。DIAL-GNN
也可以极大地帮助完成节点分类任务。kNN-GCN
相比,DIAL-GNN
在所有数据集上始终获得更好的结果。这表明联合学习图结构和GNN
的强大能力。LDS
相比,DIAL-GNN
在 5
个 benchmark
上的 4
个获得了更好的性能。20News
和 MRD
上的良好表现证明了 DIAL-GNN
在 inductive learning
中的能力。我们进行消融实验从而评估DIAL-GNN
框架不同部分的影响,评估指标为测试集accuracy
(+-
标准差)。其中 w/o
表示 without
。
结论:
w/o IL
),所有数据集的性能持续下降。这证明了迭代式学习对于图结构学习问题的有效性。w/o graph reg.
),所有数据集的性能也在持续下降。这证明了结合图正则化损失共同训练模型的好处。为评估 DIAL-GNN
在噪音图上的鲁棒性,我们对于Cora
数据集构建了随机添加边、随机删除边的图。具体而言,我们随机删除原始图中 25%, 50%, 75%
的边(上图),或者随机添加原始图中 25%, 50%, 75%
的边(下图)。评估指标为测试集accuracy
(+-
标准差)。
结论:
DIAL-GNN
都比 GCN
获得更好的结果,并且对带噪音的图更鲁棒。GCN
在添加噪音边的场景下完全失败,但是 DIAL-GNN
仍然能够合理地执行。我们猜测是因为等式 我们通过测试阶段的迭代式学习过程中的迭代,展示了迭代式学习学到的邻接矩阵的演变,以及模型测试 accuracy
的演变。
我们将迭代式学习过程中相邻矩阵之间的差定义为:
其典型取值范围是 0~1
。
结论:邻接矩阵和accuracy
都通过迭代快速收敛,这从经验上验证了我们对迭代式学习过程的收敛性做出的分析。
DIAL-GNN
迭代式学习方法的停止策略有两种:迭代固定数量的迭代步之后停止、应用某些停止条件从而动态停止。下图我们比较了两种策略的有效性,其中蓝线表示使用固定数量的迭代次数,红线表示使用动态停止条件。评估指标为 Cora
数据集的测试集上的平均accuracy
。
结论:使用停止条件从而动态停止的效果更好。
最后,我们在各种 benchmark
中比较了 DIAL-GNN, LDS
以及其它经典GNN
(如 GCN, GAT
)的训练效率。
所有实验均在 Intel i7-2700K CPU, NVIDIA Titan XP GPU
和 16GB RAM
的同一台机器上运行,并使用不同随机数种子重复执行5
次。结果见下表(单位秒)。
结论:
DIAL-GNN
和 LDS
都要比 GCN,GAT
更慢。这是可以预期的,因为 GCN
和 GAT
不需要同时学习图结构。DIAL-GNN
始终比 LDS
更快,但总体而言它们是差不多的水平。DIAL-GNN w/o IL
) 可以发现,迭代式学习的部分是 DIAL-GNN
中最耗时的。现实世界中的数据很多包含图结构,如社交网络、引文网络、万维网。图神经网络 GNN
作为一种强大的图结构数据的深度representation learning
方法,在图数据分析中表现出卓越的性能,并引起广泛的研究。例如,一些工作(《A new model for learning in graph domains》、《Gated graph sequence neural networks》、《The graph neural network model》
)利用神经网络来学习基于节点特征和图结构的 node representation
。一些工作(《Convolutional neural networks on graphs with fast localized spectral filtering》
、GraphSAGE
、GCN
)通过将卷积推广到图来提出图卷积网络。
深度学习的最新研究趋势是注意力机制,该机制可以处理可变大小的数据,并鼓励模型更关注于数据中最重要的部分。注意力机制已被证明在深度神经网络框架中的有效性,并广泛应用于各个领域,如文本分析、知识图谱、图像处理。Graph Attention Network: GAT
是一种新颖的卷积式图神经网络,它利用注意力机制来处理仅包含一种类型的节点或边的同质图。
尽管注意力机制在深度学习中取得成功,但是目前的异质图神经网络架构尚未考虑注意力机制。事实上,现实世界中的图通常带有多种类型的节点和边,这通常被称作异质信息网络heterogeneous information network: HIN
或异质图 heterogeneous graph
。异质图包含更全面的信息和更丰富的语义,因此被广泛应用于许多数据挖掘任务中。由于异质图的复杂性,传统的 GNN
模型无法直接应用于异质图。
metapath
表示了不同类型对象之间的关系,它是一种广泛用于捕获语义的结构。以电影数据集 IMDB
为例,它包含三种类型的节点:电影 Movie
、演员 Actor
、导演 Director
。
metapath
“电影-演员-电影” MAM
表示两部电影之间的共同演员关系。metapath
“电影-导演-电影”MDM
表示两部电影之间的共同导演关系。可以看到:采用不同的 metapath
,异质图中节点之间的关系可以具有不同的语义。
由于异质图的复杂性,传统的图神经网络无法直接应用于异质图。
基于以上分析,在为异质图设计具有注意力机制的神经网络体系结构时,需要满足以下需求:
图的异质性:异质性heterogeneity
是异质图的固有属性,即图中包含各种类型的节点和边。例如,不同类型的节点具有不同的特征,它们的特征可能位于不同的特征空间。如何同时处理如此复杂的异质图结构信息,同时保持多样化的特征信息是需要解决的问题。
semantic-level
注意力:异质图涉及不同的有意义和复杂的语义信息,这些语义信息通常以 metapath
来刻画。因此,异质图中不同的 metapath
可以抽取不同的语义信息。如何选择最有意义的 metapath
,并为 task-specific
融合语义信息是需要解决的问题。
semantic-level
注意力旨在了解每个 metapath
的重要性,并为其分配适当的权重。如,电影 “《终结者》” 可以通过 Movie-Actor-Movie
连接到 “《终结者2》” (都是由施瓦辛格主演),也可以通过 Movie-Year-Movie
连接到 “《Birdy》
” (都是在 1984
年拍摄)。但是在影片分类任务中,MAM
通常要比 MYM
更重要。
因此,均匀对待所有 metapath
是不切实际的,这会削弱某些有用的 metapath
提供的语义信息。
node-level
注意力:在异质图中,节点可以通过各种类型的关系来连接。给定一个 metapath
,每个节点多有很多基于该 metapath
的邻居。我们需要知道如何区分邻居之间的重要性,并选择一些信息丰富的邻居。对于每个节点,node-level
注意力旨在了解 metapath-based
邻居的重要性,并为他们分配不同的注意力值。
为解决这些问题,论文《Heterogeneous Graph Attention Network》
提出了一个新的异质图注意力网络 Heterogeneous graph Attention Network
,简称 HAN
。 HAN
同时考虑了 同时考虑了node-level
注意力和 semantic-level
注意力。具体而言,给定节点特征作为输入:
HAN
使用 type-specific
转换矩阵将不同类型节点的特征投影到相同的特征空间。HAN
使用 node-level
注意力机制来获得节点及其 metapath-based
邻居之间的注意力得分。HAN
使用 semantic-level
注意力机制来获得各 metapath
针对具体任务的注意力得分。基于这两个级别学到的注意力得分,HAN
可以通过分层hierarchical
的方式获得邻居和多个 metapath
的最佳组合,使得学到的 node embedding
可以更好地捕获异质图中复杂的结构信息和丰富的语义信息。之后,可以通过端到端的反向传播来优化整个模型。
论文的主要贡献:
heterogeneous graph attention network: HAN
,它同时包含 node-level attention
和 semantic-level attention
。受益于这种分层的注意力机制,所提出的 HAN
可以同时考虑节点重要性和 metapath
重要性。此外,HAN
模型效率高效,其复杂度是 metapath-based
节点 pair
对的数量的线性复杂度,因此可以应用于大规模异质图。state-of-the-art
模型进行比较,结果表明了 HAN
的优越性。更重要的是,通过分析分层注意力机制,HAN
展示了它对于异质图分析的潜在的量向好可解释性。相关工作:
GNN
:
《new model for learning in graph domains》
和 《The graph neural network model》
中介绍了旨在扩展深度神经网络以处理任意图结构数据的图神经网络GNN
。《Gated graph sequence neural networks》
提出了一种传播模型,该模型可以融合 gated recurrent unit: GRU
从而在所有节点上传播信息。最近很多工作在图结构数据上推广卷积运算。图卷积神经网络的工作一般分为两类,即谱域spectral domain
卷积和非谱域non-spectral domain
卷积。
一方面,谱域卷积利用图的 spectral representation
来工作。
《Spectral networks and locally connected networks on graphs》
通过找到图的傅里叶基Fourier basis
从而将卷积推广到一般的图。《Convolutional neural networks on graphs with fast localized spectral filtering》
利用 approximate
平滑的滤波器。《Semi-Supervised Classification with Graph Convolutional Networks》
提出了一种谱方法,称作图卷积网络Graph Convolutional Network: GCN
。该方法通过普卷积的局部一阶近似来设计图卷积网络。另一方面,非谱域卷积直接在图上定义卷积。
《Inductive Representation Learning on Large Graphs》
提出了 GraphSAGE
,它在固定大小的节点邻域上执行基于神经网络的聚合器。它可以通过聚合来自节点局部邻域的特征来学习一个函数,该函数用于生成 node embedding
。注意力机制(如 self-attention
和 soft-attention
)已经成为深度学习中最有影响力的机制之一。先前的一些工作提出了用于图的注意力机制,如 《Aspect-Level Deep Collaborative Filtering via Heterogeneous Information Network》
、《Leveraging Meta-path based Context for Top-N Recommendation with A Neural Co-AttentionModel》
。受到注意力机制的启发,人们提出 Graph Attention Network: GAT
来学习节点与其邻居之间的重要性,并融合 fuse
邻居进行节点分类。
但是,上述图神经网络无法处理多种类型的节点和边,它们仅能处理同质图。
Network Embedding
:network embedding
,即 network representation learning: NRL
,用于将网络嵌入到低维空间中并同时保留网络结构和属性,以便将学到的 embedding
应用于下游网络任务。如,基于随机游走的方法(node2vec, Deepwalk
)、基于深度神经网络的方法(《Structural deep network embedding》
)、基于矩阵分解的方法(《Asymmetric transitivity preserving graph embedding》,《Community Preserving Network Embedding》
)、以及其它方法(LINE
)。然而,所有这些算法都是针对同质图提出的。
异质图嵌入主要聚焦于保留 metapath-based
的结构信息。
ESim
接受用户定义的 metapath
作为指导,在用户偏好 user-preferred
的 embedding
空间中学习 node embedding
从而进行相似性搜索。即使 ESim
可以利用多个 metapath
,它也无法了解 metapath
的重要性。为了达到最佳性能,ESim
需要进行网格搜索从而找到所有的 metapath
的最佳权重。metapath2vec
设计了一种 metapath-based
随机游走,并利用 skip-gram
来执行异质图嵌入。但是,metapath2vec
只能使用一个 metapath
,可能会忽略一些有用的信息。metapath2vec
类似,HERec
提出了一种类型约束策略type constraint strategy
来过滤节点序列并捕获异质图中反应的复杂语义。HIN2Vec
执行多个预测的训练任务,同时学习节点和 metapath
的潜在向量。《PME: Projected Metric Embedding on Heterogeneous Networksfor Link Prediction》
提出了一个叫做 PME
的投影度量嵌入模型projected metric embedding model
,该模型可以通过欧式距离来保持节点邻近性。PME
将不同类型的节点投影到同一个关系空间 relation space
中,进行异质链接的预测。《Easing Embedding Learning by Comprehensive Transcription of Heterogeneous InformationNetworks》
提出了 hEER
,它可以通过 edge representation
来嵌入异质图。《Gotcha-sly malware!: Scorpion a metagraph2vec based malware detection system》
提出了一个嵌入模型 metapath2vec
,其中网络结构和语义都被最大限度地保留从而用于恶意软件检测。《Joint embedding of meta-path and meta-graph for heterogeneous information networks》
提出了 metapath-based
的 network embedding
模型,该模型同时考虑了 meta-graph
的所有 meta
信息的隐藏关系 hidden relation
。综上所述,上述所有算法都没有考虑异质图 representation learning
中的注意力机制。
异质图是一种特殊类型的信息网络,包含多种类型的节点或多种类型的边。
定义异质网络
对于异质网络,有
定义 metapath
metapath
定义了 composition
。
metapath
表示不同对象之间的语义路径semantic path
。
定义 metapath-based
邻居:给定一个 metapath
metapath-based
邻居 metapath
如下图所示,我们构建了IMDB
的一个异质图,它包含多种类型的节点(演员Actor:A
,电影Movie:M
,导演 Director:D
),以及多种类型的关系。
metapath
连接,如 MAM, MDM
。metapath
通常表示不同的语义,如:MAM
表示两部电影是同一个演员参演的;MDM
表示两部电影是同一个导演主导的。d
中,给定 metapath MAM
的情况下, metapath-based
邻居包含 metapath MDM
的情况下, metapath-based
邻居包含 现有的图神经网络可以处理任意图结构数据,但是它们都是针对同质网络来设计。由于 metapath
和 metapath-based
邻居是异质图的两个基本结构,因此我们为异质图设计一种新的半监督图神经网络 HAN
。
HAN
采用 hierarchical attention
结构:node-level
注意力机制、semantic-level
注意力机制。下图给出了 HAN
的整体框架:
node-level
注意力,从而获取 metapath-based
邻居的权重,并在特定语义下(每个metapath
对应一个语义)聚合这些邻居从而得到节点的 embedding
。semantic-level
注意力,从而区分 metapath
的权重。从而最终结合了 node-level
注意力和 semantic-level
注意力来获取 node embedding
的最佳加权组合。每个节点的 metapath-based
邻居扮演了不同的角色,并且在 task-specific node embedding
学习中表现出不同的重要性。因此,我们考虑 node-level
注意力,它能够学习异质图中每个节点的 metapath-based
邻居的重要性,并聚合这些重要的邻居 embedding
从而生成node embedding
。
由于节点的异质性,不同类型节点具有不同的特征空间。因此,对于类型为 type-specific
转换矩阵
节点特征的投影过程为:
其中:
通过type-specific
特征投影过程,node-level
注意力可以处理任意类型的节点。
然后,我们利用self-attention
机制来学习 metapath-based
邻居之间的重要性。
给定一对节点 metapath
node-level
注意力
基于 metapath
的节点 pair
对
其中:
node-level
注意力的深度神经网络。
给定 metapath
metapath-based
节点 pair
对之间共享,这是因为在 metapath
metapath
节点重要性是非对称的,即 node-level
注意力可以保留异质图的不对称性,而这种不对称性是异质图的关键特性。
即使
,由于不同节点具有不同的邻居集合,因此归一化之后的 。
给定 metapath
metapath-based
节点 pair
对
通常我们选择
其中:
metapath
node-level
注意力向量attention vector
,它是 metapath-specific
的。然后,我们通过masked attention
将结构信息注入到模型,这意味着我们计算 metapath-based
邻居(包括其自身)。
在获得 metapath-based
节点 pair
对的重要性之后,我们通过 softmax
函数对其进行归一化,从而获得权重系数
可以看到:
metapath
生成的,因此它是 semantic-specific
的,并且能够捕获一种语义信息。最后,节点 metapath-based embedding
可以通过邻居的投影后的特征和相应的权重系数进行聚合:
其中 metapath
embedding
。
为更好地理解 node-level
聚合过程,我们以下图 (a)
为例进行简要说明。每个节点的 embedding
均由其 metapath-based
邻居的特征聚合而来。由于注意力权重 metapath
而生成的,因此它是 semantic-specific
并且能够捕获一种语义信息。
由于异质图的数据规模可大可小,其规模的方差很大。为使得 HAN
能够应用到各种规模的异质图,我们将 node-level
注意力扩展为 multi-head
注意力,从而使得训练过程更为稳定。
具体而言,我们重复 node-level
注意力 embedding
拼接,从而作为最终的 semantic-specific embedding
:
其中 head
学到的权重系数。
给定 metapath
集合 node-level
注意力机制之后,我们可以获得 semantic-specific node embedding
,记作 semantic-specific node embedding
包含了图中所有的节点。
如何确定这个
metapath
集合,论文并未给出任何答案或方向。
通常异质图中每个节点都包含多种类型的语义信息,并且 smantic-specific node embedding
仅能反映节点某个方面的语义。为学到更全面的节点 embedding
,我们需要融合各种类型语义。
为解决多种类型语义融合的挑战,我们提出一种新的 semantic-level attention
机制,可以自动学习 task-specific
下不同 metapath
的重要性,从而融合多种类型的语义。
考虑 node-level
注意力下学到的 semantic-specific node embedding
metapath
的重要性为
其中 semantic-level
注意力的深度神经网络。
为学习 metapath
的重要性:
MLP
)来转换 semantic-specifc node embedding
。embedding
和一个 semantic-level
注意力向量 attention vector
semantic-specific node embedding
的重要性,从而得到每个 metapath
的重要性。记 metapath
其中:
semantic-level
的注意力向量。注意:为进行有意义的比较,所有的 metapath
和 semantic-specific node embedding
都共享相同的
上式重写为:
。因此是对 metapath
计算 metapath-level
的embedding
,然后和 计算内积。 这里对不同
metapath
共享相同的投影矩阵而没有采用不同的投影矩阵 ,因为这里 已经被投影到相同的特征空间了。
在得到每个 metapath
重要性之后,我们通过 softmax
函数对其进行归一化。metapath
metapath
metapath
metapath
使用学到的权重作为系数,我们可以融合这些 semantic-specifc node embedding
,从而得到最终的 embedding
为:
为更好地理解 sementic-level
聚合过程,我们在下图的 (b)
中进行简要说明。最终的 embedding
由所有 semantic-specific node embedding
进行聚合。
对于不同的任务,我们可以设计不同的损失函数。对于半监督节点分类任务,我们可以使用交叉熵损失函数:
其中:
label
的 one-hot
向量。embedding
向量。在标记数据的指导下,我们可以通过反向传播优化 HAN
模型,并学习 node embedding
。
HAN
算法:
输入:
metapath
集合 multi-head
数量 输出:
node embedding
矩阵 node-level
每个 head
的注意力权重 semantic-level
的注意力权重 算法步骤:
迭代metapath
:
迭代多头
进行 type-specific
转换:
遍历所有节点
找到 metapath-based
邻域集合
对于
计算 semantic-specific
节点 embedding
:
拼接多头学到的 semantic-specific
节点 embedding
:
计算 metapath
融合semantic-specific node embedding
:
计算交叉熵损失:
反向传播并更新参数
返回
HAN
可以处理异质图中各种类型的节点和各种类型的关系,并融合了丰富的语义信息。信息可以通过多种关系从一种类型的节点传播到另一种类型的节点。得益于这种异质的图注意力网络,不同类型节点的 embedding
能够不断相互促进提升。
HAN
是高效的,可以轻松并行化。每个节点的注意力可以独立地并行化,每条 metapath
的注意力也可以独立地计算。
给定一个 metapath
node-level
注意力的时间复杂度为
metapath
metapath
pair
对的数量。multi-head
的数量。总体复杂度和metapath
中节点数量成线性,和 metapath
中节点pair
对的数量成线性。
分层注意力的参数在整个异质图上共享,这意味着 HAN
的参数规模不依赖于异质图的大小,并且 HAN
可以应用于 inductive learning
。
HAN
对于学到的node embedding
具有潜在的良好解释性,这对于异质图的分析是一个很大的优势。
有了节点重要性和 metapath
重要性,HAN
可以在具体任务下更关注于一些有意义的节点或 metapath
,并给异质图一个更全面的描述。
根据注意力值,我们可以检查哪些节点或 metapath
为任务做出了更多(或更少)的贡献,这有助于分析和解释我们预测的结果。
数据集:
DBLP
:我们提取了 DBLP
的子集,其中包含 14328
篇论文(paper:P
)、 4057
位作者(author:A
)、20
个会议(conference:C
)、8789
个术语 (term:T
) 。作者分为四个领域:数据库 database
、数据挖掘 data mining
、机器学习 machine learning
、信息检索 information retrieval
。我们根据作者提交的会议来标记每个作者的研究领域。
作者的特征是他们发表文档的关键词的 bag-of-word
。这里我们使用 metapath
集合
ACM
:我们提取在 KDD, SIGMOD, SIGCOMM, MobiCOMM, VLDB
中发表的论文,并将论文分为三个类别:数据库 database
、无线通信 wireless commmunication
、数据挖掘 data mining
。然后我们构建一个包含 3025
篇论文(paper:P
)、5835
名作者(auther:A
)、56
个主题(subject:S
)的异质图,论文标签为它被发表的会议。
论文的特征为关键词的 bag-of-word
。这里我们使用 metapath
集合
IMDB
:我们提取 IMDB
的子集,其中包含 4780
部电影(movie:M
)、5841
名演员(actor:A
)、2269
位导演(director:D
)。电影根据类型分为三个类别:动作片 Action
、喜剧 Comedy
、戏剧 Drama
。
电影的特征为电影情节的 bag-of-word
。这里我们使用 metapath
集合
数据集的统计结果如下所示:
baseline
方法:我们和一些最新的 baseline
方法比较,其中包括:同质网络 embedding
、异质网络 embedding
、基于图神经网络的方法。为分别验证 node-level
注意力和 semantic-level
注意力,我们还测试了 HAN
的两个变体。
DeepWalk
:一种基于随机游走的网络 embedding
方法,仅用于同质图。这里我们忽略节点的异质性,并在整个异质图上执行 DeepWalk
。
ESim
:一种异质图的embedding
方法,可以从多个 metapath
捕获语义信息。
由于难以搜索一组 metapath
的权重,因此我们将 HAN
学到的 metapath
权重分配给ESim
。
metapath2vec
:一种异质图 embedding
方法,该方法执行metapath-based
随机游走,并利用 skip-gram
嵌入异质图。
这里我们测试 metapath2vec
的所有 metapath
并报告最佳性能。
HERec
:一种异质图 embedding
方法,该方法设计了一种类型约束策略来过滤节点序列,并利用 skip-gram
来嵌入异质图。
这里我们测试了HERec
的所有metapath
并报告了最佳性能。
GCN
:用于同质图的半监督图神经网络。
这里我们测试了 GCN
的所有 metapath
,并报告了最佳性能。
GAT
:用于同质图的半监督神经网络,它考虑了图上的注意力机制。
这里我们测试了 GAT
的所有 metapath
,并报告了最佳性能。
HAN
的一个变体,它移除了 node-level
注意力机制,并给节点的每个邻域赋予相同的权重。
HAN
的一个变体,它移除了 semantic-level
注意力机制,并给每个metapath
赋予相同的权重。
HAN
:我们提出的半监督图神经网络,它同时采用了 node-level
注意力和 semantic-level
注意力。
这里有些
baseline
是无监督的、有些是半监督的。将半监督方法和无监督方法进行比较是不公平的,因为半监督方法可以获得部分的label
信息,因此半监督方法通常都会比无监督方法更好。
实验配置:
HAN
:
Adam
优化器,学习率为 0.005
,正则化参数为 0.001
。semantic-level
注意力向量 128
,multi-head
数量 attention dropout
比例为 dropout rate = 0.6
patience = 100
。即:如果 100
个连续的 epoch
中,验证集损失没有降低则停止训练。对于 GCN,GAT
,我们使用验证集来调优其超参数。
对于 GCN,GAT,HAN
等半监督图神经网络,我们使用完全相同的训练集、验证集、测试集,从而确保公平性。
对于 DeepWalk, ESim, metapath2vec, HERec
等基于随机游走的方法,我们将每个节点开始的随机游走数量设为 40
,每个随机游走序列长度为 100
,上下文窗口大小为 5
,负样本的采样数量为 5
。
为公平起见,我们将上述所有方法的 embedding
维度设为 64
。
我们使用 KNN
分类器对节点进行分类,分类器的输入为模型学到的node embedding
。由于图结构数据的方差可能很大,因此我们重复该过程 10
次,并报告平均的 Macro-F1
和 Micro-F1
。
HAN
在所有数据集中超越了其它baseline
。embedding
方法,能够利用多个 metapath
的 ESim
比 metapath2vec
表现更好。GCN,GAT
)要优于异质图 embedding
方法。GCN
和 GAT
和 HAN
可以对邻居进行适当地加权,从而提高了学到的 embedding
的性能。GAT
相比,为异质图设计的 HAN
能够成功地捕获丰富的语义信息并展示其优越性。node-level
注意力 (semantic-level
注意力 (HAN
更差。这表明 node-level
注意力建模和 semantic-level
注意力建模的重要性。DBLP
,HAN
在 ACM,IMDB
数据集的效果提升更明显,这是因为在 DBLP
中, metapath APCPA
比其它的 metapath
重要得多,因此仅针对该 metapath
的 HERec/GCN/GAT
已经能够取得很好的效果。。我们在下文通过分析 semantic-level
注意力来解释该现象。因此,结论证明了在异质图中捕获node-level
和 semantic-level
的重要性非常重要。
我们还对学到的node embedding
执行聚类,从而评估embedding
的聚类效果。这里我们使用 KMeans
聚类算法,聚类数量设为节点的类别数量。我们使用节点的真实类别为真实的聚类类别,并使用 NMI
和 ARI
来评估聚类结果的质量。
归一化互信息 NMI
:
其中:
ADjusted Rand index:ARI
:
其中:
RI
指标的最大值; RI
指标的期望。这是为了使得随机聚类的情况下该指标为零。由于 KMeans
的性能受到初始质心的影响,因此我们将该过程随机重复执行 10
次,并报告平均结果。
结论:
HAN
在所有数据集上始终优于其它 baseline
。metapath
的重要性,因此 metapath2vec
和 GCN
的聚类效果较差。metapath
的指导下,HAN
的性能明显优于 GCN/GAT
。node-level
注意力 (semantic-level
注意力 (HAN
的性能会退化。这表明 node-level
注意力建模和 semantic-level
注意力建模的重要性。基于上述分析,我们发现 HAN
可以对异质图进行全面描述,并取得显著改善。
HAN
的一个显著特性是结合了分层 attention
机制,从而在学习 embedding
时同时考虑了节点邻居的重要性和 metapath
的重要性。为了更好地理解邻居重要性和 metapath
重要性,我们对分层注意力机制进行详细的分析。
node-level
注意力:如前所述,HAN
可以学到 metapath
中节点及其邻居之间的注意力值。对于具体的任务,重要的邻居往往具有更大的注意力值。
这里我们以 ACM
数据集中的论文 P831
为例。给定一个描述不同论文的 author
关系的 metapath Paper-Author-Paper
,我们枚举了论文 P831
的 metapath-based
邻居,其注意力值如下图所示。不同颜色表示不同的类别,如绿色表示数据挖掘、蓝色表示数据库、橙色表示无线通信。
从图 a
中可以看到:
P831
链接到 P699
和 P133
,它们都属于数据挖掘。P831
链接到 P2384
和 P2328
,它们都属于数据集。P831
和 P1973
相连,它们都属于无线通信。从图 b
中可以看到:
P831
从node-level
注意力中获得最大的注意力值,这意味着 P831
自身在学习其 embedding
中起着最重要的作用。
这是合理的,因为通常节点类别主要由其本身的特性决定,而邻居信息仅作为一种补充。
P699
和 P133
在 node-level
注意力种获得第二、第三大的注意力值。这是因为 P699
和 P133
也属于数据挖掘,它们为识别 P831
的类别做出重大贡献。
其余邻居的注意力较小,无法为识别 P831
的类别做出重要贡献。
根据以上分析,我们可以看到 node-level
注意力可以区分邻居之间的差别,并为某些有意义的邻居分配更大的权重。
semantic-level
注意力:如前所述,HAN
可以学到 metapath
对特定任务的重要性。为验证 semantic-level
注意力的能力,我们以 DBLP
和 ACM
为例,给出了单个 metapath
聚类结果(NMI
),以及对应注意力值。
显然,单个 metapath
的性能和它的注意力权重之间存在正相关。
对于 DBLP
,HAN
赋予 APCPA
更大的权重,这意味着 HAN
认为 APCPA
是确定作者研究领域的最关键的 metapath
。这是有道理的,因为作者的研究领域和他们提交的会议是高度相关的。如,一些 NLP
研究人员主要将其论文提交给 ACL
或 EMNLP
;另一些数据挖掘研究人员可能将其论文提交给 KDD
或 WWW
。
另外,APA
很难准确地确定作者的研究领域。因此,如果我们平等地对待这些 metapath
(如
根据每个 metapath
的注意力值,我们发现 metapath APCPA
比 APA, APTPA
有用的多。因此,即使 HAN
将这些 metapath
聚合在一起,APCPA
在确定作者研究领域方面仍然起着主导作用。
这也是为什么在 DBLP
中,HAN
性能可能不如 ACM
和 IMDB
中提升得那么多。
对于 ACM
,我们也得出类似得结论。对于 ACM
,PAP
的权重更高。
由于 PAP
的性能略好于 PSP
,因此
为直观地进行比较,我们执行可视化任务,从而在低维空间中可视化异质图。具体而言,我们基于模型学习节点 embedding
,并将学到的 embedding
映射到二维空间。这里,我们使用 t-SNE
来可视化 DBLP
的 author
节点,并根据节点类别来进行染色。
结论:
为同质图设计的 GCN
和 GAT
效果不佳,属于不同研究领域的作者彼此混杂。
metapath2vec
的性能比上述同质图的神经网络效果好得多,它表明适当的 metapath
(如 APCPA
) 对异质图分析做出重要贡献。
但是,由于 metapath2vec
仅考虑一条 metapath
,因此不同类别节点之间的边界仍然模糊。
HAN
的可视化效果最好。在多种 metapath
指导下,HAN
学到的 embedding
具有高度的簇内相似性,并将具有不同研究领域学者的边界的区分开来。
这里我们研究参数敏感性,并报告了不同参数下,ACM
数据集上的聚类NMI
结果。
最终 embedding
embedding
维度的增加,HAN
性能先提高后下降。
原因是:HAN
需要一个合适的维度来编码语义信息,但是维度过大之后可能会引入额外的冗余(即,过拟合)。
semantic-level
注意力向量维度:可以看到,HAN
的性能首先随着 semantic-level
注意力向量 128
时达到最佳性能;然后随着维度的增加而下降,这可能是因为过拟合导致。
multi-head
数量 HAN
性能越好。但是随着 HAN
的性能略有改善(改善幅度不大)。同时,我们还发现 multi-head attention
可以使得训练过程更为稳定。
注意:当 multi-head
退化为单头。
异质图heterogeneous graph: HetG
包含多种类型的节点,以及节点之间的多种关系。如下图的学术网络包含了 author
节点、 paper
节点以及 venue
节点,并包含了 author
和 paper
之间的 write
关系、paper
和 paper
之间的 cite
关系、paper
和 venue
之间的 publish
关系。此外,节点还具有属性(author id
)以及文本(论文摘要)等特征。异质图的这种普遍性导致大量的研究开始涌入相应的图挖掘方法和算法,例如关系推理relation inference
、个性化推荐、节点分类等等。
传统的异质图任务中,很多方法都依赖于从手工特征中得到特征向量。这种方式需要分析和计算有关异质图的不同统计特性和属性,从而作为下游机器学习任务的特征向量。但是这种方式仅局限于当前任务,无法推广到其它任务。近期出现的representation learning
方法使得特征工程自动化,从而促进下游的机器学习任务。从同质图开始,graph representation learning
已经扩展到异质图、属性图、以及特定的图。例如:
shallow model
(如 DeepWalk
)最初是为了将图上的短随机游走的集合提供给 SkipGram
模型,从而近似approximate
这些游走中的节点共现概率 node co-occurrence probability
并获得 node embedding
。semantic-aware
方法(如 metapath2vec
),从而解决异质图中的节点异质性node heterogeneity
和关系异质性 relation heterogeneity
。ASNE
)利用latent feature
和属性来学习图中的 node embedding
。这些方法直接学习节点的潜在 embedding
,但是在捕获丰富的邻域信息方面受到限制。图神经网络 GNN
采用深度神经网络来聚合邻域节点的特征信息,这使得 aggregated embedding
更加强大。此外,GNN
可以自然地应用于 inductive
任务,该任务涉及到训练期间 unseen
的节点。例如,GCN, GraphSAGE, GAT
分别采用卷积操作、LSTM
架构、以及注意力机制来聚合邻域节点的特征信息。GNN
的进步和应用主要集中在同质图上。但是,当前state-of-the-art
的 GNN
无法解决异质图学习的以下问题:
问题 C1
:异质图中很多节点连接到多种类型的邻居,连接的邻居节点的种类和数量可能各不相同。例如,下图中节点 a
有 5
个直接邻居而节点 c
只有 2
个直接邻居。
现有的大多数 GNN
仅聚合直接邻域的特征信息,而特征传播过程可能会削弱更远邻域的影响。此外,hub
节点的 embedding
生成受到弱相关的邻居(即,噪声邻居)的影响,并且“冷启动”节点的 embedding
无法充分地被表达(由于邻域信息有限所导致)。
第一个问题是:如何对每个节点采样和它 embedding
最相关的异质邻居?如下图中的 C1
阶段所示。
问题 C2
:异质图中的节点可能具有非结构化的异质内容,如属性、文本、图像等。另外,不同类型节点关联的内容可能有所不同。如下图中:
type-1
的节点(如 b,c
)关联的内容为属性、文本。type-2
的节点(如 f,g
)关联的内容为属性、图像。type-k
的节点(如 d,e
)关联的内容为文本、图像。当前 GNN
的直接拼接操作或者线性变换操作无法对节点异质内容之间的深层交互 deep interaction
进行建模。而且,由于不同类型节点的内容多种多样,因此针对所有类型节点使用相同的特征变换函数是不合适的。第二个问题是:如何设计节点内容encoder
,从而编码异质图中不同节点的内容异质性?如下图中的 C2
阶段所示。
问题 C3
:不同类型的邻居对异质图中node embedding
的贡献不同。如学术网络中,author
和 paper
类型的邻居对 author
节点的 embedding
产生更大的影响,因为 venue
类型的节点包含多样化的主题因此具有更 general
的 embedding
。当前大多数 GNN
仅关于同质图,并未考虑节点类型的影响。第三个问题是:如何考虑不同类型节点的影响,从而聚合异质邻居的特征信息。如下图中的 C3
阶段所示。
为解决这些问题,论文 《Heterogeneous Graph Neural Network》
提出了 heterogeneous graph neural network: HetGNN
。 HetGNN
是一种用于异质图的 representation learning
图神经网络模型。
首先,作者设计了一种基于重启的随机游走策略,从而对异质图中每个节点采样固定大小的、强相关的异质邻域,并根据节点类型对其进行分组。
然后,作者设计了一个具有两个模块的异质图神经网络体系结构,从而聚合上一步中采样到的邻居的特征信息。
第一个模块采用 RNN
对异质内容的 deep interaction
进行编码,从而获得每个节点的内容 embedding
。
因为单个节点可能具有多个内容(既有文本又有图像),因此需要通过一个模块来融合多种不同的内容从而得到内容
embedding
。
第二个模块采用另一个 RNN
来聚合不同分组邻居的内容 embedding
,然后通过注意力机制将其进一步组合,从而区分不同异质节点类型的影响,并获得最终 embedding
。
最后,论文利用图上下文损失 graph context loss
和 mini-batch
随机梯度下降来训练模型。
总而言之,论文的主要贡献:
论文形式化了异质图 representation learning
的问题,该问题涉及到图结构异质性和节点内容异质性。
论文提出了一种创新的异质图神经网络模型heterogeneous graph neural network model: HetGNN
,用于异质图上的 representation learning
。HetGNN
能够捕获结构异质性和内容异质性,并对 transductive task
和 inductive task
都很有用。下表总结了 HetGNN
与最近的一些模型(包括同质图模型、异质图模型、属性图模型、以及图神经网络模型)相比的主要优势。
论文在几个公共数据集上进行了广泛的实验,结果表明:HetGNN
在各种图数据挖掘任务(链接预测、推荐、节点分类、聚类)中可以超越 state-of-the-art
的 baseline
方法。
相关工作:
异质图挖掘heterogeneous graph mining
:在过去的十年中,许多工作致力于挖掘异质图从而用于不同的 application
,如关系推断、个性化推荐、节点分类等等。
《When will it happen?: relationship prediction in heterogeneous information networks》
利用 metapath-based
方法来抽取拓扑特征并预测学术图academic graph
中的引用关系。《Task-Guided and Path-Augmented Heterogeneous Network Embedding for Author Identification》
设计了一个基于异质图的 ranking model
来识别匿名论文的作者。《Deep Collective Classification in Heterogeneous Information Networks》
提出了一种深度卷积分类模型,用于异质图中的 collective classification
。图表示学习 graph representation learning
:graph epresentation learning
已经成为过去几年最流行的数据挖掘主题之一。人们提出了基于图结构的模型来学习向量化的 node embedding
从而进一步用于下游各种图挖掘任务。
word2vec
的启发,《Deepwalk: Online learning of social representations》
创新性地提出了 DeepWalk
,它在图中引入了 node-context
的概念(类比于 word-context
),并将图上的随机游走的集合(类比于 sentence
集合)提供给 SkipGram
从而获得 node embedding
。《metapath2vec: Scalable Representation Learning for Heterogeneous Networks》
引入了 metapath-guided
随机游走,并提出 metapath2vec
模型来用于异质图中的 representation learning
。《Attributed network embedding for learning in a dynamic environment》
、《Attributed social network embedding》
、《SHNE: Representation Learning for Semantic-Associated Heterogeneous Networks》
)来利用图结构和节点属性来学习 node embedding
。《Heterogeneous network embedding via deep architectures》
、《Hierarchical Taxonomy Aware Network Embedding》
、《Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec》
、《Pte: Predictive text embedding through large-scale heterogeneous text networks》
、《Learning Deep Network Representations with Adversarially Regularized Autoencoders》
)。图神经网络 graph neural networks
:最近,随着深度学习的出现,图神经网络获得了很多关注。与之前的 graph embedding
模型不同,GNN
背后的关键思想是:通过神经网络从节点的局部邻域中聚合特征信息。
Graph-SAGE
使用神经网络(如 LSTM
)来聚合邻域的特征信息。GAT
使用自注意力机制来衡量不同邻居的影响力,并结合它们的影响力来获得 node embedding
。task dependent
的方法从而为特定任务获得更好的 node embedding
,例如用于恶意账户检测的 GEM
(《Heterogeneous Graph Neural Networks for Malicious Account Detection》
)。定义一个带内容的异质图 content associated heterogeneous graph:C-HetG
为 attribute
、文本 text
、图像 image
。
给定一个 C-HetG
Heterogenous Graph Representation Learning
的目标是设计一个模型 embedding
,从而能够同时编码异质结构信息和异质内容信息,其中
学到的 node embedding
可以应用于下游各种图挖掘任务,如链接预测、推荐、多标签分类、节点聚类等。
我们首先给出 HetGNN
的整体框架如下图所示,其中包含四个部分:对异质邻居节点进行采样、编码节点的异质内容、聚合节点的异质邻居、定义目标函数并给出训练过程。
下图中:
图 (a)
为整体框架:
a
为例)采样固定数量的异质邻居节点。NN-1
神经网络编码每个节点的异质内容。NN-2
神经网络和 NN-3
神经网络来聚合采样到的异质邻居节点的内容 embedding
。图 (b)
为NN-1
神经网络,它是节点异质内容编码器。
图 (c)
为 NN-2
神经网络,它是 type-based
邻域聚合器。
图 (d)
为 NN-3
神经网络,它是异质类型组合器。
大多数神经网络GNN
的关键思想是聚合来自节点的直接邻居(一阶邻居)的特征信息,如 GraphSAGE
或 GAT
。但是,直接将这些方法应用到异质图可能会引起一些问题:
author
并未和其它 author
或 venue
直接相连,但是可能存在间接连接。如果仅考虑直接连接的邻居,则可能导致学到的 representation
表达能力不足。embedding
可能受到不同邻居规模的影响。如在推荐常见中,某些 item
和很多用户交互,另一些 item
可能只有很少的用户交互。因此:某些热门节点的 embedding
可能会被某些弱相关的邻居而损害,而一些冷门节点的 embedding
可能未能充分学习。针对这些问题并解决问题 C1
,我们设计了一种基于重启的随机游走策略random walk with restart: RWR
来对异质邻居进行采样。
RWR
包含两个连续的步骤:
step1
:基于 RWR
采样固定数量的邻居。我们从节点
我们始终执行 RWR
直到收集到固定数量的节点,收集到的节点集合记作
注意:
step2
:对采样的邻居节点集合根据节点类型进行分组。对于节点类型 top
由于下列原因,RWR
策略能够避免上述问题:
RWR
能够为每个节点收集到所有类型的邻居。我们设计了一个具有两个模块的异质图神经网络体系结构,从而聚合每个节点的采样后异质邻居的特征信息。
为解决问题 C2
,我们设计了一个模块,从节点 embedding
。
具体而言,我们将 Par2Vec
来预训练文本内容,可以利用 CNN
来预训练图像内容。
之前的一些方法直接拼接不同的内容特征,或者将不同的内容特征经过线性映射到相同的特征空间。和这些方法不同,我们基于 Bi-LSTM
设计了一种新的架构来捕获 deep feature interaction
,并获得更强的表达能力。
因此,节点 embedding
为:
其中:
embedding
, embedding
维度。feature transformer
,它可以是恒等映射(没有任何变换)、也可以是一个全连接神经网络(参数为 LSTM
之前,首先进行特征变换。具体而言,上述架构首先使用不同的 FC
层来转换不同的内容特征,然后使用 Bi-LSTM
来捕获 deep feature interaction
,并聚合所有内容特征的表达能力。最后取所有隐状态的均值来获得节点 embedding
。
通过内容拼接然后馈入全连接层也可以捕获
deep feature interaction
。这里用Bi-LSTM
个人觉得不太合理,因为Bi-LSTM
强调有序的输入,而这里的输入是无序的。虽然通过随机排列内容集合从而应用到 Bi-LSTM
中,但是这仅仅是一种变通方案,而没有很好地捕获到内容信息之间的关联(如互补关系、overlap
关系)。
注意:
Bi-LSTM
应用在无序的内容集合 GraphSAGE
在聚合无序邻居的启发。Bi-LSTM
来聚合不同类型节点的内容特征,因为它们的内容类型互不相同。上述内容 embedding
体系结构有三个主要优点:
为聚合每个节点的异质邻居的内容 embedding
(问题 C3
),我们设计了另一个type-based
神经网络模块,它包含两个步骤:同一类型的邻居聚合、类型组合。
同一类型的邻居聚合:我们使用基于 RWR
的策略为每个节点采样固定数量的、包含不同类型的邻居集合,并针对类型 top
embedding
:
其中:
embedding
向量, embedding
维度。
CNN
网络、或者是 RNN
网络。
这里我们选中 Bi-LSTM
,因为实践中它的效果最好。因此:
我们使用 Bi-LSTM
聚合所有类型为 embedding
。
注意:
Bi-LSTM
来区分不同节点类型的邻域聚合。Bi-LSTM
应用在无序邻居上,这是受到 GraphSAGE
在聚合无序邻居的启发。类型组合 type combination
:前面为每个节点 embedding
type-based
邻域聚合 embedding
以及节点的内容 embedding
,我们采用了注意力机制。我们认为:不同类型的邻域对 final embedding
做出的贡献不同。因此,节点 embedding
为:
其中:
final embedding
。embedding
的重要性。embedding
, embedding
。定义节点 embedding
集合为
其中:
LeakyReLU
。embedding
向量。attention vector
,是待学习的参数。在整个框架中,为了使得 embedding
维度一致并且模型易于调整,我们使用相同的维度 embedding
、节点邻域聚合 embedding
、节点 final embedding
。
为学习异质图的 node embedding
,我们定义目标函数为:
其中:
条件概率 softmax
函数:
final embedding
。
我们利用负采样技术来调整目标函数,此时
其中:
noise distributioin
。
即:对于节点
最终我们的损失函数为:
其中
注意,
和 都是类型为 。此外,这里仅考虑无监督损失,并未考虑监督损失。
类似于DeepWalk
,我们设计了一个随机游走过程来生成
degree
,也等于它在 在训练的每轮迭代中,我们对 mini-batch
的三元组,然后通过 Adam
优化器来更新模型参数。我们反复迭代直到模型收敛为止。
这里我们进行广泛的实验:
HetGNN
在各种图挖掘任务中和 state-of-the-art baseline
方法的比较,如链接预测、个性化推荐、节点分类&聚类任务。HetGNN
在 inductive learning
任务中和 state-of-the-art baseline
方法的比较,如 inductive
节点分类&聚类任务。HetGNN
中不同组件(如异质节点内容编码器,异质邻域聚合器)对模型性能的影响。HetGNN
中各种超参数(如embedding
维度、异质邻居采样大小)对模型性能的影响。数据集:我们采用两种异质图数据集:学术图 academic graph
、评论图 review graph
。
学术图:我们从 AMiner
数据集中抽取两个数据集:
A-I
包含 1996 ~ 2005
年之间计算机科学会议的论文。A-II
包含 2006 ~ 2015
年之间若干个人工智能和数据科学相关的顶会的论文,因为考虑到大多数研究人员关注于顶会的论文。每篇论文都有各种内容信息,包括:标题、摘要、作者、参考文献、年份、所属会议。
评论图:我们从公开的 Amazon
数据集抽取了两个数据集,即 R-I
(电影类别的评论)、R-II
(CD
类别的评论)。数据集包含 1996-05 ~ 2014-07
之间用户的评论信息、商品元数据信息。
每个商品都有各种内容信息,包括:标题、描述文本、类型、价格、图片。
下表给出了这四个数据集的主要统计信息:
内容特征编码:
在学术网络中,我们使用 ParVec
预训练论文的标题和摘要。此外,我们还使用 DeepWalk
来预训练异质图中所有节点的 embedding
(将异质图视为同质图来训练)。
author embedding
(通过 DeepWalk
得到)、作者的所有论文(经过采样之后)的论文摘要 embedding
均值(通过 ParVec
得到)、作者的所有论文(经过采样之后)的论文标题 embedding
均值。因此,作者的内容编码器的 Bi-LSTM
的长度为 3
。paper embedding
(通过 DeepWalk
得到)、论文的摘要 embedding
(通过 ParVec
得到)、论文的标题 embedding
(通过 ParVec
得到)、论文作者预训练 embedding
的均值(通过 DeepWalk
得到,一篇论文可能有多个作者)、论文会议的预训练 embedding
(通过 DeepWalk
得到)。因此,论文的内容编码器的 Bi-LSTM
的长度为 5
。embedding
(通过 DeepWalk
得到)、会议中随机抽取的论文的摘要的平均 embedding
(通过 ParVec
得到)、会议中随机抽取的论文的标题的平均 embedding
(通过 ParVec
得到)。因此,会议的内容编码器的 Bi-LSTM
的长度为 3
。在评论网络中,我们使用 ParVec
预训练商品标题和描述内容,用 CNN
预训练商品图片。此外,我们还使用 DeepWalk
来预训练异质图中所有节点的 embedding
(将异质图视为同质图来训练)。
embedding
(通过 DeepWalk
得到)、所有用户评论过的(经过采样之后)商品的描述文本 embedding
均值(通过 ParVec
得到)、所有用户评论过的(经过采样之后)商品的图片 embedding
均值(通过 CNN
得到)。因此,用户的内容编码器的 Bi-LSTM
长度为 3
。item embedding
(通过 DeepWalk
得到)、商品描述文本的 embedding
(通过 ParVec
得到)、商品图片的 embedding
(通过 CNN
得到)。因此,商品的内容编码器的 Bi-LSTM
长度为 3
。baseline
方法:我们使用5
个 baseline
,包括异质图 embedding
模型、属性网络模型、图神经网络模型。
metapath2vec: MP2V
:一个异质图 embedding
模型,它基于 metapath
指导的随机游走来生成随机游走序列,并通过 SkipGram
模型来学习node embedding
。ASNE
:一种属性网络 embedding
方法,它使用节点的潜在特征和属性来学习node embedding
。SHNE
:一种属性网络 embedding
方法,它通过联合优化图结构邻近性和文本语义相似性,从而学习文本相关的异质图的node embedding
。GraphSAGE
:一个图神经网络模型,它聚合了邻居的特征信息。GAT
:一个图注意力网络模型,它通过 self-attention
机制来聚合邻居的特征信息。HetGNN
的参数配置:
embedding
维度为 128
。
邻域采样规模:
23
,其中作者节点选择 top-10
、论文节点选择 top-10
、会议节点选择 top-3
。20
,其中用户节点选择 top-10
、商品节点选择 top-10
。对于 RWR
,我们选择返回概率 RWR
序列长度为 100
(即
在获取三元组集合 10
,每条随机游走序列长度为 30
,上下文窗口大小为 5
。
我们使用 Pytorch
来实现 HetGNN
,并在 GPU
上进行实验。
baseline
参数配置:
为公平起见,所有 baseline
的维度设为 128
。
对于 metapath2vec
,对于学术网络我们使用三个 metapath
:APA(author-paper-author)
、 APVPA(author-paper-venue-paper-author)
、APPA(author-paper-paper-author)
;对于评论网络我们使用一个 metapath
:UIU(user-item-user)
。
每个节点开始的随机游走序列数量为 10
,每条随机游走序列的长度为 30
,这和 HetGNN
保持一致。
对于 ASNE
,除了 latent
特征之外,我们使用 HetGNN
相同的内容特征,然后将它们拼接为一个通用的属性特征。
对于 SHNE
,对于两个数据集我们分别利用论文摘要和商品描述(文本序列 = 100
)作为 deep semantic
编码器(如 LSTM
)的输入。此外,随机游走序列的配置和 metapath2vec
相同。
对于 GraphSAGE
和 GAT
,我们使用HetGNN
相同的内容特征作为输入特征(拼接为一个通用的属性特征),并将每个节点的采样邻居数量设为和 HetGNN
相同。
之前的做法是:随机采样一部分链接进行训练,然后使用剩余链接用于预测。我们认为应该根据时间顺序来拆分训练集和测试集,而不是随机拆分。
对于学术图,我们令
对于 A-I
数据集,我们考虑两种拆分情况:A-II
数据集,我们也考虑两种拆分情况:
另外,对于学术图我们仅考虑两种类型的边:作者之间的共同撰写关系(type-1
)、作者和论文之间的引用关系(type-2
)。
对于评论图,我们按顺序拆分。对于 R-I
数据集,根据边的数量拆分比例为 7:3
,对于 R-II
数据集,根据边的数量拆分比例为 5:5
。
对于测试集:
我们使用所有节点 + 训练集的边来学习node embedding
,然后使用训练集的链接来训练逻辑回归分类器。逻辑回归分类器的输入为边的 embedding
,每条边的 embedding
是两端node embedding
的逐元素乘积。
最后,我们使用训练好的分类器来评估测试集,评估指标为 AUC
和 F1-Score
。
链接预测结果见下表所示,其中最佳结果以粗体突出显示。
结论:
baseline
是属性图 embedding
方法或图神经网络方法,这表明融合节点属性或使用深度神经网络能产生更好的node embedding
,从而有利于链接预测。HetGNN
均优于所有 baseline
方法。这证明了HetGNN
是有效的,它产生了针对链接预测任务更有效的node embedding
。我们在学术图中评估顶会推荐 (author-venue
链接) 的表现。具体而言,训练数据用于学习node embedding
。推荐的ground-truth
为:给定测试集中的顶会,作者在测试数据集中出现(发表过论文)。
和链接预测任务相同,对于 A-I
数据集,我们考虑两种拆分情况:A-II
数据集,我们也考虑两种拆分情况:
我们采用两个节点的 embedding
内积作为推荐分,并挑选 top-k
推荐分的作者作为推荐列表。对于A-I
数据集,k=5
;对于 A-II
数据集, k=3
。
推荐的评估指标为 top-k
推荐列表的 Recall(Rec), Precision(Pre), F1-Score
,最终我们给出所有作者的均值作为报告得分。此外,重复的 author-venue pair
将从评估中删除。
个性化推荐结果见下表所示,其中最佳结果以粗体突出显示。
结论:
baseline
是属性图 embedding
方法或图神经网络方法,这表明融合节点属性或使用深度神经网络能产生更好的node embedding
,从而有利于个性化推荐。HetGNN
均优于所有 baseline
方法。这证明了HetGNN
是有效的,它产生了针对个性化推荐任务更有效的node embedding
。类似 metapath2vec
,我们将 A-II
数据集中的作者分类到四个选定的研究领域:数据挖掘 data mining:DM
、计算机视觉computer vision:CV
、自然语言处理natural language processing:NLP
、数据库 databse:DB
。
具体而言,我们为每个领域选择三个热门会议,每个作者标记为他/她大部分论文所属的领域。如果在这些会议中未发表论文的作者将被剔除评估。如果作者在这些会议的多个领域发表过论文,则作者为多个标签。因此这是一个多标签节点分类问题。
我们从完整数据集中学习node embedding
,然后将学到的node embedding
来作为逻辑回归分类器的输入。我们将带标记的节点随机拆分,训练集的大小从 10%~30%
,剩余节点作为测试集。评估指标为测试集的 Micro-F1
和 Macro-F1
。
对于节点聚类任务,我们将学到的node embedding
作为聚类模型的输入。这里我们采用 Kmeans
算法作为聚类算法,然后采用 NMI
和 ARI
作为评估指标。
下表给出了所有方法的评估结果,最佳结果以粗体突出显示。
结论:
Macro-F1
和 Micro-F1
指标。这是因为这四个选定领域的作者彼此完全不同,分类相对容易。HetGNN
在多标签分类和节点聚类方面仍然达到了最佳性能或者可比的性能。这证明了HetGNN
是有效的,它产生了针对节点分类和聚类任务更有效的node embedding
。此外,我们还通过 tensorflow embedding projector
来可视化四个领域作者的 embedding
。我们随机采样了 100
位作者,如下图所示分别位 2D
可视化和 3D
可视化。
可以看到:同类别作者的 embedding
紧密地聚集在一起,从而证明了学到的node embedding
的有效性。
该任务的配置和之前的节点分类&聚类任务类似,不同之处在于:我们对 A-II
数据集进行按年份拆分,拆分年份为 2013
,然后将 2013
年以及之前的数据作为训练集、之后的数据作为测试集。
我们用训练集中的数据来训练模型并得到训练集中节点的 embedding
,然后用训练好的模型来推断测试集中新节点的 embedding
。最后我们使用推断的新node embedding
来作为分类和聚类模型的输入。
注:逻辑回归分类器使用训练集中的节点来训练。
下表给出了inductive
节点分类和聚类任务的结果,其中最佳结果以粗体显示。
结论:
大多数模型在inductive
多标签分类任务中表现良好,并得到较高的 Macro-F1
和 Micro-F1
指标。这是因为这四个选定领域的作者彼此完全不同,分类相对容易。
尽管如此,HetGNN
在 inductive
多标签分类任务中仍然达到了最佳性能或者可比的性能
HetGNN
在inductive
节点聚类任务中优于所有其它方法。
结果表明HetGNN
模型可以有效地推断新节点的 embedding
。
我们考察了HetGNN
模型的几种变体:
No-Neigh
:直接使用异质内容编码来表示每个节点的 embedding
,不考虑邻居信息。即:
Content-FC
:使用全连接层来作为异质内容编码器,从而代替 Bi-LSTM
。
Type-FC
:使用全连接层来融合不同邻居类型的 embedding
,而不是 BiLSTM + attention
。
下图报告了 A-II
数据集(训练集--测试集拆分年份 2013
)上链接预测和节点推荐的结果。
结论:
HetGNN
性能优于 No-Neigh
,这表明聚合邻域信息对于生成更好的node embedding
是有效的。HetGNN
优于 Content-FC
,这表明基于 Bi-LSTM
的内容编码要比浅层编码器(如全连接层)要更好,Bi-LSTM
可以捕获深度的内容特征交互。HetGNN
优于 Type-FC
,这表明在捕获节点类型的影响方面,基于 attention
机制要优于全连接层。我们考察 HetGNN
链接预测和推荐的性能随 embedding
维度 A-II
训练集上评估,训练集--测试集拆分年份位 2013
。当固定采样邻居规模(设为 23
),我们选择不同的
结论:当 8
增加到 256
时,所有指标都会增加,因为学到了更好的 embedding
。但是
我们考察 HetGNN
链接预测和推荐的性能随样本邻域大小的影响。我们在 A-II
训练集上评估,训练集--测试集拆分年份为 2013
。当固定 embedding
维度 top
xxxxxxxxxx
6 = 2 (author) + 2 (paper) + 2 (venue)
12= 5 (author) + 5 (paper) + 2 (venue)
17 = 7 (author) + 7 (paper) + 3(venue)
23 = 10 (author) + 10 (paper) + 3 (venue)
28 = 12 (author) + 12 (paper) + 4 (venue)
34 = 15 (author) + 15 (paper) + 4 (venue)
结论:当邻域大小从 6
增加到 34
时,所有指标都会增加,这是因为考虑了更多的邻域信息。但是当邻域规模超过某个值时,性能可能会缓缓降低,这可能是因为涉及到不相关的(噪音)邻居导致。最佳邻域大小为 20 ~ 30
。
异质图通常用于对复杂系统进行抽象和建模,图中包含不同类型的对象、不同类型的链接。如,Open Academic Graph:OAG
数据中包含五种类型的节点:论文 Paper
、作者 Author
、机构 Institution
、会议 Venue
、领域 Field
,以及它们之间各种不同类型的关系,如下图所示。
关于异质图挖掘已有大量的研究。一种经典的范式 paradigm
是定义和使用 metapath
元路径来建模异质图,例如 PathSim
和 metapath2vec
。最近,鉴于图神经网络 GNN
的成功,有几种方法尝试采用 GNN
来学习异质图。然而,这类工作面临以下几个问题:
metapath
设计需要特定的领域知识。representation space
,要么假设不同类型的节点/边都有各自的特征和representation space
。这两种极端使得它们都不足以捕获异质图的属性。web-scale
异质图。以 OAG
为例:
OAG
中的节点和边可能有不同的特征分布,例如 paper
节点有文本特征,而 institution
节点可能有附属学者的特征,作者之间的co-authorship
关系明显不同于论文之间的 citation
关系。OAG
一直在不断演变,例如,出版物的数量每隔 12
年翻一番,KDD
会议在 1990
年更多地与数据库相关而近年来更多地与机器学习相关。OAG
包含数亿个节点和数十亿个关系,这使得现有的异质 GNN
无法扩展以处理它。为了解决上述问题,论文 《Heterogeneous Graph Transformer》
提出了建模 web-scale
异质图的 Heterogeneous Graph Transformer:HGT
架构,目标是:维护 node-type dependent representation
和 edge-type dependent representation
、捕获网络动态、避免自定义metapath
、以及能够扩展到 web-scale
的图。
为了处理图的异质性,HGT
引入了节点类型依赖的attention
机制 node-type dependent attention
、边类型依赖的 attention
机制 edge-type dependent attention
。HGT
并未参数化每种类型的边,而是通过每条边 HGT
的异质互注意力 heterogeneous mutual attention
。这个关系三元组为<node type of s, edge type of e between s&t , node type of t >
。
HGT
使用这些元关系来对权重矩阵进行参数化,从而计算每条边上的注意力。这样允许不同类型的节点、边保持其特有的representation space
,同时不同类型的、相连的节点仍然可以交互、传递、聚合消息,不受它们类型不同的影响。
由于 HGT
架构的性质,HGT
可以通过跨层信息传递来聚合来自不同类型高阶邻居的信息,这些信息可以被视为 soft metapath
。换句话讲,HGT
仅使用其 one-hop
边作为输入,无需手动设计 metapath
,最终提出的注意力机制也可以自动隐式地学习和提取针对不同下游任务很重要的 metapath
。
为解决动态图的问题,HGT
提出了相对时间编码 relative temporal encoding:RTE
策略来增强 HGT
。
HGT
建议不要把输入图划分为不同的时间戳,而是建议将在不同时间发生的所有边作为一个整体来维护,并设计 RTE
策略来建模任意时间区间(甚至是未知的和未来的)的时间依赖性 temporal dependency
。通过端到端的训练,RTE
使 HGT
能够自动学习异质图的时间依赖和演变。
为处理 web-scale
规模的图数据,HGT
设计了用于 mini-batch
图训练的首个异质子图采样算法 HGSampling
。其主要思想是对异质子图进行采样,在采样到的子图中不同类型的节点具有相似的比例。因为如果直接使用现有的同质图采样算法,如 GraphSage/FastGCN/LADIES
,会导致采样子图的节点类型、边类型高度不平衡。此外,HGSampling
还被设计为使得采样子图保持稠密,从而最大程度地减少信息丢失。
通过 HGSampling
,所有的 GNN
模型包括论文提出的 HGT
,都可以在任意大小的异质图上进行训练和推断。
论文在 web-scale
的 OAG
数据集上实验了 HGT
的有效性和效率,该数据集由 1.79
亿个节点、20
亿条边组成,时间跨度 1900 ~ 2019
年,是迄今为止规模最大、时间跨度最长的异质图数据集。
实验结果表明:和state-of-the-art
的 GNN
以及异质图模型相比,HGT
可以显著改善各种下游任务,效果提高 9% ~ 21%
。进一步研究表明,HGT
确实能够自动捕获隐式 metapath
针对不同任务的重要性。
异质图定义:定义异质图
元关系meta relation
定义:对于每条边 meta relation
为三元组 inverse relation
。经典的metapath
范式被定义为这种元关系的序列。
注意:为更好地建模真实世界的异质网络,我们假设不同类型的节点之间可能存在多种类型的关系。如 OAG
中,通过考虑作者顺序(如“第一作者”、“第二作者”等),作者类型节点和论文类型节点之间存在不同类型的关系。
动态异质图:为建模真实世界异质图的动态特性,我们为每条边
WWW
可以分配任何时间戳。WWW@1994
意味着我们正在考虑第一版 WWW
,它更多地关注互联网协议和 web
基础设施;而 WWW@2020
意味着即将到来的 WWW
,其研究主题将扩展到社交分析、普适计算ubiquitous computing
、搜索和信息检索、隐私等等。在挖掘异质图方面已经有了重要的研究方向,例如节点分类、节点聚类、节点排序、以及 node representation learning
,然而异质图的动态视角尚未得到广泛的探索和研究。
GNN
可以视为基于输入图结构的消息传递,它通过聚合局部邻域信息来获得节点的 representation
。
假设节点 GNN
第 representation
为 GNN
的 node representation
更新方程为:
其中:
GNN
有两个基本的算子:
Extract(.)
算子:邻域信息抽取器 extractor
。它使用 target
节点 representation
query
,并从 source
节点 representation
Agg(.)
算子:邻域信息聚合器 aggregator
。它用于聚合target
节点 mean, sum, max
等函数作为聚合函数,也可以设计更复杂的聚合函数。此外,还有很多将注意力机制集成到 GNN
的方法。通常,基于注意力的模型通过估计每个 source
节点的重要性来实现 Extract(.)
算子,并在此基础上应用加权聚合。
在上述 GNN
通用框架之后,人们已经提出了各种GNN
架构(同质的):
《Semi-Supervised Classification with Graph Convolutional Networks》
提出了图卷积网络 graph convolutional network: GCN
,它对图中每个节点的一阶邻域进行均值池化,然后进行线性投影和非线性激活操作。《Inductive Representation Learning on Large Graphs》
提出了 GraphSAGE
,将 GCN
的聚合操作从均值池化推广到 sum
池化、最大池化、以及 RNN
。《Graph Attention Networks》
通过将注意力机制引入 GNN
从而提出了 graph attention network: GAT
。这种注意力机制允许 GAT
为同一个邻域内的不同节点分配不同的重要性。最近,一些工作试图扩展 GNN
从而建模异质图。
《Modeling Relational Data with Graph Convolutional Networks》
提出了relational graph convolutional network: RGCN
来建模知识图谱。RGCN
为每种类型的边保留不同的线性投影权重。《Heterogeneous Graph Neural Network》
提出了 heterogeneous graph neural network: HetGNN
,它针对不同的节点类型采用不同的 RNN
来融合多模态特征。《Heterogeneous Graph Attention Network》
基于注意力机制为不同的 metapath-based
边保留不同的权重,同时对不同的 metapath
也保留不同的权重。尽管实验上看这些方法都比普通的 GCN
或 GAT
要好,但是它们对不同类型的节点或不同类型的边采用不同的权重矩阵,从而没有充分利用异质图的特性。因为不同类型的节点/边的数量可能差异很大,对于出现次数不多的边,很难准确地学到合适的 relation-specific
权重。
为解决这个问题,我们提出了参数共享从而实现更好的泛化,这类似于推荐系统中的 FM
思想。具体而言,给定一条边 meta relation
为
例如,在 “第一作者”关系 和 “第二作者”关系中,它们的源节点类型都是作者、目标节点类型都是论文。换句话讲,从一种关系中学到的有关作者和论文的知识可以迅速地迁移并适应于另一种关系。因此,我们将该思想和功能强大的、类似于 Transformer
注意力体系结构相结合,这就是 Heterogeneous Graph Transformer: HGT
。
综上所述,HGT
和现有异质图建模方法的主要区别在于:
HGT
使用相同的甚至更少的参数来同时捕获不同模型之间的通用模式common pattern
以及特定模式specific pattern
。metapath-based
方法不同,我们依赖于神经网络体系结构本身来融合高阶异质邻域信息,从而自动学习隐式的metapath
的重要性。RTE
技术,从而在有限的计算资源内融合了时间信息。GNN
都不是为了 web-scale
图数据而设计的,也没有在 web-scale
图上进行实验。我们提出了为 web-scale
的图训练设计的 mini-batch
异质子图采样算法,可以在十亿规模的 Open Academic Graph
上进行实验。HGT
的核心思想是:使用元关系来参数化权重矩阵,从而实现异质互注意力 heterogeneous mutual attention
、消息传递 message passing
、传播 propagation
。另外,为进一步融合网络的动态性,我们在模型中引入相对时间编码机制。
下图给出了 HGT
的总体架构。给定一个采样的异质子图sampled heterogeneous sub-graph
,HGT
提取所有相连的节点 pair
对,其中目标节点 HGT
的目标是聚合来自于源节点的信息,从而获得目标节点 contextualized representation
。这样的过程可以分解为三个部分:元关系感知的异质互注意力 meta relation-aware heterogeneous mutual attention
、从源节点发出的异质消息传递 heterogeneous message passing from source nodes
、特定于目标的异质消息聚合 target-specific heterogeneous message aggregation
。
我们将第 HGT
层的输出记作 HGT
层的输入。通过堆叠 representation
为
下图中, HGT
使用边
HGT
遵循GAT
的attention
机制,但是HGT
在计算query, key, value
时考虑了节点和边的异质性。此外,在计算节点的representation
时考虑了相对时间编码(类似于相对位置编码)。
HGT
的第一步是计算源节点 GNN
为:
其中有三个基础算子:
Attention
算子:评估每个源节点 Message
算子:抽取源节点 Agg
算子:利用注意力权重来聚合邻域的消息。例如,GAT
采用一种加性机制 additive mechanism
来作为Attention
算子,采用共享的权重矩阵来计算每个节点的消息,采用简单的均值然后接一个非线性激活函数来作为 Agg
算子。即:
其中:
attention vector
。尽管 GAT
可以有效地给更重要的节点以更高的注意力,但是它假设节点
有鉴于此,我们设计了异质互注意力机制。给定一个目标节点
受到 Transformer
体系结构设计的启发,我们将目标节点 Query
向量,将源节点 Key
向量,然后计算它们内积作为 attention
。但是和 Transformer
的区别在于:常规的 Transformer
对所有单词都使用同一组映射矩阵,但是在HGT
中每种元关系都有它们自己的一组映射矩阵。
为最大程度地共享参数,同时保持不同关系的各自特性,我们将元关系的权重矩阵参数化为源节点投影矩阵、边投影矩阵、目标节点投影矩阵。具体而言,对于 attention
为:
其中:
attention head
中的 query
向量,它是类型为
attention head
中的 key
向量,它是类型为
attention head
中,query
向量 key
向量
异质图的一个特点是:在一对节点之间可能存在多种不同类型的边。因此,和常规的 Transformer
将 query
向量和 key
向量直接内积不同,HGT
考虑对每种边类型 edge-based
矩阵
此外,由于并非所有关系均对目标节点做出相同的共享,因此我们采用了一个先验张量 prior tensor
最后,我们将 attention head
拼接起来,从而获得每对节点 pair
对的 attention
向量。然后对于每个目标节点 softmax
,使其满足:
即:对于目标节点 head
邻域内的注意力之后为 1
:
和注意力计算过程类似,我们希望将边的元关系融合到消息传递过程中,从而缓解不同类型节点和不同类型边的分布差异。
对于边 multi-head
消息为:
其中:
message head
,它先将类型为
这里的
和 用于区分不同的边类型,并且可以支持多重边。
然后,我们拼接所有的 message head
从而为每条边得到
计算 multi-head
注意力过程和计算 multi-head
消息过程,二者之间可以并行进行。
在计算出异质 multi-head
注意力、异质 multi-head
消息之后,我们需要将它们从源节点聚合到目标节点。
我们可以简单地使用每个 head
的注意力向量作为权重,从而加权平均对应 head
每个源节点的消息。因此聚合过程为:
这将信息从不同类型的所有邻居(源节点)的信息聚合到目标节点
最后一步是将目标节点 representation
向量映射回其特定类型。为此,我们采用一个线性投影
这样我们就获得了目标节点
因为前面将邻域节点信息 映射到公共空间,那么现在需要将公共空间映射回目标节点的特定类型空间。
由于真实世界的图具有 small-world
属性,因此堆叠 HGT
层(HGT
为每个节点生成高度上下文相关的表示
在 HGT
的整个体系结构中,我们高度依赖使用元关系
和常规的 Transformer
相比,我们的模型区分了不同的节点类型和不同的关系类型,因此能够处理异质图中的分布差异。
和为每种元关系保留独立的权重矩阵的现有方法相比,HGT
的三元组参数化可以更好地利用异质图的 schema
来实现参数共享。
这里我们介绍用于 HGT
的相对时间编码 RTE
技术来处理动态图。
传统的融合时间信息的方法是为每个时间片 time slot
构建一个独立的图,但是这种方式可能丢失跨不同时间片的结构相关性。同时,节点在时刻 representation
可能依赖于其它时刻发生的连接。因此,对动态图进行建模的一种正确方式是:维持在不同时刻发生的所有边,并允许具有不同时间戳的节点和边彼此交互。
有鉴于此,HGT
提出了相对时间编码 RTE
机制来建模异质图中的动态依赖性 dynamic dependency
。RTE
的灵感来自于 Tansformer
中的位置编码方法,该方法已成功地捕获了长文本中单词的顺序依赖性 sequential dependency
。
具体而言,给定源节点
注意:训练数据集可能没有覆盖所有可能的时间间隔,因此 RTE
应该能够泛化到未看到的时间和时间间隔。因此我们使用一组固定的正弦函数作为 basis
,并使用一个可训练的线性映射 RTE
:
最终,针对目标节点 representation
中:
该过程发生在每个
step
的信息聚合之前。
通过这种方式,融合时间的representation
RTE
的详细过程如下图所示:
目前为止我们为每个节点 plain
节点。如:论文数据集中,WWW
会议在 1974
年和 2019
年都举行,但是这两年的研究主题截然不同。因此我们需要决定将哪个时间戳添加到 WWW
节点。
与 plain
节点相反,异质图中存在一些 event
节点,它存在唯一的、固定的时间戳。如:论文数据集中,论文节点和该论文发表时间明确相关。
为此,我们提出了一种 inductive
时间戳分配算法,它对 plain
节点基于该plain
节点相连的 event
节点来分配时间戳。基本思想是:plain
节点从 event
节点中继承时间戳。我们检查节点是否为 event
节点:
如果节点是 event
节点,如特定年份发表的论文节点,则我们保留该 event
节点的时间戳从而捕获时间依赖性temporal dependency
。
如果节点不是 event
节点,则可以像作者节点一样关联多个时间戳,我们将相连节点的时间戳分配给这个 plain
节点。
如果有多个时间戳,那么怎么计算
?根据下面提到的算法过程,是通过子图采样算法来自动分配的,这个时间戳的分配具有一定的随机性。
这样我们可以在子图采样过程中自适应地分配时间戳。
full-batch
的 GNN
训练要求计算每层所有节点的 representation
,这使得它无法扩展到 web-scale
图。为解决这些问题,已有各种基于采样的方法在一个节点子集上训练 GNN
。但是这些方法无法直接应用到异质图,因为在异质图中每种类型节点的 degree
分布和节点总数可能差异非常大,所以这些采样方法直接应用到异质图中可能得到节点类型极为不平衡的子图。
为解决该问题,我们提出了一种有效的异质图 mini-batch
采样算法 HGSampling
,使得 HGT
和传统 GNN
都能够处理 web-scale
异质图。其核心是为每种节点类型 importance sampling strategy
来降低方差。
HGSampling
优势:
HGSampling
算法:
输入:
mini-batch
节点集合 输出:最终输出节点集合
算法步骤:
初始化采样节点集合
初始化一个空的预算 degree
。
对
中存放候选的邻域集合以及对应的每个节点的归一化 degree
。
迭代
对
对
其中分子为节点 degree
的平方,分母为 degree
的平方和。
从
对于每个采样到的节点
基于输出节点集合
返回
Add-In-Budget
算法:
输入:
degree
输出:更新后的集合
算法步骤:
对于每种可能的源节点类型
根据 degree
:
其中
这里计算的是目标节点
关于源节点类型 的 degree
,而不是的总 degree
。
对于每个源节点
s.time = t.time
。degree
: 返回更新后的
算法解释:假设节点 Add-In-Budget
算法将其所有一阶邻居添加到对应的 degree
添加到这些邻居上,然后将其应用于计算采样概率。这样的归一化等效于累积每个采样节点到其邻域的随机游走概率,从而避免采样被高阶节点统治。直观地看,该值越高,则候选节点和当前节点之间的相关性越大,因此应该赋予其更高的采样概率。
HGSampling
算法的前几行计算采样概率,通过计算 degree
的平方来计算重要性采样的概率。通过这种采样概率,我们可以降低采样方差。
然后,我们使用计算到的概率对类型为
重复这样的过程
通过使用上述算法,被采样的子图对每个类型包含相似的节点数量,并且足够稠密,且通过归一化的 degree
和重要性采样来降低方差。因此这种方式适用于 web-scale
图上训练 GNN
。
整个采样过程如下图所示:不同颜色表示不同的节点类型。
(0)
:选择初始节点 (1)
:选择 degree
和时间戳(根据 inductive
时间戳分配)。(2)
:对每种类型采样 (3)
:对于新采样的节点 degree
值进行累加。(4)
:对每种类型采样 (5)
:采样结束。
我们在三个异质学术图数据集上评估 HGT
,并分别执行 Paper-Field
预测、Paper-Venue
预测、Author Disambiguation
任务。
数据集:我们使用 Open Academic Graph:OAG
数据集,它包含超过 1.78
亿节点和 22.36
亿条边,这是最大的公开可用的异质学术数据集。此外,OAG
中所有论文关联一个发表日期,该日期从 1900
到 2019
年。
数据集包含五种类型的节点 Paper、Author、Field、Venue、Institute
,其中 OAG
的领域Field
字段一共包含 L0
到 L5
共六个层级,这些层级通过层级树 hierarchical tree
来组织。因此,我们根据领域层级来区分 Paper-Field
边。此外,我们还区分了不同的作者顺序(第一作者、最末作者、其它作者)和会议类型(期刊jornal
、会议 conference
、预印本 preprint
)。最后,self
类型对应于自环连接,这是 GNN
架构中广泛添加的。除了 self
关系是对称的之外,其余所有关系都是不对称的,每种关系 reverse relation
为测试 HGT
的泛化能力,我们还从 OAG
构造了两个特定领域的子图:计算机科学 CS
学术图、医学 Med
学术图。CS
和 Med
图都包含数千万个节点和数亿条边。
所使用的三个数据集比以前 GNN
研究中广泛使用的小型引文网络(Cora,Citeseer,Pubmed
)大得多,后者仅包含数千个节点。
下表给出了数据集的统计信息,其中 P-A
表示“论文 -- 作者”、 P-F
表示 “论文 -- 研究领域”、P-V
表示 “论文 -- 会议”、 A-I
表示 “作者 -- 研究机构”、P-P
表示论文引用。
我们通过四个不同的下游任务来评估 HGT
:Paper -- Field(L1)
预测、Paper -- Field(L2)
预测、Paper -- Venue
预测、Author Disambiguation
。
前三个任务是节点分类任务,目标是分别预测每篇论文的一级领域、二级领域、发表会议。
我们使用不同的 GNN
获取论文的上下文节点 representation
,并使用 softmax
输出层来获取其分类标签。
对于Author Disambiguation
任务,我们选择所有同名的作者及其相关的论文,任务目标是在这些论文和候选作者之间进行链接预测。
从 GNN
获得论文节点和作者节点的 representation
之后,我们使用 Neural Tensor Network
来获得每个 author -- paper
节点对之间存在链接的概率。
对于所有任务,我们使用 2015
年之前发布的论文作为训练集,使用 2015 ~ 2016
年之间的论文作为验证集,使用 2016 ~ 2019
年之间的论文作为测试集。
我们使用 NDCG
和 MRR
这两个广泛应用的 ranking
指标作为评估指标。我们对所有模型进行 5
次训练,并报告测试集性能的均值和标准差。
baseline
方法:我们比较了两类 state-of-the-art
图神经网络,所有baseline
以及我们的 HGT
都通过 PyTorch Geometric(PyG) package
来实现。
同质图 GNN baseline
:
GCN
:简单地对邻域 embedding
取平均,然后跟一个线性映射。我们使用 PyG
提供的实现。GAT
:对邻域节点采用 multi-head additive attention
。我们使用 PyG
提供的实现。异质图 GNN baseline
:
RGCN
:对每种元关系(三元组)保持不同的权重。我们使用 PyG
提供的实现。HetGNN
:对不同的节点类型采用不同的 Bi-LSTM
来聚合邻域信息。我们根据作者提供的官方代码使用 PyG
重新实现。HAN
:通过不同的 metapath
使用分层注意力来聚合邻域信息。我们根据作者提供的官方代码使用 PyG
重新实现。此外,为了系统地分析 HGT
的两个主要部分的有效性,即异质权重参数化 Heterogeneous Weight Parameterization:Heter
、相对时间编码 Relative Temporal Encoding:RTE
,我们进行了消融研究。我们比较了移除这些部分的 HGT
模型性能。具体而言,我们用 -Heter
表示对所有元关系使用相同的权重集合,使用 -RTE
表示没有相对时间编码。考虑所有的排列,我们得到以下模型:
我们使用HGSampling
采样算法应用到所有 baseline GNN
,从而处理大规模的 OAG
数据集。为了避免数据泄露,我们从子图中删除我们目标预测的链接。
输入特征:我们对不同的节点类型采用不同的特征:
XLNet
来获取标题中每个单词的 representation
。然后,我们根据每个单词的注意力对它们进行加权平均,从而得到每篇论文的标题 representation
。representation
取平均。metapath2vec
来训练其node embedding
,从而反映异质网络结构。另外,同质 GNN
假设所有节点都是相同类型的特征。因此,为了进行公平的比较,我们在输入特征和同质GNN
之间添加一个适配层,该层用于对不同类型的节点进行不同的线性映射。可以认为该过程能够将异质特征映射到相同的特征空间。
实现方式:
baseline
,我们在整个神经网络网络中使用隐层维度为 256
。multi-head attention
方法,我们将 head
数量设为 8
。GNN
均为三层(不包括适配层),使得每个网络的感受野完全相同。baseline
方法均通过 Cosine Annealing Learning Rate Scheduler
的 AdamW
优化器优化。200
个 epoch
,然后选择验证损失最小的那个作为评估模型。GNN
文献中默认使用的超参数,并未进行超参数调优。所有模型在所有数据集上的表现如下表所示,其中评估指标为 NGCD, MRR
。结论:
HGT
在所有数据集的所有任务上均显著优于所有 baseline
。总体而言,在所有三个大规模数据集上的四个任务中,HGT
平均优于 GCN, GAT, RGCN, HetGNN, HAN
大约 20%
。
此外, HGT
具有更少的参数、差不多的 batch
时间。这表明 HGT
根据元关系 schema
建模异质边,从而以更少的资源实现更好的泛化
和完整模型
4%
的性能。2%
的性能。这表明了权重参数化、相对时间编码的重要性。
最后我们还尝试了一个 baseline
,它为每个关系类型保留不同的参数矩阵。但是,这样的 baseline
包含太多参数,因此我们的实验设置没有足够的 GPU
内层对其进行优化。
这也表明:使用元关系对权重矩阵进行分解可以在较少的资源条件下获得有竞争力的优势。
为进一步评估相对时间编码 RTE
如何帮助 HGT
捕获图的动态性,我们进行一个案例研究来展示会议主题的演变。我们选择被引用次数最多的 100
个计算机科学会议,为它们分配了三个不同的时间戳 2000、2010、2020
,并构造了由它们初始化的子图。我们使用训练好的 HGT
来获取这些会议的 representation
,然后计算这些会议之间的欧式距离。
我们以 WWW、KDD、NeuraIPS
为例,对于每个会议我们选择其 top 5
最相似的会议,从而显示会议主题随时间的变化。结果如下表所示。结论:
2000
年的 WWW
和某些数据库会议(SIGMOD
和 VLDB
) 以及一些网络会议(NSDI
和 GLOBECOM
) 更相关。但是,除了 SIGMOD, GLOBECOM
之外, 2020
年的 WWW
和某些数据挖掘和信息检索会议(KDD, SIGIR, WSDM
) 更相关。2000
年的 KDD
和传统的数据库和数据挖掘会议更相关,而 2020
年的 KDD
倾向于和多种主题相关,如机器学习(NeurIPS
)、数据库 (SIGMOD
)、Web
(WWW
)、AI
(AAAI
)、NLP
(EMNLP
)。HGT
还能捕获新会议带来的差异。例如 2020
年的 NeurIPS
和 ICLR
(这是一个新的深度学习会议) 相关。该案例研究表明:相对时间编码可以帮助捕获异质学术图的时间演变。
为说明融合的元关系模型如何使得异质消息传递过程受益,我们选择在前两层 HGT
层中具有最高注意力的模式,并在图中绘制元关系注意力层次树。
例如,为计算论文的 representation
,最重要的三个元关系序列为:
这可以分别视为 metapath: PVP, PFP, IAP
。
注意:无需手动设计既可以自动从数据中学到这些 metapath
及其重要性。
右图给出了计算作者 representation
的另一个case
。这些可视化结果表明,HGT
能够隐式地学到为特定下游任务构造的重要的 metapath
,无需手动构建。
图神经网络GNN
的突破彻底改变了图数据挖掘的过程,从图的结构特征工程structural feature engineering
到图的表示学习 representation learning
。最近的 GNN
发展已被证明有利于各种 graph application
和网络任务,例如半监督节点分类、推荐系统、知识图谱推断 knowledge graph inference
。
通常,GNN
将带有属性的图作为输入,并应用卷积滤波器来逐层生成 node-level representation
。通常,对于输入图上的一个任务,GNN
模型以端到端的方式使用监督信息进行训练。即:对于给定图上的任务,需要足够多的标记样本来训练 GNN
模型。通常对于这些任务,尤其是大型图,获取足够多的标记数据的代价很高,有时甚至是不可行的。以学术图 academic graph
中的作者消歧任务为例,迄今为止,该任务仍然面临着缺少 ground-truth
的挑战。
在 NLP
中也遇到类似的问题。NLP
的最新进展通过训练大量的未标记数据,并将学到的模型迁移 transfer
到带少量标记的下游任务来解决该问题,即预训练 pre-training
的思想。如,预训练的 BERT
语言模型通过重构输入文本(next sentence predict
和 masked language predict
)来学习单词的 representation
,因此可以显著提高各种下游任务的性能。此外,计算机视觉也证明了类似的观察结果,即:未标记的数据本身包含丰富的语义知识,捕获数据分布的模型可以迁移到各种下游任务。
受到预训练的启发,论文 《GPT-GNN: Generative Pre-Training of Graph Neural Networks》
提出对图神经网络进行预训练从而进行图数据挖掘。预训练的目的是使得 GNN
能够捕获输入图的结构属性 structural property
和语义属性 semantic property
,以便进行微调fine-tuning
就可以迁移到同一个领域 domain
内的其它的图任务。为实现该目标,GPT-GNN
提出通过学习重建reconstruct
输入的属性图 attributed graph
来对图分布graph distribution
建模。
一种图重建方式是直接采用神经图生成neural graph generation
技术,但是它不适合预训练 GNN
:
underlying pattern
。贡献:在 GPT-GNN
中,作者设计了一种用于 GNN
预训练的自监督属性图生成任务 self-supervised attributed graph generation task
,通过该任务对图结构和节点属性进行建模。基于该任务,作者提出了用于 GNN
的生成式预训练 generative pretraining of graph neural network: GPT-GNN
框架 (如下图所示)。然后可以将输入图上的预训练 GNN
用作同一类型的图上不同下游任务的 GNN
模型的初始化。具体而言,论文的贡献如下:
attributed graph generation task
来建模节点属性和图结构。作者将图生成目标分解为两个部分:属性生成attribute generation
,边生成 edge generation
,它们的联合优化相当于最大化整个属性图的概率似然。通过这种做法,模型可以在生成过程中捕获节点属性和图结构之间的固有依赖性 inherent dependency
。GPT-GNN
来对上述任务进行生成式的预训练 generative pre-training
。GPT-GNN
可以同时计算每个节点的属性生成损失和边生成损失,因此只需要为图运行一次 GNN
。此外,GPT-GNN
可以通过子图采样处理大型图,并通过自适应 embedding queue
来缓解负采样带来的 inaccurate loss
。GNN
:1.79
亿节点和 20
亿边的 Open Academic Graph: OAG
、1.13
亿节点的 Amazon
推荐数据。大量实验表明:GPT-GNN
预训练框架可以显著地有利于各种下游任务。例如,通过在 OAG
上应用预训练模型,节点分类和链接预测任务的性能比没有预训练的 state-of-the-art GNN
平均可达 9.1%
。此外,作者表明:GPT-GNN
可以在各种 setting
下持续提高不同的 base GNN
的性能。commonality
。最近,预训练在提高计算机视觉和自然语言处理中许多下游 application
的性能方面显示出优势。GNN
可以视为基于输入图结构的消息传递,它通过聚合局部邻域信息来获得节点的 representation
。
假设节点 GNN
第 representation
为 GNN
的节点 representation
更新方程为:
其中:
GNN
有两个基本的算子:
Extract(.)
算子:邻域信息抽取器 extractor
。它使用 target
节点 representation
query
,并从 source
节点 representation
Agg(.)
算子:邻域信息聚合器 aggregator
。它用于聚合target
节点 mean, sum, max
等函数作为聚合函数,也可以设计更复杂的聚合函数。在这个框架下,人们已经提出了各种GNN
架构:
《Semi-Supervised Classification with Graph Convolutional Networks》
提出了图卷积网络 graph convolutional network: GCN
,它对图中每个节点的一阶邻域进行均值池化,然后进行线性投影和非线性激活操作。《Inductive Representation Learning on Large Graphs》
提出了 GraphSAGE
,将 GCN
的聚合操作从均值池化推广到 sum
池化、最大池化、以及 RNN
。此外,还有很多将注意力机制集成到 GNN
的方法。通常,基于注意力的模型通过估计每个 source
节点的重要性来实现 Extract(.)
算子,并在此基础上应用加权聚合。例如:
《Graph Attention Networks》
提出了 GAT
,它采用加性的注意力机制 additive mechanism
来计算注意力。《Heterogeneous Graph Transformer》
提出了 heterogeneous graph transformer: HGT
,它利用针对不同关系类型的 multi-head attention
来获得 type-dependent
注意力。我们提出的预训练框架 GPT-GNN
可以适用于所有这些 GNN
模型(包括 GCN, GraphSAGE, GAT, HGT
)。
已有一些研究提出利用预训练来学习节点的 representation
,其中主要分为两类:
第一类通常称作 graph embedding
,它直接参数化node embedding
向量,并通过保持某些相似性度量来优化 embedding
向量,如网络邻近性network proximity
(《Line: Large-scale information network embedding》
)或者随机游走得到的统计数据(metapath2vec, node2vec, 《Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec》
)。
但是,这种方式学到的 embedding
无法用于初始化其它模型从而微调其它任务(因为 embedding
模型是 transductive
的)。相反,我们需要考虑一种迁移学习方式,其目标是预训练一个适用于各种下游任务的通用的 GNN
。
第二类通过直接在未标注数据上预训练 GNN
。例如:
《Variational Graph Auto-Encoders》
提出变分图自编码器来重建图结构。《Inductive Representation Learning on Large Graphs》
提出 GraphSAGE
从而使用基于随机游走的相似性度量来优化无监督损失。《Deep Graph Infomax》
引入 Graph Infomax
,它最大化从 GNN
获得的 node representation
和一个池化的 graph representation
之间的互信息。尽管这些方法显示了对纯监督学习 purely-supervised learning
的增强enhancement
,但是这些方法迫使相近的节点具有相似的 embedding
,从而忽略了图中丰富的语义和高阶结构 higher-order structure
。我们的方法通过提出排列式的生成式目标 permutated generative objective
来预训练 GNN
,这是一项更难的图任务,因此可以指导模型学到输入图的更复杂的语义和结构信息。
另外,还有一些工作尝试预训练 GNN
来抽取 graph-level representation
。
《InfoGraph:Unsupervised and Semi-supervised Graph-Level Representation Learning via Mutual Information Maximization》
提出了 InfoGraph
,它最大化了从 GNN
获得的 graph-level representation
与子结构 representation
之间的互信息。《Strategies for Pre-training Graph Neural Networks》
引入了在 node-level
和 graph-level
预训练 GNN
的不同策略,并表明将它们组合在一起可以提高图分类任务的性能。我们的工作与他们不同,因为我们的目标是在单个大型图上预训练 GNN
并进行 node-level
迁移学习 。
预训练已广泛用于计算机视觉和自然语言处理。
在计算机视觉中,早期的预训练技术(《Decaf: A deep convolutional activation feature for generic visual recognition》
、《Rich feature hierarchies for accurate object detection and semantic segmentation》
、《Context Encoders: Feature Learning by Inpainting》
)大多遵循首先在大型监督数据集(如 ImageNet
)上预训练模型,然后在下游任务上微调预训练的模型,或者直接利用预训练的模型抽取样本的 representation
作为特征。
最近,一些自监督任务(《A Simple Framework for Contrastive Learning of Visual Representations》
、《Momentum contrast for unsupervised visual representation learning》
、《Representation Learning with Contrastive Predictive Coding》
)也被用于预训练视觉模型。
在自然语言处理中,早期的工作一直聚焦于利用文本语料库的共现来学习 word embedding
(《Distributed representations of words and phrases and their compositionality》
、《Glove:Global vectors for word representation》
)。
最近,人们在 contextualized word embedding
方面取得了重大进展,如 BERT, XLNET, GPT
。以 BERT
为例,它通过两个自监督任务来预训练一个文本编码器,以便更好地对 word
和 context
进行编码。这些预训练方法已被证明可以在广泛的自然语言处理任务中产生 state-of-the-art
性能,因此被用作许多 NLP
系统的基础组件。
给定属性图
GNN
模型在特定下游任务(如节点分类)的监督下学习输出 node representation
。有时候在单个图上存在多个任务,并且对于每个任务,大多数 GNN
需要提供足够多的标记数据。然而,获得足够多的标记数据通常具有挑战性,特别是对于大型图,这阻碍了GNN
的训练。因此,需要一个预训练的 GNN
模型,该模型可以通过很少的标签来进行泛化。从概念上讲,该预训练的模型应该:捕获图背后的固有结构 intrinsic structure
和属性模式attribute pattern
,从而使得该图上的各种下有任务受益。
GNN
预训练的目标是学到一个通用的 GNN
模型 GNN
模型?
NLP
和 CV
自监督学习的最新进展表明,未标记数据本身包含丰富的语义知识,因此可以捕获数据分布的模型能够迁移到各种下游任务。受此启发,我们提出了 GPT-GNN
,它通过重建/生成 input graph
的结构和属性来预训练 GNN
。
形式上,给定属性图 GNN
模型 GNN
模型 likelihood
建模为 GPT-GNN
目标是最大化图的似然来预训练 GNN
模型,即:
第一个问题是:如何建模图的似然 auto-regressive manner
来分解概率目标,即:图中的节点按照顺序依次访问,并通过将每个新的节点连接到现有节点来生成边。
类似地,我们使用排列向量 permutation vector
其中:
为简单起见,我们假设任何节点顺序
给定一个排列顺序,我们可以自回归地分解对数似然:
其中:
因此,这个对数似然给出了属性图的自回归生成过程autoregressive
generative process
。
该模型是一个节点一个节点地生成,因此是生成式模型。
本质上,上述公式描述了属性图的自回归生成过程autoregressive generative process
。现在的问题是如何建模条件概率
一种朴素的想法是假设
这种分解完全忽略了节点的属性和它的边之间的依赖关系。但是,这种依赖关系恰好是属性图的核心特性,也是 GNN
中卷积聚合的基础。因此,这种朴素的分解无法应用于预训练 GNN
。
为解决该问题,我们为属性图生成过程提出依赖感知 dependency-aware
的因子分解机制。具体而言:
在这个过程中,一部分边已经被观察到,然后属性图生成过程分解为两个耦合的部分:
这样,模型可以捕获到每个节点的属性和图结构之间的依赖关系。
我们定义变量 mask
的边的索引组成的向量,因此
这种分解设计能够建模节点
第一项
第二项
注意这里是
而第一项是 。
我们以一个学术图为例来阐述上述分解的工作原理。假设我们希望生成一个论文节点,节点属性为论文标题,节点的边为论文及其作者、论文及其发表会议、论文及其引用论文。
通过这种方式,该生成过程可以对论文的属性(论文标题)和结构(观测到的边和剩余边)之间的相互作用进行建模。
能不能先进行边的生成然后再进行节点属性的生成?可以通过实验来说明。
目前为止,我们将属性图的生成过程分解为节点属性生成 node attribute generation
和边生成 edge generation
两步。一个新的问题是:如何通过同时优化属性生成和边生成来有效预训练 GNN
?
为提高效率,我们希望通过仅对输入图运行一次 GNN
来计算属性生成损失和边生成损失。另外,我们希望同时进行属性生成和边生成。但是,由于边生成过程需要将节点属性作为输入,这可能会泄露信息给属性生成过程。为避免信息泄露,我们将每个节点同时加入到两个类别:
属性生成节点Attribute Generation Nodes
:对于该集合中的节点,我们使用 dummy token
来代替它们的节点属性,从而掩盖节点属性,并学习一个共享的输入向量 dummy token
。这等价于在 masked language model
中使用 [Mask] token
技巧。
边生成节点 Edge Generation Nodes
:对于该集合中的节点,我们保留其属性并将节点属性作为输入。
我们修改输入图,将每个节点分裂为两个节点:一个为属性生成节点,另一个为边生成节点(它们之间不存在边)。
我们将修改后的图输入到 GNN
模型中并得到节点的 embedding
,我们分别用 embedding
。由于属性生成节点的属性被遮盖,因此 GNN
消息传递时,我们仅使用边生成节点的来向外传递消息。
和 需要通过 GNN
模型计算得到(运行一次GNN
前向传播)。有两个细节需要注意:
- 根据
移除了所有从高编号到低编号的边,这意味着每个节点只能从低编号节点接收消息。这样,它们就不会将信息泄露给自回归生成的目标函数。 - 如何在
GNN
中运行一次而为每个节点生成两个embedding
?论文未给出细节。理论上讲,GNN
的前向传播仅能得到每个节点的单个embedding
。还有一个问题:如果使用
来传递消息,那么是否可能存在信息泄露?假设节点 和节点 之间相互连接且不与其它节点连接,则在属性生成过程中,我们有: 可以看到:节点
的属性信息通过 进入了 ,并进一步进入了 ,因此发生了信息泄露。但是,由于每个节点只能从低编号节点接收消息,因此两条边 和 并不能同时存在,因此这种信息泄露的方式不存在。
然后,我们使用这两组节点的 embedding
通过不同的解码器来生成属性和边。
属性生成:对于属性生成,我们将解码器记作
解码器类型依赖于属性的类型:
LSTM
)来生成属性文本。然后我们将距离函数定义为生成的属性和真实属性之间的度量,如文本属性的度量为困惑度perplexity
、属性向量的度量为向量的 L2
距离。因此,我们定义属性生成损失为:
最小化生成的属性和被遮盖的属性之间的距离,等价于最大化每个观测节点的属性的似然,即
边生成:对于边生成,我们假设每条边的生成相互独立,则有:
其中
然后在得到边生成节点的 embedding
我们采用负对比估计 negative contrastive estimation
来计算节点 contrastive loss
为:
最小化
下图给出了属性图的生成过程。具体而言:
图 (a)
:确定输入图的节点排序
图 (b)
:随机选择目标节点的一部分边作为观测边
图 (c) - (e)
:
3,4,5
的 embedding
,包括它们的属性生成 embedding
和边生成 embedding
。注意:仅使用边生成节点的来向外传递消息。最后,如图 (c) - (e)
所示,我们通过并行的属性预测和遮盖边预测任务来训练 GNN
模型。
异质图:GPT-GNN
框架可以直接应用于预训练异质 GNN
。此时,每种类型的节点和边都可能有自己的解码器,该解码器由异质 GNN
确定而不是预训练框架指定。其它部分和同质 GNN
预训练完全相同。
大型图:为了在非常大的图上预训练 GNN
,我们采样 LADIES
算法及其异质版本 HGSampling
从同质图或异质图采样一个稠密的子图。理论上讲,这两种方法都保证了采样节点之间的高度互连,并最大程度地保留了结构信息。
为了估算对比损失 Adaptive Queue
,它存储了之前曾经采样的子图中的node embedding
。我们将自适应队列中的节点作为负节点加入到 embedding
并删除最早的node embedding
,从而逐步更新自适应队列。由于不会严格更新模型参数,因此队列中存储的负样本是一致且准确的 consistent and accurate
。
自适应队列使得我们能够使用更大的负样本集合
GPT-GNN
预训练算法:
输入:
Sampler(.)
GNN
模型 输出:预训练模型的参数
算法步骤:
初始化 GNN
模型
初始化共享属性向量 node embedding
队列
对每个采样到的子图
对每个节点,采样一组观测到的边的索引
将所有节点分别同时分裂为属性生成节点、边生成节点。将属性生成节点集合的节点输入替换为 GNN
node embedding
对每个节点
计算属性生成损失
通过拼接子图中未连接的节点和自适应队列
计算边生成损失:
通过最小化
添加 edge embedding
。
返回预训练的模型参数
上述算法给出了总体流程。给定一个属性图
第一步是确定节点排列顺序 embedding
,以便我们可以同时计算每个节点的损失,而不是递归地计算每个节点。因此,我们根据 embedding
,从而直接应用于生成式预训练。
注意:这一步未在上述算法中体现。理论上在采样子图的外层还有一个循环:采样排列顺序的循环。
然后,我们需要确定要遮盖的边。对于每个节点,我们选择其所有出边 out edge
并随机选择遮盖一部分边。
然后,我们执行节点分裂,并获得节点的 embedding
,这将用于计算生成式损失。
我们通过拼接该子图内未连接节点和存储在自适应队列 gap
。
最后我们更新自适应队列。
一旦得到预训练模型,我们就可以使用预训练模型作为初始化,从而微调其它下游任务。
数据集:
异质图:
Open Academic Graph:OAG
:包含超过 1.78
亿节点、22.36
亿条边,是迄今为止最大的公开可用的异质学术数据集。每篇论文都包含一组研究领域的标签,发表日期为 1900 ~2019
。
数据集包含五种类型的节点:论文 Paper
、作者 Author
、领域 Field
、会议 Venue
、机构 Institute
,以及这些节点之间的 14
种类型的边,这些边的关系如下图所示。例如:领域包含 L0 ~ L5
六个级别,这些级别通过层级树 hierarchical tree
来表示;领域之间的层级关系通过 is_organized_in
关系表示;我们区分了不同的作者位置,即第一作者、最后作者、其它作者。另外,数据集还包含自连接,这是 GNN
框架中广泛添加的。
对于论文和作者节点,节点编号非常大。因此传统的 node embedding
算法不适合为其抽取属性。因此我们借助论文标题来抽取属性。对于每篇论文,我们获取其论文标题,然后使用预训练的 XLNet
获取标题中每个单词的 embedding
,然后我们根据每个单词的注意力对它们进行加权平均,从而获得每篇论文的标题 embedding
,作为论文节点属性。作者节点的属性是作者已发表论文的 embedding
的均值。
对于领域、会议、机构等节点,由于节点数量很少,因此我们使用 metapath2vec
模型来训练它们的node embedding
,从而作为节点属性。
我们考虑对 Paper-Field, Paper-Venue, Author Name Disambiguation(Author ND)
预测作为三个下游任务来评估预训练模型的效果。性能指标为 MRR
进行评估。
GNN
来获得论文的node embedding
,然后使用一个 softmax
输出层来获得分类结果。GNN
获得论文和节点的 embedding
,然后使用 Neural Tensor Network
来获取每对 author-paper
存在链接的概率。
mean reciprocal rank: MRR
:多个query
的排名倒数的均值。
Amazon Review Recommendation
:包含 8280
万条评论、2090
万用户、930
万商品。评论发布于 1996~ 2018
年,每条评论都包含一个从 1~5
的离散评分,以及一个特定领域(包括书籍 Book
、时装 Fashion
等)。
数据集包含三种类型的节点:评论(评分和评论文本)、用户 、商品。另外还有商品的其它一些元数据,包括颜色、尺寸、样式和数量。和一般的 user-item
二部图相比,该数据集存在评论数据。为简单起见,我们将评论的连接视为 categorize_in
类型,因此图中共有三种类型的关系。
我们通过预训练的 XLNet
获取每个评论的 embedding
作为评论节点的属性。用户节点、商品节点的属性都是和它们关联的评论的 embedding
取均值。
我们将评分预测作为下游任务,该任务是一个 node-level
的五类分类任务。我们使用 micro-F1
得分作为评估指标。我们使用 GNN
获取评论的上下文表示,然后使用 softmax
输出层来获得分类预测。
同质图:Reddit
数据集、从 OAG
提取的引文网络。
Base model
:在 OAG
和 Amazon
数据集上,我们使用最新的异质 GNN
模型 Heterogeneous Graph Transformer: HGT
作为 base model
来预训练 GPT-GNN
。另外我们也对比了其它异质 GNN
作为 base model
的效果。
baseline
方法(均用于预训练):
GAE
:图自编码器,聚焦于传统的链接预测任务。它随机遮盖固定比例的边,然后要求模型重建这些遮盖的边。GraphSAGE(无监督)
:强迫相连的节点具有相似的 embedding
。它和 GAE
的主要区别在于:GraphSAGE
在预训练过程中不会遮盖边。Graph InfoMax
:尝试使用全局的图 summary embedding
来最大化局部node embedding
。对于每个采样的子图,我们混洗子图来构造负样本。GPT-GNN
的两个预训练任务来进行对比,即属性生成 GPT-GNN(Attr)
、边生成 GPT-GNN(Edge)
。GPT-GNN
模型配置:
base model
,其隐层维度为 400
, head
数量为 8
, GNN
层数为 3
。GPT-GNN
都采用 PyTorch Geometric(PyG) package
实现。AdamW
优化器,使用 Cosine Annealing Learning Rate Scheduler
训练 500
个 epoch
,并选择验证损失最低的模型作为预训练模型。256
。200
个 epoch
。5
次,并报告测试结果的均值和标准差。迁移学习配置:我们首先预训练 GNN
,然后使用预训练的模型权重来初始化下游任务的模型。然后我们使用下游任务的训练集来微调模型,并评估测试集性能。
大体而言,有两种不同的配置:
其中第二种更为实用,我们选择第二种进行测试。
如果是跨图的微调,如何处理训练期间
unseen
节点的embedding
?
- 如果是
transductinve
的,那么只能要求两个图中的节点尽可能重合。- 如果是
inductive
的,那么两个图可以不同,因为我们只需要预训练模型权重矩阵(如GAT
中的投影矩阵)即可。
具体而言,我们选择以下三种图迁移学习:
时间迁移 Time Transfer
:使用来自不同时间段的数据进行预训练和微调。对于 OAG
和 Amazon
,我们使用 2014
年之前的数据进行预训练,使用 2014
年之后的数据进行微调。
领域迁移 Field Transfer
:使用来自不同领域的数据进行预训练和微调。
OAG
中,我们选择计算机科学领域 CS
的论文用于微调,其它领域的论文用于预训练。Amazon
中,我们选择艺术 Art
、手工艺品 Craft
、缝纫品 Sewing
进行预训练,并对时尚、美容、奢侈品进行微调。组合迁移 Time + Field Transfer
:使用 2014
年之前特定领域的数据来预训练,使用 2014
年之后另一些领域的数据来微调。这比单独的时间迁移或领域迁移更具挑战。
在微调期间,对于这两个数据集我们选择 2014~2016
年的节点进行训练,2017
年的节点作为验证,2018
年的节点作为测试。
为满足缺乏训练数据的假设,默认情况下我们仅提供 10%
的标记数据用于微调训练。
在预训练期间,我们随机选择部分数据(2014
年以前)作为验证集。
在 OAG
和 Amazon
数据集上的不同预训练方法的下游任务性能如下表所示。
结论:
总体而言,GPT-GNN
框架显著提高了所有数据集上所有下游任务的性能。
GPT-GNN
相比于没有预训练的 base model
,在 OAG
和 Amazon
上获得了 13.3%
和 5.7%
的相对提升。GPT-GNN
也超越了其它的预训练模型,如 Graph Informax
。预训练在领域迁移学习中的提升要超过时间迁移学习,而组合迁移学习的提升比例最低。这体现了组合迁移学习的挑战性。
但是,即使是在最具有挑战的组合迁移学习中,GPT-GNN
仍然分别在两个数据集上实现了 11.7%
和 4.6%
的性能提升。这表明:GPT-GNN
使得 GNN
能够捕获输入图的通用结构和语义知识,从而可用于微调图数据的未见过的部分。
通过对比 GPT-GNN
的两个预训练任务(属性生成任务和边生成任务)的有效性,我们可以评估哪个对GPT-GNN
以及下游任务更有效。
OAG
上,GPT-GNN(Attr)
和 GPT-GNN(Edge)
平均性能分别提升 7.4%
和 10.3%
,表明边生成任务更有效。Amazon
上,结论相反,二者分别为 5.2%
和 4.1%
。这表明 GPT-GNN
从属性生成任务和边生成任务带来的收益因不同的数据集而不同。但是,将两个预训练任务结合起来可以获得最大收益。
将边生成任务和其它基于边的预训练方法(如 GAE, GraphSAGE
)相比。在 OAG
上,GPT-GNN(Edge), GAE, GraphSAGE
相对于没有预训练分别提升 10.3%, 7.4%, 4.0%
。在 Amazon
上,提升比例分别为 5.2%, 3.1%, 1.3%
。
GAE
和 GPT-GNN(Edge)
都要比 GraphSAGE
提供更好的结果,这表明在边上进行遮盖是用于自监督的图表示学习的有效方式。GPT-GNN(Edge)
始终超越了 GAE
。GPT-GNN(Edge)
的优势在于它会自动生成缺失的边,从而捕获被遮盖边之间的依赖关系,这些依赖关系已被 GAE
丢弃。总之,结果表明:GPT-GNN
可以为 GNN
预训练提供有效的自监督。
节点分裂旨在缓解属性生成任务的信息泄露问题,如果没有该部分,则属性将会出现在输入中。此时属性生成任务只需要简单的把输入预测为输出即可,即它无法学到输入图的任何知识,因此对结果有负面影响。
从 w/o node seperation
可以看到,移除节点分裂使得预训练模型效果很多情况下甚至比没有预训练的更差。这证明了节点分裂在避免属性信息泄露方面的重要性。
自适应队列旨在缓解采样子图和完整图之间的 gap
。从 GPT-GNN(Edge)
和 w/o adaptive queue
之间的对比可以看到:移除自适应队列使得模型性能下降。
这表明通过使用自适应队列来添加更多负样本,确实有助于预训练框架的效果提升。
我们考察其它 GNN
框架能否从 GPT-GNN
框架中受益。因此,除了 HGT
之外,我们还考察了 GCN, GAT, R-GCN, HAN
作为 base model
。
我们在 OAG
上对它们进行预训练,然后在组合迁移配置下使用 paper-field
预测任务,并使用10%
的微调训练数据来微调。模型无关的超参数(如隐层维度、优化器)保持不变。结果如下所示,可以看到:
HGT
在所有非预训练模型中效果最好。HGT
的GPT-GNN
在所有模型中效果最好。GPT-GNN
预训练框架可以增强所有 GNN
模型的下游性能。我们考察微调期间不同训练数据规模的效果。可以看到:
GPT-GNN
和其它预训练框架通过更多的标签数据可以不断提高下游任务的效果。GPT-GNN
在所有预训练框架中表现最好。GPT-GNN
仅需要 10% ~ 20%
的数据来微调,就可以达到监督学习 100%
训练数据的效果。这证明了 GPT-GNN
的优越性。除了异质图之外,我们还评估了 GPT-GNN
预训练框架是否可以应用于同质图的迁移学习。我们在两个同质图上进行预训练和微调:
OAG
的计算机科学领域的论文引文网络,对每个论文的主题进行预测。Reddit
帖子组成的 Reddit
网络,对每个帖子的社区进行推断。我们将 HGT
忽略其异质部分从而用于 base model
。下表给出了 10%
标记数据的训练结果。可以看到:
GPT-GNN
可以提供最大的性能提升。我们给出 OAG
上预训练和微调的收敛曲线。
下图给出了预训练期间每个 epoch
的验证误差曲线。结果表明:模型的验证损失不断下降,而不是很快地找到一个平凡解。这在某种程度上表明:生成式预训练任务足够艰巨,因此可以指导模型真正捕获数据的内在结构。整个GPT-GNN
预训练收敛大约需要 12
个小时。
下图给出了微调期间的验证MRR
曲线(同时对比了没有预训练的验证 MRR
曲线)。可以看到,GPT-GNN
总是可以获得更泛化的模型,并且由于预训练的良好初始化,微调期间对于过拟合更鲁棒。
对于 OAG
数据集,我们的属性生成任务是生成论文标题,所以我们希望了解 GPT-GNN
如何学习生成标题,结果见下表。
可以看到:模型仅通过查看部分邻域即可捕获需要预测的论文的主要含义。例如,对于第一句话,我们的模型成功地预测了本文的关键词,包括 person recognition, probabilistic
等。这表明图本身包含了丰富的语义信息,也解释了为什么预训练模型可以很好地泛化到下游任务。
消息传递神经网络 Message-Passing Neural Networks:MPNN
(如 GNN, ChebNet, GG-NN, GCN
)已经成功地应用于各种实际应用中的图表示学习graph representation learning
。在 MPNN
的每一层网络中,每个节点向邻域内的其它节点发送该节点的 representation
作为消息 message
,然后通过聚合从邻域内收到的所有消息来更新它的 representation
。其中,邻域通常定义为图中相邻节点的集合。通过采用排列不变permutation-invariant
的聚合函数(如 sum, max, mean
聚合函数),MPNN
能够学到同构图isomorphic graph
(即,拓扑结构相同的图)的不变的representation
。
虽然现有的 MPNN
已经成功应用于各种场景,但是 MPNN
聚合器 aggregator
的两个基本缺陷限制了它们表示图结构数据的能力:
首先,聚合器丢失了邻域的结构信息。
排列不变性 permutation invariance
是任何图学习方法的基本要求。为满足这一要求现有的 MPNN
采用了排列不变的聚合函数,这些聚合函数将来自邻域的所有消息视为一个集合。例如,GCN
只是对所有一阶邻居的归一化消息求和。这种聚合会丢失邻域节点的结构信息,因为它无法区分不同节点的消息。因此,在聚合之后,我们也就无法知晓哪个节点对最终的聚合输出做出了贡献。
如果不对邻域结构进行建模,现有的 MPNN
将无法区分某些非同构图non-isomorphic graph
。在这些非同构图中,MPNN
可能将不同的邻域结构映射为相同的feature representation
,这显然不适合graph representation learning
。与 MPNN
不同,经典的 CNN
通过特殊的聚合器(即,滤波器)来避免这个问题从而能够区分每个 input unit
,其中这些聚合器具有结构化的感受野 receiving filed
并定义在网格 grid
上。
正如论文 《GEOM-GCN: GEOMETRIC GRAPH CONVOLUTIONAL NETWORKS》
的实验所示,这些邻域结构信息通常包含图中拓扑模式 topology pattern
的线索,因此应该提取并被应用于学习图的更有区分度的 rerepenstation
。
其次,聚合器缺乏捕获异配图 disassortative graph
(指的是相似的节点没有聚合在一起的图)中长程依赖 long-range dependency
的能力。
在 MPNN
中,邻域被定义为 MPNN
倾向于对图中相近的节点学到相似的representation
。这意味这些MPNN
可能是同配图 assortative graph
(如引文网络、社区网络)representation learning
的理想方法。在这些同配图中,节点的同质性homophily
成立,即相似的节点更可能在图中相近,图中相近的节点更可能相似。
而对于节点同质性不成立的异配图,此时有些高度相似的节点在图中距离较远。这种情况下MPNN
的表示能力可能会受到严重限制,因为它们无法从距离遥远、但是包含丰富信息的相似节点中捕获重要特征。
解决这个限制的简单策略是使用多层架构,以便从远程节点接收消息。例如,虽然经典 CNN
中的卷积滤波器只能捕获局部数据,其单层卷积层的表示能力受限,但是通过堆叠多层卷积层,CNN
可以学到复杂的全局表示。
和 CNN
不同,多层 MPNN
很难学到异配图的良好representation
,这里有两个原因:
MPNN
中,来自远程节点的相关信息和来自近端节点的大量无关信息无差别地混合在一起,意味着相关信息被冲洗掉 washed out
,无法有效地提取。MPNN
中,不同节点的representation
将变得非常相似,因为每个节点的representation
实际上承载了关于整个图的信息,即 over-smooth
。在论文《GEOM-GCN: GEOMETRIC GRAPH CONVOLUTIONAL NETWORKS》
中,作者从两个基本观察出发,克服了图神经网络的上述缺陷:
由于连续空间 continuous space
的平稳性 stationarity
、局部性 locality
、组合性 compositionality
,经典的神经网络有效地解决了类似的局限。
网络几何 network geometry
有效地弥补了连续空间和和图空间之间的 gap
。
网络几何的目的是通过揭示潜在的连续空间来理解网络,它假设节点是从潜在的连续空间中离散地采样,并根据节点之间的距离来构建边。在潜在空间中,图中复杂的拓扑模式(如子图、社区、层次结构)可以保留下来,并以直观的几何方式呈现。
受这两个观察结果的启发,作者对图神经网络中的聚合方案提出了一个启发性问题:图上的聚合方案能否受益于连续的潜在空间?例如使用连续的潜在空间中的几何结构来构建邻域,从而捕获图中的长程依赖?
为回答上述问题,作者提出了一种新的图神经网络聚合 scheme
,称作几何聚合方案 geometric aggregation scheme
。在该方案中,作者通过node embedding
将一个图映射到一个连续的潜在空间,然后利用潜在空间中定义的几何关系来构建邻域从而进行聚合。同时,作者还设计了一个基于结构邻域的 bi-level
聚合器来更新节点的 representation
,保证了图结构数据的排列不变性。和现有的 MPNN
相比,该方法提取了更多的图结构信息,并通过连续空间中定义的邻域来聚合远程节点的feature representation
。
然后,作者提出了几何聚合方案在图卷积网络上的实现,称作 Geom-GCN
,从而在图上执行 transductive learning
、node classification
。作者设计了特定的几何关系来分别从欧式空间和 hyperbolic embedding
空间中构建结构邻域 structural neighborhood
。作者选择不同的 embedding
方法将图映射到适合不同 application
的潜在空间,在该潜在空间中保留了适当的图拓扑模式。
最后,作者在大量公开的图数据集上对 Geom-GCN
进行了实验,证明了 Geom-GCN
达到了 state-of-the-art
效果。
总之,论文的主要贡献如下:
Geom-GCN
,用于图中的 transductive learning
。benchmark
上与 state-of-the-art
方法进行广泛的比较来验证和分析 Geom-GCN
。相关工作:
如下图所示,几何聚合方案由三个模块组成:node embedding
(A1
和 A2
)、结构邻域(B1
和 B2
)、bi-level
聚合(C
)。图中:
A1-A2
:原始图(A1
)被映射到一个潜在的连续空间(A2
)。B1-B2
:结构邻域(B2
)。为可视化,我们放大了中心节点(红色)周围的邻域。关系算子 3x3
网格表示,每个单元格代表了和红色目标节点的几何关系(即几何位置是左上、左下、右上、右下等等)。C
:在结构邻域上的 bi-level
聚合。虚线和实线箭头分别表示 low-level
聚合和 high-level
聚合。蓝色箭头和绿色箭头分别表示图上的聚合以及潜在空间上的聚合。node embedding
:这是一个基础组件,它将图中的节点映射到潜在的连续空间 latent continuous space
。
令图
令 representation
向量 representation
向量的维度。这可以理解为将节点 geometry
。这里可以使用各种 embedding
方法来得到不同的潜在连续空间(《A comprehensive survey of graph embedding: Problems, techniques, and applications》
、《A united approach to learning sparse attributed network embedding》
)。
结构邻域 structural neighborhood
:基于离散的图空间和连续的潜在空间,我们构建一个结构邻域
和
关系算子 representation pair
对 geometric relationship
:
其中 B2
中, {左上、中上、右上、左中、相同、右中、左下、中下、右下 }
。
根据不同的潜在空间和不同的应用,representation pair
对,它们的关系应该是唯一的。
bi-level
聚合:借助结构邻域 bi-level
聚合方案来更新节点的 hidden feature
。bi-level
聚合方案由两个聚合函数组成,它可以有效地提取邻域节点的结构信息,并保持图的排列不变性。
令 hidden feature
,其中 hidden feature
注意:节点
有两种 representation
:为 node embedding
用于构建结构邻域(通常具有较小的维度)、为 node representation
用于具体的任务(图,节点分类)。
low-level
聚合:
在 low-level
聚合,处于相同类型的邻域 hidden feature
通过聚合函数
average pooling, enerage pooling, max pooling
。low-level
聚合如上图 C1
的虚线箭头所示。
high-level
聚合:
在 high-level
,虚拟节点由函数
这里聚合了图空间邻域和潜在空间邻域,共两种类型的邻域。也可以构建
个潜在空间邻域,从而得到 中类型的邻域。
非线性映射:
high-level
聚合的输出是向量 hidden feature
ReLU
。排列不变性permutation invariance
是图神经网络中聚合器的基本要求,随后我们将证明我们提出的 bi-level
聚合公式能够保证邻域节点的任何排列都不变。
图的排列不变映射的定义:给定一个双射函数
引理:对于组合函数
证明:令 isomorphic graph
,如果
的含义是: 。
定理:给定图 bi-level
聚合是排列不变的映射。
证明:bi-level
聚合是一个组合函数,其中 low-level
聚合是 high-level
聚合的输入。因此,如果能够证明 low-level
聚合是排列不变的,则 bi-level
聚合是排列不变的。
现在我们来证明 low-level
聚合是排列不变的。low-level
聚合由
low-level
聚合是排列不变的。这里讨论我们提出的几何聚合方案如何克服之前提到的两个缺点,即:如何有效地对邻域结构进行建模、如何捕获长程依赖。
为了克服 MPNN
的第一个缺点,即丢失邻域中节点的结构信息,几何聚合方案利用潜在空间中节点之间的几何关系,然后使用 bi-level
聚合有效地提取信息,从而对结构信息进行显式建模。
相反,现有的一些方法试图学习一些隐式的、类似于结构的信息,从而在聚合时区分不同的邻居。如 GAT
(《Graph attention networks》
)、 LGCL
(《Large-scale learnable graph convolutional networks》
)、 GG-NN
(《Gated graph sequence neural networks》
)等通过使用注意力机制以及节点/边的属性来学习来自不同邻居消息的权重。CCN
利用协方差架构来学习 structure-aware representation
(《Covariant compositional networks for learning graphs》
)。这些工作和我们之间的主要区别在于:我们利用潜在空间的几何信息提供了一种显式的、可解释的方式来建模节点邻域的结构信息。
另外,我们的方法和现有的这些方法是正交的,因此可以容易地和现有方法融合从而进一步改善性能。具体而言,我们从图拓扑的角度利用几何关系,而其它方法更关注feature representation
,这两个方面是互补的。
为了克服 MPNN
的第二个缺点,即缺乏捕获远程依赖的能力,几何聚合方案以两种不同的方式对异配图中的远程关系进行建模:
representation
。这种方式取决于保留节点相似性的适当的 embedding
方法。informative node
和目标节点可能具有某些特殊的几何关系(如特定的角度、特定的距离)。因此相比uninformative node
,informative node
的相关的特征将以更高的权重传递给目标节点。最终通过整个消息传递过程间接捕获了长程依赖关系。
此外, 《Representation learning on graphs with jumping knowledge networks》
中提出了一种方法 JK-Nets
通过在特征聚合期间 skip connection
来捕获长程依赖关系。
有些文献构造了一些非同构 non-isomorphic
图(《Covariantcompositional networks for learning graphs》
、《How powerful are graph neural networks? 》
),它们无法被现有的 MPNN
聚合器(如均值、最大值)很好地区分。这里我们给出两个示例,它们来自于 《How powerful are graph neural networks?》
。
如下左图所示,每个节点都具有相同的特征 graph
中,节点 final representation
都是相同的。即,均值聚合器和最大值聚合器无法区分这两个不同的图。
相反,如果在聚合过程中应用结构邻域,则这两个图可以很容易地区分。应用结构邻域之后,其它节点和
这里我们介绍 Geom-GCN
,它是几何聚合方案在 GCN
上的具体实现,主要用于图的 transductive learning
。
为实现几何聚合方案,需要给出其中的三个模块:node embedding
、结构邻域、bi-level
聚合。
node embedding
:如我们实验所示,仅保留图中的边以及距离模式的常见 embedding
方法已经可以使几何聚合方案受益。
对于特定的应用,可以指定特定的 embedding
方法来建立合适的、保留特定拓扑结构(如层次结构)的潜在空间。我们使用了三种 embedding
方法,即:Isomap
、Poincare Embedding
、Struc2vec
,这导致了三种 Geom-GCN
变体:Geom-GCN-I、Geom-GCN-P、Geom-GCN-S
。
Isomap
是一种广泛应用的 isometry embedding
方法,在该方法中,距离模式(最短路径的长度)被显式地保留在潜在空间中。Poincare Embedding
和 Struc2vec
能够创建特定的潜在空间,分别保留图中的层次结构和局部结构。 为了便于说明,我们的 embedding
空间维度为 2
(即
结构邻域:节点
图空间邻域
另外对于不同的潜在空间我们使用不同的距离:在欧式空间中我们使用欧式距离;在双曲空间 hyperbolic space
中,我们通过两个节点在局部切平面上的欧式距离来近似测地线距离。
我们简单地将几何算子
因为
embedding size = 2
,所以划分为四种关系。
也可以设计更复杂的几何算子
bi-level
聚合:我们采用和 GCN
相同的归一化 hidden feature
聚合作为 low-level
聚合函数
其中 degree
。聚合时仅考虑和节点
对于最后一层我们使用均值聚合作为 high-level
聚合函数
其中: ReLU
。
这里我们比较了 Geom-GCN
和 GCN, GAT
的性能,从而验证 Geom-GCN
的效果。
数据集:我们使用 9
个图数据集:
引文网络:Cora, Citeseer, Pubmed
是标准的引文网络 benchmark
数据集。
在这些网络中,节点表示论文,边表示论文被另一篇论文引用,节点特征是论文的 bag-of-word
表示,节点标签是论文的学术主题。
WebkB
数据集:WebKB
由卡内基梅隆大学从各大学的计算机科学系收集的网页数据集,我们使用它的三个子集:Cornell, Texas, Wisconsin
。
在这些网络中,节点代表网页,边代表网页之间的超链接,节点的特征是网页的 bag-of-word
表示。网页被人工分为五个类别:student, project, course, staff, faculty
。
Actor co-occurrence
数据集:该数据集是 film-directoractor-writer
网络导出的仅包含演员的子图。
在该网络中,节点代表演员,边表示同一个维基百科上两个演员的共现,节点特征为该演员的维基百科页面上的关键词。根据演员的维基百科的词汇,我们将节点分为五类。
这些数据集的统计信息如下表所示:
实验配置:我们使用三种embedding
方法,即 Isomap
、Poincare embedding
、struc2vec
,从而构建三种 Geom-GCN
变体,即 Geom-GCN-I、Geom-GCN-P、Geom-GCN-S
。
所有Geom-GCN
的 embedding
空间维度为 2
,并使用前面介绍的关系算子 low-level
聚合函数 high-level
聚合函数
即
。
所有模型的网络层数固定为 2
,采用Adam
优化器。对于 Geom-GCN
我们采用 ReLU
作为激活函数,对于 GAT
我们采用 GAT
作为激活函数。
我们使用验证集来搜索超参数,这些超参数包括:隐层维度、初始学习率、权重 decay
、dropout
。为确保公平,每个模型的超参数搜索空间都是相同的。最终得到的超参数配置为:
dropout rate = 0.5
、初始化学习率 0.05
、早停的 patience
为 100
个 epoch
。
对于 WebKB
数据集,weight decay
为 weight decay
为
对于 GCN
模型,隐层维度为:Cora
数据集 16
、Citeseer
数据集 16
、Pubmed
数据集 64
、WebKB
数据集 32
、Wikipedia
数据集 48
、Actor
数据集 32
。
对于 Geom-GCN
模型,隐层维度是 GCN
的 8
倍,因为 Geom-GCN
有 8
个虚拟节点。
即
。
对于 GAT
模型的每个 attention head
,隐层维度为 Citation
网络为 8
、WebKB
数据集为 32
、Wikipedia
数据集为 48
、Actor
数据集为 32
。
对于 GAT
模型,第一层具有 8
个 head
;Pubmed
数据集的第二层具有 8
个 head
,其它数据集的第二层只有 1
个 head
。
对于所有数据集,我们将每个类别的节点随机拆分为 60%, 20%, 20%
来分别作为训练集、验证集、测试集。
我们随机拆分 10
次并报告模型在测试集上的平均性能。
所有模型在所有数据集上的评估结果如下表所示,其中评估指标为平均分类准确率(以百分比表示)。最佳结果突出显式。
结论:
Geom-GCN
可以实现 state-of-the-art
性能。Isomap Embedding (Geom-GCN-I)
已经可以使得几何聚合方案受益。embedding
方法从而为特定应用构建合适的潜在空间,从而显著提升性能(如 Geom-GCN-P
)。Geom-GCN
聚合了来自两个邻域的消息,这两个邻域分别在图空间和潜在空间中定义。这里我们通过构建仅有一个邻域的 Geom-GCN
变体来进行消融研究,从而评估每种邻域的贡献。
g
后缀来区分(如 Geom-GCN-Ig
)。s
后缀来区分(如 Geom-GCN-Is
)。我们将 GCN
设为 baseline
,从而评估这些变体相对 GCN
的性能提升。比较结果见下表所示,其中正向提升用向上箭头表示,负向衰减用向下箭头表示。评估指标为测试集的平均准确率。
我们定义了指标 homophily
:
同质性以节点标签来衡量,其中相似的节点倾向于相互连接。较大的 assortative graph
(如引文网络)具有比异配图disassortative graph
(如 WebKB
网络)大得多的
结论:
大多数情况下,图空间邻域和潜在空间邻域都有利于聚合。
潜在空间邻域在异配图(更小的
问题是:图空间邻域在异配图(更小的
值)上的提升,也是要比同配图上的提升大得多。因此图空间也可以有效捕获远程节点的相关信息? 因此这里的结论不成立。
令人惊讶的是,只有一个邻域的几种变体(下表)要比具有两个邻域的变体(上表)具有更好的性能。我们认为,原因是两个邻域的 Geom-GCN
相比单个邻域的 Geom-GCN
聚合了更多无关的消息,并且这些无关消息对于性能产生了不利的影响。
我们认为注意力机制可以有效缓解这个问题,并留待以后工作进行研究。
Geom-GCN
的结构邻域非常灵活,可以组合任意的 embedding
空间。为了研究哪种 embedding
空间是理想的,我们通过采用由不同 embedding
空间构建的结构邻域来创建新的 Geom-GCN
变体。对于采用 Isomap
构建图空间邻域、采用 Poincare Embedding
构建潜在空间邻域的变体,我们用 Geom-GCN-IP
来表示。其它组合的命名规则依此类推。
这里构建了两种潜在空间,从而得到
3
种类型的结构邻域(一个来自图控件,两个来自潜在空间)。
下表给出了所有变体的性能,评估指标为测试集的平均准确率。
结论:有一些组合的性能要优于标准的 Geom-GCN
,有一些组合的性能更差。因此,如何设计自动选择合适的 embedding
空间的端到端框架是未来的重要方向。
这里我们首先介绍Geom-GCN
的理论时间复杂度,然后比较 GCN, GAT, Geom-GCN
的实际运行时间。
Geom-GCN
更新一个节点的 representation
的时间复杂度为 GCN
更新一个节点representation
的时间复杂度为
我们给出所有数据集上 GCN, GAT, Geom-GCN
的实际运行时间(500
个 epoch
)进行比较,结果如下图所示。
结论:GCN
训练速度最快,GAT
和 Geom-GCN
处于同一水平。未来的一个重要方向是开发 Geom-GCN
的加速技术,从而解决 Geom-GCN
的可扩展性。
为研究 Geom-GCN
在节点feature representation
中学到的模式,我们可视化了 Cora
数据集在 Geom-GCN-P
模型最后一层得到的feature representation
。我们通过 t-SNE
将该特征表示映射到二维空间中,如下图所示。节点的不同颜色代表不同的类别。
可以看到:
spatial clustering
,这可以显示 Geom-GCN
的判别能力。Poincare Embedding
提出的 Geom-GCN
学到了图的层次结构。