GNN(续)

十四、GCMC[2017]

  1. 随着电商平台和社交媒体平台的爆炸式增长,推荐算法已经成为很多企业不可或缺的工具。通常而言,推荐算法有两个主流方向:基于内容的推荐系统、基于协同过滤的推荐系统。

    • 基于内容的推荐系统使用 useritem 的内容信息来进行推荐,如用户的职业、item 的类型。
    • 基于协同过滤的推荐使用 user-item 交互数据(如购买、评分等)来进行推荐。

    论文 《Graph Convolutional Matrix Completion》 将矩阵补全问题视为一个图的链接预测问题:协同过滤中的交互数据可以由用户节点和 item 节点之间的二部图来表示,观察到的评分/购买由链接来表示。内容信息自然地以节点特征的形式包含在这个框架中。评分预测问题变为预测 user-item 二部图中的 labeled link

    论文提出了图卷积矩阵补全 graph convolutional matrix completion: GCMC:一种 graph-based 的自编码器框架用于矩阵补全,它建立在图上深度学习的最新进展的基础上。自编码器 auto-encoder 通过在二部图上消息传递的形式来产生 user latent featureitem latent feature 。这些潜在 user representationitem representation 用于通过双线性解码器重建评分链接rating link

    当有额外的辅助信息side information 可用时,将矩阵补全问题视为二部图上的链接预测问题带来的好处尤为明显。将辅助信息和交互数据结合在一起可以有效缓解冷启动问题。论文证明了所提出的图自编码器模型有效地结合了交互数据和辅助信息。

  2. 相关工作:

    • 自编码器auto-encoderuser-baseditem-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 graphCF-NADE 对节点进行随机排序,并通过随机切割 random cut 将传入消息划分为两组,并仅保留其中一组。因此,该模型可以看做是一个降噪自编码器,其中在每次迭代中随机丢弃输入空间的一部分。

        我们的模型仅考虑观测的评分,因此不是全连接的。

    • 分解模型:很多流行的协同过滤算法都是基于矩阵分解 matrix factorization: MF 模型,这种方式假设评分矩阵可以很好滴近似为低秩矩阵:

      MUV

      其中:

      • UR|U|×d 表示用户 embedding 矩阵,每一行代表一个用户的 user embedding 向量,即user latent feature representation
      • VR|V|×d 表示 item embedding 矩阵,每一行代表一个 item embedding 向量,即item latent feature representation
      • dembedding 向量的维度,并且满足 d|U|,d|V|Uuser 集合,Vitem 集合。

      在这些矩阵分解模型中:

      • 《Probabilistic matrix factorization》 提出的概率矩阵分解 probabilistic matrix factorization: PMF 假设 M 中的评分是带高斯噪声的独立随机变量,然后最大化观测评分。这种最大似然估计等价于 M 中的观测值和 UV 中对应的重建值之间的均方误差最小化。
      • 《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 featurelatent item feature 传递给前馈神经网络来扩展 MF 方法。
      • 《Local low-rank matrix approximation》 提出的局部低秩矩阵近似介绍了使用不同低秩近似的组合来重建评分矩阵的思想。
    • 带辅助信息的矩阵补全matrix completion with side information:在矩阵补全问题中,目标是使用低秩矩阵来逼近 M 。但是,秩 rank 的最小化是一个棘手的问题。

      • 《Exact matrix completion via convex optimization》 使用最小化核范数nuclear norm(矩阵的奇异值之和)来代替秩的最小化,从而将目标函数变成了可处理的凸函数。

      • Inductive matrix completion: IMCuseritem 的内容信息融入到特征向量中,并预估 user uiitem vj 的评分为:

        mi,j=xiUVyj

        其中 xi 为用户 ui 的特征向量, yjitem vj 的特征向量。UV 为低秩的、待学习的user embedding 矩阵和 item embedding 矩阵。

      • 《Matrix completion on graphs》提出的 geometric matrix completion: GCM 模型通过以 user graphitem 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 才能预测评分。

14.1 模型

  1. 给定用户集合 U 以及 item 集合 V 。考虑评分矩阵 MR|U|×|V| ,矩阵的第 i 行、j 列代表用户 uiitem vj 的评分 mi,j

    mi,j{>0,observed=0,non-observed

    我们将矩阵补全问题转化为链接预测问题。考虑二部图 G=(W,E,R) ,其中: W=UV 为所有节点集合, E 表示所有链接集合(每个链接表示一个观测评分),R={1,2,,R} 为评分等级(这里最高 R 级评分)。(ui,mi,j,vj)E 表示用户 uiitem vj 的评分为 mi,jR

    如下图所示:

    • 左图为评分矩阵 M ,每一项对应于 user-item 之间的评分(评分在 1~5 分之间),或者未观测(评分记作 0)。
    • 第二幅图表示 user-item 评分的二部图,边对应于评分行为,边上的数字对应于评分数值。
    • 最后两幅图表示矩阵补全问题可以转换为二部图上的链接预测问题,并使用端到端的可训练的图自编码器进行建模。

    矩阵补全问题转化为链接预测问题的核心是:链接如何对应到评分?GCMC 的做法是:每个等级的评分对应一条边,因此有 R 种不同类型的边。

    • 每种类型的边都有一个编码器,所有编码器的结果聚合得到 node embedding
    • 每种类型的边都有一个解码器,所有解码器的结果求期望得到预估的评分。

    但是,这里没有考虑评分之间的大小关系:评分为 1 要小于评分为 R 。因此这里忽视了非常重要的评分排序关系。

  2. 之前的 graph-based 推荐算法通常采用 multi-stage pipeline,其中包括图的特征抽取模型(如 graph embedding 模型)以及图的链接预测模型。这些模型都是独立分开训练。

    但是最近的研究结果表明:通过端到端的技术来建模图结构化数据可以显著提升效果。在这些端到端技术中,应用于无监督学习和链接预测的图自编码graph auto-encoder 技术尤为突出。因此我们提出一种图自编码器的变种来应用于推荐任务。

14.1.1 图自编码器

  1. 图自编码器由一个编码器和一个解码器组成,其中:

    • 编码器模型:Z=f(X,A) 。其中:

      • XR|W|×df 为输入的特征矩阵,每一行代表一个节点的特征向量, df 为节点的特征向量维度。
      • AR|W|×|W| 为图的邻接矩阵。
      • ZR|W|×de 为节点的 embedding 矩阵,每一行代表一个节点的 embedding 向量,denode embedding 向量维度。
    • 解码器模型:A^=g(Z) 。解码器以一对节点 embedding (zi,zj) 为输入,并预测节点 ij 之间的连接性,即预估的邻接矩阵的项 A^i,j

  2. 对于二部图 G=(W,E,R) ,我们重新定义编码器为:

    [U,V]=f(X,M1,,MR)

    其中:

    • UR|U|×deuser embedding 矩阵,VR|V|×deitem embedding 矩阵。

    • Mr{0,1}|U|×|V| 为评分等级为 r 的邻接矩阵,它的元素在 {0,1} 内取值,1rR。并且当用户 uiitem vj 的观测评分 mi,j=rMr(i,j)=1 ,否则为零。

      因此,Mr 定义了原始评分矩阵中评分等级为 r 关联的邻接矩阵。

      这里对每种类型的边定义了一个邻接矩阵,不同的邻接矩阵代表了不同的模型,因此类似于 《Convolutional Networks on Graphs for Learning Molecular Fingerprints》 提出的 neural graph fingerprint 模型。

    类似地,我们重新定义解码器为:

    M^=g(U,V)

    解码器输入一对 user-itemembedding 向量,并返回 user uiitem vj 预估的评分 m^i,j ,其中 m^i,jM^ 的第 i 行第 j 列。

    我们通过最小化预测评分矩阵 M^ 和真实评分矩阵 M 之间的重构误差来训练该自编码器(注意:通常只考虑观测值上的重构误差)。通常评估重构误差的指标为 RMSE (将评分预测视为回归问题)或者交叉熵(将评分预测视为分类问题)。

    最后,我们注意到可以将最近提出的几个矩阵补全 state-of- the-art 模型纳入我们的框架中,并将它们视为我们模型的特例。

14.1.2 图卷积编码器

  1. 这里我们选择了一种特定的编码器模型,它可以有效地利用图中 location 之间的权重共享,并为每种边类型 rR 分配独立的处理通道。

  2. 我们选择局部图卷积 local graph covolution 作为编码器模型。这类局部图卷积可以视为消息传递的一种方式,其中消息在图的链接之间传递和转换。

    在我们case 中,我们为每个评分等级分配一个level-specific 变换,使得从 item vj 到用户 ui 的消息传递形式为:

    μji(r)=1ci,jWrxj

    其中:

    • ci,j 为归一化常数,通常选择为 |Ni| (左归一化left normalization) 或者 |Ni||Nj| (对称归一化)。 Ni 为节点 ui 的邻域节点集合,Nj 为节点 vj 的邻域节点集合。

      根据论文的描述,这里应该是 Ni(r)Nj(r) ,即类型为 r 的邻域。此外,还要求满足:vjNi(r) 以及 uiNj(r)

    • Wr 为评分等级 rlevel-specific 权重矩阵。

    • xj 为节点 vj 的特征向量。

    同理,用户 uiitem vj 的消息传递形式为:

    μij(r)=1cj,iWrxi

    这里也可以选择使用不同的 level-specific 权重矩阵 Wr,u2i,Wr,i2u(即 user -> itemitem -> user 传递消息时,权重矩阵不同)。

    在消息传递之后:

    • 首先通过求和来聚合类型为 r 的所有邻居 Ni(r) 的消息,得到领域类型为 r 的单个representation 向量。
    • 然后将所有邻域类型的 representation 向量聚合,从而得到节点的单个聚合向量。
    • 最后对聚合向量进行变换,最终得到节点的 embedding 向量。

    以下公式为用户节点 uiembedding 计算公式,item 节点 vjembedding 也是类似的。

    hi=σ[accum(vjNi(1)μji(1),,vjNi(R)μji(R))]ui=σ(Whi)

    其中第一行公式称作卷积层,第二行公式称作 dense 层。

    注意:

    • 当没有辅助信息可用时, dense 层对于 useritem 都采用相同的参数矩阵 W

      当存在辅助信息可用时, dense 层对于 useritem 都采用单独的参数矩阵 W ,分别记作 W(U),W(V)

    • 这里卷积层只有一层。虽然可以堆叠更多的卷积层来构建更深的模型,但是在最初的实验中我们发现堆叠更多卷积层并不能提高性能。

      同理,堆叠更多的 dense 层也不能提高性能。因此,最终我们选择单层卷积层 + 单层 dense 层的组合作为图编码器。

    • 这里给出的模型仅仅是一种可能性。虽然编码器的选择相对简单,但是也可以选择不同的变种。例如:

      • 可以使用神经网络来计算消息传递(μji(r)=nn(xi,xj,r)),从而替换掉简单的线性变换。
      • 可以使用 attention 机制从模型中学习每个消息的权重,从而替代消息的归一化常数 ci,j

14.1.3 双线性解码器

  1. 我们使用双线性解码器 bilinear decoder 来重建二部图的链接。令用户 uiitem vj 预估的评分为 m^i,j ,则解码器输出预估评分为 r 的概率为:

    p(m^i,j=r)=exp(uiQrvj)sRexp(uiQsvj)

    其中每个评分等级 r 关联一个可训练的参数 QrRde×dedeembedding 向量的维度。

    每个评分登记 r 关联一个 Wr 用于编码、关联一个 Qr 用于解码。

    模型最终预估的评分为所有评分等级预估结果的期望值:

    m^i,j=g(ui,vj)=Ep(m^i,j=r)[r]=r=1Rr×p(m^i,j=r)

14.1.4 模型训练

  1. 损失函数:模型训练期间我们将 GCMC 模型的损失函数定义为:最小化预估评分 m^i,j 的对数似然:

    L=(i,j):Ωi,j=1r=1RI(r=mi,j)×logp(m^i,j=r)

    其中:

    • I() 为示性函数:I(true)=1,I(false)=0
    • Ω 为观测值的mask 矩阵:对于观测值对应的项,Ωi,j=1 ;对于未观测值对应的项,Ωi,j=0

    因此,上述目标函数仅在所有观测的评分上优化。

  2. GCMC 模型的整体框架如下所示。模型由图卷积编码器 [U,V]=f(X,M1,,MR) 以及双线性解码器 M^=g(U,V) 组成。其中:

    • 编码器从 user-> item 或者 item -> user 传递并变换消息。
    • 解码器根据 user embeddingitem embeddingpair 对来预估评分。

  3. node dropout:为使得模型能够很好地泛化到未观测的评分,我们以概率 pdropout 随机丢弃某个节点传出的所有消息,我们称之为 node dropout 。注意:和常规 dropout 一样,在消息丢弃之后需要 rescale

    这种 node-leveldropout 和常规的 dropout 不同。常规的 dropout 是在message-level进行 dropout,称作 message dropout

    • message dropout 中,每条消息随机独立地丢弃,使得最终 embedding 对于边的扰动更为鲁棒。
    • 而在 node dropout 中,每个节点随机独立地丢弃,使得最终 embedding 对于特定用户和特定 item 的影响更为鲁棒。这会缓解一些热门用户或热门item 的影响。

    最后,我们还对卷积自编码器的 dense 层的隐单元使用了常规的 dropout

  4. mini-batch 训练:为了训练较大的数据集(如 MovieLens-10M 数据集),我们需要对观测数据进行采样,从而进行 mini-batch 训练。这是将 MovieLens-10M 的完整模型加载到 GPU 内存所必须的。

    我们从每个等级的观测评分中采样固定比例的评分,然后仅考虑该 mini-batch 的损失。这样我们在训练过程中仅需要考虑当前 mini-batch 中出现的 useritem。这既是正则化的有效手段,又可以降低训练模型需要的内存。

    通过在 Movielens-1M 数据集上使用 mini-batch 训练和 full-batch 训练的实验对比(对比时针对二者分别调优了各自的正则化参数),我们发现二者产生了可比的结果。

    最后,对于 MovieLens-10M 以外的其它数据集,我们选择 full-batch 训练,因为 full-batch 训练相比 mini-batch 训练的收敛速度更快。

14.1.5 向量化实现

  1. GCMC 的实现中,我们可以使用高效的稀疏矩阵乘法来实现图自编码器模型,其算法复杂度和边的数量呈线性关系,即 O(|E|)

    假设聚合函数 accum 为累加,则图卷积编码器为(采用左归一化):

    Ar=[0MrMr0][HuHv]=σ(r=1RD1ArXWr)[UV]=f(X,M1,,MR)=σ([HuHv]W)

    其中:

    • D 为节点的度矩阵 degree matrixDi,i=|Ni|

      这里是否要替换为 Dr ,即评分等级 r 下的邻接矩阵的度矩阵?

    • σ(r=1RD1ArXWr) 可以替换为向量拼接(而不是累加)。

    另外,采用对称归一化的图卷积编码器以及双线性解码器的向量化 vectorization 也以类似的方式进行。

14.1.6 辅助信息

  1. 理论上可以将包含每个节点的信息(如内容信息)的特征直接作为节点的输入特征(即特征矩阵 X ),并直接作用到图自编码器中。但是,当内容信息不足以区分不同的用户(或者 item)及其兴趣时,将内容信息直接馈入图卷积层会导致严重的信息流瓶颈bottleneck of information flow

    此时,可以通过单独的处理通道 channel,从而将用户特征向量或 item 特征向量以辅助信息的形式纳入全连接层中。

    由于内容信息灌入到模型的最后一层,因此上述的信息流瓶颈不会出现,因为瓶颈只会出现在中间层。那么这么做对不对?理论依据是什么?

    我们选择输入特征矩阵 X 为一个单位矩阵,即每个节点的输入特征为节点的 one-hot 表示。令用户节点 ui 的辅助信息特征向量为 xif ,则作用到全连接层之后,节点的embedding 为:

    fi=σ(W1(U,f)xif+b(U))ui=σ(W(U)hi+W2(U,f)fi)

    其中:

    • W1(U,f),W2(U,f) 都是可训练的权重矩阵,b(U) 为可训练的 bias 向量。

    • user 节点的参数为 {W1(U,f),W2(U,f),b(U),W(U)} ,而 item 节点的参数为 {W1(V,f),W2(V,f),b(V),W(V)} 。即 user,item 类型的节点使用两套不同的参数。

      因为 user 节点和 item 节点具有不同的输入特征空间。

    • 本文实验中使用的数据集中,用户内容以及 item 内容的信息大小有限,因此我们使用这种辅助信息的方式。

  2. 注意:辅助信息不一定要以节点特征向量的形式出现,也可以是图结构(如社交网络)、自然语言或者图像数据。此时可以将上式中的 dense 层替换为适当的可微模块,如 RNNCNN 或者其它图卷积网络。

14.1.7 权重共享

  1. 编码器权重共享:在辅助信息的方式中,我们使用节点的 one-hot 向量作为输入。此时矩阵 Wr 的第 i 列可以视为节点 i 在评分等级 r 下的潜在因子向量。这些潜在因子向量通过消息传递,被传递到与该节点相连的 user 节点(如果节点 iitem 节点)或者 item 节点(如果节点 iuser 节点)。

    但是,并非所有用户拥有评分等级为 r 的相同评分数量,也并非所有 item 拥有评分等级为 r 的相同评分数量。这将导致 Wr 的某些列的优化频次明显低于其它列。因此,对于不同的 r 我们期待矩阵 Wr 之间的权重共享,从而缓解该优化问题。

    遵从 《A neural autoregressive approach to collaborative filtering》我们实现了以下权重共享策略:

    Wr=s=1rTs

    由于更高的评分等级包含的权重矩阵数量更多,因此我们称这种权重共享为有序权重共享 ordinal weight sharing

    为什么更高评分包含的权重矩阵数量更多?完全没有道理。

  2. 解码器权重共享:对于成对双线性解码器,我们采用一组基权重矩阵 basis weight matrix {P1,,Pnb} ,其中:

    Qr=s=1nbar,sPs

    其中:

    • nb 为基权重矩阵的数量。注意,为缓解过拟合并减少参数数量, nb 应该小于评分等级数量 R
    • ar,s 为可学习的参数,用于决定对每个解码器权重矩阵 Qr 的线性组合的系数。

    这种解码器的权重共享是一种有效的正则化手段。

14.2 实验

  1. 数据集:我们在多个常见的协同过滤 benchmark 数据集上评估我们的模型。

    • MovieLens100K,1M, 10M)数据集:包含多个用户对多部电影的评级数据,也包括电影元数据信息(如电影题材)和用户属性信息(如用户年龄、性别、职业)。该数据集有多个版本,对应于不同的数据量。
    • Flixster 数据集:来自于社交电影网站 Flixster 的电影评分数据集,数据集包含了用户之间的好友关系。
    • Douban 数据集:来自豆瓣的电影评分数据集,数据集包含用户之间的好友关系。
    • YahooMusic 数据集:来自 Yahoo! Music 社区的用户对音乐家的评分数据集。

    对于 Flixster,Douban, YahooMusic 数据集,我们使用《Geometric matrix completion with recurrent multi-graph neural networks》 论文提供的预处理的子集。预处理后,每个数据集包含 3000 个用户节点以及 3000item 节点,以及对应的 user-useritem-item 交互图。

    下图给出了数据集的统计信息,其中Features 表示是否包含用户特征或者item 特征,Ratings 表示数据集的评分数量,Density 表示评分矩阵中已观测评分的占比,Rating level 表示评分等级范围。

  2. baseline 模型:

    • 矩阵补全模型,包括 MC, IMC, GMC, GRALS, sRGCNN 。具体细节参考前文所述。
    • 矩阵分解模型,包括 PMF, I-RBM, BiasMF, NNMF 。 具体细节参考前文所述。
    • 协同过滤模型,包括 LLORMA-Local, I-AUTOREC, CF-NADE 。 具体细节参考前文所述。

    另外我们还对比了我们不带额外信息的GCMC 模型,以及带辅助信息的 GCMC+Feat 模型。

  3. 参数配置:

    • 所有 baseline 方法直接采用原始论文中的实验结论数据(因此也不需要实现和运行这些 baseline 方法)。

    • 对于 GCMC 模型,我们通过验证集从以下超参数范围选择最佳的超参数:

      • 聚合函数accumulationstack vs sum
      • 是否在编码器中使用有序权重共享:是 vs 否。
      • 编码器中 ci,j 为归一化常数:左归一化 vs 对称归一化。
      • node dropout 比例: pdropout{0.3,0.4,0.5,0.6,0.7,0.8}

      另外,除非另有说明,否则我们使用以下超参数配置:

      • 使用学习率为 0.01Adam 优化器。
      • 解码器基权重矩阵数量 nb=2
      • 编码器采用:维度 500 的单层卷积层(使用 ReLU 激活函数) + 维度 50 的单层 dense层(无激活函数)。

      最后,我们使用学习模型参数的指数移动平均(衰减因子 0.995)在保留的测试集上评估模型。

  4. Movielens-100k 数据集(特征向量形式的辅助信息实验):我们直接使用数据集原始的 u1.base/u1.test 的训练集/测试集拆分结果。对于该数据集,我们使用辅助信息来参与所有模型的训练。在该数据集我们对比了矩阵补全 baseline 方法和我们的 GCMC 方法,其中:

    • GMC, GRALS, sRGCNN 通过 k 近邻图来表示 user/item 特征。
    • 其它方法直接使用原始特征向量。

    对于 GCMC 的超参数,我们将原始训练集按照 80:20 进行训练集/验证集的拆分,然后通过验证集来调优超参数:在图卷积中使用 stack 作为累积函数,选择 pdropout=0.7 ,使用左归一化。一旦选择好超参数之后,我们就在整个原始训练集上重新训练模型,并利用训练好的模型来评估测试集。

    对于 GCMC 模型,我们不带任何辅助信息。对于 GCMC + Feat 我们使用辅助信息,并且辅助信息的 side information layer 使用维度大小为 10dense 层(采用 ReLU 激活函数)。

    我们使用 1000full-batch epoch 来训练 GCMCGCMC + Feat 。我们随机重复执行 5 次并报告测试集上的平均 RMSE 结果。整体评估结果如下(baseline 数据直接来自于 《Geometric matrix completion with recurrent multi-graph neural networks》)。

    结论:

    • 我们的 GCMC 方法明显优于baseline 方法,即使在没有辅助信息的情况下也是如此。

    • 和我们方法最接近的是 sRGCNN 方法,它在用户和 item 的近邻图上使用图卷积,并使用 RNN 以迭代的方式学习表示。

      实验结果表明,使用简单的解码器(而不是复杂的 RNN)直接从学到的user embedding/ item embedding 中直接评估评分矩阵可以更有效,同时计算效率更高。

  5. 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 作为累计函数,选择 pdropout=0.7 ,使用对称归一化。

    • 对于 MovieLens-10M,我们使用 stack 作为累计函数,选择 pdropout=0.3 ,使用对称归一化。

      另外考虑到该数据集的评分等级数量翻倍,我们选择解码器的基参数矩阵数量 nb 用于翻倍(即 nb=4 )。

    一旦选择好超参数之后,我们就在整个原始训练集上重新训练模型,并利用训练好的模型来评估测试集。

    对于 MovieLens-1M 我们训练 3500full-batch epoch,对于 MovieLens-10M 我们训练 18000mini-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 框架结合使用。

  6. 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 作为累积函数,选择 pdropout=0.7 ,使用左归一化。一旦选择好超参数之后,我们就在整个原始训练集上重新训练模型,并利用训练好的模型来评估测试集。

    对于 GCMC 模型,我们使用辅助信息,并且辅助信息的 side information layer 使用维度大小为 64dense 层(采用 ReLU 激活函数)。

    我们使用 full-batch 训练 200epoch

    最终我们重复执行 5 轮,并报告模型在测试集上的平均 RMSE。其中 Flixster 有两组结果:左侧结果表示同时引入了 user 辅助信息和 item 辅助信息;右侧结果表示仅考虑 item 辅助信息。

    结论:GCMC 在所有baseline 中取得了 state-of-the-art 效果。

    注意:GCMC 在所有三个数据集上都采用相同的超参数配置,如果针对各自数据集调优,效果会进一步提升。

  7. 冷启动实验:为深入了解 GCMC 模型如何通过辅助信息来提升冷启动性能,我们选择 MovieLens-100K 数据集,随机选择固定数量的冷启动用户 Nc ,这些用户最多随机保留 Nr 个评分(整个实验中随机数种子固定,因此每次随机选择的结果都相同)。注意:MovieLens=100K 原始数据仅包含具有至少 20 个评分的用户。

    我们考察当 Nr{1,5,10},Nc{0,50,100,150}GCMC 的性能(Nc=0 表示所有用户都保留所有评分)。其中超参数和测试集如前面所述一样选择。结果如下图所示,虚线表示不带辅助信息时模型的表现。

    可以看到:对于冷启动用户,使用辅助信息能够带来显著的提升,在只有一个评分的用户上表现尤为突出。

十五、JK-Net[2018]

  1. 图是一种普遍存在的结构,广泛出现在数据分析问题中。现实世界的图(如社交网络、金融网络、生物网络和引文网络)代表了重要的丰富的信息,这些信息无法仅仅从单个实体中看到(如一个人所在的社区、一个分子的功能角色、以及企业资产对外部冲击的敏感性)。因此,图中节点的 representation learning 旨在从节点及其邻域中抽取高级特征,并已被证明对许多 application 非常有用,如节点分类、节点聚类、以及链接预测。

    最近的工作集中在 node representation 的深度学习方法上。其中大多数深度学习方法遵循邻域聚合(也称作消息传递 message passing )方案。这些模型迭代式地聚合每个节点的 hidden feature 及其周围邻域节点的 hidden feature,从而作为该节点的新的 hidden feature。其中每一次迭代都由一层神经网络来表示。理论上讲,执行 k 次迭代从而得到节点 vihidden feature 的聚合过程,利用了以节点 vi 为根节点的一棵高度为 k 的子树结构。已经证明这种方案是 Weisfeiler-Lehman 图同构测试graph isomorphism test的推广,并且能够同时学习图的拓扑结构以及邻域节点特征的分布。

    但是,这种聚合方式可能会产生出人意料的结果。例如,已经观察到 GCN 的深度为 2 时达到最佳性能;当采用更深网络时,虽然理论上每个节点能够访问更大范围的信息,但是GCN 的效果反而更差。在计算机视觉领域中,这种现象称作学习退化 degradation ,该问题可以通过残差连接来解决,这极大地帮助了深度模型的训练。但是在 GCN 中,在很多数据集(如,引文网络)上即使采用了残差连接,多层 GCN 的效果仍然比不过 2GCN

    基于上述观察,论文 《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 等模型结合,可以持续改善这些模型的性能。

  2. 模型分析:为评估不同邻域聚合方案的行为,论文分析了节点 virepresentation 依赖的邻域范围。论文通过节点的影响力分布 the influence distribution (即不同邻域节点对于 virepresentation 的贡献的分布)来刻画这个邻域范围。邻域范围隐式的编码了 vinearest neighbors 的先验假设。

    具体而言,我们将看到这个邻域范围严重受到图结构的影响。因此引发了一个疑问:是否所有的节点 viV 都适用于同一个邻域范围(即,“一刀切”)?尤其是当图中存在各种各样类型的子图时(如,tree-like 子图、expander-like 子图)。

    进一步地,论文形式化地分析将 vi 的影响力分布和从节点 vi 开始的随机游走扩散联系在一起。这是一个易于理解的现象,因为影响力分布是图结构和特征值 eigenvalue 的函数。

  3. 改变的局部性changing locality:为了说明图结构的影响和重要性,请回想一下许多现实世界的图具有强烈局部变化的结构locally strongly varying structure。在生物网络和引文网络中,大多数节点几乎没有连接,而一些节点 (hub)连接到许多其它节点。社交网络和 web 网络通常由 expander-like 部分组成,它们分别代表 well-connected 实体和小社区 small community

    除了节点特征之外,这种子图结构对于邻域聚合结果也有非常大的影响。邻域范围扩张的速度(或者叫影响半径的增长)通过随机游走的 mixing time 来刻画(即:从节点 vi 的随机游走收敛到平稳分布所需要的时间)。这个时间在不同结构的子图上差异巨大。因此,相同数量的迭代可能导致差异很大的局部影响力分布。

    例如考虑如下 GooglePlus 的社交网络,该图说明了从正方形节点开始的随机游走的扩散(随机游走的扩散也代表了影响力分布的扩散)。可以看到:不同结构的子图带来不同的邻域范围。

    • a 中,来自核心区域内节点的随机游走很快就覆盖了几乎整个图(随机游走覆盖的节点以绿色表示)。
    • b 中,来自tree 形区域节点的随机游走经过相同的 step 之后,仅覆盖图的一小部分(随机游走覆盖的节点以绿色表示)。
    • c 中,来自 tree 形区域节点使用更长的 step 之后达到了核心区域,并且影响力突然快速扩散。

    graph representation 模型中,这种随机游走的扩散转换为影响力分布。这表明:在同一个图中,相同数量的随机游走 step 可以导致非常不同的效果。因此我们需要根据具体的图,同时结合较大的邻域范围和较小的邻域范围:

    • 太大的邻域范围可能会导致过度平滑,从而丢失局部信息。
    • 太小的邻域范围可能信息不足,从而不足以支撑准确的预测。

  4. JK network:上述观察提出一个问题:能否有可能对不同的图和不同的节点自适应地调整邻域范围。为此论文 《Representation Learning on Graphs with Jumping Knowledge Networks》提出了 JK-Net 框架,该框架在网络最后一层选择性地组合不同邻域范围,从而自适应地学习不同邻域的局部性locality 。如,将不同邻域范围 jump 到最后一层,因此这个网络被称作 Jumping Knowledge Networks: JK-Nets

  5. 相关工作:谱图卷积神经网络 spectral graph convolutional neural network 使用图拉普拉斯特征向量作为傅里叶基,从而在图上应用卷积。与诸如邻域聚合之类的空间方法spatial approach相比,谱方法spectral method的一个主要缺点是:需要提前知道图拉普拉斯矩阵(是 transductive 的)。因此,谱方法无法推广到 unseen 的图。

15.1 模型

  1. 定义图 G=(V,E) ,其中 V={v1,,vn} 为节点集合,E 为边集合。每个节点 vV 关联一个节点特征向量 xvRdfdf 为特征向量的维度。

    定义图 G~=(V,E~) 为图 G 每个节点 v 上添加一个自连接得到的图,其中 E~=E{(vi,vi)viV}

    假设基于消息传递的模型有 L 层,第 l 层学到的节点 vhidden featurehv(l)Rdh ,其中 dhhidden feature 的维度。为讨论方便,我们选择所有层的 hidden feature 维度都相等。另外,我们记 hv(0)=xv

    定义节点 v 的邻域 Nv={uV(v,u)E} 为与节点 v 直接相连的节点集合。定义 G~ 中节点 v 的邻域 N~v=Nv{v} ,它包含了节点 v 自身。

    则典型的消息传递模型可以描述为:对于第 l{1,2,,L} 层,每个节点 vVhidden feature 更新方程为:

    hv(l)=σ(WlAGG({hu(l1),uN~v}))

    其中:

    • AGG 为聚合函数,不同的模型采用不同的聚合函数。
    • Wl 为待学习的第 l 层的权重矩阵,它在所有节点之间共享。
    • σ() 为一个非线性激活函数。
  2. GCN 图卷积神经网络(《Semi-supervised classification with graph convolutional networks》hidden feature 更新方程为:

    hv(l)=relu(WluN~vhu(l1)deg(v)×deg(u))

    其中 deg(v) 为节点 v 在图 G 中的 degree

  3. 《Inductive representation learning on large graphs》 推导出一个在 inductive learing 中的 GCN 变体(即,GraphSAGE ),其hidden feature 更新方程为:

    hv(l)=relu(Wl1deg~(v)uN~vhu(l1))

    其中 deg~(v) 为节点 vG~ 中的 degree

  4. Neighborhood Aggregation with Skip Connections:最近的一些模型并没有同时聚合节点及其邻域,而是先聚合邻域,然后将得到的neighborhood representation和节点的上一层representation 相结合。其hidden feature 更新方程为:

    hNv(l)=σ(WlAGGN({hu(l1),uNv}))hv(l)=COMBINE(hv(l1),hNv(l))

    其中 AGGNCOMBINE 函数由具体的模型定义。

    在这种范式中,COMBINE 函数是关键,可以将其视为跨层的跳跃连接 skip connection。 对于COMBINE 的选择,GraphSAGE 在特征转换之后直接进行拼接,Column Network 对二者进行插值,Gated GCN 使用 GRU 单元。

    但是,该跳跃连接是 input-specific 的,而不是 output-specific 的。考虑某个节点 v ,假设在第 l 层计算 hv(l) 时使用了 skip 。则后续更高层 l+j,j>1 中,对于所有依赖于节点 v 的其它节点 u ,计算 hu(l+j) 都隐式的使用了这个 skip 。我们无法做出这样的选择:对于第 l+j1 层使用 skip、对于第 l+j2 层不使用 skip。即跳跃连接是由输入决定,而不是由输出决定。因此,跳跃连接无法自适应地独立调整 final-layer representation 的邻域大小。

  5. Neighborhood Aggregation with Directional Biases:最近有些模型没有平等地看到邻域节点,而是对“重要”的邻居给与更大的权重。可以将这类方法视为 directional bias 的邻域聚合,因为节点受到某些方向的影响要大于其它方向。

    例如:GATVAIN 通过 attention 机制选择重要的邻居,GraphSAGEmax-pooling 隐式地选择重要的邻居。

    这个研究方向和我们的研究方向正交。因为它调整的是邻域扩张的方向,而我们研究的是调整邻域扩张的范围。我们的方法可以和这些模型相结合,从而增加模型的表达能力。

    在下文中,我们证明了 JK-Net 框架不仅适用于简单的邻域聚合模型(GCN),还适用于跳跃连接 (GraphSAGE)和 directional biasGAT )。

15.1.1 影响力分布

  1. 我们首先利用 《Understanding black-box predictions via influence functions》 中的敏感性分析 sensitivity analysis 以及影响力函数的思想,它们衡量了单个训练样本对于参数的影响。给定节点 v ,我们研究都有哪些其它节点会影响节点 vrepresentation。从这个影响范围,我们可以了解到节点 v 获取有效信息的邻域范围大小。

    我们通过衡量节点 y 的输入特征的变化对节点 xfinal representation 的影响程度,从而测量节点 x 对节点 y 的敏感度(或者节点 y 对节点 x 的影响)。对于任何节点 x ,影响力分布捕获了所有其它节点对节点 x 的相对影响。

  2. 影响力得分和分布的定义:给定一个图 G=(V,E) ,令 hx(0) 为节点 x 的输入特征向量,hx(l) 为节点 x 在网络第 l 层的 hidden featurehx(L) 为节点 xfinal representation

    定义雅可比矩阵:

    J(x,y)=[hx(L)hy(0)]=[hx,1(L)hy,1(0)hx,2(L)hy,1(0)hx,dh(L)hy,1(0)hx,1(L)hy,2(0)hx,2(L)hy,2(0)hx,dh(L)hy,2(0)hx,1(L)hy,df(0)hx,2(L)hy,df(0)hx,dh(L)hy,df(0)]

    定义节点 y 对节点 x 的影响力得分 influence score 为:雅可比矩阵 J(x,y) 的各元素的绝对值之和:

    I(x,y)=s=1dft=1dh|J(x,y)s,t|

    其中:J(x,y)s,t 为雅克比矩阵 J(x,y) 的第 s 行第 t 列。

    定义节点 x 的影响力分布 influence distribution 为:所有节点对于节点 x 的影响力得分的归一化分布:

    Ix(y)=I(x,y)zVI(x,z)Ix=(Ix(v1),,Ix(vn))

    对于任何节点 x ,影响力分布 Ix 捕获了图中所有节点对它的 representation 的影响。

  3. 考虑在 G~ 上从节点 v0 开始的随机游走。假设在第 t 步随机游走到节点 vt ,则第 t+1 步均匀随机地移动到 vt 的任何邻居节点(包括 vt 自身)。因此,节点 v0 开始的随机游走的分布为:

    Pt(i)=Prob(vt=i)

    其物理意义为:随机游走第 t 步到达节点 i 的概率。

    类似的定义适用于具有非均匀转移概率的随机游走。

    随机游走分布的一个重要属性是:如果图是非二部图non-bipartite,则它随着 t 的增加而扩散 spread ,并收敛到极限分布。收敛速度取决于以节点 v0 开始的子图结构,并受到随机游走转移概率矩阵的spectral gap (或者 conductance) 的限制bounded

15.1.2 模型分析

  1. 不同聚合模型和节点的影响力分布可以深入了解各个 representation 所捕获的信息。以下结果表明:常见的聚合方法的影响力分布和随机游走分布密切相关。这些观察暗示了我们接下来要讨论的优缺点。

    假设 relu 在零点的导数也是零(实际上 relu 函数在零点不可导),则我们得到 GCN 和随机游走之间的关系:

    定理:给定一个 L 层的 GCN 变体,假设以相同的成功率 ρ 激活了模型计算图中的所有路径。则任意节点 x 的影响力分布 Ix 等价于(在期望上)在 G~ 上从节点 x 开始的 L 步的随机游走分布。

    证明:令 fx(l)hx(l) 经过激活函数之前的值,即:

    fx(l)=Wl1deg~(x)uN~xhu(l1)

    则有:

    hx(l)hy(0)=1deg~(x)diag(1fx(l)>0)WluN~xhu(l1)hy(0)

    这里我们简化了 σ() 函数的梯度,认为:

    δ(x)=σ(x)x={1,x>00,x0

    这里 diag(1fx(l)>0) 为对角矩阵:

    diag(1fx(l)>0)=[δ(fx,1(l))000δ(fx,2(l))000δ(fx,dh(l))]

    假设存在 Ψ 条从节点 x 到节点 y 的、长度为 L+1 的路径,其中第 p 条路径记作:

    Pathp=(vp(L),vp(L1),,vp(0))

    其中 vp(L)=x,vp(0)=y,vp(l1)N~(vp(l))

    则根据链式法则,我们有:

    hx(L)hy(0)=p=1Ψ[hx(L)hy(0)]p=p=1Ψl=L11deg~(vp(l))diag(1fvp(l)(l)>0)Wl

    对于每条路径 Pathp ,偏导数 [hx(L)hy(0)]p 定义了一个从节点 x 开始、节点 y 结束、长度为 L 的有向无环计算图。这个计算图的输入大小和 W1 的大小相同。

    现在我们考虑偏导数 [hx(L)hy(0)]p 的第 ij 列的元素,它表示输入神经元 ihy(0) 的第 i 项)对输出神经元 jhx(L) 的第 j 项)的影响。考虑到给定路径 Pathp ,由于权重矩阵 Wl 的存在,从输入神经元 i 到输出神经元 j 存在很多更细粒度的路径。假设 ij 神经元粒度的路径数量为 Φwq(l) 表示 Wl 中用于计算第 q 条神经元粒度的路径的项, Zq 表示第 q 条神经元粒度的路径是否激活,则有:

    [hx(L)hy(0)]p(i,j)=l=L11deg~(vp(l))q=1ΦZqwq(l)

    其中 Zq 刻画了 relu 激活函数在 fvp(l)(l) 的第 q 条路径上的结果:

    Zq={1,if path q is activated0,else

    假设 Z 是伯努利分布的随机变量,对于所有路径 q 它的激活概率均为:Pr(Zq=1)=ρ 。则有:

    E[[hx(L)hy(0)]p(i,j)]=ρl=L11deg~(vp(l))wq(l)

    因此有:

    E[hx(L)hy(0)]=ρl=L1Wl(p=1Ψ1deg~(vp(l)))

    另外,我们知道从节点 x 开始的随机游走在第 L 步到达 y 的概率,可以通过从节点 xy 的所有长度为 L 的路径的概率之和来计算,即:

    p=1Ψl=L11deg~(vp(l))

    假设每一层的权重相同:W1==WL=W 。则影响力得分 I(x,z) 对于任何节点 z 的期望,等于从节点 x 开始经过 L 步随机游走之后达到节点 z 的概率,乘以对所有 z 都相同的项 ρW 。因此:则任意节点 x 的影响力分布 Ix (归一化后)等价于(在期望上)在 G~ 上从节点 x 开始的 L 步的随机游走分布(归一化后)。

    这里的证明缺少了很多假设条件的说明,因此仅做参考。

  2. 很容易修改上述定理的证明,从而得到 GCN 版本的近似结果。唯一区别在于,对于随机游走路径 Pathp=(vp(L),vp(L1),,vp(0)) ,其概率从 ρl=L11deg~(vp(l)) 变为:

    ρQl=L11deg~(vp(l))(deg~(x)deg~(y))1/2

    其中 Q 为归一化因子。因此二者的差异非常小,尤其是当 xydegree 接近时。

    类似地,我们也可以证明具有directional bias 的邻域聚合方案类似于有偏的随机游走分布。这可以通过替换掉上述定理中相应的概率得到证明。

  3. 从经验上看,我们观察到即使假设有所简化,但是我们的理论分析仍然接近于实际情况。

    我们可视化了训练好的 GCN 的节点(正方形标记)的影响力分布的热力图,并与从同一节点开始的随机游走分布的热力图进行比较。较深的颜色对应于较高的影响力得分(或者较高的随机游走概率)。我们观察到 GCN 的影响力分布对应于随机游走分布。

    为显示跳跃连接的效果,下图可视化了一个带跳跃连接的 GCN 的节点的影响力分布热力图。同样地,我们发现带跳跃连接的 GCN 的节点影响力分布大致对应于 lazy 随机游走分布(lazy 表示每步随机游走都有较高的概率停留在当前节点,这里 lazy 因子为 0.4 )。由于每次迭代过程中,所有节点的局部信息都以相似的概率进行保留,因此这无法适应不同高层节点的各种各样的需求。

  4. 为进一步理解上述定理,以及相应邻域聚合算法的局限性,我们重新审视了下图中社交网络的学习场景。

    • 对于 expander(左图)内部开始的随机游走以 O(log|V|)step 快速收敛到几乎均匀分布。根据前述的定理,在经过 L=O(log|V|) 层的聚合之后,每个节点的 representation 几乎受到 expander 中所有任何其它节点的影响。因此,每个节点的 representation 将代表 global graph,以至于过度平滑并带有节点自身的非常少的信息。
    • 对于 tree-like (右图)开始的随机游走,其收敛速度较慢。这使得经过消息传递模型的聚合之后,每个节点的 representation 保留了更多的局部信息。

    如果消息传递模型的层数 L 对所有节点都是统一固定的,那么模型很难在适应不同节点的影响力扩展速度以及影响力邻域大小这些差异。这使得难以为所有节点带来最佳的 representation

  5. 最后我们描述了热力图的相关细节,并提供了更多的可视化结果。

    热力图中的节点颜色对应于影响力分布得分或者随机游走分布的概率。颜色越浅则得分越低、颜色越深则得分越高。我们使用相同的颜色来表示得分(或者概率)超过 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 是基于公式 hv(l)=relu(WluN~vhu(l1)deg(v)×deg(u)) ,其中 v 为目标节点。对于节点 u 其权重为 1deg(v)×deg(u) 。相比较而言,随机游走概率分布中,节点 u 的权重为 1deg~(v)

        这使得在 GCN 影响力模型中,degree 更大的节点,其权重越低。

    • 然后我们考察了不同子结构,这些可视化结果进一步支持了前述的定理。

      • 下图中,使用 2 层的 GCN 模型分类错误,但是使用 3 层或 4GCN 模型分类结果正确。

        当局部子图结构是 tree-like 时,如果仅仅使用 2GCN (即查看 2-hop邻域),则抽取的信息不足以支撑其预测正确。因此,如果能够从 3-hop 邻域或 4-hop 邻域中抽取信息,则可以学到节点的局部邻域的更好表示。

      • 下图中,使用 34 层的 GCN 模型分类错误,但是使用 2GCN 模型分类结果正确。这意味着从 3-hop4-hop 邻域中抽取了太多无关的信息,从而使得节点无法学到正确的、有助于预测的 representation

        • expander 子结构中,随机游走覆盖的节点爆炸增长,3-hop 或者 4-hop 几乎覆盖了所有的节点。因此这种全局信息的 representation 对于每个节点的预测不是很理想。
        • bridge-like 子结构中,抽取更远的节点的信息可能意味着从一个完全不同的 community 中获取信息,这可能意味着噪音并影响最终预测。

15.1.3 JK-Net

  1. 前述观察提出了一个问题,即:在通用聚合方案中使用固定的、但是结构依赖的影响力半径大小是否能够实现所有任务中节点的best representation

    • 如果选择的影响力半径过大,则可能导致过度平滑 oversmoothing
    • 如果选择的影响力半径国小,则可能导致聚合的信息量不足。

    为此,我们提出了两个简单有效的体系结构调整:跳跃连接 + 自适应选择的聚合机制。

    如下图所示为 JK-Net 的主要思想。

    • 和常见的邻域聚合网络一样,每一层都是通过聚合来自上一层的邻域来扩大影响力分布的范围。
    • 但是在最后一层,对于每个节点我们都从所有的这些 itermediate representation 中仔细挑选(jump 到最后一层),从而作为最终的节点 representation

    由于这是针对每个节点独立完成的,因此模型可以根据需要为每个节点调整有效邻域范围,从而达到自适应的效果。

    可以理解为常规的 GCN 模型之上再添加一个聚合层。

  2. JK-Net 也使用通用的层聚合机制,但是最终的节点 representation 使用自适应选择的聚合机制。这里我们探索三种主要的聚合方法,其它方法也可以在这里使用。

    hv(1),,hv(L) 为节点 v 的中间 representation (每个中间层代表了不同的影响力范围),并将它们 jump 到最后一层。

    • concatenation 聚合:直接拼接 [hv(1),,hv(L)] 是最简单直接的方法。拼接之后可以执行一个线性变换 W[hv(1),,hv(L)]

      • 如果这个线性变换的权重 W 在所有节点之间共享,则这种方式不是 node-adaptive 的。
      • 如果这个线性变换的权重 W 对每个节点都有不同,从而以适应于整个数据集的方式聚合子图的特征,则这种方式是 node-adaptive 的。

      W 的权重共享通常应用在比较小的图或者结构比较规则的图上,因为这些图需要较少的自适应性。并且权重共享也有助于减少过拟合。

    • max-pooling 聚合:对 {hv(1),,hv(L)} 执行逐元素的最大池化从而对每个特征维度feature coordinate选择信息最丰富的layer 。这种方式是自适应的,并且不会引入任何其它额外的学习参数。

    • LSTM-attention 聚合:注意力机制通过对每个节点 v 计算每层 l 上的注意力得分 sv(l) 来表示第 l 层学到的 representation 对于节点 v 的重要性。其中 l=1Lsv(l)=1 。最终节点 v 聚合后的 representation 为所有中间层的 representation 的加权平均:lsv(l)hv(l)

      对于 LSTM-attention

      • 先将 {hv(1),,hv(L)} 作为一个双向 LSTM 的输入,并对每层 l 产生一个前向 LSTM hidden feature fv(l) 、一个后向 LSTM hidden feature bv(l)
      • 然后通过对层 l 的拼接 hidden feature [fv(l),bv(l)] 进行线性映射,从而产生得到标量的重要性得分 sv(l)
      • 然后通过一个 softmax layer 应用到 {sv(l)}l=1L ,从而执行归一化,得到节点 v 在不同层上的 attention 得分。
      • 最后,将 [fv(l),bv(l)] 按照 attention 得分的加权和,作为节点 v 的最终 final representation

      LSTM-attentionnode-adaptive 的,因为不同节点的 attention score 是不同的。实验表明,这种方法适用于大型复杂的图。由于其相对较高的复杂度,会导致在小型图上过拟合。

      另外,也可以将 LSTM 和最大池化相结合,即 LSTM max-pooling

      这种 LSTM 聚合的方式太复杂,可以简单地基于 {hv(1),,hv(L)} 来计算一个注意系数,然后基于注意力来聚合。

    JK-Net 的实现比较简单,大量的篇幅都在形容理论。但是,这里的理论仅仅是解释问题,并没有解决问题。这里的 layer aggregation 方式既没有理论解释,也没有解决问题(针对不同的节点自适应地选择不同的邻域大小):

    • 为什么如此聚合?论文未给出原因。
    • 不同的聚合方式代表了什么样的领域大小?这里也没有对应的物理解释。
  3. 层聚合layer aggregation 函数设计的关键思想是:在查看了所有中间层学到的 representation 之后,确定不同影响力范围内子图representation 的重要性,而不是对所有节点设置固定的、相同的影响力范围。

    假设 relu 在零点的导数也是零(实际上 relu 函数在零点不可导),则 layer-wise max-pooling 隐式地自适应地学习了不同节点的局部影响力。layer-wise attention 也是类似的。

    推论:假设计算图中相同长度的路径具有相同的激活概率 ρ ,则在一个采用了 layer-wise max-poolingLJK-Net 中,对于任意 x,yV 的影响力得分 I(x,y) 等价于 G~ 中从 xy0,,L 步随机游走分布的期望的加权和,加权系数依赖于 hx(l) 的值。

    证明:假设经过层聚合之后节点 x 的的 representationhx(final),令 [hx(final)]i 为它的第 i 项元素。对于任意节点 y ,我们有:

    I(x,y)=i[hx(final)]ihy(0)1=i[hx(ji)]ihy(0)1

    其中 ji=argmaxl([hx(l)]i)

    根据前述的定理,我们有:

    E[I(x,y)]=lcx(l)zlE[Ix(y)(l)]

    其中:

    • Ix(y)(l) 为从节点 x 到节点 y 经过 l 步随机游走的概率。
    • zl 为归一化因子。
    • cx(l)hx(l) 通过最大池化选择的项乘以某个比例系数。
  4. 下图给出了采用 max-pooling6JK-Net 如何学习从而自适应引文网络上不同的子结构。

    • tree-like 结构中,影响力仍然停留在节点所属的 small community 中。

      相反,在 6GCN 模型中,影响力可能会深入到与当前节点不想关的其它 community 中;而如果使用更浅层的 GCN 模型,则影响力可能无法覆盖当前节点所在的 community

    • 对于 affiliate to hub (即 bridge-like)节点,它连接着不同的 communityJK-Net 学会了对节点自身施加最大的影响,从而防止将其影响力扩散到不想关的community

      GCN 模型不会捕捉到这种结构中节点自身的重要性,因为在几个随机游走step 之后,停留在 bridge-like 节点自身的概率很低。

    • 对于 hub 节点(即 expander),JK-Net 会在一个合理范围内将影响力扩散到相邻节点上。这是可以理解的,因为这些相邻节点和 hub 节点一样,都具有信息性。

  5. JK-Net 的结构有些类似于 DenseNet,但是一个疑问是:是否可以像 DenseNet 一样在所有层之间都使用跳跃连接,而不仅仅是中间层和最后一层之间使用跳跃连接。如果在所有层之间都使用跨层的跳跃连接,并使用 layer-wise concatenation 聚合,则网络结构非常类似于 DenseNet

    graph theory 角度审视 DenseNet,图像对应于规则的 graph ,因此不会面临具有变化的子图结构的挑战。确实,正如我们在实验中看到的,使用 concatenation 聚合的模型在更规则的图(如图像、结构良好的社区)上表现良好。

    作为更通用的框架,JK-Net 接受更通用的 layer-wise 聚合模型,并在具有更复杂结构的图上实现更好的 structure-aware representation

15.2 实验

  1. 数据集:

    • 引文网络数据集 (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 个图作为测试。

    数据集的统计信息如下表所示:

  2. baseline 模型:GCNGraphSageGAT

  3. 实验配置:

    • transductive 实验中,我们只允许访问单个图中的节点子集作为训练数据,剩余节点作为验证集/测试集。

      Citeseer, Cora, Reddit 数据集上的实验是 transductive 的。

    • inductive 实验中,我们使用多个完整的图作为训练数据,并使用训练时未见过的、剩余的图作为验证集/测试集。

      PPI 数据集上的实验是 inductive 的。

  4. 对于 CiteseerCora 数据集,我们选择GCN 作为 base 模型,因为在我们的数据集实验中它超越了 GAT

    我们分别选择 MaxPooling(JK-MaxPool)Concatenation(JK-Concat)LSTM-attention(JK-LSTM) 作为最终聚合层来构建 JK-Net。在进行最终聚合时,被聚合的 representation 除了图卷积中间层的 representation 之外,我们还考虑了第一个线性变换的 representation (可以理解为第零层的 representation)。最终预测是通过 final 聚合层的 representation 之上的全连接层来完成。

    我们将每个图的节点根据 60%:20%:20% 的比例随机拆分为训练集、验证集、测试集。对于每个模型,我们将层数从 16 ,针对验证集选择性能最佳的模型(及其对应的卷积层深度)。

    JK-Net 配置:

    • 学习率为 0.005Adam 优化器。
    • 比例为0.5dropout
    • {16,32} 中选择 hidden feature 维度(Citeseer16Cora32 )。
    • 在模型参数上添加 0.0005L2 正则化。

    每组实验随机执行3 次并报告准确率 accuracy 的均值和标准差(标准差在括号中给出),实验结果如下表所示。可以看到:

    • 就预测准确率而言,JK-Net 优于 GATGCN 这两个baseline

    • 尽管 JK-Net 总体表现良好,但是没有始终如一的赢家,并且各个数据集上的性能略有不同。

    • 模型名字后面括号中的数字(1~6 之间)表示表现最佳的层数。仔细研究 Cora 的结果发现:

      • GCNGAT 都在模型为2 层或 3 层时才能达到最佳准确率。这表明局部信息比全局信息更有助于分类。

        层数越浅,则表明邻域范围越小,则表明是局部信息。

      • JK-Net 在模型为 6 层上获得最佳性能,这表明全局信息和局部信息事实上都有助于提高性能。这就是 JK-Net 这类模型发挥价值的所在。

    • LSTM-attention 可能由于复杂性太高,从而不适用于此类小模型。因此 JK-LSTM 在这两个数据集中表现最差。

  5. 对于 Reddit 数据集,由于它太大使得无法由 GCNGAT 很好地处理。因此我们使用可扩展性更高的 GraphSAGE 作为 JK-Netbase 模型。

    GraphSAGE 中存在不同的节点聚合方式,我们分别使用 MeanPoolMaxPool 来执行节点聚合,然后跟一个线性变换。考虑到 JK-Net 最后一层的三种聚合模式MaxPooling、Concatenation、LSTM-attention ,两两组合得到 6JK-Net 变体。

    我们采用和原始论文完全相同的 GraphSAGE 配置,其中模型由两层卷积层组成,hidden layer 维度为 128 维。我们使用学习率维 0.01Adam 优化器,无权重衰减。

    实验结果如下表所示,评估指标维 Micro-F1 得分。结论:

    • 当采用 MaxPool 作为节点聚合器、Concat 作为层聚合器时,JK-Net 获得了最佳的 Micro-F1 得分。

      注意:原始的 GraphSAGEReddit 数据集上的表现已经足够好(Micro-F1 = 0.950),JK-Net 继续将错误率下降了 30%

    • Reddit 数据集中的社区是从表现良好的中等规模大小的社区中挑选而来,这是为了避免太大的社区中包含大量噪音、太小的社区是 tree-like 的。结果,该图比原始 Reddit 数据集更加规则,因此不会出现子图结构多样性的问题。

      在这种情况下,node-specific 自适应邻域选择所增加的灵活性可能不是那么重要,而 concatenation 的稳定特点开始发挥作用。这也是为什么 JK-Concat 效果较好的原因。

  6. 对于 PPI 数据集,我们用它来证明自适应 JK-Net 的强大能力,该数据集的子图结构比 Reddit 数据集的子图结构更多样和复杂。

    我们将 GraphSAGEGAT 都作为 JK-Netbase modelGraphSAGEGAT 有很大的区别:GraphSAGE 基于采样,其中对每个节点的邻域采样固定的邻居数量;GAT 基于 attention,它考虑每个节点的所有邻居。这种差异在可扩展性和性能方面导致巨大的差距。鉴于 GraphSAGE 可以扩展到更大的图,因此评估 JK-NetGraphSAGE 上的提升显得更有价值。但是我们的实验在二者上都进行。我们的评估指标为 Micro-F1 得分。

    • 对于 GraphSAGE,我们遵循 Reddit 实验中的配置,只是在可能的情况下使用 3 层网络,并训练 1030epoch。带有 * 的模型采用2 层(由于 GPU 内存限制),其它模型采用 3 层。作为对比,采用两层的 GraphSAGE 性能为 0.6 (未在表中给出)。

      实验结果见下表。

    • 对于 GAT 及其 JK-Net 变体,我们使用两层或三层网络,其中有 4attention head,每个 head256 维(共 1024 维)。最后一个预测层有 6attention head,每个head121 维。我们将这 6head 执行均值池化,并灌入到 sigmoid 激活函数。我们在中间 attention 层之间引入跳跃链接。

      所有这些模型都使用学习率为 0.005Adam 优化器,并使用 batch size = 2mini-batch 训练。

      我们的 baselineGATMLP 模型,网络层数从 2,3 之间选择。由于 GPU 内存限制,JK-Dense-ConcatJK-Dense-LSTM 的层数为 2

      实验结果见下表。

    • 结论:

      • 带有 LSTM-attention 聚合器的JK-Net 超越了具有 concatenation 聚合器的非自适应性 JK-Net 模型,以及 GraphSAGE/GAT/MLPbaseline 模型。
      • 在训练 30epoch 之后,JK-LSTMMicro-F1 得分上比 GraphSAGE 高出 0.128(绝对提升)。
      • 结构感知的节点自适应模型在 PPI 这类具有不同结构的复杂图上特别有效。

十六、PPNP[2018]

  1. 目前有很多流行的图神经网络算法。

    • 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 的半监督分类模型。

  2. 在传统的消息传递方法中, propagationclassification 固有地耦合在一起,即 classification 依赖于 propagation。但是在 PPNP 中,作者将 propagationclassification 解耦,使得二者相互独立。这使得我们能够在不改变神经网络的情况下实现更大的邻域。而在消息传递方法中,如果想多传递一个 step 就需要多加一个 layer

    PPNP 的基本思想是:首先预测节点的标签(classification 步骤),然后利用标签传播算法重新修正得到最终的标签(propagation 步骤)。这种方法有效的前提是:相邻节点具有相似的 label

    PPNP 还允许传播算法、以及根据节点特征执行预测的神经网络独立开发。这意味着我们可以将任何 state-of-the-art 预测方法和PPNP 的传播算法相结合。作者甚至发现:在训练期间没有使用到任何图结构信息的模型,仅在inference 阶段使用PPNP 的传播算法可以显著提升模型预测的准确性。

  3. 相关工作:

    • 有些工作试图在每个节点添加跳跃连接,从而改善消息传递算法的训练,以及增加每个节点上可用的邻域大小。如,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 相比,训练速度会更快更容易。

16.1 模型

  1. 定义图 G=(V,E) ,其中 V={v1,,vn} 为节点集合, E={ei,j} 为边集合, n 为节点数量, m 为边数量。

    假设每个节点 vi 关联一个特征向量 xiRdfdf 为特征向量的维度。所有节点的特征向量组成的矩阵为特征矩阵 XRn×df ,其中第 i 行为 xi

    假设每个节点 vi 关联一个类别 yi ,类别数量为 K 。我们将 yi 扩展为一个 one-hot 向量 yiRK 。所有节点的类别向量组成的矩阵为类别矩阵 YRn×c ,第 i 行为 yi

    假设图的邻接矩阵为 ARn×n ,则 A~=A+In 为添加了自循环self-loops 的邻接矩阵。

16.1.1 GCN 及其限制

  1. 卷积神经网络GCN是一种用于半监督分类的简单且应用广泛的消息传递算法。假设有两层消息传递,则预测结果为:

    Z=softmax(A~^relu(A~^XW0)W1)

    其中:

    • A~^=D~1/2A~D~1/2Rn×n 为一个对称矩阵,它是带自循环的邻接矩阵的归一化形式。 D~ 为一个对角矩阵, D~i,i=jA~i,j
    • ZRn×K 为每个节点预测的 label 分布。
    • W0,W1 为待训练的权重矩阵。

    对于两层 GCN,它仅考虑 2-hop 邻域中的邻居节点。基本上有两个原因使得消息传递算法(如 GCN)无法自然地扩展到使用更大的邻域:

    • 首先,如果使用太多的层,则基于均值的聚合会导致过度平滑over-smoothing。因此,模型失去了局部邻域的信息。
    • 其次,最常用的邻域聚合方案在每一层使用可学习的权重矩阵,因此使用更大的邻域必然会增加神经网络的深度和参数数量。虽然参数数量可以通过权重共享来避免,但这不是通用的做法。

    理论上,邻域大小和神经网络的深度是不相关的、完全正交的两个因素。它们应该互不影响才对。实际上在 GCN 中它们是相互捆绑的(给定神经网络深度就意味着给定了邻域大小),并导致了严重的性能问题。

  2. 我们首先关注第一个问题。在 JK-Net 中已经证明:对于一个 L 层的 GCN,任意节点 y 对节点 x 的影响力得分 I(x,y)=s=1dft=1dh|J(x,y)s,t| 正比于在 G~ (每个节点带自循环的 G )上从节点 x 开始到 yL 步的随机游走概率 Prw(xy,L)。 其中雅可比矩阵 J(x,y)=[hx(L)hy(0)] 。因此节点 x 的信息以随机游走的方式传播到节点 y

    如果选择极限 L,且图是不可约的 irreducible 且非周期性的,则这个随机游走概率分布 Prw(xy,L) 收敛到极限分布(或称作平稳分布) Plim(y) 。可以通过求解方程来获得该分布:

    πlim=A~^πlim

    显然,极限分布取决于整个图,并且独立于随机游走的起始节点 x (或称作根节点)。因此,极限分布不适合描述根节点 x 的局部邻域(因为它与节点 x 无关)。

16.1.2 PPNP

  1. 我们可以考察极限分布和 PageRank 之间的联系来解决这个局部邻域失去焦点 lost focus 问题。

    极限分布和 PageRank 的区别仅在于前者在邻接矩阵中增加了自循环,并对分布进行了归一化。原始的 PageRank 的分布为:

    πpr=Arwπpr

    其中 Arw=AD1Rn×n

    建立这种联系之后,我们现在可以考虑使用结合了根节点的 PageRank 变体 -- Personalized PageRank

  2. 我们定义回传向量 teleport vector ix 来表示根节点 x :它是一个 one-hot 向量,只有节点 x 对应的元素为1 、其它元素为 0

    对于节点 x ,其 Personalized PageRank 的分布为:

    πppr(x)=(1α)A~^πppr(x)+αix

    其中 α(0,1] 为回传概率 teleport probability (也叫做重启概率)。

    通过求解该等式,我们得到:

    πppr(x)=α(In(1α)A~^)1ix

    可以看到:通过使用回传向量 ix 之后,即使在极限分布中我们也能够保留节点 x 的局部邻域。

    因为在该模型中,节点 y 对根节点 x 的影响力得分 I(x,y) 正比于 πppr(x) 的第 y 个元素。对于每个根节点,该元素值都不相同。参数 α 决定了当我们远离根节点时,影响力得分的衰减速度。

  3. 考虑所有节点的回传向量,则我们得到了完整的 Personalized PageRank 矩阵 ΠpprRn×n

    Πppr=α(In(1α)A~^)1

    其中 Πppr 的第 x 列表示 πppr(x) 。因此元素 Πppr(y,x) 正比于节点 y 对节点 x 的影响力得分。

    注意到由于对称性 Πppr=Πppr ,因此节点 y 对节点 x 的影响力得分总是等于节点 x 对节点 y 的影响力得分。

    事实上这里需要考虑矩阵 In(1α)A~^ 是否可逆,如果不可逆则 Πppr 不存在。当且仅当 In(1α)A~^ 可逆时, Πppr 才存在。可以证明 Πppr 一定存在。

    证明:要想证明矩阵 Πppr=α(In(1α)A~^)1 存在,则需要证明 det(In(1α)A~^)0

    由于 1α0 ,因此要想证明 det(In(1α)A~^)0 ,则需要证明 det(A~^1(1α)In)0

    通过 Gershgorin circle theorem 可以证明 A~^ 的最大特征值为 1,因此 11α>1 一定不是 A~^ 的特征值,因此 det(A~^1(1α)In)0 。因此证明了 Πppr 一定存在。

  4. 为了将上述影响力得分用于半监督分类,我们首先根据每个节点的自身特征来生成预测 prediction,然后通过我们的 Personalized PageRank 机制来传播prediction 从而生成最终的预测结果。这就是personalized propagation of neural predictions: PPNP 的基础。

    PPNP 模型为:

    hi=fθ(xi)Z=softmax(ΠpprH)

    其中:

    • fθ() 为神经网络,θ 为网络参数,它根据节点 i 的特征 xi 来生成节点 i 的预测 hiRKHRn×K 为所有节点根据其特征来生成的预测的矩阵,每行对应一个节点。

      注意:由于 fθ() 在每个节点的特征上独立执行,因此可以并行进行。

    • ZRn×KPPNP每个节点预测的 label 分布。

    事实上,还可以用任何传播矩阵来代替 A~^ ,如 Arw

    可以看到,PPNP 将神经网络预测和图的传播相互分离。这种分离还解决了上述提到的第二个问题:神经网络的深度现在完全独立于传播算法。正如我们将在 GCNPageRank 联系时所看到的,Personalized PageRank 能够有效地使用无限多个卷积层,这在传统的消息传递框架中显然是不可能的。此外,分离还使得我们可以灵活地运用任何方法来生成预测。

    这个就是标签传播 label propagation: LP 的思想,将 MLPLP 相结合。该方法有效的前提是:相邻节点具有相似的 label

    PPNP 传播的是 prediction,而传统 GCN 传播的是 representation

  5. 虽然在 inference 阶段,生成单个节点的预测和传播这个预测是连续进行的(看起来是多阶段的),实际上模型的训练是端到端的。即,在反向传播期间梯度流经传播框架(相当于隐式地考虑了无限多个邻域聚合层)。因此,采用传播框架之后大大提高了模型的准确性。

16.1.3 APPNP

  1. 直接计算完整的 Personalized PageRank 矩阵 Πppr 的计算效率较低,并且产生了一个稠密的 Rn×n 的矩阵。使用这个稠密矩阵将导致训练和推断时 O(n2) 的计算复杂度和空间复杂度。

    为解决这个问题,重新考虑等式:

    T=ΠpprHZ=softmax(T)

    除了将 T 视为稠密的 Personalized PageRank 矩阵 Πpprprediction 矩阵 H 的乘积之外,还可以将其视为 Topic-sensitive PageRank 的变体,其中每个类别对应于一个主题。在这个角度下,H 的每一列都定义了一个在所有节点上的分布(非归一化的),这个分布充当 teleport set 。因此,我们可以通过采用 Topic-sensitive PageRank 来近似计算 PPNP,我们称其为 approximate personalized propagation of neural predictions: APPNP

    APPNP 通过 Topic-sensitive PageRank 的幂次迭代 power iteration 来达到线性复杂度。Topic-sensitive PageRank 的幂次迭代和带重启的随机游走相关,它的每个幂次迭代步定义为:

    T(0)=H=fθ(X)T(l+1)=(1α)A~^T(l)+αHZ=softmax((1α)A~^T(L1)+αH)

    其中:prediction 矩阵 H 扮演了 starting vectorteleport set 的作用;L 定义了幂次迭代的数量。

    注意:这个方法保持了图的稀疏性,并且从未构建一个 Rn×n 的矩阵(H,T(l),Z 都是 Rn×K,Kn )。

    但是, A~=A+InRn×n 的稠密矩阵,A~^A~ 的归一化形式,因此也是稠密矩阵。A~^T(l) 的计算复杂度为 O(n2K) ,对于千万甚至亿级的图而言,这个计算复杂度仍然是不可行的。

  2. 可以证明:当 L 时, APPNP 收敛到 PPNP

    证明:APPNP 的迭代公式:

    T(l+1)=(1α)A~^T(l)+αH

    在经过 L 步传播之后:

    T(L)=((1α)LA~^L+αi=0L1(1α)iA~^i)H

    当取极限 L 时,第一项趋近于零,第二项为一个几何级数。当 α(0,1] 时,另外考虑到 A~^ 为对称的归一化邻接矩阵,因此有 det(A~^)1 ,因此第二项收敛。因此有:

    T()=α(In(1α)A~^)1H=ΠpprHZ=softmax(T())=softmax(ΠpprH)

    这就是 PPNP

  3. PPNP/APPNP 的传播框架 propagation scheme 不需要训练任何其它额外的参数。与 GCN 这样的模型不同,GCN 通常需要为每个 propagation layerGCN 中的传播层就是聚合层)提供更多的参数。因此,PPNP/APPNP 中可以使用很少的参数传播得更远。实验结果表明:这种传播能力确实非常有益。

  4. PPNP 视为不动点fixed-point 迭代,这和最原始的图神经网络 GNN 模型存在关联。图神经网络中也是需要通过迭代来求解不动点,但是PPNPGNN 存在以下几点不同:

    • PPNP 的不同点迭代实际上通过 Personalized PageRank 已经求解到,因此直接使用 Personalized PageRank 矩阵 Πppr 。无需一步一步地迭代计算。
    • PPNP 在传播之前应用学到的特征变换,而 GNN 中在传播过程中应用学到的特征变换。
  5. PPNP/APPNP 中,影响每个节点的邻域大小可以通过回传概率 α 进行调整,这可以使得我们能够针对不同类型的图(不同的图需要考虑不同的邻域大小)来优化模型。

    α 越大,则停留在局部的概率越大,邻域越小;反之,则邻域越大。

  6. 最后,我们给出 PPNP 模型的示意图。

    • 首先利用神经网络 fθ() 来对每个节点的特征 xi 来生成预测 hi
    • 然后使用 Personalized PageRank 来传播预测 hi

    注意该模型是端到端训练的,而不是 pipeline 训练的。

16.2 实验

  1. 数据集:我们使用四个文本分类数据集。

    • CITESEER:引文网络,每个节点代表一篇论文,边代表它们之间的引用。
    • CORA-ML:引文网络,每个节点代表一篇论文,边代表它们之间的引用。
    • PUBMED:引文网络,每个节点代表一篇论文,边代表它们之间的引用。
    • MICROSOFT ACADEMIC 数据集:引文网络,每个节点代表一篇论文,边代表 co-authorship

    对于每个图,我们使用其最大连通分量。所有数据集都使用论文摘要的 bag-of-word 作为特征。下图给出了这些数据集的统计信息,其中 SP 表示平均最短路径长度。

    注意:更大的图不一定具有较大的直径(以 SP 来衡量)。总体而言,这些图的平均直径为 5~10,因此常规的两层 GCN 网络无法覆盖整个图。

  2. 因为使用了不同的训练配置和过拟合,很多实验评估都遭受了肤浅的统计评估superficial statistical evaluation 和实验偏差experimental bias

    实验偏差的原因是:对于训练集/验证集/测试集的单次拆分没有明显区分验证集和测试集,或者对于每个数据集甚至是数据集的每次拆分都微调超参数。正如我们评估结果中显示的,消息传递算法对于数据集的拆分以及权重初始化非常敏感,因此精心设计的评估方法非常重要。

    我们的工作旨在建立一个全面彻底的评估方法:

    • 首先,我们对每个实验执行 100 次,其中每次都是随机拆分训练集并随机初始化权重。我们采用 Glorot 权重初始化方法。

    • 其次,我们将数据集拆分为可见集和测试集,这种拆分固定不变。其中测试集仅用于报告最终性能,并不会进行训练和超参数择优。

      • 对于引文网络,可见集采样了 1500 个节点,剩余节点为测试集。
      • 对于 MICROSOFT ACADEMIC 网络,可见集采样了 5000 个节点,剩余节点为测试集。

      可见集被随机拆分为训练集、验证集、以及早停集。训练集中每种类别包含 20 个节点,早停集包含 500 个节点,剩余节点作为验证集。

      我们选择20个不同的随机数种子并固定下来,接下来选择其中的一部分用于随机拆分可见集--测试集、另一部分用于随机拆分训练集--验证集。 另外,每种数据拆分都进行 5 次随机初始化,因此实验一共进行 100 次。

    • 为进一步防止过拟合,考虑到所有实验的数据集都使用 bag-of-word 特征,因此我们对所有数据集都采用相同数量的层数、相同的hiddel layer 维度、相同的 dropout 比例、相同的 L2 正则化参数、 相同的学习率。

    • 为防止实验偏差,我们使用 CITESEERCORA-ML 上的网格搜索来分别优化所有模型的超参数,并在模型之间使用相同的早停准则:patience = 100 的阈值,以及最多 10000epoch(实际上永远无法达到这么多 epoch)。

      只要在早停数据集的准确率提升或者损失函数降低,则重设 patience。我们选择在早停数据集上准确率最高的 patience。该准则受到 GAT 的启发。

    • 最后,为了确保我们实验配置的统计鲁棒性,我们通过 bootstrapping 计算出置信区间,并报告主要结论的 t-testp-value

    据我们所知,这是迄今为止对 GCN 模型的最严格的研究。

  3. Baseline 方法:

    • GCN:图卷积神经网络。
    • N-GCN :结合了无监督的随机游走和半监督学习两方面优势的 N-GCN 模型。
    • GAT :图注意力神经网络。
    • bootstrapped feature propagation: FP :将经典的线性的图扩散结合 self-training 框架,从而得到的 FP 网络。
    • jumping knowledge networks with concatenation: JKJK-Net 网络。
    • 对于 GCN 我们还给出了未经过超参数优化的普通版本 V.GCN 来说明早停和超参数优化的强大影响。
  4. 模型配置:

    • V.GCN:使用原始论文的配置,其中包括两层的卷积层、隐层维度 h=16、邻接矩阵上不使用 dropoutL2 正则化系数 λ=5×104 。并且采用原始论文的早停配置:在损失函数上最多迭代 200step,以及早停的 patience = 10

    • 择优的 GCN:使用两层卷积层、隐层维度 h=64、邻接矩阵上使用 dropout rate = 0.5dropoutL2 正则化系数为 λ=0.02

    • N-GCN:每个随机游走长度使用 4head 以及隐层维度 h=16,随机游走长度从 1 step4 step 。使用 λ=105L2 正则化来正则化所有层。使用 attention 机制来合并所有head 的预测。

    • GAT:使用优化好的原始论文的超参数,除了 L2 正则化系数为 λ=0.001 以及学习率为 0.01。和原始论文相反,对于 PUBMED 数据集我们并未使用不同的超参数。

    • FP:使用 α=0.2 的回传概率,以及 10 个传播 step10self-training step ,每个 step 增加 r=0.1×n 个训练节点。

      我们在预测中添加交叉熵最小的训练节点。每个类别添加的节点数基于预测的类别的比例。注意,该模型在初始化时不包含任何随机性,因此我们在每个 train/early stopping/test 集合拆分时仅拆分一次。

    • JK-Net:我们使用 concatenation 层聚合方案,采用三层卷积神经网络,每层的隐层维度 h=64 。对所有层采用 λ=0.001L2 正则化,并在所有层执行 dropout rate = 0.5dropout 。但是正则化和 dropout 并不作用在邻接矩阵上。

    • PPNP:为确保公平的模型比较,我们为 PPNP 的预测模型使用了神经网络,该网络在结构上和 GCN 非常相似,并具有相同的参数数量。我们使用两层网络,每层的隐层维度为 h=64

      我们在第一层的权重矩阵上应用 λ=0.005L2 正则化,在所有层的权重矩阵以及邻接矩阵上应用 dropout rate = 0.5dropout

      • 对于 APPNP,我们在每个幂次迭代步之后,都会对邻接矩阵的 dropout 重新采样。

      • 对于传播过程,我们使用 α=0.1 的重启概率,以及 L=10 个幂次迭代步。

        对于 MICROSOFT ACADEMIC 数据集,我们使用 α=0.2 的重启概率,因为该数据集的结构不同。

      注意:PPNP 使用浅层的神经网络和较大的 L 相结合,从而获得最佳效果。下图表示 APPNP 不同深度的网络对于验证集的准确率。可以看到:更深的预测网络无法提高准确率,这可能是因为简单的 Bag-of-word 特征以及训练集太小导致的。

    另外,我们使用 Adam 优化器并且所有模型的学习率都为 0.01 。我们使用交叉熵损失函数,并且将特征矩阵按行进行 L1 归一化。

  5. 不同模型在测试集上的指标如下表所示,其中第一张表为 Micro-F1 Score,第二张表为 Macro-F1 Score,最后两张表为 t 检验结果。* 表示模型在 PUBMED, MS ACADEMICOut Of Memory

    结论:

    • 我们的 PPNP/APPNP 在所有数据集上均明显优于 SOA baseline 方法。

    • 我们的严格的比较方式可能会低估 PPNP/APPNP 的优势。通过 t 检验表明,该比较结果具有统计学意义 p0.05

    • 这种严格的比较方式还表明:当考虑更多的数据集拆分、适当地超参数优化、合理地模型训练时,最近的一些工作(如 N-GCN, GAT, JK-Net, FP 等)的优势实际上消失了。

      在我们的配置中,一个简单的、经过超参数优化的 GCN 就超越了最近提出的这几种模型。

  6. 我们给出不同模型在不同数据集上,由于不同的随机初始化以及不同的数据集拆分带来的测试准确率的变化。这表明严格的评估方式对于模型比较的结论至关重要。

    此外,这还展示了不同方法的鲁棒性。如 PPNP, APPNP, GAT 通常具有较低的方差。

  7. 我们考虑不同模型的训练时间。这里考虑每个 epoch 的平均训练时间(而不是整个训练过程的时间)。我们并未考虑收敛速度(需要多少个 epoch 收敛),因为不同模型的超参数都各自调优,并且不同模型使用的 early stopping 准则不同(调优之后各自的 patience 不一样)。* 表示无法实现,因为无法训练;** 表示在 PUBMED, MS ACADEMICOut Of Memory

    结论:

    • PPNP 只能应用于中等规模的图,APPNP 可以扩展到大图。

    • 平均而言,APPNPGCN25%,因为 APPNP 的矩阵乘法的数量更多。但是 APPNP 的可扩展性和 GCN 相似。

      APPNPGCN 慢一些但是效果好一点点,所以这是一个速度和效果的 trade-off 。此外,如果 GCN 总的训练时间与 APPNP 相同(即,GCN25%epoch ),是否二者效果一致?这样的话,APPNP 就没有什么优势了。

    • APPNP 比其它更复杂的模型(如 GAT )快得多。

  8. 由于现实世界数据集的 label 比例通常很小,因此研究小样本模型的性能非常重要。下图依次给出 CORA_ML, CITESEER, PUBMED 数据集上,每个类别训练节点数量 ntrain,perclass 对于模型性能的影响(以测试准确率为指标)。

    结论:训练的label 节点越稀疏,PPNP/APPNP 的优势越大。这可以归因于 PPNP/APPNP 较高的传播范围,从而将label 节点传播到更远的地方。

    为支持这种归因,我们找到了更多的证据:我们比较了 APPNPGCN 的准确率的提升幅度 ,发现准确率提升幅度依赖于测试节点和训练集的距离(以最短路径衡量)。如下面最后一幅图所示,横坐标为最短路径(单位为 hop),纵坐标为提升幅度,n¯ 为该最短路径的测试节点数量。可以看到:APPNP 相对于 GCN 的性能提升,随着测试节点到训练集的距离的增加而增加。这表明距训练集较远的节点从 APPNP 的传播范围的增加中收益更多。

  9. 我们评估了幂次迭代power iteration 数量 L (原始论文用 K 来表示)对于模型准确性的影响。

    结论:

    • 对于 GCN-like(对应于 α=0 ,即全局的 PageRank 方法),其性能随着 L 的增加而下降。

    • 对于 APPNP(对应于 α=0.1 ,即 Personalized PageRank),其性能随着 L 的增加而提升。这证明了个性化传播确实是有效的。

      L 增加到无穷大时,APPNP 收敛到 PPNP。但是我们发现,当 L=10 时,APPNP 已经足以有效地逼近 PPNP。有趣的是,我们发现这个数字和数据集的半径相符。

  10. 我们评估了超参数 α (重启概率)对于模型准确率的影响。

    结论:

    • 尽管每个数据集的最优 α 略有不同,但是我们发现 α[0.05,0.2] 之间时模型表现最佳。
    • 应该对不同的数据集采用不同的 α ,因为不同的图展示出不同的邻域结构。

    注意:较高的 α 会提高模型训练的收敛速度。

  11. PPNPAPPNP 虽然分为预测网络 fθ 以及传播两个部分,但是它是端到端训练的。通过研究模型在没有传播时的表现,可以体现传播的价值。下图给出了传播如何影响模型训练和推断。

    • Never:表示从来不使用传播。这表示我们仅使用节点特征来训练和使用一个标准的多层感知机 MLP fθ
    • Training:表示我们使用APPNP 来训练模型(采用了传播),但是在inference 时仅使用 fθ 来预测(而不考虑传播)。
    • Inference:表示我们仅使用特征来训练多层感知机 fθ ,但是在 inference 时结合传播来预测。
    • Inf & Training :表示常规的 APPNP 模型,即在训练和 inference 时总是使用传播。

    结论:

    • Inf & Training 总是可以获得最佳结果,这验证了我们的方法。

    • 在大多数数据集上,仅在 inference 中使用传播时,准确率下降得很少。

      训练期间跳过传播可以大大减少大型数据集的训练时间,因为所有节点都可以独立地处理。

      这也表明我们的模型可以与不包含任何图结构信息的预训练神经网络相结合,并可以显著提高其准确性。

    • Training 相对于 Never 也有较大的改善。这表明仅在训练期间进行传播也是有价值的。因此我们的模型也可以应用于 online/inductive learning,其中只有特征信息(而不是观察到的邻域信息)可用。

十七、VRGCN[2017]

  1. 图卷积网络 graph convolution network: GCN 将卷积神经网络CNN 推广到图结构化数据。图卷积 graph convolution 操作对节点的所有邻居应用相同的线性变换,然后是均值池化和非线性激活函数。通过堆叠多个图卷积层,GCN 可以利用来自遥远邻居的信息来学习 node representationGCN 及其变体已被应用于半监督节点分类、inductive node embedding 、链接预测、 以及知识图谱,超越了不使用图结构的多层感知机 MLP 以及不使用节点特征的 graph embedding 方法。

    然而,图卷积操作使得 GCN 难以高效地训练。考虑一个 L 层的图卷积神经网络GCN,节点的第 l 层的 hidden feature 需要递归地通过其邻域内所有节点的第 l1hidden 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 算法中,他们并未考虑节点的所有邻居,而是为每个节点在第 l 层随机采样 D(l) 个邻居,如图 (b) 所示。这可以将感受野的大小减小到 lD(l) 。他们发现对于两层的 GCN 网络,选择 D(1)=10,D(2)=25 可以实现与原始 GCN 相当的性能。

    理论上当 D(l)=1 时(即每个节点的预测仅依靠它本身,不依赖任何其它邻域节点)计算效率最高,此时模型退化为基于节点的多层感知机 MLP 。虽然 Hamilton 的方法复杂度降低,但是仍然比 MLP 要大 D(1)×D(2)=250 倍,仍然无法让人满意。

    另外,使用基于邻域采样的随机训练算法能否确保模型收敛,尚无理论上的保证。

    在论文 《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 损失函数的局部最优值,而与采样大小 D(l) 无关。理论分析表明:VRGCN 可以通过仅对节点采样两个邻居节点来显著降低模型的时间复杂度,同时保持模型的质量。

    作者在六个 graph 数据集上对 VRGCN 进行了实验测试,并表明 VRGCN 显著降低了具有相同感受野大小的 NS 的梯度的偏差 bias 和方差 variance 。尽管仅采样 D(l)=2 个邻居,但是 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 倍。

17.1 模型

17.1.1 GCN

  1. 我们以半监督节点分类任务的 GCN 作为说明,当然我们的算法不局限于任务类型,也不局限于模型类型。我们的算法适用于任何涉及到计算邻居平均激活值的其它模型,以及其它任务。

  2. 给定图 G=(V,E) ,其中 V={v1,,vn} 为节点集合, E={ei,j} 为所有边集合, 边 ei,j=(vi,vj) 为无向边。

    每个节点 vV 关联一个特征向量 xv ,以及一个label yv 。在半监督学习场景中,我们只能观测到部分节点的 label,这部分节点的集合记作 VY 。我们的目标是预测剩余节点集合 VU=VVY 中每个节点的 label

  3. 定义邻接矩阵 AR|V|×|V| ,其中 Ai,j 表示节点 vi,vj 之间的链接权重,如果 vi,vj 之间不存在链接则 Ai,j=0 。由于是无向图因此 A 是对称矩阵。

    定义传播矩阵 propagation matrix PR|V|×|V| 为归一化的邻接矩阵:

    A~=I+AD~=diag(D~i,i),D~i,i=jA~i,jP=D~1/2A~D~1/2

    其中 A~ 为添加了 self-loop 的邻接矩阵。

    因此一个图卷积层可以定义为(假设当前为第 l+1 层):

    Z(l+1)=PH(l)W(l)H(l+1)=σ(Z(l+1))

    其中:

    • H(l) 为第 l 层的hidden feature 矩阵,也称作激活矩阵 activataion matrix

      vhv(l) 表示节点 vhidden feature 向量,也称作激活值 activation

    • H(0)=X 为输入的特征矩阵,第 vxv 表示节点 v 的特征向量。

    • W(l) 为第 l+1 层模型待学习的权重矩阵,它在所有节点上共享。

    • σ() 为非线性激活函数。

    假设 GCN 模型有 L 层,则GCN 模型的训练损失函数为:

    J=1|VY|vVYf(yv,zv(L))

    其中:

    • f(,) 为单个节点的损失函数。
    • zv(L)Z(L) 的第 v 行,表示节点 vfinal representation
  4. 卷积层通过 PH(l) 计算邻域均值,从而将邻域信息传递到当前节点。定义节点 v 的邻域集合为 Nv ,则节点 v 的邻域均值 hidden feature 向量为:

    nv(l)=u=1VPv,uhu(l)=uNvPv,uhu(l)

    它就是 PH(l) 的第 v 行,等于邻域hidden feature 的加权和。

    定义节点 v 在第 l 层的感受野 receptive field 为:为计算 zv(L) 所需要的 hu(l) 的节点集合。

    • 对于一个 L 层的 GCN,节点 v 的所有感受野就是它的 L-hop 邻域集合。
    • P=I 时,GCN 退化为一个多层感知机 MLP,其中不涉及任何图结构信息。对于多层感知机,节点 v 的感受野就是它本身 {v}
  5. GCN 训练损失函数的 batch 梯度为:

    J=1|VY|vVYf(yv,zv(L))

    由于每次迭代都涉及整个标记节点集合 VY ,因此计算 batch 梯度代价太大。

    一个可行的方案是采用随机梯度作为 batch 梯度的近似值:

    J1|VB|vVBf(yv,zv(L))

    其中 VBVY 为标记节点集合的一个 mini-batch

    但是,由于感受野太大,mini-batch 梯度的计算代价仍然很高。例如,NELL 数据集的 2-hop 邻域平均包含 1597 个节点,这意味着在一个 2GCN 中,为计算单个节点的梯度需要涉及 1597/65755 = 2.4% 的全部节点。

17.1.2 GraphSAGE

  1. 为降低感受野大小,GraphSAGE 提出了邻域采样neighbor sampling: NS 策略。 在第 l 层,对于每个节点 NS 策略随机采样 D(l) 个邻居,并基于蒙特卡洛近似来给出节点 v 的邻域均值 hidden feature nv(l) 的一个近似估计 nNS,v(l)

    nv(l)nNS,v(l)=|Nv|D(l)uN^v(l)Pv,uhu(l)

    其中 N^v(l)Nv 为一个大小为 D(l) 的、邻域 Nv 的一个随机子集。

    因此 NS 策略降低了感受野大小,从 L-hop 邻域大小降低到采样后的邻域大小 l=1LD(l)

    我们将 nNS,v(l) 称作 nv(l)NS 估计量,而 nv(l) 为精确值 exact

    上述邻域采样策略以矩阵的形式可以重写为:

    Z(l+1)=P^(l)H(l)W(l)H(l+1)=σ(Z(l+1))

    其中传播矩阵 P 被替换为一个稀疏的、无偏的估计 P^(l) ,即满足 : E[P^(l)]=P 。采样后的传播矩阵 P^(l) 为:

    P^v,u(l)={|Nv|D(l)Pv,u,uN^v(l)0,else
  2. GraphSAGE 的随机梯度下降过程中,存在两个随机性来源:

    • 选择 mini-batch VBVY 引入的随机性。
    • 选择大小为 D(l) 的邻域集合 N^v(l)Nv 引入的随机性。

    尽管 P^(l)P 的无偏估计,但是由于非线性函数 σ() 的存在, σ(P^(l)H(l)W(l)) 并不是 σ(P(l)H(l)W(l)) 的无偏估计。因此,在 NS 策略中节点的 final representaion 矩阵 Z(L) 以及梯度 f(yv,zv(L)) 都是有偏的。最终 NS 策略中随机梯度下降 SGD 的收敛性得不到保障,除非采样大小 D(l) 趋向于无穷大。因为这时候计算的梯度 f(yv,zv(L)) 是有偏的,无法保证它是沿着梯度的正确方向。

  3. GraphSAGE 中,由于梯度是有偏的,因此 NS 策略中的采样大小 D(l) 必须很大,从而确保模型得到和 exact 策略相近的预测性能。

    GraphSAGEHamilton 选择 D(1)=10,D(2)=25 ,因此感受野的大小为 D(1)×D(2)=250,这远大于 MLP 的感受野(大小为 1),因此训练仍然代价较高。

17.1.3 FastGCN

  1. FastGCN 是另一种类似于NS 的基于采样的算法。FastGCN 并没有为每个节点采样邻域,而是直接采样每一层的、所有节点共享的感受野。

    对于第 l 层,FastGCN 首先采样 D(l) 个样本的集合 S(l)={v1(l),,vD(l)(l)} ,然后通过这 D(l) 个样本来计算每个节点 v 的邻域均值 hidden feature nv(l)

    nv(l)=u=1VPv,uhu(l)|V|D(l)uSPv,uhu(l)/q(u)

    其中重要性分布:

    q(u)v=1|V|Pu,v2

    我们将这种邻域均值 hidden feature 的估计称作重要性采样 importance sampling: IS

    • 注意,IS 采样策略和 NS 采样策略的区别在于:前者为第 l 层所有节点采样 D(l) 个节点,后者为第 l 层每个节点分别采样 D(l) 个节点。
    • D(l) 较大且选择 q(u)(u,v)E1|Nv| 时,IS 可以视为 NS ,因为每个节点 v 以概率 1|Nv| 来选择其邻居节点 u 。因此 NS 可以看作是 IS 的一种。
  2. 尽管 IS 策略的感受野大小为 lD(l) 要小于 NS 策略的感受野大小 lD(l) ,但是 IS 仍然仅在采样大小 D(l) 达到无穷大时才可以确保模型收敛。

    从实验来看,我们发现 IS 策略的效果要比 NS 更差,这是因为:在 IS 策略中我们为所有节点采样了共同的一组节点集合,对于部分节点我们采样到了它们的很多个邻居,对于另一些节点我们没有采样到任何邻居。对于后者,这些节点的邻域均值 hidden feature nv(l) 为零,从而导致 hidden feature hv(l) 为零 。

17.1.4 控制变量

  1. 我们提出一种新的基于控制变量control variate: CV的算法,该算法基于历史 hidden feature 来降低估计量的方差。

  2. 当计算邻域均值 hidden feature nv(l)=uNvPv,uhu(l) 时,由于需要递归计算,因此我们无法计算所有的 hu(l) 项 。我们的思想是:对于每个 hu(l) ,我们维护一份历史均值 h¯u(l) 作为其计算代价负担得起affordable的近似值。每次计算 hu(l) 时,我们都用 hu(l) 去更新 h¯u(l) 。当训练期间模型的权重变化比较缓慢时,我们预期 h¯u(l)hu(l) 是近似的。

    Δhu(l)=hu(l)h¯u(l) ,则有:

    nv(l)=uNvPv,uhu(l)=uNvPv,uΔhu(l)+uNvPv,uh¯u(l)

    定义:

    nCV,v(l)=|Nv|D(l)uN^v(l)Pv,uΔhu(l)+uNvPv,uh¯u(l)

    其中 N^v(l)Nv 为一个大小为 D(l) 的、邻域 Nv 的一个随机子集。

    这里的核心思想是:主要的 h¯u(l) 不用递归计算,可以直接从内存中获取到;次要的 Δhu(l) 需要递归计算,但是仅对它采样一小部分的邻域。同时,这进一步促进了模型权重的缓慢变化。

    因为主要部分是精确值,次要部分是近似值,因此这会大幅度降低近似计算带来的影响。

    则有:nv(l)nCV,v(l) 。我们称 nCV,v(l) 为节点的邻域均值 hidden feature nv(l)CV 估计量。写作矩阵的形式为:

    Z(l+1)=(P^(l)(H(l)H¯(l))+PH¯(l))W(l)H(l+1)=σ(Z(l+1))

    其中 H¯(l) 的各行为 h¯u(l) 拼接而成 。

    这里我们仅对 Δhu(l) 的项进行蒙特卡洛近似。对所有的 h¯u(l) 取平均是可以接受的,因为它们不需要进行递归地计算。

    由于我们预期 h¯u(l)hu(l) 是近似的,因此 Δhu 很小。因此 nCV,v(l) 具有比 nNS,v(l) 更小的方差。具体而言,如果模型的权重保持固定,则 h¯u(l) 应该最终等于 hu(l) ,因此有:

    nCV,v(l)=0+uNvPv,uh¯u(l)=uNvPv,uhu(l)=nv(l)

    即估计量的偏差和方差都为零。

  3. 我们定义控制变量 control variate 为:

    δv(l)=nCV,v(l)nNS,v(l)=uNvPv,uh¯u(l)|Nv|D(l)uN^v(l)Pv,uh¯u(l)

    我们将控制变量 δv(l) 添加到邻域采样策略 NSnNS,v(l) 中,从而降低估计量的方差。

    现在 δv(l) 仅依赖于不需要递归计算的 h¯u(l),因此 δv(l) 也不需要递归计算。

  4. 采用 CV 估计量来训练 GCN 的方法和 NS 估计量都相同。具体而言,在 GCN 的每轮迭代中都执行以下算法。

    VRGCN 迭代算法:

    • 随机选择一个 mini-batch 的节点 VBVY

    • 构建一个计算图,其中包含当前 mini-batch 每个节点的 hidden feature 计算时需要的其它节点的 hidden feature hv(l) 及其历史均值 h¯v(l)

    • 根据下面的前向传播公式进行传播:

      Z(l+1)=(P^(l)(H(l)H¯(l))+PH¯(l))W(l)H(l+1)=σ(Z(l+1))

      这里控制变量 δv(l) 的矩阵形式为:PH¯(l)P^(l)H¯(l)

    • 通过反向传播计算梯度,并更新参数。

    • 更新 hidden feature 历史均值 h¯v(l)

    其中,第二步的计算图是通过每层的感受野 R(l) 以及对应的传播矩阵 P^(l) 来定义。感受野 R(l) 定义了需要第 l 层哪些节点的 hidden feature hv(l) 来计算当前的 mini-batch

    我们自顶向下构建 R(l) 以及 P^(l)

    • R(L)=VB

    • 对于第 l 层,对 R(l+1) 中的每个节点我们都从它们的邻域中各自随机选择 D(l) 个邻居节点并加入到 R(l) 中。

      注意:我们假设 hv(l) 永远都必须参与 hv(l+1) 的计算,即 v 每次都作为其自己的邻居一定被选中。

    VRGCN 的感受野如下图 (c) 所示,其中红色节点为感受野,其 hidden feature hv(l) 来计算当前的 mini-batch 。蓝色节点的历史 hidden feature 均值 h¯v(l) 也用于计算当前的 mini-batch

17.1.5 理论分析

  1. 为便于理论分析估计量的方差,这里我们假设所有的特征都是一维的。通过分别处理每个维度,我们的分析结论可以推广到多维。

  2. 假设 N^v(l) 通过从 Nv 进行无放回采样 D(l) 个样本得到,则我们有结论:

    VarN^v(l)[|Nv|D(l)uN^v(l)xu]=Cv(l)2D(l)u1Nvu2Nv(xu1xu2)2

    其中 Cv(l)=1(D(l)1)/(|Nv|1) 。 证明见原始论文的附录。

    根据以上结论,对于 NS 估计量我们有:

    VarN^v(l)[nNS,v(l)]=Cv(l)2D(l)u1Nvu2Nv(Pv,u1hu1(l)Pv,u2hu2(l))2

    即邻域内所有邻居pair 对的加权 hidden feature 之间的距离之和。如果邻域内所有节点的 Pv,uhu 都相等,则该方差为零。此时,任何邻域节点都包含了整个邻域的信息。

    同样地,对于 CV 估计量我们有:

    VarN^v(l)[nCV,v(l)]=Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δhu1(l)Pv,u2Δhu2(l))2

    相比较于 NS 估计量,这里仅需要将 hu(l) 替代为 Δhu(l) 。由于 Δhu(l) 通常都比 hu(l) 更小,因此 CV 估计量通常都比 NS 估计量的方差更小。

    进一步地,正如我们在下文中分析到的,由于训练期间 间 Δhu(l) 收敛到零,因此我们不仅降低了方差,甚至消除了方差。

  3. 除了较小的方差,CV 估计量比 NS 估计量还具有更强的理论收敛性保证。这里我们提出两个定理:

    • 如果模型参数固定,则在 inference 期间,CV 会在 LL 为卷积层的层数)个 epoch 之后产生 exact 预测。
    • 无论邻域采样大小如何,模型都会朝着局部最优解收敛。
  4. 假设算法执行多个 epoch,在每个 epoch 中我们将节点集合 V 划分为 Imini-batch{V1,,VI} 。在第 i 个迭代步,我们对 mini-batch Vi 中的节点进行前向传播和反向传播,从而更新模型参数以及节点的历史 hidden feature 均值。

    注意:在每个 epoch 中我们扫描所有节点,而不仅仅是标记的训练节点,从而确保每个 epoch 中对每个节点的历史 hidden feature 均值至少进行了一次更新。

    记第 i 次迭代中模型的参数为 Wi 。在训练期间 Wi 通过 SGD 随时间更新,在测试期间 W=WT 被固化下来,其中 T 为迭代的总次数。

    记第 i 次迭代的 exact hidden featureHi(l) ,以及对应的 ZZi(l) ;使用 CV 估计量的 hidden featureHCV,i(l) ,以及对应的 ZZCV,i(l)

    在第 i 轮迭代,网络计算 mini-batch Vi 的损失函数和梯度,其中:

    • 对于 exact 算法,其损失函数和梯度分别为:

      J(Wi)=1|Vi|vVif(yv,zi,v(L))Gi(Wi)=JW1|Vi|vViWif(yv,zi,v(L))

      对于 exact 算法,如果 Wiconstant 序列,则可以忽略下标 i

    • 对于 CV 算法,其损失函数和梯度分别为:

      JCV(Wi)=1|Vi|vVif(yv,zi,CV,v(L))Gi,CV(Wi)=JCV,W1|Vi|vViWif(yv,zi,CV,v(L))

      梯度 Gi,CV(Wi) 有两个随机性来源:

      • 选择 mini-batch ViVY 引入的随机性。
      • 选择大小为 D(l) 的邻域集合 N^v(l)Nv 引入的随机性(由采样后的邻接矩阵 P^ 来刻画) 。

      因此我们考虑 Gi,CV(Wi)Vi 的期望、或者对 P^ 的期望、或者对二者的共同期望。

  5. 以下定理解释了 CV 的近似预测和 exact 预测之间的关系:

    对于一个 constant sequence Wi=W ,以及任意 i>L×I (即 Lepoch 之后),通过 CV 估计量计算的 hidden featureexact 计算的相等。即:

    Hi,CV(l)=Hi(l),1lLZi,CV(l)=Zi(l),1lL

    其证明见原始论文附录。

    该定理表明:在 inference 期间,我们可以使用 CV 估计量进行前向传播 Lepoch (通常 L 很小,比如两层的 GCN 网络中 L=2 ),然后得到 exact 预测。这优于 NS 估计量,因为除非邻域大小无穷大,否则 NS 估计量无法恢复 exact 预测。

    和直接进行 exact 预测的 batch 算法相比,CV 估计量可扩展性更强,因为它不需要将整个图加载到内存中。

  6. 以下定理表明,无论邻域采样大小 D(l) 如何,采用近似梯度 Gi,CV(Wi)SGD 训练仍然收敛于局部最优。因此我们可以选择任意小的 D(l) 而不必担心收敛性。

    定理:假设:

    • 激活函数 σ()ρLipschitz

    • 损失函数的梯度 zf(y,z)ρLipschitz 且有界的。

    • 对于任意的采样 P^ 、任意的节点子集 V~ 、任意的权重矩阵,都有 ||G(W)||,||GV~,CV(W)||,||WJ(W)|| 都是有界的,且上界都是 G (其中 G>0) 。

    • 损失函数 J(W)ρsmooth 的,即:对于任意 W1,W2 ,有:

      |J(W2)J(W1)<J(W1),W2W1>|ρ2||W2W1||F2

      其中 <A,B>=tr(AB) 为矩阵 AB 的内积。

    则存在 K>0 ,使得 N>L×I ,当我们执行 1RNSGD 迭代时,有:

    ER||J(WR)||F22J(W1)J(W)+K+ρKN

    其中:

    • R[1, N] 之间均匀随机分布的变量。

    • 每次迭代都使用 CV 的近似梯度 Gi,CV(Wi)

      Wi+1=Wiγ×Gi,CV(Wi)

      其中步长 γ=min{1ρ,1N}

    从定理中我们看到:limNER||J(WR)||F2=0 。因此当迭代次数 N 趋向于无穷时,我们的训练算法收敛到局部最优解(梯度为零)。完整的证明见原始论文附录。

    简而言之,我们证明了近似梯度 Gi,CV(Wi)Gi(Wi) 的无偏估计,并且随着 i 这种渐进无偏的 SGD 收敛到局部最优解。

17.1.6 dropout

  1. 这里我们引入第三种随机性来源:对输入特征的随机 dropout

    Dp(X)=MXdropout 算子,其中 Mi,jBern(p) 为独立同分布 iid 的伯努利随机变量, 是逐元素的乘积。

    EM[] 为针对 dropout 的期望。

  2. 引入 dropout 之后,即使在 GCN 中采用 exact 算法,hidden feature hv(l) 也是随机变量,其随机性来源于 dropout

    此时节点的邻域均值 hidden feature nv(l) 也是一个随机变量,我们希望设计它的一个计算代价较低的估计量,从而使得二者具有相同的分布。但是这种估计量非常难以设计,因此我们设计了一个估计量 nCVD,v(l) ,使得它和 nv(l) 具有相同的均值和方差。即:

    EN^v(l)EM[nCVD,v(l)]=EM[nv(l)]VarN^v(l)VarM[nCVD,v(l)]=VarM[nv(l)]
  3. dropout 场景下, Δhu(l)=hu(l)h¯u(l) 不再很小,甚至是当 h¯u(l)hu(l) 具有相同分布的时候。为此,我们设计了另一种随机逼近算法,称作 dropout 控制变量 control variate for dropout: CVD

    我们的方法基于权重缩放 weight scaling 技术来近似计算均值 μv(l)=EM[hv(l)] 。即在 dropout 模型中,我们可以运行没有 dropout 的模型的copy,从而获得均值 μv(l) ,如下图 (d) 所示。

  4. 我们通过 μu(l) 及其历史均值 μ¯u(l) 来设计 CVD 估计量。

    我们将 nv(l) 重写为:

    nv(l)=uNvPv,uhu(l)=uNvPv,u(h˚u(l)+Δμu(l)+μ¯u(l))

    其中:

    • Δμu(l)=μu(l)μ¯u(l)μu(l) 及其历史均值 μ¯u(l) 之间的差距。因此,可以将 μu(l) 视为 CV 估计量中的 hu(l)
    • h˚u(l)=hu(l)μu(l)hu(l) (带 dropout )和 μu(l) (不带 dropout )之间的差距。

    因此定义:

    nCVD,v(l)=|Nv|D(l)uN^v(l)Pv,uh˚u(l)+|Nv|D(l)uN^v(l)Pv,uΔμu(l)+uNvPv,uμ¯u(l)

    则有: nv(l)nCVD,v(l)

    第一项考虑 dropout current valueno-dropout current value 之间的 gap,使用 是为了计算方差的方便。第二项考虑 no-dropout current valueno-dropout avg value 之间的 gap。第三项就是 no-dropout avg value 本身。

    考虑第一项对于 dropout 具有零均值,即 EM[h˚u(l)]=0 ,因此有:

    EN^v(l)EM[nCVD,v(l)]=0+EN^v(l)EM[nCV,v(l)]=EM[nv(l)]

    第一个等式成立是因为当移除 dropout 时, CVD 估计量就退化为 CV 估计量。

    因此,CVD 估计量是无偏的。下面我们即将看到,如果 hv(l) 之间不相关,则 CVD 估计量具有良好的方差。

  5. 假设节点的hidden feature 之间不相关,即 v1v2,CovM[hv1(l),hv2(l)]=0 ,则我们得到两个结论:

    • 假设 N^v(l) 通过从 Nv 进行无放回采样 D(l) 个样本得到, x1,,x|V| 为一维随机变量,且满足:

      v,E[xv]=0v1v2,Cov[xv1,xv2]=0

      则有:

      VarN^v(l)VarX[|Nv|D(l)uN^v(l)xu]=|Nv|D(l)uNv(l)Var[xu]
    • XY 为两个随机变量,并且 f(X,Y)g(Y) 为两个函数。如果 EX[f(X,Y)]=0 ,则有:

      VarX,Y[f(X,Y)+g(Y)]=VarX,Yf(X,Y)+VarYg(Y)

    这些结论的证明参考原始论文的附录。

    通过上述结论,我们有:

    VarN^v(l)VarM[nCVD,v(l)]=VarN^v(l)VarM[|Nv|D(l)uN^v(l)Pv,uh˚u(l)]+VarN^v(l)[|Nv|D(l)uN^v(l)Pv,uΔμu(l)+uNvPv,uμ¯u(l)]

    我们将第一项视为从 dropout 中引入的方差 variance from dropout: VD,第二项视为从邻域采样中引入的方差 variance from neighbor sampling: VNS。理想情况下,VD 应该等于 VarM[nv(l)]VNS 应该等于零。

    和前述相同的分析,我们可以通过将 hv(l) 替换为 μv(l) 来分析 VNS 。令 :

    su(l)=VarM[hv(l)]=VarM[h˚u(l)]ξv(l)=VarM[nv(l)]=uNvPv,u2su(l)

    根据这里的第一个结论,CVDVD 部分为:uNvPv,u2su(l)=ξv(l) ,刚好就是 exact 估计量的 VD 部分。

  6. 我们总结出所有这些估计量及其方差,推导过程参考原始论文。

    • exactVNS 部分为零, VD 部分为 ξv(l)
    • NS 估计量:VNS 部分为 Cv(l)2D(l)u1Nvu2Nv(Pv,u1μv1(l)Pv,u2μv2(l))2VD 部分为 |Nv|D(l)ξv(l)
    • CV 估计量:VNS 部分 Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δμv1(l)Pv,u2Δμv2(l))2VD 部分(3+|Nv|D(l))ξv(l)
    • CVD 估计量:VNS 部分 Cv(l)2D(l)u1Nvu2Nv(Pv,u1Δμv1(l)Pv,u2Δμv2(l))2VD 部分为 ξv(l)

    CV/CVDVNS 取决于 Δμv ,随着训练的进行 Δμv 收敛到零;NSVNS 取决于非零的 μv

17.1.7 预处理

  1. 有两种可能的dropout 方式:

    Z(l+1)=PDp(H(l))W(l)Z(l+1)=Dp(PH(l))W(l)

    区别在于:第一种方式是在邻域聚合之前应用 dropout、第二种方式在邻域聚合之后应用 dropout《Semi-supervised classification with graph convolutional networks》 采用前者,而我们采用后者。

    实验效果上,我们发现这两种方式的效果都相差无几,因此不同的方式不影响模型的效果。采用第二种方式的优势是提升训练速度:我们可以对输入进行预处理,并定义 U(0)=PH(0)=PX ,然后将 U(0) 作为新的输入。采用这种方式之后,图卷积层的实际数量减少了一层。现在第一层仅是一个全连接层,而不是图卷积层。

    由于大多数GCN 仅有两层卷积层,因此这种方式可以显著减少感受野大小,并加快训练速度。我们称该优化为预处理策略 preprocessing strategy

17.2 实验

  1. 我们在六个数据集上通过实验验证了 VRGCN 算法的方差和收敛性,其中包括来自GCNCiteseer, Cora, PubMed, NeLL 四个数据集以及来自 GraphSAGEPPI, 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 上完成。

  2. 首先我们评估预处理PreProcessing: PP的影响。我们比较了三种配置:

    • M0dropout 在前、计算邻域均值在后,且计算邻域的 exact 均值(未对邻域进行任何采样)
    • M1:计算邻域均值在前、dropout 在后,且计算邻域的 exact 均值(未对邻域进行任何采样)
    • M1 + PP:计算邻域均值在前、dropout 在后,且使用较大的邻域大小 D(l)=20 来对邻域采样从而计算邻域的近似均值,并且预处理 PH(0) 使得第一层邻域均值是 exact的。

    实验结果如下所示。我们固定了训练的 epoch,然后给出不同配置的 GCN 在不同数据集上的测试accuracy 。我们的实现不支持 NELL 上的 M0 配置,因此未报告其结果。

    可以看到:三种配置都具有相近的性能,即更换 dropout 的位置不会影响模型的预处性能。因此后续的收敛性实验中,我们以最快的 M1 + PP 配置作为 exact baseline

  3. 然后我们评估 VRGCN 的收敛性。我们将 M1 + PP 配置作为 exact baseline,然后对比 D(l)=2 的情况。我们无法配置 D(l)=1,因为感受野中至少包含节点本身,如果 D(l)=1 则邻域聚合时不考虑任何其它节点,这退化为 MLP 。我们对四种近似策略进行比较,其中 D(l)=2

    • NS :没有使用预处理的 NS 估计量(邻域采样)。
    • NS + PP:采用了预处理的 NS 估计量。
    • IS + PP:采用了预处理的 IS 估计量(重要性采样)。
    • CV + PP:采用了预处理的 CV 估计量。
    • CVD + PP:采用了预处理的 CVD 估计量。

    D(l)=2 时这四种算法在每个 epoch 都具有很低的、相近的时间复杂度,相比之下 baseline M1 + PPD(l)=20 。我们比较了这些方法和 baseline 相比,它们的收敛速度。

    • 首先我们不考虑 dropoutdropout 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 的局部最优,和 D(l) 无关。

    • 然后我们考虑使用 dropout,然后比较每个 epoch 使用不同方式训练的模型验证accuracy 。其中不管训练算法采取何种方式,inference 都采用 exact 算法来预测。结果如下图所示。注意:NSReddit 数据集上收敛到 0.94、在 PPI 数据集上收敛到 0.6,由于太低所以未在图中给出。

      结论:

      • 当存在 dropout 时,CVD + PP 是唯一可以在所有数据集上达到和 exact 算法相近的验证准确率的算法。

      • 当存在 dropout 时,CVD + PP 的收敛速度(以 epoch 数量衡量)和 M1 + PP 相当。这意味着尽管 D(l) 小了 10倍,但是 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 并未实现预处理技术。

  4. 下面给出了在最大的 Reddit 数据集上达到给定的 96% 验证准确率所需要的平均训练 epoch 和训练时间。可以看到:CVD + PPexact7 倍左右。这是因为 CVD + PP 的感受野大小显著降低。

    另外,NS, IS + PP 无法收敛到给定的准确率(即无法收敛到 96% 验证准确率)。

  5. 我们使用相同的、由 M1 + PP 训练的模型,然后采用不同的算法进行预测,并给出预测质量。

    如前所述,CV 可以达到和 exact 算法相同的测试准确率,而 NS, NS + PP 的性能要差得多。

  6. 最后,我们比较了训练期间第一层权重每一维梯度的平均 bias 和方差(对权重自身进行了归一化)。

    结论:

    • 对于没有 dropout 的模型,CV + PP 的梯度几乎所无偏的。
    • 对于存在 dropout 的模型,CV + PP he CVD + PP 梯度的bias 和方差通常小于 NSNS + PP

十八、ClusterGCN[2019]

  1. 图卷积网络 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 收敛速度一起决定了整个训练时间。

    n 为图的节点数量、dembedding 维度、LGCN 的深度。

    • full-batch 梯度下降:GCN 原始论文使用 full-batch 梯度下降来训练。为计算整个训练集损失的梯度,它需要存储所有中间 embedding (intermediate embedding),从而导致 O(ndL) 的内存需求,因此难以扩展到大型图。

      另外,尽管每个 epoch 训练时间高效(单个 epoch 训练时间很短),但是单个 epoch 的收敛速度很慢,因为每个 epoch 仅更新一次参数。

      整体而言,full-batch 梯度下降内存需求差、epoch 训练速度快、epoch 收敛速度慢。

    • mini-batch 随机梯度下降:GraphSAGE 使用了基于 mini-batch 的随机梯度下降来训练。由于每次迭代仅基于 mini-batch 梯度,因此它可以减少内存需求,并在每个 epoch 进行多次更新从而加快 epoch 收敛速度。

      但是,由于邻域扩展问题,mini-batch 随机梯度下降会引入大量的计算开销:为计算第 L 层上单个节点的损失,它需要其邻域节点在第 L1 层的 embedding,而这又需要邻域节点的邻域节点在第 L2 层的 embedding,并向底层不断递归。这导致计算的时间复杂度和 GCN 的深度 L 呈指数关系。

      GraphSAGE 提出使用固定数量的邻域样本,而 FastGCN 提出了重要性采样。但是这些方法的开销仍然很大,并且当 GCN 层数更深时情况更糟。

      整体而言,mini-batch 随机梯度下降内存需求好、epoch 训练速度慢、epoch 收敛速度快。

    • VR-GCNVR-GCN 提出方差缩减variance reduction技术来减少邻域采样规模。尽管这种方法成功地降低了邻域采样的数量(在Cluster-GCN 的实验中,VR-GCN 对每个节点仅采样 2 个邻居的效果很好),但是它仍然需要将所有节点的中间 embedding 存储在内存中,从而导致 O(ndL) 的内存需求。如果图的节点规模达到数百万,则 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 要求随机选取 b 个节点(bbatch-size),而 Cluster-GCN 中的采样方法不再随机。这使得 mini-batch 梯度不再是 full-batch 梯度的无偏估计。

    作者的解决办法是:随机将多个簇合并为一个大簇,然后将这个大簇作为 mini-batch ,使得 batch 内的节点分布尽可能和 full-batch 一致。

    Cluster-GCN 带来了巨大的内存优势和计算优势:

    • 在内存需求方面,Cluster-GCN 仅需要将当前 batch 中的节点 embedding 存储在内存中,内存复杂度为 O(bdL) ,其中 bbatch-size 。这比 VR-GCNfull-batch 梯度下降、以及其它 mini-batch 随机梯度下降等方法要小得多。
    • 在计算复杂度方面,Cluster-GCN 在每个 epoch 都具有相同的时间代价,并且比邻域搜索方法快得多。
    • 在收敛速度方面,Cluster-GCN 相比其它 SGD-based 方法具有可比的竞争力。
    • 最后,Cluster-GCN 算法易于实现,因为它只需要计算矩阵乘法,而无需任何邻域采样策略。

    整体而言,Cluster-GCN 内存需求好、epoch 训练速度快、epoch 收敛速度快。

    通过对几个大型图数据集进行全面实验,证明了 Cluster-GCN 的效果:

    • Cluster-GCN 在大型图数据集(尤其是深层 GCN)上实现了最佳的内存使用效率。例如在 Amazon2M 数据集上的 3GCN 模型中,Cluster-GCN 使用的内存比 VR-GCN5 倍。

    • 对于浅层网络(例如 2 层),Cluster-GCN 达到了和 VR-GCN 相似的训练速度;但是当网络更深(如 4 层)时,Cluster-GCN 可以比 VR-GCN 更快。这是因为 Cluster-GCN 的复杂度和层数 L 呈线性关系,而 VR-GCN 的复杂度是 L 的指数级。

    • Cluster-GCN 能够训练具有很大 embedding size 并且非常深的网络。

      尽管之前的一些工作表明:深层 GCN 无法提供更好的性能,但是作者发现通过适当的优化,深层 GCN 可以帮助提高模型准确性。例如使用 5GCNCluster-GCNPPI 数据集上的accuracy99.36,而之前的最佳效果为 98.71

18.1 模型

  1. 给定图 G=(V,E,A) ,其中:

    • V={v1,,vn} 为节点集合,n 为节点数量。
    • E={ei,j}i,j 为边的集合, ei,j 表示节点 vivj 之间的边。
    • ARn×n 为邻接矩阵,如果节点 vi,vj 存在边则 Ai,j=1 否则 Ai,j=0
    • 节点 v 关联一个 df 维的特征向量 xvRdf 。 所有节点的特征向量按行拼接为特征矩阵 XRn×df ,第 v 行就是节点 v 的特征向量 xv
    • 节点 v 关联一个label yv ,所有带label 的节点集合为 VY ,即观测节点集合。

    定义一个包含 L 层卷积层的 GCN,其中第 l+1 层卷积层为:

    Z(l+1)=PH(l)W(l)H(l+1)=σ(Z(l+1))

    其中:

    • H(l)Rn×dl 为第 l 层的 representation 矩阵, dl 为第 lrepresentation 向量的维度。H(l) 的第 vhv(l) 表示节点 v 的第 l 层的 representation 向量。

      为简化讨论,我们假设 df=d1==dL=d

    • H(0)=X 为输入的特征矩阵,第 vxv 表示节点 v 的特征向量。

    • PRn×n 为归一化的邻接矩阵:

      A~=I+AD~=diag(D~i),D~i=jA~i,jP=D~1/2A~D~1/2

      其中 A~ 为添加了 self-loop 的邻接矩阵。

    • W(l)Rdl×dl+1 为第 l+1 层模型待学习的权重矩阵,它在所有节点上共享。

    • σ() 为非线性激活函数,通常为 ReLU

    GCN 模型的损失函数为:

    J=1|VY|vVYf(yv,zv(L))

    其中:

    • f(,) 为单个节点的损失函数。
    • zv(L)Z(L) 的第 v 行,表示节点 vfinal representation
  2. 我们首先讨论之前方法的一些不足,从而启发我们提出 Cluster-GCN

    • 原始GCN:原始 GCN 中,作者通过 full-batch 梯度下降来训练 GCN,其计算代价和内存需求都很高。

      • 在内存需求方面,通过反向传播来计算损失函数的梯度需要 O(ndL) 的空间来存储所有的 embedding 矩阵 {Z(l)}l=1L
      • 在收敛速度方面,由于模型每个 epoch 仅更新一次参数,因此模型需要训练很多个 epoch 才能收敛。
    • GraphSAGEGraphSAGE 通过 mini-batch SGD 来改善 GCN 的训练速度和内存需求。SGD 不需要计算完整的梯度,而是仅在每轮更新中基于一个 mini-batch 来计算梯度。

      mini-batch 节点集合为 BVY ,令 b=|B| ,则每轮 SGD 迭代中,梯度的估计量为:

      1bvBf(yv,zv(L))

      尽管mini-batch SGD 在收敛速度方面更快,但是它在 GCN 训练过程中引入了另一种计算开销,这使得它与 full batch 梯度下降相比,每个 epoch 的训练速度慢得多。原因如下:考虑计算单个节点 v 的梯度 f(yv,zv(L)) ,显然这需要节点 vembedding zv(L) ;而 zv(L)依赖于节点 v 的邻域节点在第 L1 层的 representation,而这又依赖于这些邻域节点的邻域节点在第 L2 层的 representation ,... 。

      假设 GCN 具有 L 层并且每个节点的平均 degreeD ,则为了计算节点 v 的梯度,我们需要从 O(DL) 个其它节点中聚合特征。即:我们需要从节点 vhop-kk=1,2,,L)邻域中抽取信息,从而计算节点 v 的梯度。由于聚合过程中涉及到和 W(l) 的矩阵乘法,因此计算每层每个 representation 向量需要 O(d2) 的时间复杂度。因此计算单个节点梯度的平均时间复杂度为 O(DLd2)

      如果一个 batch 中有很多节点,则时间复杂度就不是那么直接,因为不同节点具有重叠的 top-k 邻域,那么依赖的节点数量可以小于最差的 O(bDL)

  3. 为反应 mini-batch SGD 的计算效率,我们定义 embedding 利用率 embedding utilization 的概念,从而刻画计算效率。

    在算法过程中,如果节点 v 在第 l 层的 embedding 计算之后,被第 l+1 层的 embedding 计算过程使用了 u 次,那么我们说 zv(l)embedding 利用率为 u

    • 对于具有随机采样的 mini-batch SGD,由于图通常比较大且稀疏,因此 u 很小。假设 u 是一个很小的常数(即节点的 hop-k 邻域之间几乎没有重叠),则 mini-batch SGD 在每个 batch 需要计算 O(bDL)embedding,这导致每个 mini-batch 的训练时间为 O(bDLd2) 、每个 epoch 的训练时间为 O(nDLd2)
    • 相反,对于 full-batch 梯度下降,每个 embedding 将在更上一层中重复利用 D 次(平均 degree),因此具有最大的 embedding 利用率。结果 full-batch SGD 在每个 epoch 需要计算 O(nL)embedding,训练时间为 O(nLd2) 。这意味着仅需要计算 O(L)embedding 就可以得到一个节点的梯度,相比之下 mini-batch SGD 需要计算 O(DL)embedding

    如下图所示给出了传统的GCN 中指数级邻域扩展(左图)。红色节点是扩展的起始节点,不同颜色代表不同的 hop

  4. 为了使得 mini-batch SGD 顺利工作,已有的一些算法试图限制邻域扩展的大小,但是这无法提升 embedding 利用率。

    • GraphSAGE 均匀采样一个固定大小的邻域,而不是完整的邻域集合。我们将这个固定大小记作 r ,这将导致每个节点梯度需要计算 O(rL)embedding,并且也使得梯度估计的准确性降低。

    • FastGCN 提出了一种重要性采样策略来改善梯度估计。

    • VR-GCN 提出了一种策略,通过存储所有 n 个节点在 L 层上所有 embedding 的历史均值,从而应用于未采样邻居节点的 embedding 计算。

      尽管存储所有 nLembedding 的内存需求很高,但我们发现该策略非常有效,并且在实践中即使对于非常小的 rr=2 )也可以产生很好的收敛。

18.1.1 Cluster-GCN

  1. Cluster-GCN 技术受到以下问题的启发:在 mini-batch SGD 更新过程中,能否设计 mini-batch 以及对应的计算子图,使得最大程度地提高 embedding 利用率?解决该问题的关键在于将 embedding 利用率和聚类相结合。

    考虑我们计算 batch B 中每个节点从第 1 层到第 L 层的 embedding 。定义 B 子图的邻接矩阵为 AB,B,它刻画了 B 内部的链接。可以看到 embedding 利用率是这个 batch 内链接的数量 ||AB,B||0 ,其中 ||||0 为矩阵的非零元素的个数。

    因此,为了最大化 embedding 利用率,我们应该设计一个 batch B 来最大化 batch 内链接的数量,这使得我们可以将 SGD 更新的效率和图聚类算法联系起来。

  2. 现在我们正式地介绍 Cluster-GCN 。对于图 G ,我们将节点划分到 C 个分组:V=[V1,,VC] ,其中 Vc 由第 c 个分组的节点组成,1cC 。根据这一划分我们得到 C 个子图 subgraph

    G¯=[G1,,GC]=[(V1,E1),,(VC,EC)]

    其中 EcVc 中节点的链接组成。

    经过节点的重新排列之后,图 G 的邻接矩阵 A 被划分为 C2 个子矩阵:

    A=A¯+Δ=[A1,1A1,2A1,CA2,1A2,2A2,CAC,1AC,2AC,C]A¯=[A1,1000A2,2000AC,C],Δ=[0A1,2A1,CA2,10A2,CAC,1AC,20]

    其中:

    • 每个对角块 Ac,cR|Vc|×|Vc| ,是子图 Gc 中的邻接矩阵。
    • A¯ 为图 G¯ 的邻接矩阵,G¯G 经过分组之后移除组间的链接得到的新的图。
    • As,t 为分组 VsVt 之间的链接。
    • Δ 是由 A 的所有非对角线的块组成的矩阵。

    同样地,我们可以根据 [V1,,VC] 来划分节点特征为 [X1,,XC] ,以及划分节点label[Y1,,YC] 。其中 XcYcVc 中节点的特征向量和 label 组成。

    现在我们用块对角矩阵 A¯ 来近似 A ,即不考虑分组之间的链接。这种近似的好处是:目标函数可以划分为不同的cluster(每个 cluster 对应一个 batch)。

    P¯ 为归一化的 A¯ ,由于 P¯ 的块对角形式,最终的 embedding 矩阵变为:

    Z(L)=P¯σ(P¯σ(P¯σ(P¯XW(0))W(1)))W(L1)=[P¯1,1σ(P¯1,1σ(P¯1,1σ(P¯1,1X1W(0))W(1)))W(L1)P¯C,Cσ(P¯C,Cσ(P¯C,Cσ(P¯C,CXCW(0))W(1)))W(L1)]

    其中 P¯c,cP¯ 的第 c 个对角块。

    因此损失函数可以分解为:

    LP¯=c|Vc|nLP¯c,cLP¯c,c=1|Vc|vVcf(yv,zv(L))

    在每一步我们随机采样一个簇 Vc ,然后根据 LP¯c,c 的梯度来进行 SGD 更新。在这个更新过程中,仅依赖于当前 batch 的子图 Ac,c 、子样本特征 Xc 、子样本的 label Yc 以及模型 {W(l)}0=1L

    可以看到,Cluster-GCN 仅需要进行矩阵乘法和前向/反向传播,而之前的 SGD-based 方法中需要对邻域进行搜索,因此我们的方法更容易实现。

  3. Cluster-GCN 使用图聚类算法对图进行分组。图聚类算法(如 MetisGraclus)旨在对图的节点进行划分,使得簇内的链接比簇间的链接更多,从而更好地捕获图的聚类和社区结构。这正是我们需要的结果,因为:

    • 如前所述, embedding 利用率等于每个 batchbatch 内链接数量。
    • 由于我们用块对角矩阵 A¯ 来近似替代邻接矩阵 A ,其近似误差正比于簇间链接 Δ 。所以我们需要找到一个划分,从而最大程度地减少簇间链接的数量。
  4. 下图给出了在完整图 G (左图)以及聚类图 G¯ (右图)上的邻域扩展。红色节点是扩展的起始节点,不同颜色代表不同的 hop

    可以看到:Cluster-GCN 可以避免繁重的邻域搜索,从而将精力集中在每个簇内的邻居上。

  5. 我们比较了两种不同的节点划分策略:随即划分random partition 、聚类划分 clustering partition

    我们分别通过随即划分、METIS 聚类划分将图划分为 10 个分组,然后每个分组作为一个 batch 来执行 SGD 更新。数据集为三个 GCN 公共数据集,评估指标为测试集 F-1 score。可以看到:在相同 epoch 下,使用聚类划分可以获得更高的准确性。这表明使用图聚类很重要,并且不应该使用随机划分。

  6. 算法复杂度:由于仅考虑 Vc 的内部链接,因此不需要执行 Ac,c 之外的邻域搜索。因此每个 batch 的复杂度仅有矩阵乘法 P¯c,cHc(l)W(l) ,以及某些逐元素的运算来决定。因此每个 batch 的时间复杂度为 O(||Ac,c||0d+bd2)||Ac,c||0Vc 内部链接的数量。因此每个 epoch 的时间复杂度为 O(||A||0d+nd2)||A||0G 的边的数量。

    平均而言,每个 batch 只需要计算 O(bL)embedding,它是线性的而不是 L 的指数。因此每个batch 的空间复杂度为 O(bLd) ,它具有比所有之前算法更高的内存效率。

    另外,我们的算法仅需要将子图加载到 GPU 内存中,无需加载整个图(虽然整个图的存储通常不是瓶颈)。

    我们在下表中总结了时间复杂度和空间复杂度。显然,所有 SGD-based 算法在层数方面都是指数复杂度。对于 VR-GCN,即使 r 很小,它也可以导致巨大的空间复杂度,即,可能超出 GPU 的内存容量。

    接下来我们介绍我们的 Cluster-GCN 算法,它兼顾了 full-batch 梯度下降下每个 epoch 的时间复杂度、以及在普通 SGD 梯度下降下的空间复杂度。

    其中:L 为层数,m=||A||0 为邻接矩阵中的非零数量(也是边的数量),dembedding 维度(为方便起见,所有层的 embedding以及输入特征的维度都是 d ),n 为节点数量,D 为平均的 node degreebmibi-batch sizer 为邻域采样大小。

    TimeComplexityMemoryComplexityGCNO(Lmd+Lnd2)O(Lnd+Ld2)Vanilla SGDO(DLnd2)O(bDLd+Ld2)GraphSAGEO(rLnd2)O(brLd+Ld2)FastGCNO(rLnd2)O(brLd+Ld2)VR-GCNO(Lmd+Lnd2+rLnd2)O(Lnd+Ld2)Cluster-GCNO(Lmd+Lnd2)O(bLd+Ld2)

    注意:

    • 由于采用了方差缩减技术,VR-GCNr 可以远小于 GraphSAGEFastGCN

    • 对于空间复杂度,Ld2 是用于存储模型参数 {W(l)}l=1L ,其它项是用于存储 embedding

    • 为简单起见,我们忽略了存储Graph 以及子图的需求,因为它们通常都是固定的,且通常不是主要瓶颈。

    • Cluster-GCN 具有最好的计算复杂度和最好的空间复杂度。

      从实验部分得知,Cluster-GCN 的最大优势是内存需求更小从而可以扩展到更大的图。训练速度和训练准确率方面,Cluster-GCNVR-GCN 各有优势(在不同的层数方面)。

18.1.2 随机多重聚类 SMC

  1. 尽管前述的 Cluster-GCN 实现了良好的计算复杂度和空间复杂度,但是仍然有两个潜在的问题:

    • 对图进行划分之后,某些链接被删除了(即 Δ 的部分),因此模型的性能可能受到影响。
    • 图聚类算法倾向于将相似的节点聚合在一起,因此每个batch 的节点分布和原始数据集不一致,从而导致在 SGD 更新时,batch 的梯度是完整梯度的一个有偏的估计。

    我们以 Reddit 数据集为例,考察随机划分来选择 mini-batch 、通过 Metis 聚类算法选择 mini-batch 的数据分布的差异,划分数量为 300 个分区。数据分布以batch 内节点标签分布的熵来衡量。我们给出不同batch 的标签熵 label entropy 的分布直方图如下所示,可以看到:

    • 大多数聚类batch 具有较低的标签熵,这表明聚类的 batch 倾向于某些特定的 label,从而与整体的数据分布不一致。这可能会影响 SGD 算法的收敛性。
    • 随机batch 具有较高的标签熵,这表明随机 batch 的数据分布和整体数据分布更为一致。

  2. 为解决这些问题,我们提出了一个随机多重聚类框架 stochastic multiple clustering: SMC ,该框架通过随机合并多个簇,从而减少 batch 之间的数据分布差异。

    我们首先将节点划分到 C 个分组:V=[V1,,VC] ,其中 C 较大。然后每次构建一个 batch B 时,我们并不是考虑一个簇,而是随机选择 q 个簇,记作 c1,,cq ,因此这个 batch B={Vc1,,Vcq} 。此外,部分簇间链接也被考虑在内,这些簇间链接为:{Ai,ji,jc1,,cq}

    通过这种方式,所有簇间链接将被重新合并到模型中,并且簇的随机组合可以使得 batch 之间的数据分布的差异更小。

    这种随机多重聚类框架如下图所示,每个 batch 包含 2 个簇,相同的 batch 的簇具有相同的颜色。不同的epoch 中选择不同的簇组合。

    这种方法只能缓解问题,但是无法解决问题。因为即使是随机组合多个簇,新的 batch 内节点分布与整体分布仍然是有差异的。

  3. 我们在 Reddit 数据集上进行实验,对比了 SMC 和普通 Cluster-GCN 的效果。在 Cluster-GCN 中我们选择划分为 300 个分区,在 SMC 中我们选择划分为 1500 个分区并随机选择 5 个簇来构成一个 batch

    实验结果如下图所示,其中 x 轴为 epochy 轴为 F1-score 。可以看到随机多重聚类可以显著改善 Cluster-GCN 的收敛性。

  4. Cluster-GCN 算法:

    • 输入:

      • G(V,E,A)
      • 输入特征矩阵 X
      • 节点标签矩阵 Y (每行代表一个节点标签的 one-hot 或者 multi-hot 向量)
      • 最大迭代 步 max-iter
      • 划分簇的数量 C
      • 每个 batch 的簇的数量 q
    • 输出:模型的参数 {W(l)}l=1L 以及节点的embedding 矩阵 H(L)

    • 算法步骤:

      • 通过 METIS 聚类算法划分 VC 个簇:V1,,VC

      • 迭代:iter=1,2,,max-iter,迭代过程:

        • 随机无放回选择 q 个簇 {Vc1,,Vcq}
        • 以节点集合 V¯=Vc1Vcq 构建子图 G¯ ,以及子图的邻接矩阵 AV¯,V¯
        • 根据子图的损失函数来计算梯度 g=LAV¯,V¯
        • 基于 Adam 优化算法使用梯度 g 来更新参数。
      • 输出模型的参数 {W(l)}l=1L 以及节点的embedding 矩阵 H(L)

  5. METISKarypis Lab 开发的一个功能强大的图切分软件包,支持多种切分方式。优势:

    • METIS 具有高质量的划分结果,据称比常规的谱聚类要准确 10% ~ 50%
    • METIS 执行效率非常高,比常见的划分算法块 1~2 个数量级。百万规模节点的图通常几秒钟之内就可以切分为 256 个簇。
    • METIS 具有很低的空间复杂度和时间复杂度,从而降低了存储负载和计算量。

18.1.3 深层 GCN

  1. GCN 原始论文表明:对 GCN 使用更深的层没有任何效果。但是,实验中的这些数据集太小,可能没有说服力。例如,实验中只有数百个节点的图,太深的GCN 可能会导致严重过拟合。

    另外,我们观察到更深的 GCN 模型的优化变得更困难,因为更深的模型可能会阻碍前几层的消息传递。在原始 GCN 中,他们采用类似于残差连接的技术,使得模型能够将信息从前一层传递到后一层。具体而言,第 l+1 层的卷积层为:

    Z(l+1)=PH(l)W(l)H(l+1)=σ(Z(l+1))+H(l)

    这里我们提出另一种简单的技术来改善深层 GCN 的训练。在原始 GCN 中,每个节点都聚合了来自前一层邻域的representation。但是在深层 GCN 的背景下,该策略可能不太合适,因为它没有考虑深度。

    凭直觉,附近的邻居应该比远处的节点贡献更大。因此我们提出了一种更好的解决该问题的技术:放大邻接矩阵 A 的对角线部分,这样我们每个 GCN 层的聚合把更大的权重放到前一层的 representation 上。即:

    Z(l+1)=(P+I)H(l)W(l)H(l+1)=σ(Z(l+1))
  2. 这种方式看起来似乎合理,但是这对所有节点都使用相同的权重,无论其邻居数量是多少,这现得有些不合适。此外,当使用更深的层时,某些数值可能出现指数型增长,可能会导致数值不稳定。因此我们提出修改版,从而更好地维护邻域信息和数值范围。

    我们首先将一个单位矩阵添加到原始的 A 中并进行归一化:

    P~=(D+I)1/2(A+I)(D+I)1/2

    P~ 就是带自环的归一化矩阵。

    然后对消息进行传播:

    Z(l+1)=(P~+λdiag(P~))H(l)W(l)H(l+1)=σ(Z(l+1))

    其中 λ 为超参数, diag(P~)P~ 对角线组成的对角矩阵。

    实验表明这种对角线增强 diagonal enhancement 技术可以帮助构建更深的 GCN 并达到 state-of-the-art 性能。

    这就是人工构造的 attention:对 self 施加相对更大的重要性(这意味着对邻居施加更小的重要性)。可以通过 GAT 来自适应地学习 self 和邻居的重要性。

    根据论文的实验,当层数很深时,模型效果退化并且训练时间大幅上涨,因此没有任何意义。所以这一小节的内容没有价值。

18.2 实验

  1. 我们在两种任务上评估了 Cluster-GCN 的效果:在四个公共数据集上的 multi-label 分类任务和 multi-class 分类任务。这些数据集的统计信息如下表所示。

    注意:

    • Reddit 数据集是迄今为止我们所看到的最大的 GCN 公共数据集。
    • Amazon2M 数据集是我们自己收集的,比 Reddit 数据集更大。

    这些数据集的 training/validation/test 拆分如下表所示:

  2. baseline 方法:我们比较了以下 state-of-the-artGCN 训练算法以及 Cluster-GCN 方法:

    • VRGCN:保留图中所有节点的历史embedding 均值,并仅采样少数几个邻居来加快训练速度。我们采用原始论文中的建议,将采用邻居数量设为 2
    • GraphSAGE:对每个节点采样固定数量的邻居。我们使用原始论文中默认的邻居数量 :双层GCN 第一层、第二层采样数量分别为 D(1)=25,D(2)=10

    由于原始 GCN 很难扩展到大图,因此我们不比较原始 GCN 。根据 VRGCN 论文所述,VRGCNFastGCN 更快,因此我们也不比较 FastGCN

  3. 实验配置:我们使用 PyTorch 实现了 Cluster-GCN。对于其它baseline,我们使用原始论文提供的代码。

    • 所有方法都采用 Adam 优化器,学习率为 0.01dropout 比例为20%,权重衰减weight decay 为零。

    • 所有方法都采用均值聚合,并且隐层维度都相同。

    • 所有方法都使用相同的 GCN 结构。

    • 在比较过程种我们暂时不考虑 diagonal enhancement 之类的技术。

    • 对于 VRGCNGraphSAGE ,我们遵循原始论文种提供的配置,并将 batch-size 设为 512

    • 对于 Cluster-GCN,下表给出了每个数据集的分区数量,以及每个 batch 的簇的数量。

    • 所有实验均在 20 核的 Intel Xeon CPU(2.20 GHz) + 192 GB 内存 + NVIDIA Tesla V100 GPU(16GB RAM) 上执行。

    注意:在 Cluster-GCN 种,聚类算法被视为预处理步骤,并且未被计入训练时间。聚类只需要执行一次,并且聚类时间很短。

    此外,我们遵从FastGCNVR-GCN 的工作,对 GCN 的第一层执行 AX 的预计算 pre-compute,这使得我们节省了第一层昂贵的邻域搜索过程。

    为了用于 inductive setting,其中测试节点在训练期间不可见,我们构建了两个邻接矩阵:一个邻接矩阵仅包含训练节点,另一个邻接矩阵包含所有节点。图划分仅作用在第一个邻接矩阵上。

    为了计算内存用量,对于 TensorFlow 我们使用 tf.contrib.memory_stats.BytesInUse(),对于 PyTorch 我们使用 torch.cuda.memory_allocated()

18.2.1 中等规模数据集

  1. 我们首先在训练速度和训练准确性方面评估 Cluster-GCN。我们给出两层GCN、三层GCN、四层 GCN 在三个中等规模数据集PPI、Reddit、Amazon 上的训练时间和预测准确性,如下图所示。其中 x 轴为训练时间(单位秒),y 轴为验证集准确性(单位 F1-Score)。

    由于 GraphSAGEVRGCN、Cluster-GCN 更慢,因此 GraphSAGE 的曲线仅出现在 PPI、Reddit 数据集上。

    对于 Amazon 数据集,由于没有节点特征,因此我们用一个单位矩阵 I 来作为特征矩阵 X 。在此配置下,参数矩阵 W(0) 的维度为 334863 x 128 。因此,计算主要由稀疏矩阵运算决定(如 AW(0)) 。

    结论:

    • PPIReddit 数据集中,Cluster-GCN 的训练速度最快,同时预测准确性也最好。
    • Amazon 数据集中,Cluster-GCN 训练速度比 VRGCN 更慢,预测准确性除了三层GCN 最高以外都差于 VRGCN

  2. Cluster-GCNVRGCN 更慢的原因可能是:不同框架的稀疏矩阵的运算速度不同。VRGCNTensorflow 中实现,而 Cluster-GCNPyTorch 中实现。PyTorch 中的稀疏张量支持目前处于早期阶段。

    下表中我们显示了 TensorflowPyTorch 对于 Amazon 数据集执行前向、反向操作的时间,并使用一个简单的、两层线性网络对这两个框架进行基准测试,括号中的数字表示隐层的维度。我们可以清楚地看到TensorflowPyTorch 更快。当隐层维度更高时,差异会更大。这解释了为什么 Cluster-GCNAmazon 数据集中训练时间比 VRGCN 更长。

  3. 对于GCN 而言,除了训练速度以外,内存需求通常更重要,因为这将直接限制了算法的可扩展性。

    • 内存需求包括训练多个 epoch 所需的内存。为加快训练速度,VRGCN 需要在训练过程中保持历史 embedding,因此和 Cluster-GCN 相比 VRGCN 需要更多的内存。
    • 由于指数级邻域扩展的问题,GraphSAGE 也比 Cluster-GCN 需要更多的内存。

    下表中,我们给出了不同方法在不同数据集上训练两层GCN、三层GCN、四层 GCN 所需要的内存。括号中的数字表示隐层的维度。可以看到:

    • 当网络更深时,Cluster-GCN 的内存使用并不会增加很多。因为每当新增一层,引入的额外变量是权重矩阵 W(L) ,相比较于子图以及节点特征,它需要的内存较少。
    • 尽管 VRGCN 只需要保持每一层的历史 embedding 均值,但是这些 embedding 通常都是稠密向量。因此随着层的加深,它们很快统治了内存需求。
    • Cluster-GCNVRGCN 有更高的内存利用率。如在 Reddit 数据集上训练隐层维度为 512 的四层 GCN 时,VRGCN 需要 2064MB 内存,而 Cluster-GCN 仅需要 308MB 内存。

18.2.2 大规模数据集

  1. 迄今为止评估GCN 的最大的公共数据集是 Reddit 数据集,其统计数据如前所述。Reddit 数据集大约包含 200K 个节点,可以在几百秒之内训练 GCN

    为测试 GCN 训练算法的可扩展性,我们基于 Amazon co-purchasing 网络构建了一个更大的图,图中包含 200 万节点、6100 万边。原始的 co-purchase 数据来自于 Amazon-3M

    图中每个节点都是一个商品,图中的连接表示是否同时购买了两个商品。每个节点特征都是从商品描述文本中抽取的 bag-of-word ,然后通过 PCA 降维到 100 维。此外,我们使用 top-level 的类别作为节点的label 。下表给出了数据集中频次最高的类别:

  2. 我们在这个大型数据集上比较了 Cluster-GCNVRGCN 的训练时间、内存使用、测试准确性(F1-Score 来衡量)。

    可以看到:

    • 训练速度:对于两层GCNVRGCN 训练速度更快;但是对于更深的GCNCluster-GCN 训练速度更快。
    • 内存使用:VRGCNCluster-GCN 需要多得多的内存,对于三层GCNVRGCN 所需内存是 Cluster-GCN 的五倍。当训练四层GCNVRGCN 因为内存耗尽而无法训练。
    • 测试准确性:Cluster-GCN 在四层GCN 时可以达到该数据集上的最佳准确性。

18.2.3 深层 GCN

  1. 这里我们考虑更深层的 GCN。我们首先给出 Cluster-GCNVRGCNPPI 数据集上不同深度的训练时间的比较,其中每种方法都训练 200epoch

    可以看到:VRGCN 的训练时间因为其代价较高的邻域发现而呈现指数型增长,而 Cluster-GCN 的训练时间仅线性增长。

  2. 然后我们研究更深的GCN 是否可以得到更好的准确性(衡量指标为验证集的 F1-score )。我们在 PPI 数据集上进行实验并训练 200epoch ,并选择dropout rate = 0.1 。其中:

    • Cluster-GCN with (1) 表示:原始的 Cluster-GCN

    • Cluser-GCN with (10) 表示:考虑如下的 Cluster-GCN

      P~=(D+I)1/2(A+I)(D+I)1/2Z(l+1)=P~H(l)W(l)H(l+1)=σ(Z(l+1))
    • Cluster-GCN with (10) + (9) 表示:考虑如下的 Cluster-GCN

      P~=(D+I)1/2(A+I)(D+I)1/2Z(l+1)=(P~+I)H(l)W(l)H(l+1)=σ(Z(l+1))
    • Cluster-GCN with (10) + (11) 表示:考虑如下的 Cluster-GCN

      P~=(D+I)1/2(A+I)(D+I)1/2Z(l+1)=(P~+λdiag(P~))H(l)W(l)H(l+1)=σ(Z(l+1))

      其中 diag(P~)P~ 对角线组成的对角矩阵。

    可以看到:

    • 对于2 层到 5 层,所有方法的准确性都随着层深度的增加而提升,这表明更深的 GCN 可能是有效的。

    • 当使用 7 层或 8 层时,前三种方法无法在 200epoch 内收敛,并会大大降低准确性。可能的原因是针对更深GCN 的优化变得更加困难。其中红色的数字表示收敛性很差。

      即使是第四种方法,它在层数很深时虽然收敛,但是模型效果下降、训练时间暴涨(根据前面的实验),因此没有任何意义。

      此外,原始 Cluster-GCN 在五层时达到最好的效果,所以对角增强技术失去了价值。

  3. 为考察更深层GCN 的详细收敛性,我们给出了采用对角增强技术(即 Z(l+1)=(P~+λdiag(P~))H(l)W(l) ) 之后,八层的GCN 在不同 epoch 上的验证准确性(F1-Score)。

    可以看到:我们提出的对角增强技术可以显著改善模型的收敛性,并得到较好的准确性。

  4. 采用了对角增强技术的 Cluster-GCN 能够训练更深的 GCN 从而达到更好的准确性(F1-Score)。我们在下表中给出不同模型在不同数据集上的测试F1-Score

    可以看到:

    • PPI 数据集上,Cluter-GCN 通过训练一个具有 2048 维的隐层的 5GCN 来取得 state-of-the-art 效果。
    • Reddit 数据集上,Cluster-GCN 通过训练一个具有 128 维隐层的4GCN 取得 state-of-the-art 效果。

    这个优势并不是对角增强技术带来的,而是因为 Cluster-GCN 的内存需求更少从而允许训练更深的模型,而更深的模型通常效果更好。

  5. 前面的实验都未考虑 ClusterGCN 的预处理时间(如,数据集加载,graph clustering 等等)。这里我们给出 Cluster-GCN 在四个数据集上的预处理时间的细节。对于 graph clustering,我们使用 Metis 。结果如下表所示。可以看到:

    • graph clustering 算法仅占用预处理时间的很小比例。
    • graph clustering 可以扩展到大型的数据集。

    此外,graph clustering 仅需要执行一次,并且之后被后续的训练过程重复使用。

十九、LDS-GNN[2019]

  1. 关系学习relational learning 同时利用了样本自身的属性以及样本之间的关系。例如:患者诊断不仅需要考虑患者本身的信息,还需要考虑患者亲属的信息。因此,关系学习不会假设数据点之间的独立性,而是显式建模它们之间的依赖关系。图是表示关系信息relational information的自然的方式,并且已经有很多利用图结构的方法,如图神经网络GNN

    虽然图结构在某些领域可用(如社交网络),但是在另一些领域中我们必须构造图结构。

    • 一种常用的人工构造图结构的方法是:基于样本之间的某种相似性来构建 kNN 图。这种方法被很多算法采用(如 LLE,IsoMap),但是它存在不足:模型效果取决于 k 值的选择,也取决于相似性度量的选择。

      另外在这种方法中,图的构建和 GNN 参数的学习是相互独立的,图的构建需要启发式方法并反复实验。

    • 另一种方法是简单地使用核矩阵 kernel matrix 来隐式建模样本之间的相似性,但是得到了稠密的相似性矩阵(对应于全连接图)维代价。

    论文 《Learning Discrete Structures for Graph Neural Networks》 提出了不同的方法同时学习了图的构建和 GNN 参数,即 LDS-GNN 。简单而言,论文提出了学习图生成概率模型,其中节点来自于训练集和测试集,边被建模为随机变量,其参数视为 bilevel 学习框架中的超参数。论文在最小化内层目标函数(GCN 训练误差)的同时对图结构进行迭代式采样,并通过最小化外层目标函数(GCN 验证误差)来优化边的分布参数。

    两层优化:内层在训练集上优化训练损失,外层在验证集上优化验证损失。该方法仅用于小型图,计算量很大并且不能保证收敛性。

    据作者所知,这是针对半监督分类问题中,同时学习图结构和 GNN 参数的第一种方法。此外,论文使用基于梯度的超参数优化来处理不连续的超参数(边是否存在)。通过一系列实验,结果证明了论文的方法比现有方法的优势,同时验证了图生成模型具有有意义的边概率(即:边是否存在的概率)。

  2. 相关工作:

    • 半监督学习 Semi-supervised Learning:基于图的半监督学习的早期工作使用图拉普拉斯正则化graph Laplacian regularization ,包括标签传播 label propagation: LP、流形正则化 manifold regularization: ManiReg、半监督嵌入 semi-supervised embedding: SemiEmb。这些方法假设给定一个图,其中边代表节点之间的某种相似性。

      • 后来,《Revisiting semi-supervised learning with graph embeddings》 提出了一种方法,该方法不使用图进行正则化,而是通过联合classificationgraph context prediction 这两个任务来学习 embedding
      • 《Semi-supervised classification with graph convolutional networks》 提出了第一个用于半监督学习的 GCN

      现在有许多 GCN 变体,所有这些变体都假设给定了图结构。与所有现有的 graph-based 半监督学习相反,LDS 即使在图不完整或图缺失的情况下也能工作。

    • 图合成和生成 graph synthesis and generationLDS 学习图的概率生成模型。

      • 最早的图概率生成模型是 《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)会将外层目标视为黑盒函数,并且不会利用 F 相对于采样的邻接矩阵和内部优化动态 inner optimization dynamics 是可微的。相反,路径估计器 path-wise estimator 并不容易使用,因为随机变量是离散的。

      LDS 借鉴了之前提出的解决方案(《Estimating or propagating gradients through stochastic neurons for conditional computation》),但是代价是估计有偏。

19.1 模型

19.1.1 背景知识

  1. 给定图 G=(V,E,A) ,其中 :

    • V={v1,,vn} 为节点集合, EV×V 为边集合。

    • 邻接矩阵 ARn×n 为:

      Ai,j={1,(vi,vj)E0,(vi,vj)E
    • 图拉普拉斯矩阵为 L=DA ,其中 D=diag(Di)Rn×n 为度矩阵,Di=jAi,j

    • 每个节点 vi 关联一个特征向量 xiRdf ,其中 df 为特征向量的维度。

      所有节点的输入特征向量拼接为特征矩阵 XRn×df ,其中第 i 行为 xi

    • 每个节点 vi 关联一个 label yi ,将其展开为one-hot 向量为 yiRK ,其中 K 为类别数量 。

      所有节点的label 向量拼接为label 矩阵 YRn×K,其中第 i 行为 yi

    定义所有的邻接矩阵的取值空间为 AnRn×n ,定义所有特征矩阵的取值空间为 XnRn×df ,定义label 矩阵的取值空间为 YnRn×K

    则图神经网络的目标是学习函数:

    fw:Xn×AnYn

    其中 wRdw 为网络的参数,它将所有参数展平为一维向量。

  2. 为学习目标函数,我们在训练集上最小化经验损失:

    L(w,A)=vVtrainl(fw(X,A)v,yv)+Ω(w)

    其中:

    • fw(X,A)vfw 针对节点 v 的输出。
    • l(,)point-wise 损失函数。
    • Ω() 为正则化函数。

    GCN 中,一个典型的 fw 为:

    fw(X,A)=softmax(A^relu(A^XW1)W2)

    其中:

    • A^=D~1/2(A+I)D~1/2 为归一化的邻接矩阵。D~=diag(D~i),D~i=1+jAi,j 为归一化的度矩阵。
    • 网络为两层网络,参数 w(W1,W2) 展平为一维向量的形式。
  3. Bilevel program 是一种优化问题,其中目标函数中出现的一组变量被约束为另一个优化问题的最优解。Bilevel program 出现在很多常见下,比如超参数调优、多任务学习、meta-learning 学习等。

    给定外层目标函数 outer objective F 和内层目标函数 inner objective L ,给定外层变量outer variable θRdm 和内层变量 inner variable wRdw ,则一个bilevel program 定义为:

    minθ,wθF(wθ,θ)s.t.wθargminwL(w,θ)

    直接求解上式非常困难,因为内层问题inner problem 通常没有闭式解。一种标准的求解方式是:利用迭代式的动态优化过程 Φ (如随机梯度下降)的重复执行,从而代替直接求解 L 的最小值。

    wθ,T 为内层变量在经过 T 次迭代之后的结果,即:

    wθ,T=Φ(wθ,T1,θ)=Φ(Φ(wθ,T2,θ),θ)=

    假设 θw 都是实数,且目标函数 F,L 和动态优化函数 Φ 都是光滑的,则我们可以计算外层目标函数 F 关于外层变量 θ 的梯度为:

    θF(wθ,T,θ)=F(wθ,T,θ)wθwθ,T+F(wθ,T,θ)θ

    我们称其为超梯度hypergradient 。其中 θwθ,T 可以通过展开计算图并利用链式法则来在 O(T(dw+dm)) 时间内高效地计算。

    这种技术允许我们同时调优多个超参数,其调优数量比经典的超参数优化技术大几个量级。

    但是这种方法需要执行更多的 Φ ,计算量剧烈增长。

19.1.2 LDS

  1. 在现实世界中,经常会出现带噪音的图(noisy graph)、结构残缺的图(incomplete graph )、甚至完全没有图结构( missing graph) 。为解决这些问题,我们必须在训练 GCN 网络参数的同时,还需要学习图结构。

    我们将这个问题构造为一个 Bilevel program 问题,其中外层变量为图生成概率模型的参数,内层变量为 GCN 模型的参数。我们的方法同时优化了 GCN 模型参数以及图生成概率模型的参数。下图给出了我们方法的示意图:

  2. 假设真实邻接矩阵 A 因为种种原因不可用(如 nosisy, incomplete, missing),我们的目标是寻找最小泛化误差的模型。给定验证集 Vval ,我们假设验证集的误差就代表者泛化误差。因此我们的目标是寻找使得以下函数最小的邻接矩阵 AAn

    F(wA,A)=vVvall(fwA(X,A)v,yv)

    其中 wA 为固定邻接矩阵 A 时,损失函数 L 最小的 w (假设存在且唯一)。

    因此:

    • 我们将 L(w,A)=vVtrainl(fw(X,A)v,yv)+Ω(w) 设为内层目标函数,其目标是求解给定图结构的 GCN 的最佳参数。

    • 我们将 F(wA,A)=vVvall(fwA(X,A)v,yv) 设为外层目标函数,其目标是求解最佳的图结构。

      注意,L 是在训练集 Vtrain 上评估,F 是在验证集 Vval 上评估。

  3. 即使是很小的图,bilevel 问题也难以直接求解。另外,上述模型包含连续变量(GCN 参数)和离散变量(网络结构),这使得我们无法直接求解梯度(离散型变量无法求导)。

    一种可能的解决方案是对离散型变量构造连续性松弛 continuous relaxation;另一种方案是对离散型变量使用概率分布。这里我们采用第二种方案。

    我们利用二元伯努利随机变量对图的每条边进行建模,并假设每条边是否存在是相互独立的,则我们可以采样一个图 ABer(θ) 。其中 θ 代表每条边是否存在的概率,θi,j(0,1)

    这种边的独立性假设可能并不成立。假设 v1v2 之间存在边、v2v3 之间存在边,那么 v1v3 之间存在边的可能性较大。也就是边的存在不是独立的。

    我们基于图结构的生成模型来重写 bilevel 问题为:

    minθ,wθEABer(θ)[F(wθ,A)]s.t.wθargminwEABer(θ)[L(w,A)]

    利用期望,现在内层目标函数和外层目标函数都是伯努利分布的参数的连续函数。

    上式给出的 bilevel 问题仍然难以有效求解,这是因为内层目标函数对于 GCN 而言没有闭式解(目标函数非凸)。因此有效的算法仅能找到近似的解。

  4. 在给出近似解之前,我们先关注于GCN 模型的输出。对于具有 n 个节点的图 G ,给定边的分布概率 Pθ (其中 θ 为每条边的存在的概率),则 GCN 的期望输出为:

    fwexp(X)=EAPθ[fw(X,A)]=APθ(A)fw(X,A)

    不幸的是,即使对于很小的图,计算这个期望值也非常困难。于是我们可以计算期望输出的经验估计:

    f^w(X)=1Ss=1Sfw(X,As)

    其中 S>0 为图生成模型的采样数量, As 为通过 Pθ(A) 采样的第 s 个图的邻接矩阵。

    注意:

    • f^w(X)fwexp(X) 的一个无偏估计。因此,为了使用 bilevel 中学到的 GCN fw 来进行预测,我们需要从 Pθ 中采样 S 个图,并计算 fw 的均值作为预测结果。
    • 由于 fw 通常都是非线性函数,因此有:E[fw(X,A)]fw(X,E[A])=fw(X,θ) 。最后一个等式成立是因为对于伯努利随机变量的期望等于其概率。
  5. 给定具有伯努利随机变量的图生成模型(边的概率分布PθBer(θ) ),则可以在 O(n2) 时间内采样一个新的图。由于不同边对应的随机变量是相互独立的,因此从大量伯努利随机变量进行采样是高效的、可并行化的,并且能够以百万每秒的速度执行。

    • 如果将伯努利参数直接作为 GCN 的邻接矩阵,则这相当于一个全连接图,图中每条边的权重就是边存在的概率。此时计算GCN 输出的计算复杂度为 O(n2dw)

    • 如果采样 S 个图并计算其 GCN 的平均输出,由于每个采样的图都是稀疏图,则总的计算复杂度为 O(Snedw) ,其中 ne=i,jθi,j 为期望的边的数量。因此相比于前一种方式,这种计算输出的方式的效率更高。

      另外,使用图生成模型的另一个优势是:我们能够在概率上解释它。而学习稠密的邻接矩阵则无法做到。

      对于具有百万级别以上的大型图,O(n2) 时间复杂度的图采样过程完全是不可行的。因此该方法仅适用于小型图。

  6. 现在我们考虑 bilevel 问题的近似解。

    我们基于图结构的生成模型来重写 bilevel 问题为:

    minθ,wθEABer(θ)[F(wθ,A)]s.t.wθargminwEABer(θ)[L(w,A)]

    其中图生成模型的参数 θ 为外层变量,GCN 模型参数 w 为内层变量。

    • 对于内层问题,我们考虑期望 EABer(θ)[L(w,A)] 是由 2n2 项求和而来(一共 n2 个伯努利随机变量,每个变量取值为 01 )。因此即使对于很小的图,其计算复杂度也非常高。但是,换个角度来看,我们可以利用迭代式的动态优化过程 Φ (如随机梯度下降)的重复执行,从而代替直接求解 L 的最小值:

      wθ,t+1=Φ(wθ,t,At)=wθ,tγtL(wθ,t,At)

      其中 γt 为学习率, AtBer(θ) 为每轮迭代中采样到的图的邻接矩阵。

      在合适的假设下,当 t 时,SGD 收敛到权重向量 wθ ,并且该向量仅取决于边的概率分布 Pθ

      这种方法就是标准的随机梯度下降,其中邻接矩阵 At 在每个 step 发生改变。但是,这种方式是否保证能够收敛到最小值?论文并未证明。直觉上看,难以保证收敛,因为在梯度下降过程中 At 不断在变化,这导致 GCN 所应用的图在不断变化。

    • 对于外层问题,令 wθ,TE[L] 的近似极小点( T 可能依赖于 θ ),现在我们需要计算超梯度期望 θEABer(θ)[F] 的近似估计。

      根据:

      θF(wθ,T,θ)=F(wθ,T,θ)wθwθ,T+F(wθ,T,θ)θ

      我们有:

      θE[F(wθ,T,A)]=E[θF(wθ,T,A)]=E[F(wθ,T,A)wθwθ,T+F(wθ,T,A)AθA]

      我们使用所谓的 straight-through 估计,并令 θA=I (因为 A 是由二元伯努利变量生成,对应的参数为 θ )。

    最后,我们对上式采用单个样本的蒙特卡洛估计来更新参数 θ,更新时采用梯度投影并将 θ 在单位立方体上截断(因为每个 θi,j 都在 01 之间)。

  7. 在计算外层问题的超梯度时,需要对 Φ 进行展开。因为计算 θwθ,T 时需要考虑到:

    wθ,T=Φ(wθ,T1,θ)=Φ(Φ(wθ,T2,θ),θ)=

    这在时间和空间上都代价太大。

    此外,我们依赖于梯度的有偏估计,因此并不期望从完整的计算中获得太多收益。因此我们建议截断计算,并在每 τ 次迭代中估计超梯度,其中 τ 为算法的超参数。这本质上是截断的反向传播算法,可以看作是一个 short-horizon 优化过程,其中带有对 w 的热重启 warm restart

  8. LDS 算法:

    • 输入:

      • 特征矩阵 X
      • 标签矩阵 Y
      • 可能有(也可能没有)邻接矩阵 A
      • 学习率 η
      • 超梯度截断步长 τ
      • 可能有(也可能没有)用于计算 kNNk
    • 输出:最佳的权重 w 和最佳的概率分布 Pθ

    • 算法步骤:

      • 如果没有邻接矩阵 A ,则通过 kNN 来初始化邻接矩阵 AkNN(X,k)

      • 通过 A 来初始化 θθA

      • 外层迭代,当停止条件未满足时(基于验证集):

        • t0

        • 内层迭代,当内层目标函数还在下降时(基于训练集):

          • 采样一个新的图:AtBer(θ)

          • 优化内层目标函数:wθ,t+1Φt(wθ,t,At)

          • tt+1

          • 如果 τ=0 或者 t mod τ=0,则:

            • 采样一个新的图: AtBer(θ)

            • 计算 q=F(wθ,t,A)w

            • GF(wθ,t,A)A

            • 迭代 s=t1,,tτ

              • 采样一个结构: AsBer(θ)
              • 计算 pDs(wθ,s,As)p ,其中 Ds(wθ,s,As)=Φ(wθ,s,As)w 为雅可比矩阵
              • 计算 GG+Es(wθ,s,As)p ,其中 Es(wθ,s,As)=Φ(wθ,s,As)AsAsθ=Φ(wθ,s,As)As
            • 优化外层目标函数: θθηG ,并将 θ 投影到单位立方体

      • 返回最佳的权重 w 和最佳的概率分布 Pθ

  9. LDS 算法包含外层停止条件和内层停止条件。

    • 对于内层停止条件,我们发现以内层目标函数的下降作为内层停止条件非常有效。

      我们持续优化 L 直到 L(wt1,θ,A)(1+ϵ)L(wt,θ,A) ,其中 ϵ>0 ,在实验中我们选择 ϵ=103 。由于 L 是非凸的,因此我们选择一个 patience 窗口为 p 个迭代步。

    • 对于外层停止条件,我们发现使用早停策略非常有效。

      我们选择一部分验证集 Vvalid ,并通过期望输出 f^w(X)=1Ss=1Sfw(X,As) 来评估验证准确性。如果外层循环连续几次迭代都没有得到改善则提前停止优化过程。这有助于避免外层目标函数过拟合。

      但是当需要优化的参数数量太多、验证集规模太小时,可能会存在验证集的过拟合。

  10. 每次外层迭代中,对超梯度的估计都存在偏差。偏差即来自于 straig-through 估计,也来自于超梯度的截断。尽管如此,我们从实验中发现该算法能够取得良好的效果,并能够在边的分布空间中找到适合于当前任务的参数。

  11. LDS 借鉴了之前提出的启发式方案,但是代价是超梯度估计是有偏的。

    给定一个函数 h(z),其中 z 是一个伯努利分布的离散型随机变量,其分布依赖于 θ 。作为示例,我们考虑非常简单的情况:假设 h(z)=(azb)2/2a,b 都为标量, zBer(θ),θ[0,1]

    • E[h]θ 的梯度可以简单计算得到:

      θEzBer(θ)[h(z)]=θ[θ(ab)22+(1θ)b22]=a22ab
    • E[h]θ 的梯度对应的 straight-through 估计量为:

      g^(z)=h(z)z=(azb)a,zBer(θ)

      则有:

      EzBer(θ)[g^(z)]=θ(ab)a+(1θ)(ab)=θa2ab

      通常 θ1/2 ,因此 g^ 是一个有偏的估计。

  12. LDS 算法有两个缺陷:

    • 计算复杂度太高,导致无法扩展到大图。
    • 仅限于 transductive learning,无法扩展到未见过的节点。对于新的、未见过的节点,需要从头开始重新训练模型。

19.2 实验

  1. 我们针对三个目标进行了一系列实验:

    • 首先,我们在节点分类问题上评估 LDS,其中图结构虽然可用但是缺失了一定比例的边。这里我们将 LDS 和包括普通 GCN 在内的基于图的学习算法进行比较。

    • 其次,我们想验证我们的假设,即 LDS 可以在没有图的半监督分类问题上取得有竞争力的结果。这里我们将 LDS 和许多现有的半监督分类算法进行比较。

      此外,我们对比了一些图算法,图是通过在数据集上创建的 kNN 近邻图。

    • 最后,我们分析了学到的图生成模型,从而了解LDS 如何学到有意义的边的概率分布。

  2. 数据集:

    • 图数据集: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 个音频特征,任务是音乐风格分类。

    所有这些数据集的统计信息如下:

  3. baseline 方法:

    • 对于图算法,我们对比了以下方法:普通 GCNGCN-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 值的选择、度量函数的选择。我们从 k{2,3,,20} ,以及度量函数为欧拉距离、cosine 距离 ,然后通过验证集的准确性来调优这两个超参数。

    对于 kNN-LDSk{10,20}

  4. GCNLDS 配置:

    • 对于所有用到 GCN 的网络,我们使用两层 GCN 网络,隐层维度为 16,采用 ReLU 激活函数。

    • 我们使用 0.5dropout rate 来执行 dropout,从而执行额外的正则化。

    • 我们使用 Adam 优化器,学习率从 {0.005,0.01,0.02} 中选择

    • SemiEmbFFNN 使用相同数量的隐层维度、相同的激活函数。

    • 我们使用带正则化的交叉熵损失函数:

      L(w,A)=vVtrainyvlog[fw(X,A)v]+ρw2

      其中 yv 为第 v 各节点的标签的 one-hot 向量, 为逐元素乘积, ρ 为非负的正则化系数。

    • 对于 LDS,除了已知的边或者 kNN 构造的边我们设置为 θi,j=1 之外,其它的 θi,j=0

    • 我们将验证集平均划分为验证集 (A) 和早停集(B)。对于外层目标,我们使用 (A) 上的不带正则化的交叉熵损失,并通过随机梯度下降对其进行优化。

    • 我们通过超参数调优来优化外层循环的步长 η ,即超梯度截断的更新次数 τ

    • 最后我们采样 S=16 个样本来计算输出的预测。

    • 对于 LDSGCN,我们以 20 步的窗口大小来应用早停。

    其它方法的实现来自于 skicit-learn 或者原始论文。所有方法的超参数都是通过验证集的 accuracy 来调优。

19.2.1 图数据集

  1. 我们比较了在图数据集(Cora 左图、Citeseer 中间图)的残缺图上的结果。我们给出边的每个保留比例,以及对应的验证集准确率(虚线,用于早停)和测试集准确率(实线),阴影表示标准差。所有结果都随机执行5 次并取均值。

    可以看到:

    • LDS 在所有情况下都具有竞争性优势,准确率提升了 7% 。最终 CoraCiteseer 的准确率分别为 84.1%75.0%,超越了所有的 state-of-the-art 模型。
    • 当保留所有的边(100%)时,LDS 还可以通过学习其它额外的、有用的边来提高 GCN 模型的泛化准确率。
    • GCNGCN-RND 对比中可以看到,随机添加边并不能减少泛化误差,这对于模型没有任何帮助。

    右图给出超梯度截断的更新次数 τLDS 的影响。τ=0 对应于内层、外层交替优化。可以看到:

    • τ>0 (即:内层多步优化)的效果要远远超过交替优化
    • τ 进一步提升到 20 并不会带来明显提升,同时会增加计算成本

  2. 上述实验更详细的结果如下表所示,其中(+- 表示标准差)。

  3. 我们考虑 LDSCora,Citeseer 数据集上期望的边的数量,从而分析学到的图生成器采样的图的属性。

    • LDS 期望的边的数量高于原始图的边的数量,这是可以预期的,因为 LDS 具有比普通 GCN 更高的准确率。
    • 尽管如此,LDS 学到的图仍然是非常稀疏的,如,对于 Cora 而言平均只有不到 0.2% 的边。这有助于 LDS 的内层循环中有效学习 GCN

19.2.2 半监督学习

  1. 我们考察 LDS 在所有数据集上的半监督学习效果。每个实验随机执行 5 次并报告平均的测试准确率和标准差(以 +- 表示)。有竞争力的结果以粗体展示。

    结论:

    • 非图算法在某些数据集上效果很好(如 Wine,Cancer,FMA),但是在 Digits,Citeseer,Cora,20news 等其它数据集上效果较差。
    • LP, ManiReg, SemiEmb 只能改善 Digits,20news 数据集的效果。
    • 和非图算法相比,kNN-GCN 效果很好,并提供了具有竞争力的结果。
    • kNN-LDS 是所有数据集中最具竞争力的方法之一,并且在图数据集上获得最高的收益。
    • kNN-LDS 的性能略优于其 dense 模型,并且其稀疏图可以扩展到更大的数据集。

19.2.3 图生成模型

  1. 我们给出LDSτ=5) 在Cora 数据集(保留 25% 的边)学习过程中,三种类型的节点(训练集、验证集、测试集,对应于下图的从左到右)的平均的边概率的演变,每种类型一个节点。对于每个样本节点,所有其它节点被划分为四个分组:底层真实图中相邻的节点(True link)、相同类别的节点(Same class)、不同类别的节点(Different classes)、未知类别的节点(Unknown classes) 。图中灰色竖线指示内层优化何时重启。纵坐标以 log 10 来表示。

    • 平均而言,LDS 将相同类别标签样本之间存在边的概率提高了 10100 倍。
    • LDS 能够为真实相邻的边赋予一个较高的概率。

  2. 我们给出LDSτ=5) 在Cora 数据集(保留 25% 的边)学习完成之后,三种类型的节点(训练集、验证集、测试集,对应于下图的从左到右)的边的概率的归一化直方图,每种类型一个节点。对于每个样本节点,所有其它节点被划分为两个分组:相同类别的节点(Same class)、不同类别或未知类别的节点(Different/Unknown classes) 。直方图统计按照 log 10 分为六个桶。

    可以看到:LDS 学到边的高度非均匀的概率分布能够反应节点的类别。

  3. 我们给出LDSτ=5) 在Citeseer 数据集(保留 25% 的边)学习完成之后,被 kNN-GCN 误分类但是被 kNN-LDS 正确分类的测试集的三个节点的边的概率的归一化直方图。。对于每个样本节点,所有其它节点被划分为两个分组:相同类别的节点(Same class)、不同类别或未知类别的节点(Different/Unknown classes) 。直方图统计按照 log 10 分为六个桶。

    可以看到:

    • LDS 学到边的高度非均匀的概率分布能够反应节点的类别,这和前面的结论相同。
    • 可能更重要的是捕获有效的边的分布(即相同类别之间存在边的概率更高),而不是选择正确的连接。

  4. 我们用 t-SNE 进一步可视化了 GCNLDS 学到的 embedding。下图给出了 Citeseer 数据集上使用 Dense-GCN(左)、kNN-GCN(中)、kNN-LDS(右)学到的 embedding 的的 t-SNE 可视化。该 embedding 是最后一层卷积层的输出。

    可以看到:kNN-LDS 学到的 embedding 在所有不同类别之间提供了最佳分隔。

二十、DIAL-GNN[2019]

  1. 近年来图神经网络GNN 被广泛使用,不幸的是只有图结构的数据才能使用 GNN 。很多真实世界中的数据(如社交网络)天然就是图结构数据,但是对于下游任务而言,这些天然的图结构是否对于当前任务是最优的则不一定。更重要的是,很多场景下可能没有图结构数据,因此需要从原始数据中构造图结构数据。

    • 在图信号处理领域,研究人员探索了从数据中学习图结构的各种方法,但是他们并未考虑下游任务。
    • 另外,越来越多的工作研究交互系统的动态建模从而利用隐式的交互模型,但是这些方法无法在很多噪音甚至没有图结构的情况下直接联合学习图结构和 graph representation
    • 最近,研究人员探索了对非图结构数据自动构建图结构并应用 GNN,但是这些方法仅优化了针对下游任务的图结构,并未利用已被证明在图信号处理中非常有用的技术。
    • 最近,论文 《Learning Discrete Structures for Graph Neural Networks》 提出了一种新的方法(即,LDS-GNN ),该方法通过近似求解一个 bilevel program 从而共同学习图结构和 GCN 参数。但是,该方法存在严重的可扩展性问题,因为它需要学习 n2 个伯努利随机变量(n 为图中节点数量)。更重要的是,它只能应用于 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 learninginductive learning

    最后,通过广泛的实验表明,在下游任务性能以及计算时间方面,论文提出的 DIAL-GNN 模型可以始终超越或者接近 state-of-the-art 基准模型。

20.1 模型

  1. 给定 n 个节点的集合 V={v1,,vn} ,每个节点 v 关联一个特征向量 xvRd 。所有节点的特征向量组成特征矩阵 XRd×n ,其中第 v 行对应于节点 v 的特征向量 xv

    图结构学习任务的目标是自动学习图结构 G ,以邻接矩阵 ARn×n 的形式,然后 GGNN-based 模型来应用于下游的预测任务。

  2. 大多数现有方法通过预处理过程来基于人工规则或特征来构造图,如 kNN 近邻图。和这些方法不同,我们提出的 DIAL-GNN 框架将问题描述为一个迭代式学习问题,该问题以端到端的方式联合学习图结构和 GNN 参数。

    DIAL-GNN 整体架构如下图所示,其中最左侧图中的虚线表示原始的图结构 A0 ,它来自于真实的图结构(如果存在) 或者来自于kNN 近邻图构建的图结构。

20.1.1 相似度量学习

  1. 构建图的一个常用策略是:首先基于某种度量来计算节点pair 对之间的相似度,然后在下游任务中使用人工构建的图。和这些方法不同,我们为图结构学习设计了一个可学习的度量函数,它将与下游任务的模型一起训练。

  2. Similarity Metric Learning:类似于 multi-head attention 机制,我们设计了 multi-head 余弦相似度:

    si,j(k)=cos(wkvi,wkvj)si,j=1Kk=1Ksi,j(k)

    其中:

    • si,j(k) 为两个输入向量 vivj 在第 k 个视图上的余弦相似度, k=1,,KKhead 的数量。
    • wk 为第 khead 的权重向量,它在所有节点之间共享,并代表一个视图 perspective 。每个视图捕获了节点之间的部分相似语义。
    • 为逐元素乘积。

    我们用 K 个权重向量独立地计算 K 个余弦相似度矩阵,然后将它们的均值作为最终相似度 S

    这里采用权重向量的逐元素乘积,而不是基于矩阵乘法的投影(即,Wkvi )。如果采用矩阵乘法的投影,那么模型容量更大同时参数也更多(权重矩阵 Wk vs 权重向量 wk )。

    这里多个视图的相似性取平均,也可以考虑取最大值或者中位数?

  3. Graph Sparsification:邻接矩阵应该是非负的(度量 metric 也应该是非负的),而 si,j 取值范围是 [-1,1] 。此外,很多真实的图结构都是稀疏的。进一步地,一个稠密图不仅计算代价较高,而且对于大多数场景意义不大。

    因此我们仅考虑每个节点的 ϵneighborhood ,从而从 S 中构造稀疏的邻接矩阵 A 。具体而言,我们丢弃了 S 中小于阈值 ϵ>0 的元素:

    Ai,j={si,j,si,j>ϵ0,else

    .

20.1.2 图正则化

  1. 在图信号处理 graph signal processing 中,对图信号广泛采用的假设是:value 在相邻节点之间平滑变化。

    给定一个加权无向图 G 的对称的邻接矩阵 A ,一组 n 个图信号 x1,,xnRd 的平滑性 smoothness通常由迪利克雷能量 Dirichlet energy 来衡量:

    Ω(A,X)=12n2i,jAi,jxixj2=1n2tr(XLX)

    其中:

    • L=DA 为图的拉普拉斯矩阵,D=diag(Di),Di=jAi,j 为图的度矩阵。
    • tr() 为矩阵的迹trace

    可以看到:最小化 Ω(A,X) 将使得相邻节点具有相似的特征,从而在 A 定义的图上强化图信号的平滑性。

  2. 上述平滑损失 smoothness loss 最小化存在一个平凡解 trivial solutionA=0 。另外除了平滑性,我们还希望控制图结构的稀疏性sparsity。考虑 《How to learn a graph from smooth signals》 的做法,我们对学习的图结构施加了额外的约束:

    f(A)=βn1log(A1)+γn2||A||F2

    其中:β,γ 为非负的超参数;||||F 为矩阵的 F 范数。

    • 第一项通过对数的 barrier 来惩罚不连续图的形成,即连通性connectivity

      1log(A1)=ilog(jAi,j)

      当存在孤立节点 i 时,jAi,j 等于零(不考虑 Ai,i ),因此 βlog0 趋向于正无穷,因此第一项趋近于正无穷。

    • 第二项惩罚第一项造成的较大degree,从而控制稀疏性。

      在构造邻接矩阵 A 时,通过对低于阈值 ϵ 的元素置零来人工提供稀疏性。而这里通过正则化进一步提供而稀疏性。

    图的总体正则化损失为上述损失之和,从而控制学习的图结构的平滑性、连通性、稀疏性:

    LG=αΩ(A,X)+f(A)

    其中 α,β,γ 都是非负的超参数。

20.1.3 迭代式图学习

a. Joint Graph Structure and Representation Learning
  1. 我们期望图结构能起到两个作用:它应该遵循节点之间的语义关系;它应该适合下游预测任务的需求。

    因此,我们通过结合任务预测损失和图正则化损失来联合学习图结构和graph representation,即:

    L=Lpred+LG

    注意:我们的图学习框架与各种GNN 无关,也和预测任务无关。为方便讨论,我们采用两层 GCN,其中第一层将节点特征映射到 embedding 空间,第二层将embedding 映射到输出空间:

    Z=relu(A~XW1)Y^=output(A~ZW2)Lpred=l(Y^,Y)

    其中:

    • A~ 为归一化的邻接矩阵。
    • output() 为具体任务的输出函数(如,sigmoidsoftmax )。
    • l() 为具体任务的损失函数。
    • Y 为节点的 label 矩阵,Y^ 为节点的预测输出矩阵。

    对于节点分类任务,output() 为预测节点类别概率分布的 softmax 函数,l(,) 为预测损失的交叉熵函数。

  2. 现在我们讨论如何获得归一化的邻接矩阵 A~ 。我们的初步实验表明:如果初始图结构 initial graph structure 可用,则完全丢失初始图结构是有害的。

    之前的一些工作通过执行 masked attention 从而将初始图结构注入到图结构学习中,但是这会限制图结构学习的能力。因为这种方法无法学到初始图结构中不存在、但是实际上有用的那些边。我们假设最优图结构和初始图结构的差异很小,因此我们认为最优图结构和初始图结构、度量学习学到的图结构满足以下关系:

    A~=λL0+(1λ)(D1/2AD1/2)

    其中:

    • L0=D01/2A0D01/2 为初始图结构的归一化的邻接矩阵,D0 为初始图结构的度矩阵。
    • 超参数 λ 用于平衡初始图结构和度量学习学到的图结构。

    上式等价于:A~=λL0+(1λ)Ai,jjAi,j

如果初始图结构 A0 不可用,则我们使用余弦相似度构造 kNN 近邻图从而作为初始图结构。

“最优图结构和初始图结构的差异很小” 这是一个非常强的假设。当 λ=1 时模型就回退到使用初始图结构的版本。

b. Iterative Method for Graph Learning:
  1. 以前的一些工作仅依靠原始节点特征并基于某些注意力机制来学习图结构。我们认为这有一些局限性,因为原始节点特征可能不包含足够的信息来学习号的图结构。我们的初步实验表明:简单地在这些原始节点特征上应用一些注意力函数无助于学习有意义的图。

    为解决上述限制,我们提出了一种用于图神经网络的深度迭代和自适应学习框架,即 Deep Iterative and Adaptive Learning framework for Graph Neural Network: DIAL-GNN 。具体而言,除了基于原始特征计算节点相似度之外,我们还引入了另一个可学习的、基于节点 embedding 计算到的相似度度量函数。这么做的目的是在 node embedding 空间上定义的度量函数能够学习拓扑信息,从而补充仅基于原始节点特征学到的拓扑信息。为了结合原始节点特征和节点 embedding 双方的优势,我们将最终学到的图结构作为它们的线性组合:

    A¯(t)=ηA~(t)+(1η)A~(0)

    其中: A~(t)A~(0) 为通过公式 A~=λL0+(1λ)(D1/2AD1/2) 得到的两个归一化的邻接矩阵,分别对应于第 t 轮迭代和初始迭代。

  2. DIAL-GNN 算法:

    • 输入:

      • 特征矩阵 X,节点label 矩阵 Y
      • 初始的邻接矩阵(如果有的话)A0
      • 超参数 K,ϵ,α,β,γ,λ,δ,T,η,k
    • 输出:最优图结构 A~(t),模型参数 Θ ,预估label 矩阵 Y^

    • 算法步骤:

      • 随机初始化GCN 模型参数 Θ

      • 如果初始邻接矩阵 A0 不可用则通过 kNN 来给出初始邻接矩阵:A0kNN(X,k) ;否则直接使用 A0

      • 根据 A0X 来计算 A(0)A~(0)

        其中,A(0)=A0

      • 计算节点 embeddingZ(0)=relu(A~(0)XW1)

      • 计算预测损失:Lpred(0)=l(output(A~(0)Z(0)W2),Y)

      • 计算图正则化损失:LG(0)=αΩ(A(0),X)+f(A(0))

      • 计算联合损失:L(0)Lpred(0)+LG(0)

      • t0

      • 迭代,停止条件为: t>0A(t)A(t1)F2δA(0)F2 ,或者 tT。迭代步骤:

        • tt+1

        • 基于 Z(t1) 学习度量矩阵 S

          基于 multi-head 余弦相似度来计算。

        • 根据度量学习矩阵 S 计算 A(t) ,根据 A0A(t) 计算 A~(t)

        • 计算 A¯(t)=ηA~(t)+(1η)A~(0)

        • 计算节点 embeddingZ(t)=relu(A¯(t)XW1)

        • 计算预测损失:Lpred(t)=l(output(A¯(t)Z(t)W2),Y)

        • 计算图正则化损失:LG(t)=αΩ(A(t),X)+f(A(t))

        • 计算联合损失:L(t)Lpred(t)+LG(t)

      • 总的损失为:LL(t)+i=1tL(0)/t

      • 如果为训练截断,则反向传播 L 的梯度来更新模型参数 Θ

  3. 从上述算法可以看到:

    • 算法使用更新后的节点 embedding Z(t1) 来调整邻接矩阵 A~(t) ,同时使用更新后的邻接矩阵 A~(t) 来 调整节点 embedding Z(t)

      这个迭代过程动态停止,直到学到的邻接矩阵以指定的阈值收敛,或者最大迭代步 T 被达到。

    • 采用动态的阈值收敛相比固定的迭代步,在 mini-batch 训练时优势更为明显:我们可以使得mini-batch 中每个样本图exaple graph 动态停止(每个样本表示一个图)。

    • 在所有迭代之后,总的损失将通过所有之前的迭代进行反向传播,从而更新模型参数。

20.1.4 理论分析

  1. 收敛性分析:理论上证明迭代式学习过程的收敛性是一个挑战,因为所涉及的学习模的任意复杂性,这里我们从概念上理解它为何在实践中有效。下图给出了迭代式学习过程中,学到的邻接矩阵 A 和中间 embedding Z 的信息流。为简单起见,我们省略了一些其它变量,如 A~,A¯

    可以看到:在第 t 次迭代中,A(t) 是基于 Z(t1) 来计算、 Z(t) 是基于 A~(t) 来计算,而 A~(t) 又基于 A(t) 来计算。

    进一步地,我们用 δA(t) 来表示 A(t)A(t1) 之间的差异,用 δZ(t) 来表示 Z(t)Z(t1) 之间的差异。

    • 如果我们假设有 δZ(1)<δZ(0) ,那么我们可以预期 δA(2)<δA(1) 。因为假设模型参数在迭代过程中保持不变,则从概念上讲,更相似的 node embedding 矩阵(即更小的 δZ),将会产生更相似的邻接矩阵(即更小的 δA) 。
    • 同样地,如果我们假设有 δA(2)<δA(1),我们可以预期 δZ(2)<δZ(1)

    根据这一推理链条,我们可以轻松地扩展到后续的迭代。

    现在讨论为什么在实践过程中 δZ(1)<δZ(0) 成立。我们需要回顾一个事实,即 δZ(0) 衡量了 Z(0)X 之间的差异,这通常大于 Z(1)Z(0) 之间的差异,即 δZ(1)

    我们将在实验部分经验性地检验迭代式学习过程的收敛性。

  2. 模型复杂度:

    • 学习一个邻接矩阵的算法复杂度为 O(n2h) ,其中 n 为节点数量, hembedding 维度。
    • 计算节点 embedding 矩阵的算法复杂度为 O(n2d+ndh)d 为输入特征维度。
    • 计算输出的算法复杂度为 O(n2h)
    • 计算总的损失函数的代价为 O(n2d)

    假设迭代式图学习的迭代次数为 T ,则总的复杂度为:O(Tn(nh+nd+hd)) 。假设有 dh ,且 nd ,则总的复杂度为 O(Tdn2)

20.2 实验

  1. 这里我们进行一系列实验,从而验证DIAL-GNN 框架的有效性,并评估不同部分的影响。

  2. 数据集:

    • 图数据集:CoraCiteseer 是评估图学习算法的两个常用的基准数据集,输入的特征是 bag-of-word ,任务是节点分类。在这两个数据集中,图结构可用。
    • 非图数据集:Wine, Breast Cancel, Digits 是三个非图数据集,任务是节点分类。在这些数据集中没有图结构。
    • inductive learning 数据集:为了证明IDAL-GNNinductive learning 任务上的有效性,我们分别对 20Newsgroups 数据集(20News)、movie review 数据集(MRD)进行文档分类和回归任务。我们将每个文档视为一个图,其中文档中的每个单词作为图的节点。

    对于 Cora,Citeseer,我们遵循之前工作的实验配置(GCN, GAT, LDS-GNN )。对于 Wine, Cancer, Digits ,我们遵循LDS-GNN 的实验配置;对于 20News,我们从训练数据中随机选择 30% 样本作为验证集;对于 MRD,我们使用 60%:20%:20% 的比例将数据集拆分为训练集、验证集、测试集。

    所有实验都是采用不同的随机数种子执行 5 次的均值。

  3. baseline 方法:

    • transductive learning 中的 baselineLDS-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-GNNBiLSTM, kNN-GCN 进行比较。

  4. 实验配置:

    • 在我们所有实验中(拷贝的实验除外),除了输出层之外,我们在GCN 最后一层卷积层之后、输出层之前应用 dropout rate = 0.5dropout

    • 在迭代式学习过程中,除了 Citeseer(无 dropout)、Digitsdropout rate = 0.3),我们也在 GCN 中间的卷积层应用 dropout rate = 0.5dropout

    • 对于文本数据集,我们选择数据集中词频超过10 次的单词,并训练了一个 300 维的 GloVe 向量。

      对于长文本,为提高效率我们将文本长度限制为最大 1000 个单词。

      word embedding 层和 BiLSTM 层之后,我们使用 dropout rate = 0.5dropout

    • 我们使用 Adam 优化器,batch size = 16

    • 对于 20News ,隐层维度为 128;对于 MRD,隐层维度为 64 。对于其它benchmark,隐层维度为 16

    • 对于 text benchmark,我们将学习率设为0.001 ;所有其它benchmark ,学习率为 0.01,并应用 L2 正则化,使用系数为 0.0005 的权重衰减。

    下图给出了benchmarkDIAL-GNN 相关的超参数。所有超参数都在验证集上进行了优化:

  5. transductive learninginductive learning 上的实验结果如下所示。其中上图为 transductive learning,评估指标为测试准确率accuracy+- 标准差);下图为 inductive learning,评估指标分别为测试准确率(分类问题)和测试 R2 score (回归问题) ,括号内为+- 标准差。

    结论:

    • DIAL-GNN7benchmark 中有6 个优于所有的 baseline 方法,这证明了 DIAL-GNN 的有效性。
    • 即使图结构可用,DIAL-GNN 也可以极大地帮助完成节点分类任务。
    • 当图结构不可用时,和 kNN-GCN 相比,DIAL-GNN 在所有数据集上始终获得更好的结果。这表明联合学习图结构和GNN 的强大能力。
    • LDS 相比,DIAL-GNN5benchmark 上的 4 个获得了更好的性能。
    • 20NewsMRD 上的良好表现证明了 DIAL-GNNinductive learning 中的能力。

  6. 我们进行消融实验从而评估DIAL-GNN 框架不同部分的影响,评估指标为测试集accuracy+- 标准差)。其中 w/o 表示 without

    结论:

    • 关闭迭代式学习(w/o IL),所有数据集的性能持续下降。这证明了迭代式学习对于图结构学习问题的有效性。
    • 关闭图正则化(w/o graph reg.),所有数据集的性能也在持续下降。这证明了结合图正则化损失共同训练模型的好处。

  7. 为评估 DIAL-GNN 在噪音图上的鲁棒性,我们对于Cora 数据集构建了随机添加边、随机删除边的图。具体而言,我们随机删除原始图中 25%, 50%, 75% 的边(上图),或者随机添加原始图中 25%, 50%, 75% 的边(下图)。评估指标为测试集accuracy+- 标准差)。

    结论:

    • 在所有的情况下,DIAL-GNN 都比 GCN 获得更好的结果,并且对带噪音的图更鲁棒。
    • GCN 在添加噪音边的场景下完全失败,但是 DIAL-GNN 仍然能够合理地执行。我们猜测是因为等式 A~=λL0+(1λ)(D1/2AD1/2) 以跳跃连接的形式来表示。通过降低 λ 的取值,我们强迫模型减少对包含过多加性随机噪音的初始图的依赖。

  8. 我们通过测试阶段的迭代式学习过程中的迭代,展示了迭代式学习学到的邻接矩阵的演变,以及模型测试 accuracy 的演变。

    我们将迭代式学习过程中相邻矩阵之间的差定义为:

    δA(t)=A(t)A(t1)F2A(t)F2

    其典型取值范围是 0~1

    结论:邻接矩阵和accuracy 都通过迭代快速收敛,这从经验上验证了我们对迭代式学习过程的收敛性做出的分析。

  9. DIAL-GNN 迭代式学习方法的停止策略有两种:迭代固定数量的迭代步之后停止、应用某些停止条件从而动态停止。下图我们比较了两种策略的有效性,其中蓝线表示使用固定数量的迭代次数,红线表示使用动态停止条件。评估指标为 Cora 数据集的测试集上的平均accuracy

    结论:使用停止条件从而动态停止的效果更好。

  10. 最后,我们在各种 benchmark 中比较了 DIAL-GNN, LDS 以及其它经典GNN(如 GCN, GAT)的训练效率。

    所有实验均在 Intel i7-2700K CPU, NVIDIA Titan XP GPU16GB RAM 的同一台机器上运行,并使用不同随机数种子重复执行5 次。结果见下表(单位秒)。

    结论:

    • DIAL-GNNLDS 都要比 GCN,GAT 更慢。这是可以预期的,因为 GCNGAT 不需要同时学习图结构。
    • DIAL-GNN 始终比 LDS 更快,但总体而言它们是差不多的水平。
    • 通过移除迭代式学习(DIAL-GNN w/o IL) 可以发现,迭代式学习的部分是 DIAL-GNN 中最耗时的。

二十一、HAN[2019]

  1. 现实世界中的数据很多包含图结构,如社交网络、引文网络、万维网。图神经网络 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》GraphSAGEGCN)通过将卷积推广到图来提出图卷积网络。

    深度学习的最新研究趋势是注意力机制,该机制可以处理可变大小的数据,并鼓励模型更关注于数据中最重要的部分。注意力机制已被证明在深度神经网络框架中的有效性,并广泛应用于各个领域,如文本分析、知识图谱、图像处理。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,简称 HANHAN 同时考虑了 同时考虑了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 attentionsemantic-level attention 。受益于这种分层的注意力机制,所提出的 HAN 可以同时考虑节点重要性和 metapath 重要性。此外,HAN 模型效率高效,其复杂度是 metapath-based 节点 pair 对的数量的线性复杂度,因此可以应用于大规模异质图。
    • 论文进行了广泛的实验来评估所提出模型的性能。通过与 state-of-the-art 模型进行比较,结果表明了 HAN 的优越性。更重要的是,通过分析分层注意力机制,HAN 展示了它对于异质图分析的潜在的量向好可解释性。
  2. 相关工作:

    • 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》 利用 K 阶切比雪夫多项式在谱域中近似 approximate 平滑的滤波器。
        • 《Semi-Supervised Classification with Graph Convolutional Networks》 提出了一种谱方法,称作图卷积网络Graph Convolutional Network: GCN。该方法通过普卷积的局部一阶近似来设计图卷积网络。
      • 另一方面,非谱域卷积直接在图上定义卷积。

        • 《Inductive Representation Learning on Large Graphs》 提出了 GraphSAGE,它在固定大小的节点邻域上执行基于神经网络的聚合器。它可以通过聚合来自节点局部邻域的特征来学习一个函数,该函数用于生成 node embedding

      注意力机制(如 self-attentionsoft-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 Embeddingnetwork 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-preferredembedding 空间中学习 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-basednetwork embedding 模型,该模型同时考虑了 meta-graph 的所有 meta 信息的隐藏关系 hidden relation

      综上所述,上述所有算法都没有考虑异质图 representation learning 中的注意力机制。

21.1 模型

  1. 异质图是一种特殊类型的信息网络,包含多种类型的节点或多种类型的边。

    定义异质网络 G=(V,E) ,其中 V 为节点集合, E 为边的集合。

    • 节点有多种类型,节点类型集合为 A 。节点 vV 的类型为 ϕ(v)A
    • 边有多种类型,边类型集合为 R 。边 eE 的类型为 ψ(e)R

    对于异质网络,有 |A|+|R|>2

  2. 定义 metapath Φ 为路径:A1R1A2R2RlAl+1,简称 A1A2Al+1 ,其中 AiA,RiR

    metapath 定义了 A1Al+1 之间一个关系 R=R1R2Rl ,其中 表示关系的组合composition

    metapath 表示不同对象之间的语义路径semantic path

  3. 定义 metapath-based 邻居:给定一个 metapath Φ 以及异质图中一个节点 v ,则节点 vmetapath-based 邻居 NvΦ 定义为节点 v 通过 metapath Φ 连接的邻居节点。注意:这里的邻居包含节点自身。

    如下图所示,我们构建了IMDB 的一个异质图,它包含多种类型的节点(演员Actor:A,电影Movie:M,导演 Director:D ),以及多种类型的关系。

    • 两个电影可以通过多种 metapath 连接,如 MAM, MDM
    • 不同的 metapath 通常表示不同的语义,如:MAM 表示两部电影是同一个演员参演的;MDM 表示两部电影是同一个导演主导的。
    • d 中,给定 metapath MAM 的情况下, m1metapath-based 邻居包含 m1,m2,m3 (其中包含 m1 自身);给定 metapath MDM 的情况下, m1metapath-based 邻居包含 m1,m2 (其中包含 m1 自身)。

  4. 现有的图神经网络可以处理任意图结构数据,但是它们都是针对同质网络来设计。由于 metapathmetapath-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 的最佳加权组合。

21.1.1 node-level attention

  1. 每个节点的 metapath-based 邻居扮演了不同的角色,并且在 task-specific node embedding 学习中表现出不同的重要性。因此,我们考虑 node-level 注意力,它能够学习异质图中每个节点的 metapath-based 邻居的重要性,并聚合这些重要的邻居 embedding 从而生成node embedding

  2. 由于节点的异质性,不同类型节点具有不同的特征空间。因此,对于类型为 ϕiA 的节点,我们设计 type-specific 转换矩阵 Mϕi,从而将不同类型节点的特征投影到相同的特征空间。注意:这里的转换矩阵是基于节点类型,而不是连接类型。

    节点特征的投影过程为:

    xi=Mϕixi

    其中: xi 为节点 vi 的原始特征, xi 为节点 vi 转换后的特征。

    通过type-specific 特征投影过程,node-level 注意力可以处理任意类型的节点。

  3. 然后,我们利用self-attention 机制来学习 metapath-based 邻居之间的重要性。

    给定一对节点 (vi,vj),假设它们通过 metapath Φ 连接,定义node-level 注意力 ei,jΦ 为:对于节点 vi 而言,节点 vj 的重要性。

    基于 metapath 的节点 pair(vi,vj) 的重要性可以表示为:

    ei,jΦ=attnode(xi,xj;Φ)

    其中:

    • attnode 表示执行 node-level 注意力的深度神经网络。

      给定 metapath Φattnode 在所有 metapath-based 节点 pair 对之间共享,这是因为在 metapath Φ 下存在一些类似的连接模式。

    • metapath 节点重要性是非对称的,即 ei,jΦej,iΦ 。这表明 node-level 注意力可以保留异质图的不对称性,而这种不对称性是异质图的关键特性。

      即使 ei,jΦ=ej,iΦ,由于不同节点具有不同的邻居集合,因此归一化之后的 αi,jΦαj,iΦ

    • 给定 metapath Φmetapath-based 节点 pair(vi.vj) 的权重取决于它们的特征。

    通常我们选择 attnode() 函数为:

    ei,jΦ=attnode(xi,xj;Φ)=σ(aΦ[xi||xj])

    其中:

    • aΦmetapath Φnode-level 注意力向量attention vector ,它是 metapath-specific 的。
    • σ() 为非线性激活函数。
    • [||] 为向量拼接操作。
  4. 然后,我们通过masked attention 将结构信息注入到模型,这意味着我们计算 ei,jΦ 时仅考虑节点 jNiΦ ,其中 NiΦ 表示节点 vimetapath-based 邻居(包括其自身)。

    在获得 metapath-based 节点 pair 对的重要性之后,我们通过 softmax 函数对其进行归一化,从而获得权重系数 αi,jΦ

    αi,jΦ=softmaxj(ei,jΦ)=exp(σ(aΦ[xi||xj]))kNiΦexp(σ(aΦ[xi||xk]))

    可以看到:

    • 权重系数 αi,jΦ 依赖于节点 vi,vj 的特征向量。
    • 权重系数 αi,jΦ 是非对称的,即 αi,jΦαj,iΦ 。这种不对称性不仅因为分子中的向量拼接顺序不同,还因为分母中归一化项有很大差异(不同节点具有不同的邻居集合)。
    • 由于权重系数 αi,jΦ 是针对单个metapath 生成的,因此它是 semantic-specific 的,并且能够捕获一种语义信息。
  5. 最后,节点 vimetapath-based embedding 可以通过邻居的投影后的特征和相应的权重系数进行聚合:

    ziΦ=σ(jNiΦαi,jΦxj)

    其中 ziΦ 为节点 vi 针对 metapath Φ 学到的 embedding

  6. 为更好地理解 node-level 聚合过程,我们以下图 (a) 为例进行简要说明。每个节点的 embedding 均由其 metapath-based 邻居的特征聚合而来。由于注意力权重 αi,jΦ 是为单个 metapath 而生成的,因此它是 semantic-specific 并且能够捕获一种语义信息。

  7. 由于异质图的数据规模可大可小,其规模的方差很大。为使得 HAN 能够应用到各种规模的异质图,我们将 node-level 注意力扩展为 multi-head 注意力,从而使得训练过程更为稳定。

    具体而言,我们重复 node-level 注意力 K 次,并将学到的 embedding 拼接,从而作为最终的 semantic-specific embedding

    ziΦ=k=1Kσ(jNiΦαi,jΦ,kxj)

    其中 αi,jΦ,k 为第 khead 学到的权重系数。

  8. 给定 metapath 集合 {Φ0,Φ1,,ΦP} ,经过 node-level 注意力机制之后,我们可以获得 Psemantic-specific node embedding,记作 {ZΦ0,ZΦ1,,ZΦP} 。其中每组 semantic-specific node embedding包含了图中所有的节点。

    如何确定这个 metapath 集合,论文并未给出任何答案或方向。

21.1.2 semantic-level attention

  1. 通常异质图中每个节点都包含多种类型的语义信息,并且 smantic-specific node embedding仅能反映节点某个方面的语义。为学到更全面的节点 embedding,我们需要融合各种类型语义。

    为解决多种类型语义融合的挑战,我们提出一种新的 semantic-level attention 机制,可以自动学习 task-specific 下不同 metapath 的重要性,从而融合多种类型的语义。

  2. 考虑 node-level 注意力下学到的 Psemantic-specific node embedding {ZΦ0,ZΦ1,,ZΦP} ,令每个 metapath 的重要性为 {βΦ0,,βΦP} ,则有:

    (βΦ0,βΦ1,,βΦP)=attsem(ZΦ0,ZΦ1,,ZΦP)

    其中 attsem 表示执行 semantic-level 注意力的深度神经网络。

    为学习 metapath 的重要性:

    • 我们首先通过非线性变换(如单层 MLP)来转换 semantic-specifc node embedding
    • 然后,我们将转后的 embedding 和一个 semantic-level 注意力向量 attention vector q 计算相似性从而得到重要性。
    • 最后我们聚合所有 semantic-specific node embedding的重要性,从而得到每个 metapath 的重要性。

    metapath Φi 的重要性为 wΦi ,则有:

    wΦi=1|V|viVqtanh(WziΦ+b)

    其中:

    • W 为权重向量, b 为偏置向量。
    • qsemantic-level 的注意力向量。

    注意:为进行有意义的比较,所有的 metapathsemantic-specific node embedding都共享相同的 {W,b,q}

    上式重写为: wΦi=q[1|V|viVtanh(WziΦ+b)] 。因此是对 metapath Φ 计算 metapath-levelembedding 1|V|viVtanh(WziΦ+b) ,然后和 q 计算内积。

    这里对不同 metapath 共享相同的投影矩阵 W 而没有采用不同的投影矩阵 Wϕ ,因为这里 ziϕ 已经被投影到相同的特征空间了。

    在得到每个 metapath 重要性之后,我们通过 softmax 函数对其进行归一化。metapath Φi 的权重为 βΦi 为:

    βΦi=exp(wΦi)j=1Pexp(wΦj)

    βΦi 可以解释具体任务下 metapath Φi 的贡献,显然 βΦi 越大则 metapath Φi 越重要。注意:对于不同的任务,metapath Φi 可以具有不同的权重。

    使用学到的权重作为系数,我们可以融合这些 semantic-specifc node embedding,从而得到最终的 embedding 为:

    Z=i=1PβΦiZΦi
  3. 为更好地理解 sementic-level 聚合过程,我们在下图的 (b) 中进行简要说明。最终的 embedding 由所有 semantic-specific node embedding进行聚合。

  4. 对于不同的任务,我们可以设计不同的损失函数。对于半监督节点分类任务,我们可以使用交叉熵损失函数:

    L=vVYyvln(θczv)

    其中:

    • VY 为所有的标记节点集合。
    • yv 为节点 v 的真实labelone-hot 向量。
    • zv 为节点 vembedding向量。
    • θc 为分类器的参数。

    在标记数据的指导下,我们可以通过反向传播优化 HAN 模型,并学习 node embedding

  5. HAN 算法:

    • 输入:

      • 异质图 G=(V,E)
      • 所有节点的特征 {xi,viV}
      • metapath 集合 {Φ0,Φ1,,ΦP}
      • multi-head 数量 K
    • 输出:

      • 最终的 node embedding 矩阵 Z
      • node-level 每个 head 的注意力权重 {αi,jΦp,k}
      • semantic-level 的注意力权重 {βΦp}
    • 算法步骤:

      • 迭代metapathΦ{Φ0,Φ1,,ΦP} ,迭代过程为:

        • 迭代多头 k=1,,K ,迭代过程为:

          • 进行 type-specific 转换:xiMΦxi

          • 遍历所有节点 viV

            • 找到 metapath-based 邻域集合 NiΦ

            • 对于 vjNiΦ ,计算 αi,jΦ

              αi,jΦ=softmaxj(ei,jΦ)=exp(σ(aΦ[xi||xj]))kNiΦexp(σ(aΦ[xi||xk]))
            • 计算 semantic-specific 节点 embedding

              ziΦσ(jNiΦαi,jΦxj)
        • 拼接多头学到的 semantic-specific 节点 embedding

          ziΦ=k=1Kσ(jNiΦαi,jΦ,kxj)
      • 计算 metapath Φi 的注意力权重 βΦi

        βΦi=exp(wΦi)j=1Pexp(wΦj)
      • 融合semantic-specific node embeddingZi=1PβΦiZΦi

      • 计算交叉熵损失:L=vVYyvln(θczv)

      • 反向传播并更新参数

      • 返回 Z{αi,jΦp,k}{βΦp}

21.1.3 分析

  1. HAN 可以处理异质图中各种类型的节点和各种类型的关系,并融合了丰富的语义信息。信息可以通过多种关系从一种类型的节点传播到另一种类型的节点。得益于这种异质的图注意力网络,不同类型节点的 embedding 能够不断相互促进提升。

  2. HAN 是高效的,可以轻松并行化。每个节点的注意力可以独立地并行化,每条 metapath 的注意力也可以独立地计算。

    给定一个 metapath Φnode-level 注意力的时间复杂度为 O(|VΦ|F1F2K+|EΦ|F1K) ,其中:

    • |VΦ| 为属于 metapath Φ 的节点数量,|EΦ| 为属于 metapath Φ 的 节点 pair 对的数量。
    • Kmulti-head 的数量。
    • F1,F2 分别为 MΦ 的行数和列数。

    总体复杂度和metapath 中节点数量成线性,和 metapath 中节点pair 对的数量成线性。

  3. 分层注意力的参数在整个异质图上共享,这意味着 HAN 的参数规模不依赖于异质图的大小,并且 HAN 可以应用于 inductive learning

  4. HAN 对于学到的node embedding具有潜在的良好解释性,这对于异质图的分析是一个很大的优势。

    有了节点重要性和 metapath 重要性,HAN 可以在具体任务下更关注于一些有意义的节点或 metapath,并给异质图一个更全面的描述。

    根据注意力值,我们可以检查哪些节点或 metapath 为任务做出了更多(或更少)的贡献,这有助于分析和解释我们预测的结果。

21.2 实验

  1. 数据集:

    • 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 集合 {APA,APCPA,APTPA} 进行实验。

    • ACM:我们提取在 KDD, SIGMOD, SIGCOMM, MobiCOMM, VLDB 中发表的论文,并将论文分为三个类别:数据库 database、无线通信 wireless commmunication、数据挖掘 data mining。然后我们构建一个包含 3025 篇论文(paper:P)、5835名作者(auther:A)、56个主题(subject:S)的异质图,论文标签为它被发表的会议。

      论文的特征为关键词的 bag-of-word。这里我们使用 metapath 集合 {PAP,PSP} 进行实验。

    • IMDB:我们提取 IMDB 的子集,其中包含 4780 部电影(movie:M)、5841 名演员(actor:A)、2269 位导演(director:D)。电影根据类型分为三个类别:动作片 Action、喜剧 Comedy、戏剧 Drama

      电影的特征为电影情节的 bag-of-word。这里我们使用 metapath 集合 {MAM,MDM} 进行实验。

    数据集的统计结果如下所示:

  2. 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,并报告了最佳性能。

    • HANndHAN 的一个变体,它移除了 node-level注意力机制,并给节点的每个邻域赋予相同的权重。

    • HANsemHAN 的一个变体,它移除了 semantic-level 注意力机制,并给每个metapath 赋予相同的权重。

    • HAN:我们提出的半监督图神经网络,它同时采用了 node-level 注意力和 semantic-level 注意力。

    这里有些 baseline 是无监督的、有些是半监督的。将半监督方法和无监督方法进行比较是不公平的,因为半监督方法可以获得部分的 label 信息,因此半监督方法通常都会比无监督方法更好。

  3. 实验配置:

    • HAN

      • 随机初始化参数并使用 Adam 优化器,学习率为 0.005,正则化参数为 0.001
      • semantic-level 注意力向量 q 的维度为 128multi-head 数量 K=8
      • 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

21.2.1 分类任务

  1. 我们使用 k=5KNN 分类器对节点进行分类,分类器的输入为模型学到的node embedding。由于图结构数据的方差可能很大,因此我们重复该过程 10 次,并报告平均的 Macro-F1Micro-F1

    • HAN 在所有数据集中超越了其它baseline
    • 对于传统的异质图 embedding 方法,能够利用多个 metapathESimmetapath2vec 表现更好。
    • 通常结合了图结构信息性和节点特征信息的图神经网络(如 GCN,GAT)要优于异质图 embedding 方法。
    • 相较于 GCNHANnd 这些考虑节点邻居的均匀权重,GATHAN 可以对邻居进行适当地加权,从而提高了学到的 embedding 的性能。
    • GAT 相比,为异质图设计的 HAN 能够成功地捕获丰富的语义信息并展示其优越性。
    • 在没有 node-level 注意力 (HANnd) 、或者没有 semantic-level 注意力 (HANsem) 的情况下,二者性能会比 HAN 更差。这表明 node-level 注意力建模和 semantic-level 注意力建模的重要性。
    • 相比 DBLPHANACM,IMDB 数据集的效果提升更明显,这是因为在 DBLP 中, metapath APCPA 比其它的 metapath 重要得多,因此仅针对该 metapathHERec/GCN/GAT 已经能够取得很好的效果。。我们在下文通过分析 semantic-level 注意力来解释该现象。

    因此,结论证明了在异质图中捕获node-levelsemantic-level 的重要性非常重要。

21.2.2 聚类

  1. 我们还对学到的node embedding执行聚类,从而评估embedding 的聚类效果。这里我们使用 KMeans 聚类算法,聚类数量设为节点的类别数量。我们使用节点的真实类别为真实的聚类类别,并使用 NMIARI 来评估聚类结果的质量。

    • 归一化互信息 NMI

      NMI(X, Y)=2I(X,Y)H(X)+H(Y)

      其中: H(X)=ip(xi)logp(xi) 为熵; I(X,Y)=xyp(x,y)logp(x,y)p(x)p(y) 为互信息。

    • ADjusted Rand index:ARI

      RI=a+bC2nARI=RIE[RI]max(RI)E[RI]

      其中:

      • C2n 为所有标记节点对的组合, n 为标记节点数量。
      • a 为真实类别相同的一对节点、且聚类类别也相同的节点对的数量; b 为真实类别不同的一对节点、且聚类类别也不同的节点对的数量。
      • max(RI) 为所有情况下 RI 指标的最大值; E[RI] 为随机拆分的 RI 指标的期望。这是为了使得随机聚类的情况下该指标为零。

    由于 KMeans 的性能受到初始质心的影响,因此我们将该过程随机重复执行 10 次,并报告平均结果。

    结论:

    • HAN 在所有数据集上始终优于其它 baseline
    • 基于图神经网络的算法通常可以获得更好的性能。
    • 由于不区分节点和 metapath 的重要性,因此 metapath2vecGCN 的聚类效果较差。
    • 在多个 metapath 的指导下,HAN 的性能明显优于 GCN/GAT
    • 如果没有 node-level 注意力 (HANnd) 、或者没有 semantic-level 注意力 (HANsem) ,则 HAN 的性能会退化。这表明 node-level 注意力建模和 semantic-level 注意力建模的重要性。

    基于上述分析,我们发现 HAN 可以对异质图进行全面描述,并取得显著改善。

21.2.3 分层 attention

  1. HAN 的一个显著特性是结合了分层 attention 机制,从而在学习 embedding 时同时考虑了节点邻居的重要性和 metapath 的重要性。为了更好地理解邻居重要性和 metapath 重要性,我们对分层注意力机制进行详细的分析。

  2. node-level 注意力:如前所述,HAN 可以学到 metapath 中节点及其邻居之间的注意力值。对于具体的任务,重要的邻居往往具有更大的注意力值。

    这里我们以 ACM 数据集中的论文 P831 为例。给定一个描述不同论文的 author 关系的 metapath Paper-Author-Paper ,我们枚举了论文 P831metapath-based 邻居,其注意力值如下图所示。不同颜色表示不同的类别,如绿色表示数据挖掘、蓝色表示数据库、橙色表示无线通信。

    • 从图 a 中可以看到:

      • P831 链接到 P699P133,它们都属于数据挖掘。
      • P831 链接到 P2384P2328,它们都属于数据集。
      • P831P1973 相连,它们都属于无线通信。
    • 从图 b 中可以看到:

      • P831node-level 注意力中获得最大的注意力值,这意味着 P831 自身在学习其 embedding 中起着最重要的作用。

        这是合理的,因为通常节点类别主要由其本身的特性决定,而邻居信息仅作为一种补充。

      • P699P133node-level 注意力种获得第二、第三大的注意力值。这是因为 P699P133 也属于数据挖掘,它们为识别 P831 的类别做出重大贡献。

      • 其余邻居的注意力较小,无法为识别 P831 的类别做出重要贡献。

    根据以上分析,我们可以看到 node-level 注意力可以区分邻居之间的差别,并为某些有意义的邻居分配更大的权重。

  3. semantic-level 注意力:如前所述,HAN 可以学到 metapath 对特定任务的重要性。为验证 semantic-level 注意力的能力,我们以 DBLPACM 为例,给出了单个 metapath 聚类结果(NMI),以及对应注意力值。

    • 显然,单个 metapath 的性能和它的注意力权重之间存在正相关。

    • 对于 DBLPHAN 赋予 APCPA 更大的权重,这意味着 HAN 认为 APCPA 是确定作者研究领域的最关键的 metapath。这是有道理的,因为作者的研究领域和他们提交的会议是高度相关的。如,一些 NLP 研究人员主要将其论文提交给 ACLEMNLP;另一些数据挖掘研究人员可能将其论文提交给 KDDWWW

      另外,APA 很难准确地确定作者的研究领域。因此,如果我们平等地对待这些 metapath (如 HANsem) , 则模型性能大大下降。

      根据每个 metapath 的注意力值,我们发现 metapath APCPAAPA, APTPA 有用的多。因此,即使 HAN 将这些 metapath 聚合在一起,APCPA 在确定作者研究领域方面仍然起着主导作用。

      这也是为什么在 DBLP 中,HAN 性能可能不如 ACMIMDB 中提升得那么多。

    • 对于 ACM,我们也得出类似得结论。对于 ACMPAP 的权重更高。

      由于 PAP 的性能略好于 PSP,因此 HANsem 可以通过简单的平均操作获得良好的性能。

21.2.4 可视化

  1. 为直观地进行比较,我们执行可视化任务,从而在低维空间中可视化异质图。具体而言,我们基于模型学习节点 embedding,并将学到的 embedding 映射到二维空间。这里,我们使用 t-SNE 来可视化 DBLPauthor 节点,并根据节点类别来进行染色。

    结论:

    • 为同质图设计的 GCNGAT 效果不佳,属于不同研究领域的作者彼此混杂。

    • metapath2vec 的性能比上述同质图的神经网络效果好得多,它表明适当的 metapath(如 APCPA) 对异质图分析做出重要贡献。

      但是,由于 metapath2vec 仅考虑一条 metapath,因此不同类别节点之间的边界仍然模糊。

    • HAN 的可视化效果最好。在多种 metapath 指导下,HAN 学到的 embedding 具有高度的簇内相似性,并将具有不同研究领域学者的边界的区分开来。

21.2.5 参数敏感性

  1. 这里我们研究参数敏感性,并报告了不同参数下,ACM 数据集上的聚类NMI 结果。

  2. 最终 embedding Z 的维度:可以看到,随着 embedding 维度的增加,HAN 性能先提高后下降。

    原因是:HAN 需要一个合适的维度来编码语义信息,但是维度过大之后可能会引入额外的冗余(即,过拟合)。

  3. semantic-level 注意力向量维度:可以看到,HAN 的性能首先随着 semantic-level 注意力向量 q 维度的增加而增加,当维度为 128 时达到最佳性能;然后随着维度的增加而下降,这可能是因为过拟合导致。

  4. multi-head 数量 K :可以看到, K 越大则 HAN 性能越好。但是随着 K 的增加, HAN 的性能略有改善(改善幅度不大)。同时,我们还发现 multi-head attention 可以使得训练过程更为稳定。

    注意:当 K=1 时,multi-head 退化为单头。

二十二、HetGNN[2019]

  1. 异质图heterogeneous graph: HetG 包含多种类型的节点,以及节点之间的多种关系。如下图的学术网络包含了 author 节点、 paper 节点以及 venue 节点,并包含了 authorpaper 之间的 write 关系、paperpaper 之间的 cite 关系、papervenue 之间的 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-artGNN 无法解决异质图学习的以下问题:

    • 问题 C1:异质图中很多节点连接到多种类型的邻居,连接的邻居节点的种类和数量可能各不相同。例如,下图中节点 a5 个直接邻居而节点 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 的贡献不同。如学术网络中,authorpaper 类型的邻居对 author 节点的 embedding 产生更大的影响,因为 venue 类型的节点包含多样化的主题因此具有更 generalembedding 。当前大多数 GNN 仅关于同质图,并未考虑节点类型的影响。第三个问题是:如何考虑不同类型节点的影响,从而聚合异质邻居的特征信息。如下图中的 C3 阶段所示。

    为解决这些问题,论文 《Heterogeneous Graph Neural Network》 提出了 heterogeneous graph neural network: HetGNNHetGNN 是一种用于异质图的 representation learning 图神经网络模型。

    • 首先,作者设计了一种基于重启的随机游走策略,从而对异质图中每个节点采样固定大小的、强相关的异质邻域,并根据节点类型对其进行分组。

    • 然后,作者设计了一个具有两个模块的异质图神经网络体系结构,从而聚合上一步中采样到的邻居的特征信息。

      • 第一个模块采用 RNN 对异质内容的 deep interaction 进行编码,从而获得每个节点的内容 embedding

        因为单个节点可能具有多个内容(既有文本又有图像),因此需要通过一个模块来融合多种不同的内容从而得到内容 embedding

      • 第二个模块采用另一个 RNN 来聚合不同分组邻居的内容 embedding,然后通过注意力机制将其进一步组合,从而区分不同异质节点类型的影响,并获得最终 embedding

    • 最后,论文利用图上下文损失 graph context lossmini-batch 随机梯度下降来训练模型。

    总而言之,论文的主要贡献:

    • 论文形式化了异质图 representation learning 的问题,该问题涉及到图结构异质性和节点内容异质性。

    • 论文提出了一种创新的异质图神经网络模型heterogeneous graph neural network model: HetGNN,用于异质图上的 representation learningHetGNN 能够捕获结构异质性和内容异质性,并对 transductive taskinductive task 都很有用。下表总结了 HetGNN 与最近的一些模型(包括同质图模型、异质图模型、属性图模型、以及图神经网络模型)相比的主要优势。

    • 论文在几个公共数据集上进行了广泛的实验,结果表明:HetGNN 在各种图数据挖掘任务(链接预测、推荐、节点分类、聚类)中可以超越 state-of-the-artbaseline 方法。

  2. 相关工作:

    • 异质图挖掘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 learninggraph 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》)。

22.1 模型

  1. 定义一个带内容的异质图 content associated heterogeneous graph:C-HetGG=(V,E,A,R) ,其中 V 为节点集合, E 为边集合, A 为节点类型集合, R 为关系类型集合。图中每个节点关联了异质内容信息,例如属性 attribute、文本 text、图像 image

    给定一个 C-HetG G ,以及节点内容信息,异质图表示学习 Heterogenous Graph Representation Learning 的目标是设计一个模型 FΘ 来学习每个节点的 embedding ,从而能够同时编码异质结构信息和异质内容信息,其中 Θ 为模型参数。

    学到的 node embedding 可以应用于下游各种图挖掘任务,如链接预测、推荐、多标签分类、节点聚类等。

  2. 我们首先给出 HetGNN 的整体框架如下图所示,其中包含四个部分:对异质邻居节点进行采样、编码节点的异质内容、聚合节点的异质邻居、定义目标函数并给出训练过程。

    下图中:

    • (a) 为整体框架:

      • 首先为每个节点(以节点 a 为例)采样固定数量的异质邻居节点。
      • 然后通过 NN-1 神经网络编码每个节点的异质内容。
      • 然后通过 NN-2 神经网络和 NN-3 神经网络来聚合采样到的异质邻居节点的内容 embedding
      • 最后通过图上下文损失函数来优化模型。
    • (b)NN-1 神经网络,它是节点异质内容编码器。

    • (c)NN-2 神经网络,它是 type-based 邻域聚合器。

    • (d)NN-3 神经网络,它是异质类型组合器。

22.1.1 异质邻居采样

  1. 大多数神经网络GNN 的关键思想是聚合来自节点的直接邻居(一阶邻居)的特征信息,如 GraphSAGEGAT。但是,直接将这些方法应用到异质图可能会引起一些问题:

    • 它们无法从不同类型的异质邻居的直接链接中捕获充分的信息。如,在学术网络中,author 并未和其它 authorvenue 直接相连,但是可能存在间接连接。如果仅考虑直接连接的邻居,则可能导致学到的 representation 表达能力不足。
    • embedding 可能受到不同邻居规模的影响。如在推荐常见中,某些 item 和很多用户交互,另一些 item 可能只有很少的用户交互。因此:某些热门节点的 embedding 可能会被某些弱相关的邻居而损害,而一些冷门节点的 embedding 可能未能充分学习。
    • 无法直接聚合具有不同内容特征的异质邻居。异质邻居的内容可能需要不同的特征变换,从而处理不同的特征类型和特征维度。

    针对这些问题并解决问题 C1,我们设计了一种基于重启的随机游走策略random walk with restart: RWR 来对异质邻居进行采样。

    RWR 包含两个连续的步骤:

    • step1 :基于 RWR 采样固定数量的邻居。我们从节点 vV 开始随机游走,它以概率 p 回到起始节点 v 或者以概率 1p 游走到下一个相连的节点。

      我们始终执行 RWR 直到收集到固定数量的节点,收集到的节点集合记作 RWR(v)

      注意:RWR(v) 中不同类型节点的数量受到限制,从而确保为节点 v 采样到所有类型的邻居节点。如,类型 tA 的邻居节点限制为 Kt 个。

    • step2:对采样的邻居节点集合根据节点类型进行分组。对于节点类型 tA ,我们根据频次从 RWR(t) 中选择 top kt 个节点(ktKt),并将选中的这些节点作为节点 v 关于类型 t 的强相关邻居的集合。

    由于下列原因,RWR 策略能够避免上述问题:

    • RWR 能够为每个节点收集到所有类型的邻居。
    • 每个节点采样的邻居规模是固定的,并且访问最频繁的邻居节点(即最相关的)被挑选出来。
    • 根据节点类型对邻居进行分组(每个分组具有相同的内容格式),以便可以设计基于类型的聚合。

22.1.2 异质内容编码

  1. 我们设计了一个具有两个模块的异质图神经网络体系结构,从而聚合每个节点的采样后异质邻居的特征信息。

  2. 为解决问题 C2,我们设计了一个模块,从节点 vV 中提取异质内容 Cv ,并通过神经网络 f1 将其编码为固定大小的 embedding

    具体而言,我们将 Cv 中的第 i 个内容(每个节点可能包含多个内容,如文本、图像、属性等)的特征表示为 xv,iRdc ,其中 dc 为内容特征的维度。注意:xv,i 可以通过针对不同类型的内容采取不同的技术来预训练得到。如,可以利用 Par2Vec 来预训练文本内容,可以利用 CNN 来预训练图像内容。

    之前的一些方法直接拼接不同的内容特征,或者将不同的内容特征经过线性映射到相同的特征空间。和这些方法不同,我们基于 Bi-LSTM 设计了一种新的架构来捕获 deep feature interaction,并获得更强的表达能力。

    因此,节点 v 的内容 embedding 为:

    zv=f1(v)=iCv[LSTM{FC(xv,i;θx)}LSTM{FC(xv,i;θx)}]|Cv|

    其中:

    • zvRd 为节点 v 的内容 embeddingd 为内容 embedding 维度。
    • FC(;θx) 为特征变换器 feature transformer ,它可以是恒等映射(没有任何变换)、也可以是一个全连接神经网络(参数为 θx )。即,在将 xv,i 灌入到 LSTM 之前,首先进行特征变换。
    • 表示拼接操作。

    具体而言,上述架构首先使用不同的 FC 层来转换不同的内容特征,然后使用 Bi-LSTM 来捕获 deep feature interaction,并聚合所有内容特征的表达能力。最后取所有隐状态的均值来获得节点 v 的内容 embedding

    通过内容拼接然后馈入全连接层也可以捕获 deep feature interaction 。这里用 Bi-LSTM 个人觉得不太合理,因为 Bi-LSTM 强调有序的输入,而这里的输入是无序的。虽然通过随机排列内容集合 Cv 从而应用到 Bi-LSTM 中,但是这仅仅是一种变通方案,而没有很好地捕获到内容信息之间的关联(如互补关系、overlap 关系)。

    注意:

    • Bi-LSTM 应用在无序的内容集合 Cv 上,这是受到 GraphSAGE 在聚合无序邻居的启发。
    • 我们使用不同的 Bi-LSTM 来聚合不同类型节点的内容特征,因为它们的内容类型互不相同。
  3. 上述内容 embedding 体系结构有三个主要优点:

    • 具有较低复杂度的间接架构(参数较少),使得模型的实现和调整都相对容易。
    • 能够融合异质内容信息,具有很强的表达能力。
    • 增加额外的特征很灵活,使得模型扩展很方便。

22.1.3 异质邻居聚合

  1. 为聚合每个节点的异质邻居的内容 embedding(问题 C3),我们设计了另一个type-based 神经网络模块,它包含两个步骤:同一类型的邻居聚合、类型组合。

  2. 同一类型的邻居聚合:我们使用基于 RWR 的策略为每个节点采样固定数量的、包含不同类型的邻居集合,并针对类型 t 选中 top kt 的异质邻居,记作 Nt(v) 。然后,我们使用神经网络 f2t 来聚合 Nt(v) 中邻居节点的 embedding

    nvt=f2t(v)=AGGuNt(v)t{zu}

    其中:

    • nvtRd 为节点 v 类型为 t 的邻居聚合后的 embedding 向量, d 为聚合后的内容 embedding 维度。

    • AGGt() 为类型为 t 的邻域聚合函数,可以是全连接网络、CNN 网络、或者是 RNN 网络。

      这里我们选中 AGGt()Bi-LSTM,因为实践中它的效果最好。因此:

      nvt=uNt(v)[LSTM{zu}LSTM{zu}]|Nt(v)|

      我们使用 Bi-LSTM 聚合所有类型为 t 的邻居,并使用所有隐状态的均值作为最终聚合的 embedding

      注意:

      • 我们使用 Bi-LSTM 来区分不同节点类型的邻域聚合。
      • Bi-LSTM 应用在无序邻居上,这是受到 GraphSAGE 在聚合无序邻居的启发。
  3. 类型组合 type combination:前面为每个节点 v 生成了 |A| 个聚合embedding {nv1,,nv|A|} 。为了结合这些 type-based 邻域聚合 embedding 以及节点的内容 embedding,我们采用了注意力机制。我们认为:不同类型的邻域对 vfinal embedding 做出的贡献不同。因此,节点 v 的最终 embedding 为:

    hv=αv,vzv+tAαv,tnvt

    其中:

    • hvRd 为节点 vfinal embedding
    • αv, 给出了不同embedding 的重要性。
    • zv 为节点 v 的内容 embeddingnvt 为节点 v 的类型为 t 的邻域聚合 embedding

    定义节点 v 的所有 embedding 集合为 F(v)={zv,nv1,,nv|A|} ,则有:

    αv,i=exp(σ(u[fizv]))fjF(v)exp(σ(u[fjzv]))

    其中:

    • σ() 为激活函数,这里我们选择 LeakyReLU
    • fiF(v)F(v) 中的第 iembedding 向量。
    • uR2d 为注意力向量attention vector,是待学习的参数。
  4. 在整个框架中,为了使得 embedding 维度一致并且模型易于调整,我们使用相同的维度 d 来作用于内容 embedding、节点邻域聚合 embedding、节点 final embedding

22.1.4 模型训练

  1. 为学习异质图的 node embedding,我们定义目标函数为:

    L=vVtAvcCvtp(vcv;Θ)

    其中:

    • Cvt 为节点 v 在异质图中类型为 t 的邻域中的上下文(即窗口大小为 c 之内的邻居节点)。

    • 条件概率 p(vcv;Θ) 定义为异质 softmax 函数:

      p(vcv;Θ)=exp(hvchv)vkVtexp(hvkhv)

      Vt 为异质图中类型为 t 的所有节点集合, hv 为节点 vfinal embedding

  2. 我们利用负采样技术来调整目标函数,此时 p(vcv;Θ) 为:

    p(vcv;Θ)=logσ(hvchv)+m=1MEvcPt(vc)logσ(hvchv)

    其中:

    • Pt(vc) 为预先给定的、针对节点类型 t(与 vc 类型相同) 的噪音分布 noise distributioin

    • M 为负采样数量,这里我们选择 M=1 ,因为我们发现选择 M>1 对于最终效果影响很小。因此上式降级为交叉熵损失函数:

      p(vcv;Θ)logσ(hvchv)+logσ(hvchv)

      即:对于节点 v 的每个上下文节点 vc (类型为 t ),我们根据分布 Pt(vc) 针对节点类型 t 采样一个负样本 vc

    最终我们的损失函数为:

    L=<v,vc,vc>∈Twalk[logσ(hvchv)+logσ(hvchv)]

    其中 Twalk 表示通过图上的随机游走收集到的 <v,vc,vc> 三元组的集合。

    注意,vcvc 都是类型为 t 。此外,这里仅考虑无监督损失,并未考虑监督损失。

  3. 类似于DeepWalk,我们设计了一个随机游走过程来生成 Twalk

    • 首先,我们在异质图中统一生成一组随机游走序列的集合 S
    • 然后,对于随机游走序列集合 S 中的第 i 条随机游走序列 Si ,对于序列中的每个节点 v ,我们收集上下文窗口 c 内的每个上下文节点 vc
    • 最后,对于每个上下文节点 vc ,我们以概率分布 Pt(vc)gvc3/4 来采样一个和 vc 相同类型的负样本 vcgvc 为节点 vcdegree ,也等于它在 S 中出现的频次。
  4. 在训练的每轮迭代中,我们对 Twalk 随机采样 mini-batch 的三元组,然后通过 Adam 优化器来更新模型参数。我们反复迭代直到模型收敛为止。

22.2 实验

  1. 这里我们进行广泛的实验:

    • HetGNN 在各种图挖掘任务中和 state-of-the-art baseline 方法的比较,如链接预测、个性化推荐、节点分类&聚类任务。
    • HetGNNinductive learning 任务中和 state-of-the-art baseline 方法的比较,如 inductive 节点分类&聚类任务。
    • HetGNN 中不同组件(如异质节点内容编码器,异质邻域聚合器)对模型性能的影响。
    • HetGNN 中各种超参数(如embedding 维度、异质邻居采样大小)对模型性能的影响。
  2. 数据集:我们采用两种异质图数据集:学术图 academic graph、评论图 review graph

    • 学术图:我们从 AMiner 数据集中抽取两个数据集:

      • A-I 包含 1996 ~ 2005 年之间计算机科学会议的论文。
      • A-II 包含 2006 ~ 2015 年之间若干个人工智能和数据科学相关的顶会的论文,因为考虑到大多数研究人员关注于顶会的论文。

      每篇论文都有各种内容信息,包括:标题、摘要、作者、参考文献、年份、所属会议。

    • 评论图:我们从公开的 Amazon 数据集抽取了两个数据集,即 R-I(电影类别的评论)、R-IICD 类别的评论)。数据集包含 1996-05 ~ 2014-07 之间用户的评论信息、商品元数据信息。

      每个商品都有各种内容信息,包括:标题、描述文本、类型、价格、图片。

    下表给出了这四个数据集的主要统计信息:

  3. 内容特征编码:

    • 在学术网络中,我们使用 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
  4. baseline 方法:我们使用5baseline,包括异质图 embedding 模型、属性网络模型、图神经网络模型。

    • metapath2vec: MP2V:一个异质图 embedding 模型,它基于 metapath 指导的随机游走来生成随机游走序列,并通过 SkipGram 模型来学习node embedding
    • ASNE:一种属性网络 embedding 方法,它使用节点的潜在特征和属性来学习node embedding
    • SHNE:一种属性网络 embedding 方法,它通过联合优化图结构邻近性和文本语义相似性,从而学习文本相关的异质图的node embedding
    • GraphSAGE:一个图神经网络模型,它聚合了邻居的特征信息。
    • GAT:一个图注意力网络模型,它通过 self-attention 机制来聚合邻居的特征信息。
  5. HetGNN 的参数配置:

    • embedding 维度为 128

    • 邻域采样规模:

      • 对于学术网络,邻域采样大小为 23,其中作者节点选择 top-10、论文节点选择 top-10、会议节点选择 top-3
      • 对于评论网络,邻域采样大小为 20,其中用户节点选择 top-10、商品节点选择 top-10
    • 对于 RWR,我们选择返回概率 p=0.5 ,每个节点的 RWR 序列长度为 100 (即 |RWR(v)|=100) 。

    • 在获取三元组集合 Twalk 时,每个节点开始的随机游走序列数量为 10,每条随机游走序列长度为 30,上下文窗口大小为 5

    • 我们使用 Pytorch 来实现 HetGNN,并在 GPU 上进行实验。

  6. baseline 参数配置:

    • 为公平起见,所有 baseline 的维度设为 128

    • 对于 metapath2vec,对于学术网络我们使用三个 metapathAPA(author-paper-author)APVPA(author-paper-venue-paper-author)APPA(author-paper-paper-author) ;对于评论网络我们使用一个 metapathUIU(user-item-user)

      每个节点开始的随机游走序列数量为 10,每条随机游走序列的长度为 30 ,这和 HetGNN 保持一致。

    • 对于 ASNE,除了 latent 特征之外,我们使用 HetGNN 相同的内容特征,然后将它们拼接为一个通用的属性特征。

    • 对于 SHNE,对于两个数据集我们分别利用论文摘要和商品描述(文本序列 = 100 )作为 deep semantic 编码器(如 LSTM)的输入。此外,随机游走序列的配置和 metapath2vec 相同。

    • 对于 GraphSAGEGAT,我们使用HetGNN 相同的内容特征作为输入特征(拼接为一个通用的属性特征),并将每个节点的采样邻居数量设为和 HetGNN 相同。

22.2.1 链接预测

  1. 之前的做法是:随机采样一部分链接进行训练,然后使用剩余链接用于预测。我们认为应该根据时间顺序来拆分训练集和测试集,而不是随机拆分。

    • 对于学术图,我们令 Ts 为拆分年份,则 Ts 之前的是训练集, Ts 之后的是测试集。

      对于 A-I 数据集,我们考虑两种拆分情况:Ts=2003Ts=2002 ;对于 A-II 数据集,我们也考虑两种拆分情况:Ts=2013Ts=2012

      另外,对于学术图我们仅考虑两种类型的边:作者之间的共同撰写关系(type-1)、作者和论文之间的引用关系(type-2)。

    • 对于评论图,我们按顺序拆分。对于 R-I 数据集,根据边的数量拆分比例为 7:3 ,对于 R-II 数据集,根据边的数量拆分比例为 5:5

    对于测试集:

    • 删除测试集中重复的边。
    • 随机采样相等数量的“负边”(即不存在的噪音边)加入测试集。

    我们使用所有节点 + 训练集的边来学习node embedding,然后使用训练集的链接来训练逻辑回归分类器。逻辑回归分类器的输入为边的 embedding ,每条边的 embedding 是两端node embedding 的逐元素乘积。

    最后,我们使用训练好的分类器来评估测试集,评估指标为 AUCF1-Score

  2. 链接预测结果见下表所示,其中最佳结果以粗体突出显示。

    结论:

    • 大多数情况下,最好的 baseline 是属性图 embedding 方法或图神经网络方法,这表明融合节点属性或使用深度神经网络能产生更好的node embedding,从而有利于链接预测。
    • 在所有情况下,尤其是评论图中,HetGNN 均优于所有 baseline 方法。这证明了HetGNN 是有效的,它产生了针对链接预测任务更有效的node embedding

22.2.2 个性化推荐

  1. 我们在学术图中评估顶会推荐 (author-venue 链接) 的表现。具体而言,训练数据用于学习node embedding。推荐的ground-truth 为:给定测试集中的顶会,作者在测试数据集中出现(发表过论文)。

    和链接预测任务相同,对于 A-I 数据集,我们考虑两种拆分情况:Ts=2003Ts=2002 ;对于 A-II 数据集,我们也考虑两种拆分情况:Ts=2013Ts=2012

    我们采用两个节点的 embedding 内积作为推荐分,并挑选 top-k 推荐分的作者作为推荐列表。对于A-I 数据集,k=5;对于 A-II 数据集, k=3

    推荐的评估指标为 top-k 推荐列表的 Recall(Rec), Precision(Pre), F1-Score ,最终我们给出所有作者的均值作为报告得分。此外,重复的 author-venue pair 将从评估中删除。

  2. 个性化推荐结果见下表所示,其中最佳结果以粗体突出显示。

    结论:

    • 大多数情况下,最好的 baseline 是属性图 embedding 方法或图神经网络方法,这表明融合节点属性或使用深度神经网络能产生更好的node embedding,从而有利于个性化推荐。
    • 在所有情况下,尤其是评论图中,HetGNN 均优于所有 baseline 方法。这证明了HetGNN 是有效的,它产生了针对个性化推荐任务更有效的node embedding

22.2.3 节点分类&聚类

  1. 类似 metapath2vec,我们将 A-II 数据集中的作者分类到四个选定的研究领域:数据挖掘 data mining:DM、计算机视觉computer vision:CV、自然语言处理natural language processing:NLP、数据库 databse:DB

    具体而言,我们为每个领域选择三个热门会议,每个作者标记为他/她大部分论文所属的领域。如果在这些会议中未发表论文的作者将被剔除评估。如果作者在这些会议的多个领域发表过论文,则作者为多个标签。因此这是一个多标签节点分类问题。

    我们从完整数据集中学习node embedding,然后将学到的node embedding 来作为逻辑回归分类器的输入。我们将带标记的节点随机拆分,训练集的大小从 10%~30%,剩余节点作为测试集。评估指标为测试集的 Micro-F1Macro-F1

    对于节点聚类任务,我们将学到的node embedding 作为聚类模型的输入。这里我们采用 Kmeans 算法作为聚类算法,然后采用 NMIARI 作为评估指标。

  2. 下表给出了所有方法的评估结果,最佳结果以粗体突出显示。

    结论:

    • 大多数模型在多标签分类任务中表现良好,并得到较高的 Macro-F1Micro-F1 指标。这是因为这四个选定领域的作者彼此完全不同,分类相对容易。
    • 尽管如此,HetGNN 在多标签分类和节点聚类方面仍然达到了最佳性能或者可比的性能。这证明了HetGNN 是有效的,它产生了针对节点分类和聚类任务更有效的node embedding

  3. 此外,我们还通过 tensorflow embedding projector 来可视化四个领域作者的 embedding 。我们随机采样了 100 位作者,如下图所示分别位 2D 可视化和 3D 可视化。

    可以看到:同类别作者的 embedding 紧密地聚集在一起,从而证明了学到的node embedding 的有效性。

22.2.4 inductive 节点分类&聚类

  1. 该任务的配置和之前的节点分类&聚类任务类似,不同之处在于:我们对 A-II 数据集进行按年份拆分,拆分年份为 2013,然后将 2013 年以及之前的数据作为训练集、之后的数据作为测试集。

    我们用训练集中的数据来训练模型并得到训练集中节点的 embedding,然后用训练好的模型来推断测试集中新节点的 embedding 。最后我们使用推断的新node embedding 来作为分类和聚类模型的输入。

    注:逻辑回归分类器使用训练集中的节点来训练。

  2. 下表给出了inductive 节点分类和聚类任务的结果,其中最佳结果以粗体显示。

    结论:

    • 大多数模型在inductive 多标签分类任务中表现良好,并得到较高的 Macro-F1Micro-F1 指标。这是因为这四个选定领域的作者彼此完全不同,分类相对容易。

      尽管如此,HetGNNinductive 多标签分类任务中仍然达到了最佳性能或者可比的性能

    • HetGNNinductive 节点聚类任务中优于所有其它方法。

    结果表明HetGNN 模型可以有效地推断新节点的 embedding

22.2.5 消融研究

  1. 我们考察了HetGNN 模型的几种变体:

    • No-Neigh:直接使用异质内容编码来表示每个节点的 embedding,不考虑邻居信息。即:

      hv=zv
    • 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 机制要优于全连接层。

22.2.6 参数敏感性

  1. 我们考察 HetGNN 链接预测和推荐的性能随 embedding 维度 d 的影响。我们在 A-II 训练集上评估,训练集--测试集拆分年份位 2013 。当固定采样邻居规模(设为 23),我们选择不同的 d{8,16,32,64,128,256}

    结论:当 d8 增加到 256 时,所有指标都会增加,因为学到了更好的 embedding 。但是 d 进一步增加时,性能变得不变或者更差,这可能是因为过拟合。

  2. 我们考察 HetGNN 链接预测和推荐的性能随样本邻域大小的影响。我们在 A-II 训练集上评估,训练集--测试集拆分年份为 2013 。当固定 embedding 维度 d=128 时,我们选择不同的邻居采样规模,不同采样规模选择不同的邻居节点类型(即选择不同的top kt ):

    结论:当邻域大小从 6 增加到 34 时,所有指标都会增加,这是因为考虑了更多的邻域信息。但是当邻域规模超过某个值时,性能可能会缓缓降低,这可能是因为涉及到不相关的(噪音)邻居导致。最佳邻域大小为 20 ~ 30

二十三、HGT[2020]

  1. 异质图通常用于对复杂系统进行抽象和建模,图中包含不同类型的对象、不同类型的链接。如,Open Academic Graph:OAG 数据中包含五种类型的节点:论文 Paper、作者 Author、机构 Institution、会议 Venue、领域 Field,以及它们之间各种不同类型的关系,如下图所示。

    关于异质图挖掘已有大量的研究。一种经典的范式 paradigm 是定义和使用 metapath 元路径来建模异质图,例如 PathSimmetapath2vec。最近,鉴于图神经网络 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 representationedge-type dependent representation 、捕获网络动态、避免自定义metapath、以及能够扩展到 web-scale 的图。

    • 为了处理图的异质性,HGT 引入了节点类型依赖的attention 机制 node-type dependent attention、边类型依赖的 attention 机制 edge-type dependent attentionHGT 并未参数化每种类型的边,而是通过每条边 e=(s,t) 的关系三元组来分解边 e ,从而定义 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-scaleOAG 数据集上实验了 HGT 的有效性和效率,该数据集由 1.79 亿个节点、20 亿条边组成,时间跨度 1900 ~ 2019 年,是迄今为止规模最大、时间跨度最长的异质图数据集。

    实验结果表明:和state-of-the-artGNN 以及异质图模型相比,HGT 可以显著改善各种下游任务,效果提高 9% ~ 21% 。进一步研究表明,HGT 确实能够自动捕获隐式 metapath 针对不同任务的重要性。

23.1 基础知识和相关工作

23.1.1 异质图挖掘

  1. 异质图定义:定义异质图 G=(V,E,A,R) ,其中 V={v1,,vn} 为节点集合, E 为边集合,A 为节点类型集合,R 为边类型集合。每个节点 vV 关联一个节点类型 τ(v)A ,每条边 eE 关联一个边类型 ϕ(e)R

  2. 元关系meta relation定义:对于每条边 e=(s,t) ,定义它的元关系 meta relation 为三元组 <τ(s),ϕ(e),τ(t)> 。 定义 ϕ(e)1 为关系 ϕ(e) 的逆关系 inverse relation 。经典的metapath 范式被定义为这种元关系的序列。

    注意:为更好地建模真实世界的异质网络,我们假设不同类型的节点之间可能存在多种类型的关系。如 OAG 中,通过考虑作者顺序(如“第一作者”、“第二作者”等),作者类型节点和论文类型节点之间存在不同类型的关系。

  3. 动态异质图:为建模真实世界异质图的动态特性,我们为每条边 e(s,t) 分配一个时间戳 T ,它表示在时刻 T 节点 s 和节点 t 产生链接。对于节点 s 的首次出现,我们也会给节点 s 分配一个时间戳 T

    • 我们假设边的时间戳是不变的,表示边的创建时间。例如当一篇论文在时刻 T 发表在会议上时,T 被分配给论文节点和会议节点之间的边。
    • 我们假设节点可以有多个时间戳。例如,会议节点 WWW 可以分配任何时间戳。WWW@1994 意味着我们正在考虑第一版 WWW,它更多地关注互联网协议和 web 基础设施;而 WWW@2020 意味着即将到来的 WWW,其研究主题将扩展到社交分析、普适计算ubiquitous computing、搜索和信息检索、隐私等等。

    在挖掘异质图方面已经有了重要的研究方向,例如节点分类、节点聚类、节点排序、以及 node representation learning ,然而异质图的动态视角尚未得到广泛的探索和研究。

23.1.2 GNN

  1. GNN 可以视为基于输入图结构的消息传递,它通过聚合局部邻域信息来获得节点的 representation

    假设节点 vGNNl 层的 representationhv(l) ,则 GNNnode representation 更新方程为:

    hv(l)AgguNv({Extract(hu(l1);hv(l1),e(u,v))})

    其中:Nv 为节点 v 的邻域, e(u,v) 为节点 u 到节点 v 的边。

    GNN 有两个基本的算子:

    • Extract(.) 算子:邻域信息抽取器 extractor。它使用 target 节点 vrepresentation hv(l1) 以及两个节点之间的边 e(u,v) 作为query,并从 source 节点 urepresentation hu(l1) 中抽取有用的信息。
    • Agg(.) 算子:邻域信息聚合器 aggregator 。它用于聚合target 节点 v 的邻域信息。通常采用 mean, sum, max 等函数作为聚合函数,也可以设计更复杂的聚合函数。

    此外,还有很多将注意力机制集成到 GNN 的方法。通常,基于注意力的模型通过估计每个 source 节点的重要性来实现 Extract(.) 算子,并在此基础上应用加权聚合。

  2. 在上述 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 为同一个邻域内的不同节点分配不同的重要性。

23.1.3 异质 GNN

  1. 最近,一些工作试图扩展 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 也保留不同的权重。

    尽管实验上看这些方法都比普通的 GCNGAT 要好,但是它们对不同类型的节点或不同类型的边采用不同的权重矩阵,从而没有充分利用异质图的特性。因为不同类型的节点/边的数量可能差异很大,对于出现次数不多的边,很难准确地学到合适的 relation-specific 权重。

    为解决这个问题,我们提出了参数共享从而实现更好的泛化,这类似于推荐系统中的 FM 思想。具体而言,给定一条边 e=(s,t) ,其元关系 meta relation<τ(s),ϕ(e),τ(t)> 。如果我们使用三个矩阵来建模对应的三个元素 τ(s),ϕ(e),τ(t) ,则大多数边的权重可以共享。

    例如,在 “第一作者”关系 和 “第二作者”关系中,它们的源节点类型都是作者、目标节点类型都是论文。换句话讲,从一种关系中学到的有关作者和论文的知识可以迅速地迁移并适应于另一种关系。因此,我们将该思想和功能强大的、类似于 Transformer 注意力体系结构相结合,这就是 Heterogeneous Graph Transformer: HGT

  2. 综上所述,HGT 和现有异质图建模方法的主要区别在于:

    • 我们并没有试图对单独的节点类型或单独的边类型建模,而是使用元关系 <τ(s),ϕ(e),τ(t)> 来分解 边 e ,使得 HGT 使用相同的甚至更少的参数来同时捕获不同模型之间的通用模式common pattern以及特定模式specific pattern
    • 与大多数现有的metapath-based 方法不同,我们依赖于神经网络体系结构本身来融合高阶异质邻域信息,从而自动学习隐式的metapath的重要性。
    • 以前的大多数工作都未考虑图(异质的)的动态特性,而我们提出了相对时间编码 RTE 技术,从而在有限的计算资源内融合了时间信息。
    • 现有的异质 GNN 都不是为了 web-scale 图数据而设计的,也没有在 web-scale 图上进行实验。我们提出了为 web-scale 的图训练设计的 mini-batch 异质子图采样算法,可以在十亿规模的 Open Academic Graph 上进行实验。

23.2 模型

  1. HGT 的核心思想是:使用元关系来参数化权重矩阵,从而实现异质互注意力 heterogeneous mutual attention、消息传递 message passing、传播 propagation 。另外,为进一步融合网络的动态性,我们在模型中引入相对时间编码机制。

    下图给出了 HGT 的总体架构。给定一个采样的异质子图sampled heterogeneous sub-graphHGT 提取所有相连的节点 pair 对,其中目标节点 t 是由源节点 s 通过边 e 进行连接。HGT 的目标是聚合来自于源节点的信息,从而获得目标节点 t 的上下文表示 contextualized representation 。这样的过程可以分解为三个部分:元关系感知的异质互注意力 meta relation-aware heterogeneous mutual attention 、从源节点发出的异质消息传递 heterogeneous message passing from source nodes 、特定于目标的异质消息聚合 target-specific heterogeneous message aggregation

    我们将第 lHGT 层的输出记作 H(l) ,它也是第 l+1HGT 层的输入。通过堆叠 L 个这样的层,我们可以获得整个图的representationH(L) ,然后将其用于端到端训练或者下游任务。

    下图中, t 为目标节点, s1,s2 为源节点,不同颜色表示不同的节点类型。 HGT 使用边 e1=(s1,t),e2=(s2,t) 以及它们的元关系 <τ(s1),ϕ(e1),τ(t)>,<τ(s2),ϕ(e2),τ(t)> 作为输入,从而学习每个节点的上下文表示 H(L)

    HGT 遵循 GATattention 机制,但是 HGT 在计算 query, key, value 时考虑了节点和边的异质性。此外,在计算节点的 representation 时考虑了相对时间编码(类似于相对位置编码)。

23.2.1 Heterogeneous Mutual Attention

  1. HGT 的第一步是计算源节点 s 和目标节点 t 之间的互注意力。基于注意力机制的常规 GNN 为:

    ht(l)AggsNt,(s,t)E(Attention(s,t)×Message(s))

    其中有三个基础算子:

    • Attention 算子:评估每个源节点 s 对于目标节点 t 的重要性。
    • Message 算子:抽取源节点 s 的消息。
    • Agg 算子:利用注意力权重来聚合邻域的消息。

    例如,GAT 采用一种加性机制 additive mechanism 来作为Attention 算子,采用共享的权重矩阵来计算每个节点的消息,采用简单的均值然后接一个非线性激活函数来作为 Agg 算子。即:

    Attention(s,t)=SoftmaxsNt(a(Wht(l1)||Whs(l1)))Message(s)=Whs(l1)Agg()=σ(Mean())

    其中:

    • a 为待学习的注意力向量 attention vector
    • W 为待学习的权重矩阵,它是全局共享。
    • || 为向量的拼接;σ() 为非线性函数; Mean() 为多个向量取均值操作。
  2. 尽管 GAT 可以有效地给更重要的节点以更高的注意力,但是它假设节点 st 具有相同的特征分布,并使用同一个权重矩阵 W 。所谓相同的特征分布指的是:节点具有相同的特征类型,并且特征各维度的取值概率分布是相同的。但是,这种假设对于异质图是不正确的,因为异质图中每种类型的节点都有自己的特征分布。

    有鉴于此,我们设计了异质互注意力机制。给定一个目标节点 t 及其所有邻居 tNt ,这些邻居可能属于不同的类型,我们基于它们之间的元关系来计算它们的互注意力。

  3. 受到 Transformer 体系结构设计的启发,我们将目标节点 t 映射为一个 Query 向量,将源节点 s 映射为 Key 向量,然后计算它们内积作为 attention。但是和 Transformer 的区别在于:常规的 Transformer 对所有单词都使用同一组映射矩阵,但是在HGT 中每种元关系都有它们自己的一组映射矩阵。

    为最大程度地共享参数,同时保持不同关系的各自特性,我们将元关系的权重矩阵参数化为源节点投影矩阵、边投影矩阵、目标节点投影矩阵。具体而言,对于 h 个头,边 e=(s,t)attention 为:

    Attention(s,e,t)=SoftmaxsNt(||i[1,2,,h]ATT-headi(s,e,t))ATT-headi(s,e,t)=((ksi)Wϕ(e)ATTqti)×μ<τ(s),ϕ(e),τ(t)>qksi=K-Linearτ(s)i(hs(l1))qti=Q-Linearτ(t)i(ht(l1))

    其中:

    • qti 为第 iattention head 中的 query 向量,它是类型为 τ(t) 的目标节点通过一个线性映射 Q-Linearτ(t)i:RdRd/h 得到。每种不同类型的目标节点都有各自独立的线性投影函数,从而可以最大程度地建模不同节点类型的差异。

    • ksi 为第 iattention head 中的 key 向量,它是类型为 τ(s) 的源节点通过一个线性映射 Q-LinearKτ(s)i:RdRd/h 得到。每种不同类型的源节点都有各自独立的线性投影函数。

    • ATT-headi(s,e,t) 表示第 iattention head 中,query 向量 qtikey 向量 ksi 之间的相似性。

      异质图的一个特点是:在一对节点之间可能存在多种不同类型的边。因此,和常规的 Transformerquery 向量和 key 向量直接内积不同,HGT 考虑对每种边类型 ϕ(e) 采用各自不同的 edge-based 矩阵 Wϕ(e)ATTRd/h×d/h 。通过这种方式,模型甚至可以捕获同一对节点之间的不同语义关系。

      此外,由于并非所有关系均对目标节点做出相同的共享,因此我们采用了一个先验张量 prior tensor μR|A|×|R|×|A| 用于表示每个元关系三元组的重要性,从而对 ATT-headi(s,e,t) 的自适应缩放。

    • 最后,我们将 hattention head 拼接起来,从而获得每对节点 pair 对的 attention 向量。然后对于每个目标节点 t ,我们从其邻域 Nt 聚合所有的注意力进行 softmax,使其满足:

      sNtAttention(s,e,t)=1Rh

      即:对于目标节点 t ,每个 head 邻域内的注意力之后为 1sNtα(s,t)i=1.0

23.2.2 Heterogeneous Message Passing

  1. 和注意力计算过程类似,我们希望将边的元关系融合到消息传递过程中,从而缓解不同类型节点和不同类型边的分布差异。

    对于边 e=(s,t),我们计算其 multi-head 消息为:

    Message(s,e,t)=||i=1,2,,hMSG-headi(s,e,t)MSG-headi(s,e,t)=M-Linearτ(s)i(hs(l1))Wϕ(e)MSG

    其中:

    • MSG-headi(s,e,t) 为第 imessage head,它先将类型为 τ(s) 的源节点 s 经过一个线性投影 M-Linearτ(s)i:RdRd/h ,然后再通过一个矩阵 Wϕ(e)MSGRd/h×d/h 来融合边类型的依赖性。

      这里的 Wϕ(e)ATTWϕ(e)MSG 用于区分不同的边类型,并且可以支持多重边。

    • 然后,我们拼接所有的 hmessage head 从而为每条边得到 Message(s,e,t)

  2. 计算 multi-head 注意力过程和计算 multi-head 消息过程,二者之间可以并行进行。

23.2.3 Target-Specific Aggregation

  1. 在计算出异质 multi-head 注意力、异质 multi-head 消息之后,我们需要将它们从源节点聚合到目标节点。

    我们可以简单地使用每个 head 的注意力向量作为权重,从而加权平均对应 head 每个源节点的消息。因此聚合过程为:

    h~t(l)=sNt(Attention(s,e,t)×Message(s,e,t))

    这将信息从不同类型的所有邻居(源节点)的信息聚合到目标节点 t

  2. 最后一步是将目标节点 trepresentation 向量映射回其特定类型。为此,我们采用一个线性投影 A-Linearτ(t) 来作用到 h~t(l) ,然后跟一个残差连接:

    ht(l)=A-Linearτ(t)(σ(h~t(l)))+ht(l1)

    这样我们就获得了目标节点 t 的第 l 层输出 ht(l)

    因为前面将邻域节点信息 映射到公共空间,那么现在需要将公共空间映射回目标节点的特定类型空间。

  3. 由于真实世界的图具有 small-world 属性,因此堆叠 LHGT 层(L 是一个较小的数)就可以使得每个节点在整个图中触达大多数节点,这些节点具有不同类型和不同关系。即 HGT 为每个节点生成高度上下文相关的表示 H(L) ,它可以用于任何异质网络下游任务,如节点分类和链接预测。

  4. HGT 的整个体系结构中,我们高度依赖使用元关系 <τ(s),ϕ(e),τ(t)> 来分别参数化权重矩阵,这可以理解为模型容量和效率之间的折衷。

    • 和常规的 Transformer 相比,我们的模型区分了不同的节点类型和不同的关系类型,因此能够处理异质图中的分布差异。

    • 和为每种元关系保留独立的权重矩阵的现有方法相比,HGT 的三元组参数化可以更好地利用异质图的 schema 来实现参数共享。

      • 一方面,几乎从未出现过的关系仍然可以从这种参数共享中受益,从而可以实现快速适应和泛化。
      • 另一方面,不同类型的节点和关系仍然可以使用更少的参数集合来维持其独有的特点。

23.2.4 Relative Temporal Encoding

  1. 这里我们介绍用于 HGT 的相对时间编码 RTE 技术来处理动态图。

    传统的融合时间信息的方法是为每个时间片 time slot 构建一个独立的图,但是这种方式可能丢失跨不同时间片的结构相关性。同时,节点在时刻 trepresentation 可能依赖于其它时刻发生的连接。因此,对动态图进行建模的一种正确方式是:维持在不同时刻发生的所有边,并允许具有不同时间戳的节点和边彼此交互。

    有鉴于此,HGT 提出了相对时间编码 RTE 机制来建模异质图中的动态依赖性 dynamic dependencyRTE 的灵感来自于 Tansformer 中的位置编码方法,该方法已成功地捕获了长文本中单词的顺序依赖性 sequential dependency

    具体而言,给定源节点 s 和目标节点 t ,以及它们的时间戳 T(s),T(t) ,我们定义相对时间间隔 ΔT(t,s)=T(t)T(s) 作为索引来获得相对时间编码 RTE(ΔT(t,s))

    注意:训练数据集可能没有覆盖所有可能的时间间隔,因此 RTE 应该能够泛化到未看到的时间和时间间隔。因此我们使用一组固定的正弦函数作为 basis,并使用一个可训练的线性映射 T-Linear:RdRd 作为 RTE

    Base(ΔT(t,s),2i)=sin(ΔTt,s100002i/d)Base(ΔT(t,s),2i+1)=cos(ΔTt,s10000(2i+1)/d)RTE(ΔT(t,s))=T-Linear(Base(ΔTt,s))

    最终,针对目标节点 t 的相对时间编码将添加到源节点 srepresentation 中:

    h^s(l1)=hs(l1)+RTE(ΔT(t,s))

    该过程发生在每个 step 的信息聚合之前。

    通过这种方式,融合时间的representation h^s(l1) 将捕获源节点 s 和目标节点 t 的相对时间信息。

    RTE 的详细过程如下图所示:

  2. 目前为止我们为每个节点 t 分配了一个时间戳 T(t) ,但是现实世界中很多节点都具有多个时间戳,我们将这些节点称作 plain 节点。如:论文数据集中,WWW 会议在 1974 年和 2019 年都举行,但是这两年的研究主题截然不同。因此我们需要决定将哪个时间戳添加到 WWW 节点。

    plain 节点相反,异质图中存在一些 event 节点,它存在唯一的、固定的时间戳。如:论文数据集中,论文节点和该论文发表时间明确相关。

    为此,我们提出了一种 inductive 时间戳分配算法,它对 plain 节点基于该plain 节点相连的 event 节点来分配时间戳。基本思想是:plain 节点从 event 节点中继承时间戳。我们检查节点是否为 event 节点:

    • 如果节点是 event 节点,如特定年份发表的论文节点,则我们保留该 event 节点的时间戳从而捕获时间依赖性temporal dependency

    • 如果节点不是 event 节点,则可以像作者节点一样关联多个时间戳,我们将相连节点的时间戳分配给这个 plain 节点。

      如果有多个时间戳,那么怎么计算 ΔT(t,s) ?根据下面提到的算法过程,是通过子图采样算法来自动分配的,这个时间戳的分配具有一定的随机性。

    这样我们可以在子图采样过程中自适应地分配时间戳。

23.2.5 HGSampling

  1. full-batchGNN 训练要求计算每层所有节点的 representation,这使得它无法扩展到 web-scale 图。为解决这些问题,已有各种基于采样的方法在一个节点子集上训练 GNN。但是这些方法无法直接应用到异质图,因为在异质图中每种类型节点的 degree 分布和节点总数可能差异非常大,所以这些采样方法直接应用到异质图中可能得到节点类型极为不平衡的子图。

    为解决该问题,我们提出了一种有效的异质图 mini-batch 采样算法 HGSampling,使得 HGT 和传统 GNN 都能够处理 web-scale 异质图。其核心是为每种节点类型 τ 保留单独的节点预算 B[τ] ,它是一个列表,存储该类型所有节点的采样重要性。然后在利用重要性采样策略 importance sampling strategy 来降低方差。

    HGSampling 优势:

    • 为每种类型保留相似数量的节点和边。
    • 采样到的子图保持稠密,从而最大程度地减少信息损失并降低采样方差。
  2. HGSampling 算法:

    • 输入:

      • 包含所有元关系的邻接矩阵 A
      • 每种类型的节点的采样数量 n
      • 采样深度 L
      • mini-batch 节点集合 O (即第 L 层的节点集合)
    • 输出:最终输出节点集合 O 及其邻接矩阵 A^

    • 算法步骤:

      • 初始化采样节点集合 SO

      • 初始化一个空的预算 B={} ,它存储每种节点类型的节点及节点归一化的 degree

      • S 中每个节点 t ,将邻居节点添加到 B 中:Add-in-Budget(B,t,A,S)

        B 中存放候选的邻域集合以及对应的每个节点的归一化 degree

      • 迭代 l=1,2,,L ,迭代步骤为:

        • B 中的每个节点类型 τB 进行迭代,迭代步骤为:

          • B[τ] 的每个节点 s ,计算采样概率为:

            p(l1)[τ][s](B[τ][s])2||B[τ]||22

            其中分子为节点 s 的归一化 degree 的平方,分母为 B 中类型为 τ 的所有节点的归一化 degree 的平方和。

          • B[τ] 中使用概率 p(l1)[τ] 采样 n 个节点 {ti}i=1n

          • 对于每个采样到的节点 t{ti}i=1n ,执行:

            • 添加节点 t 到输出节点集合 O[τ].add(t)
            • 添加节点 t 的邻居到 BAdd-in-Budget(B,t,A,S)
            • B 中移除节点 tB[τ].pop(t)
      • 基于输出节点集合 O 和邻接矩阵 A 来重构采样的邻接矩阵 A^

      • 返回 OA^

  3. Add-In-Budget 算法:

    • 输入:

      • 集合 B ,它用于存储每种类型的节点及其归一化的 degree
      • 被添加的节点 t
      • 包含所有元关系的邻接矩阵 A
      • 采样节点集合 S
    • 输出:更新后的集合 B

    • 算法步骤:

      • 对于每种可能的源节点类型 τ 和边类型 ϕ 迭代,迭代步骤为:

        • 根据 <τ,ϕ,τ(t)> 计算节点 t 的归一化 degree

          D^t1len(A<τ,ϕ,τ(t)>[t])

          其中 A<τ,ϕ,τ(t)> 表示目标节点为 t、源节点类型为 τ、链接类型为 ϕ 的一阶邻居源节点集合。

          这里计算的是目标节点 t 关于源节点类型 τdegree,而不是 t 的总 degree

        • 对于每个源节点 sA<τ,ϕ,τ(t)>[t] 且未被采样到( sS)进行迭代,迭代步骤为:

          • 如果 s 没有时间戳,则: s.time = t.time
          • 将节点 s 添加到 B 中,并带上目标节点 t 的归一化 degree : B[τ][s]B[τ][s]+D^t
      • 返回更新后的 B

  4. 算法解释:假设节点 t 已经被采样到,我们使用 Add-In-Budget 算法将其所有一阶邻居添加到对应的 B 中,并将节点 t 的归一化 degree 添加到这些邻居上,然后将其应用于计算采样概率。这样的归一化等效于累积每个采样节点到其邻域的随机游走概率,从而避免采样被高阶节点统治。直观地看,该值越高,则候选节点和当前节点之间的相关性越大,因此应该赋予其更高的采样概率。

    B 更新之后,我们在 HGSampling 算法的前几行计算采样概率,通过计算 B 中每个节点 s 的 累积归一化 degree 的平方来计算重要性采样的概率。通过这种采样概率,我们可以降低采样方差。

    然后,我们使用计算到的概率对类型为 τ 采样 n 个节点,并将其添加到输出节点集合中。然后,我们将它们的邻居添加到 B 中,并将它们自己从 B 中移除。

    重复这样的过程 L 次,我们从初始节点获得深度为 L 的采样子图。最后,我们在采样节点之间重建邻接矩阵。

    通过使用上述算法,被采样的子图对每个类型包含相似的节点数量,并且足够稠密,且通过归一化的 degree 和重要性采样来降低方差。因此这种方式适用于 web-scale 图上训练 GNN

    整个采样过程如下图所示:不同颜色表示不同的节点类型。

    • (0) :选择初始节点 P1 (黑色圆圈圈住的节点)。此时 B 全空。
    • (1):选择 P1 的邻居节点集合(边进行了加粗),并将邻居节点加入 B 中。不同类型的邻居节点加入到不同类型的队列中,并带上 P1 的归一化 degree 和时间戳(根据 inductive 时间戳分配)。
    • (2):对每种类型采样 n 个节点,这里 n=3 并采样到节点 P3,A1,V1 (黑色圆圈圈住),并将它们从 B 中弹出。于是B 中就剩下节点 P2
    • (3):对于新采样的节点 P3,A1,V1 ,将它们的邻居节点加入到 B 中。例如,对于节点 A1 ,其邻居节点为 P2,V1,A2,P1 ,其中 P1,V1 为已采样到的节点不予考虑, P2 已经在队列中则对其 degree 值进行累加。
    • (4):对每种类型采样 n 个节点,这里 n=3 并采样到节点 P2,A2,V2 (黑色圆圈圈住),并将它们从 B 中弹出。
    • (5):采样结束。

23.3 实验

  1. 我们在三个异质学术图数据集上评估 HGT,并分别执行 Paper-Field 预测、Paper-Venue 预测、Author Disambiguation 任务。

  2. 数据集:我们使用 Open Academic Graph:OAG 数据集,它包含超过 1.78 亿节点和 22.36 亿条边,这是最大的公开可用的异质学术数据集。此外,OAG 中所有论文关联一个发表日期,该日期从 19002019 年。

    数据集包含五种类型的节点 Paper、Author、Field、Venue、Institute,其中 OAG 的领域Field 字段一共包含 L0L5 共六个层级,这些层级通过层级树 hierarchical tree 来组织。因此,我们根据领域层级来区分 Paper-Field 边。此外,我们还区分了不同的作者顺序(第一作者、最末作者、其它作者)和会议类型(期刊jornal、会议 conference、预印本 preprint)。最后,self 类型对应于自环连接,这是 GNN 架构中广泛添加的。除了 self 关系是对称的之外,其余所有关系都是不对称的,每种关系 ϕ 都具有对应的反关系 reverse relation ϕ1

    为测试 HGT 的泛化能力,我们还从 OAG 构造了两个特定领域的子图:计算机科学 CS 学术图、医学 Med 学术图。CSMed 图都包含数千万个节点和数亿条边。

    所使用的三个数据集比以前 GNN 研究中广泛使用的小型引文网络(Cora,Citeseer,Pubmed)大得多,后者仅包含数千个节点。

    下表给出了数据集的统计信息,其中 P-A 表示“论文 -- 作者”、 P-F 表示 “论文 -- 研究领域”、P-V 表示 “论文 -- 会议”、 A-I 表示 “作者 -- 研究机构”、P-P 表示论文引用。

  3. 我们通过四个不同的下游任务来评估 HGTPaper -- 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 年之间的论文作为测试集。

    我们使用 NDCGMRR 这两个广泛应用的 ranking 指标作为评估指标。我们对所有模型进行 5 次训练,并报告测试集性能的均值和标准差。

  4. 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 表示没有相对时间编码。考虑所有的排列,我们得到以下模型:

    HGT-HeterRTE,HGT-Heter+RTE,HGT+HeterRTE,HGT+Heter+RTE

    我们使用HGSampling 采样算法应用到所有 baseline GNN ,从而处理大规模的 OAG 数据集。为了避免数据泄露,我们从子图中删除我们目标预测的链接。

  5. 输入特征:我们对不同的节点类型采用不同的特征:

    • 论文节点:使用预训练的 XLNet 来获取标题中每个单词的 representation。然后,我们根据每个单词的注意力对它们进行加权平均,从而得到每篇论文的标题 representation
    • 作者节点:使用该作者发表的所有论文的标题的 representation 取平均。
    • 领域节点、会议节点、机构节点:使用 metapath2vec 来训练其node embedding,从而反映异质网络结构。

    另外,同质 GNN 假设所有节点都是相同类型的特征。因此,为了进行公平的比较,我们在输入特征和同质GNN 之间添加一个适配层,该层用于对不同类型的节点进行不同的线性映射。可以认为该过程能够将异质特征映射到相同的特征空间。

  6. 实现方式:

    • 对于所有的 baseline,我们在整个神经网络网络中使用隐层维度为 256
    • 对于所有基于 multi-head attention 方法,我们将 head 数量设为 8
    • 所有 GNN 均为三层(不包括适配层),使得每个网络的感受野完全相同。
    • 所有 baseline 方法均通过 Cosine Annealing Learning Rate SchedulerAdamW 优化器优化。
    • 每个模型我们训练 200epoch,然后选择验证损失最小的那个作为评估模型。
    • 我们选择使用 GNN 文献中默认使用的超参数,并未进行超参数调优。
  7. 所有模型在所有数据集上的表现如下表所示,其中评估指标为 NGCD, MRR 。结论:

    • HGT 在所有数据集的所有任务上均显著优于所有 baseline。总体而言,在所有三个大规模数据集上的四个任务中,HGT 平均优于 GCN, GAT, RGCN, HetGNN, HAN 大约 20%

      此外, HGT 具有更少的参数、差不多的 batch 时间。这表明 HGT 根据元关系 schema 建模异质边,从而以更少的资源实现更好的泛化

    • 和完整模型 HGT+Heter+RTE 相比:

      • 删除异质权重参数化的模型,即 HGT-Heter+RTE 降低了 4% 的性能。
      • 删除相对时间编码的模型,即 HGT+HeterRTE 降低了 2% 的性能。

      这表明了权重参数化、相对时间编码的重要性。

    • 最后我们还尝试了一个 baseline,它为每个关系类型保留不同的参数矩阵。但是,这样的 baseline 包含太多参数,因此我们的实验设置没有足够的 GPU 内层对其进行优化。

      这也表明:使用元关系对权重矩阵进行分解可以在较少的资源条件下获得有竞争力的优势。

  8. 为进一步评估相对时间编码 RTE 如何帮助 HGT 捕获图的动态性,我们进行一个案例研究来展示会议主题的演变。我们选择被引用次数最多的 100 个计算机科学会议,为它们分配了三个不同的时间戳 2000、2010、2020 ,并构造了由它们初始化的子图。我们使用训练好的 HGT 来获取这些会议的 representation ,然后计算这些会议之间的欧式距离。

    我们以 WWW、KDD、NeuraIPS 为例,对于每个会议我们选择其 top 5 最相似的会议,从而显示会议主题随时间的变化。结果如下表所示。结论:

    • 2000 年的 WWW 和某些数据库会议(SIGMODVLDB) 以及一些网络会议(NSDIGLOBECOM) 更相关。但是,除了 SIGMOD, GLOBECOM 之外, 2020 年的 WWW 和某些数据挖掘和信息检索会议(KDD, SIGIR, WSDM) 更相关。
    • 2000 年的 KDD 和传统的数据库和数据挖掘会议更相关,而 2020 年的 KDD 倾向于和多种主题相关,如机器学习(NeurIPS)、数据库 (SIGMOD)、Web(WWW)、AIAAAI)、NLP (EMNLP )。
    • 除此之外,HGT 还能捕获新会议带来的差异。例如 2020 年的 NeurIPSICLR(这是一个新的深度学习会议) 相关。

    该案例研究表明:相对时间编码可以帮助捕获异质学术图的时间演变。

  9. 为说明融合的元关系模型如何使得异质消息传递过程受益,我们选择在前两层 HGT 层中具有最高注意力的模式,并在图中绘制元关系注意力层次树。

    例如,为计算论文的 representation,最重要的三个元关系序列为:

    <Paper,is-published-at,Venue,is-published-at1,Paper><Paper,has-L2-field-of,Field,has-L5-field-of1,Paper><Institude,is-affiliated-with1,Author,is-first-author-of,Paper>

    这可以分别视为 metapath: PVP, PFP, IAP

    注意:无需手动设计既可以自动从数据中学到这些 metapath 及其重要性。

    右图给出了计算作者 representation 的另一个case。这些可视化结果表明,HGT 能够隐式地学到为特定下游任务构造的重要的 metapath,无需手动构建。

二十四、GPT-GNN[2020]

  1. 图神经网络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 predictmasked 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-trainingGPT-GNN 可以同时计算每个节点的属性生成损失和边生成损失,因此只需要为图运行一次 GNN 。此外,GPT-GNN 可以通过子图采样处理大型图,并通过自适应 embedding queue 来缓解负采样带来的 inaccurate loss
    • 最后,作者在两个大型图上预训练了 GNN1.79 亿节点和 20 亿边的 Open Academic Graph: OAG1.13 亿节点的 Amazon 推荐数据。大量实验表明:GPT-GNN 预训练框架可以显著地有利于各种下游任务。例如,通过在 OAG 上应用预训练模型,节点分类和链接预测任务的性能比没有预训练的 state-of-the-art GNN 平均可达 9.1% 。此外,作者表明:GPT-GNN 可以在各种 setting 下持续提高不同的 base GNN 的性能。

24.1 基础知识和相关工作

  1. 预训练的目的是允许模型(通常是神经网络)使用预训练的权重来初始化模型参数,这样模型可以充分利用预训练和下游任务之间的共性 commonality 。最近,预训练在提高计算机视觉和自然语言处理中许多下游 application 的性能方面显示出优势。

24.1.1 GNN 的基础知识

  1. GNN 可以视为基于输入图结构的消息传递,它通过聚合局部邻域信息来获得节点的 representation

    假设节点 vGNNl 层的 representationhv(l) ,则 GNN 的节点 representation 更新方程为:

    hv(l)AgguNv({Extract(hu(l1);hv(l1),e(u,v))})

    其中:Nv 为节点 v 的邻域, e(u,v) 为节点 u 到节点 v 的边。

    GNN 有两个基本的算子:

    • Extract(.) 算子:邻域信息抽取器 extractor。它使用 target 节点 vrepresentation hv(l1) 以及两个节点之间的边 e(u,v) 作为query,并从 source 节点 urepresentation hu(l1) 中抽取有用的信息。
    • Agg(.) 算子:邻域信息聚合器 aggregator 。它用于聚合target 节点 v 的邻域信息。通常采用 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
  2. 此外,还有很多将注意力机制集成到 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 )。

24.1.2 用于图的预训练

  1. 已有一些研究提出利用预训练来学习节点的 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,这是一项更难的图任务,因此可以指导模型学到输入图的更复杂的语义和结构信息。

  2. 另外,还有一些工作尝试预训练 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-levelgraph-level 预训练 GNN 的不同策略,并表明将它们组合在一起可以提高图分类任务的性能。

    我们的工作与他们不同,因为我们的目标是在单个大型图上预训练 GNN 并进行 node-level 迁移学习 。

24.1.3 用于计算机视觉和自然语言处理的预训练

  1. 预训练已广泛用于计算机视觉和自然语言处理。

    • 在计算机视觉中,早期的预训练技术(《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 为例,它通过两个自监督任务来预训练一个文本编码器,以便更好地对 wordcontext 进行编码。这些预训练方法已被证明可以在广泛的自然语言处理任务中产生 state-of-the-art 性能,因此被用作许多 NLP 系统的基础组件。

24.2 模型

  1. 给定属性图 G=(V,E,X) ,其中 V={v1,,vn} 为节点集合, E 为边集合, XRn×d 为节点的特征矩阵, d 为节点的特征向量维度。 xvRdXv 行,表示节点 v 的特征向量。

    GNN 模型在特定下游任务(如节点分类)的监督下学习输出 node representation 。有时候在单个图上存在多个任务,并且对于每个任务,大多数 GNN 需要提供足够多的标记数据。然而,获得足够多的标记数据通常具有挑战性,特别是对于大型图,这阻碍了GNN 的训练。因此,需要一个预训练的 GNN 模型,该模型可以通过很少的标签来进行泛化。从概念上讲,该预训练的模型应该:捕获图背后的固有结构 intrinsic structure 和属性模式attribute pattern ,从而使得该图上的各种下有任务受益。

  2. GNN 预训练的目标是学到一个通用的 GNN 模型 fθ,它基于单个图 G 来训练并且不使用任何标记数据,从而使得 fθ 是图 G 上各种下游任务的很好的初始化点。一个问题是:如何在图上设计一个无监督学习任务来预训练 GNN 模型?

24.2.1 Generative Pre-Training Framework

  1. NLPCV 自监督学习的最新进展表明,未标记数据本身包含丰富的语义知识,因此可以捕获数据分布的模型能够迁移到各种下游任务。受此启发,我们提出了 GPT-GNN,它通过重建/生成 input graph 的结构和属性来预训练 GNN

  2. 形式上,给定属性图 G 以及一个 GNN 模型 fθ ,我们通过 GNN 模型 fθ 将图的似然 likelihood 建模为 p(G;θ) ,它表示 G 中节点的属性分布和连接分布。GPT-GNN 目标是最大化图的似然来预训练 GNN 模型,即:

    θ=maxθp(G;θ)
  3. 第一个问题是:如何建模图的似然 p(G;θ) 。大多数现有的图生成方法都遵循自回归的方式auto-regressive manner 来分解概率目标,即:图中的节点按照顺序依次访问,并通过将每个新的节点连接到现有节点来生成边。

    类似地,我们使用排列向量 permutation vector π 来确定节点的顺序,其中 πi 表示编号为 i 的节点在排列中的位置。因此,图分布 p(G;θ) 等于似然在所有排列上的期望:

    p(G;θ)=Eπ[pθ(Xπ,Eπ)]

    其中:

    • Xπ 表示重排后的节点属性矩阵。
    • Eπ 表示重排后的边集合,其中节点 i 在排列 π 中的边集合为 Eiπ (它仅考虑位于 πi 位置之前的节点)。

    为简单起见,我们假设任何节点顺序 π 都是等概率的,并且在下面内容中省略上标 π

    给定一个排列顺序,我们可以自回归地分解对数似然:

    logpθ(X,E)=i=1nlogpθ(xi,EiX<i,E<i)

    其中:

    • X<i 表示节点 i 之前生成的所有节点对应的属性。
    • E<i 表示节点 i 之前生成的所有节点对应的边。
    • i 表示排列中的新节点, xi 表示其属性向量, Ei 表示它和现有节点的连接。

    因此,这个对数似然给出了属性图的自回归生成过程autoregressive generative process

    该模型是一个节点一个节点地生成,因此是生成式模型。

  4. 本质上,上述公式描述了属性图的自回归生成过程autoregressive generative process。现在的问题是如何建模条件概率 pθ(xi,EiX<i,E<i)

24.2.2 Factorizing Attributed Graph Generation

  1. 一种朴素的想法是假设 xiEi 是相互独立的,即:

    pθ(xi,EiX<i,E<i)=pθ(xiX<i,E<i)×pθ(EiX<i,E<i)

    这种分解完全忽略了节点的属性和它的边之间的依赖关系。但是,这种依赖关系恰好是属性图的核心特性,也是 GNN 中卷积聚合的基础。因此,这种朴素的分解无法应用于预训练 GNN

    为解决该问题,我们为属性图生成过程提出依赖感知 dependency-aware 的因子分解机制。具体而言:

    • 在预估新节点的属性时,我们采用节点的结构信息。
    • 在预估新节点的连接时,我们采用节点的属性信息。

    在这个过程中,一部分边已经被观察到,然后属性图生成过程分解为两个耦合的部分:

    • 给定观测到的边,生成节点属性。
    • 给定观测到的边和生成的节点属性,生成剩余的边。

    这样,模型可以捕获到每个节点的属性和图结构之间的依赖关系。

  2. 我们定义变量 o 表示 Ei 中所有观测到的边的索引组成的向量,因此 Ei,o 为所有的观测边。 定义 ¬o 为所有被掩盖 mask 的边的索引组成的向量,因此 Ei,¬o 表示所有需要被生成的边。则可以将条件概率重写为似然函数关于所有观测到的边的期望:

    pθ(xi,EiX<i,E<i)=opθ(xi,Ei,¬oEi,o,X<i,E<i)×pθ(Ei,oX<i,E<i)=Eo[pθ(xi,Ei,¬oEi,o,X<i,E<i)]=Eo[pθ(xiEi,o,X<i,E<i)generate attributes×pθ(Ei,¬oEi,o,Xi,E<i)generate edges]

    这种分解设计能够建模节点 i 的属性 xi 和它关联的边 Ei

    • 第一项 pθ(xiEi,o,X<i,E<i) 用于建模节点 i 的属性生成过程。基于观测到的边 Ei,o ,我们聚合目标节点 i 之前节点的信息来生成它的属性 xi

    • 第二项 pθ(Ei,¬oEi,o,Xi,E<i) 表示被遮盖的边的生成过程。基于观测到的边 Ei,o 以及生成的属性 xi ,我们预测 Ei,¬o 中的每条边是否都存在。

      注意这里是 Xi 而第一项是 X<i

  3. 我们以一个学术图为例来阐述上述分解的工作原理。假设我们希望生成一个论文节点,节点属性为论文标题,节点的边为论文及其作者、论文及其发表会议、论文及其引用论文。

    • 基于论文和它的某些作者之间观测到的边,我们的生成过程首先生成论文标题。
    • 然后基于观测到的边和论文标题再预测剩余的边(“论文--作者”、“论文--发表会议”、“论文--引用论文”)。

    通过这种方式,该生成过程可以对论文的属性(论文标题)和结构(观测到的边和剩余边)之间的相互作用进行建模。

    能不能先进行边的生成然后再进行节点属性的生成?可以通过实验来说明。

  4. 目前为止,我们将属性图的生成过程分解为节点属性生成 node attribute generation和边生成 edge generation 两步。一个新的问题是:如何通过同时优化属性生成和边生成来有效预训练 GNN

22.2.3 Efficient Attribute and Edge Generation

  1. 为提高效率,我们希望通过仅对输入图运行一次 GNN 来计算属性生成损失和边生成损失。另外,我们希望同时进行属性生成和边生成。但是,由于边生成过程需要将节点属性作为输入,这可能会泄露信息给属性生成过程。为避免信息泄露,我们将每个节点同时加入到两个类别:

    • 属性生成节点Attribute Generation Nodes:对于该集合中的节点,我们使用 dummy token 来代替它们的节点属性,从而掩盖节点属性,并学习一个共享的输入向量 xinit 来表示这个 dummy token。这等价于在 masked language model 中使用 [Mask] token 技巧。

      xinit 的维度和 xi 相同,并且在预训练过程中进行学习(而不是固定的)。

    • 边生成节点 Edge Generation Nodes:对于该集合中的节点,我们保留其属性并将节点属性作为输入。

    我们修改输入图,将每个节点分裂为两个节点:一个为属性生成节点,另一个为边生成节点(它们之间不存在边)。

    我们将修改后的图输入到 GNN 模型中并得到节点的 embedding,我们分别用 HattrHedge 来表示属性生成节点和边生成节点的 embedding。由于属性生成节点的属性被遮盖,因此 Hattr 包含的信息通常比 Hedge 更少。因此,在进行 GNN 消息传递时,我们仅使用边生成节点的来向外传递消息。

    HattrHedge 需要通过 GNN 模型计算得到(运行一次GNN 前向传播)。有两个细节需要注意:

    • 根据 π 移除了所有从高编号到低编号的边,这意味着每个节点只能从低编号节点接收消息。这样,它们就不会将信息泄露给自回归生成的目标函数。
    • 如何在 GNN 中运行一次而为每个节点生成两个 embedding ?论文未给出细节。理论上讲,GNN 的前向传播仅能得到每个节点的单个 embedding

    还有一个问题:如果使用 Hedge 来传递消息,那么是否可能存在信息泄露?假设节点 u 和节点 v 之间相互连接且不与其它节点连接,则在属性生成过程中,我们有:

    hv(l),attrExtract(hu(l1),edge;hv(l1),attr,e(u,v))hu(l),edgeExtract(hv(l1),edge;hu(l1),edge,e(v,u))

    可以看到:节点 v 的属性信息通过 hv(l1),edge 进入了 hu(l),edge ,并进一步进入了 hv(l+1),attr ,因此发生了信息泄露。但是,由于每个节点只能从低编号节点接收消息,因此两条边 e(u,v)e(v,u) 并不能同时存在,因此这种信息泄露的方式不存在。

    然后,我们使用这两组节点的 embedding 通过不同的解码器来生成属性和边。

  2. 属性生成:对于属性生成,我们将解码器记作 Decattr() ,它将 Hattr 作为输入,并生成被遮盖的属性。

    解码器类型依赖于属性的类型:

    • 如果节点的属性为文本,则可以使用文本生成模型(如 LSTM)来生成属性文本。
    • 如果节点的属性为标准的向量,则可以使用多层感知机来生成属性向量。

    然后我们将距离函数定义为生成的属性和真实属性之间的度量,如文本属性的度量为困惑度perplexity、属性向量的度量为向量的 L2 距离。因此,我们定义属性生成损失为:

    Liattr=Distance(Decattr(hiattr),xi)

    最小化生成的属性和被遮盖的属性之间的距离,等价于最大化每个观测节点的属性的似然,即 pθ(xiEi,o,X<i,E<i) 。因此预训练的模型能够捕获到图的语义信息。

  3. 边生成:对于边生成,我们假设每条边的生成相互独立,则有:

    pθ(Ei,¬oEi,o,Xi,E<i)=j+Ei,¬opθ(ei,j+Ei,o,Xi,E<i)

    其中 ei,j+ 表示被遮盖的、从节点 ij+ 的边。

    然后在得到边生成节点的 embedding Hedge 之后,我们通过解码器 Decedge(,) 来建模节点 i 连接到节点 j+ 之间的概率。

    我们采用负对比估计 negative contrastive estimation 来计算节点 i 连接到节点 j+ 之间的概率。记所有未连接的节点集合为 Si ,则对比损失 contrastive loss 为:

    Liedge=j+Ei,¬ologexp(Decedge(hiedge,hj+edge))jSi{j+}exp(Decedge(hiedge,hjedge))

    最小化 Liedge 等于最大化生成所有遮盖边的可能性。因此预训练模型能够捕获图的固有结构。

  4. 下图给出了属性图的生成过程。具体而言:

    • (a) :确定输入图的节点排序 π

    • (b):随机选择目标节点的一部分边作为观测边 Ei,o ,目标节点的剩余边作为遮盖边 Ei,¬o (带十字的灰色虚线)。

    • (c) - (e)

      • 从输入图中删除被遮盖的边。
      • 将每个节点分裂为属性生成节点和边生成节点,从而避免信息泄露。
      • 在上述预处理之后,使用修改的邻接矩阵来计算节点 3,4,5embedding ,包括它们的属性生成 embedding 和边生成 embedding。注意:仅使用边生成节点的来向外传递消息。
    • 最后,如图 (c) - (e) 所示,我们通过并行的属性预测和遮盖边预测任务来训练 GNN 模型。

22.2.4 用于异质图和大型图的 GPT-GNN

  1. 异质图:GPT-GNN 框架可以直接应用于预训练异质 GNN。此时,每种类型的节点和边都可能有自己的解码器,该解码器由异质 GNN 确定而不是预训练框架指定。其它部分和同质 GNN 预训练完全相同。

  2. 大型图:为了在非常大的图上预训练 GNN,我们采样 G 的子图来进行训练。具体而言,我们建议使用 LADIES 算法及其异质版本 HGSampling 从同质图或异质图采样一个稠密的子图。理论上讲,这两种方法都保证了采样节点之间的高度互连,并最大程度地保留了结构信息。

    为了估算对比损失 Liedge ,我们需要遍历输入图的所有节点。但是在采样的子图中我们只能访问采样后的节点,这使得自监督仅关注于采样到的局部信号。为了缓解该问题,我们提出自适应队列 Adaptive Queue,它存储了之前曾经采样的子图中的node embedding。我们将自适应队列中的节点作为负节点加入到 Si 中。每次处理新的子图时,我们都会添加最新的节点embedding 并删除最早的node embedding ,从而逐步更新自适应队列。由于不会严格更新模型参数,因此队列中存储的负样本是一致且准确的 consistent and accurate

    自适应队列使得我们能够使用更大的负样本集合 Si ,同时跨不同采样子图的节点可以为对比损失引入全局结构的指导。

22.2.5 GPT-GNN 算法

  1. GPT-GNN 预训练算法:

    • 输入:

      • 属性图 G=(V,E,X)
      • 子图采样器 Sampler(.)
      • GNN 模型 fθ
    • 输出:预训练模型的参数 θ

    • 算法步骤:

      • 初始化 GNN 模型 fθ,初始化属性生成解码器 Decattr,初始化边生成解码器 Decedge

      • 初始化共享属性向量 xinit ,初始化自适应node embedding 队列 Q={}

      • 对每个采样到的子图 G^Sampler(G) ,执行:

        • 对每个节点,采样一组观测到的边的索引 o 和遮盖边的索引 ¬o ,并从 G^ 中移除遮盖边 Ei,¬o

        • 将所有节点分别同时分裂为属性生成节点、边生成节点。将属性生成节点集合的节点输入替换为 xinit 。然后应用 GNN fθ 来获取两个集合中的node embedding HattrHedge 。注意:仅使用边生成节点的来向外传递消息。

        • 对每个节点 i ,其属性为 xi ,遮盖边的集合为 Ei,¬o ,执行:

          • 计算属性生成损失 Liattr=Distance(Decattr(hiattr),xi)

          • 通过拼接子图中未连接的节点和自适应队列 Q,为边生成任务准备负采样边集合 Si

          • 计算边生成损失:

            Liedge=j+Ei,¬ologexp(Decedge(hiedge,hj+edge))jSi{j+}exp(Decedge(hiedge,hjedge))
        • 通过最小化 L=iG^(Liattr+Liedge) 来优化 θ

        • 添加 Hedge 来更新自适应队列 Q ,并弹出最早的 edge embedding

      • 返回预训练的模型参数 θ

  2. 上述算法给出了总体流程。给定一个属性图 G ,我们每次采样一个子图 G^ 来作为生成式预训练的训练实例。

    • 第一步是确定节点排列顺序 π 。为支持并行训练,我们希望单次的前向传播可以获得整个图的 embedding,以便我们可以同时计算每个节点的损失,而不是递归地计算每个节点。因此,我们根据 π 移除了所有从高编号到低编号的边,这意味着每个节点只能从低编号节点接收消息。这样,它们就不会将信息泄露给自回归生成的目标函数。因此,我们只需要单次执行就可以获得整个图的 embedding,从而直接应用于生成式预训练。

      注意:这一步未在上述算法中体现。理论上在采样子图的外层还有一个循环:采样排列顺序的循环。

    • 然后,我们需要确定要遮盖的边。对于每个节点,我们选择其所有出边 out edge 并随机选择遮盖一部分边。

    • 然后,我们执行节点分裂,并获得节点的 embedding,这将用于计算生成式损失。

    • 我们通过拼接该子图内未连接节点和存储在自适应队列 Q 中的节点来准备负样本,这样可以缓和子图和整体图之间的 gap

    • 最后我们更新自适应队列。

    一旦得到预训练模型,我们就可以使用预训练模型作为初始化,从而微调其它下游任务。

24.3 实验

  1. 数据集:

    • 异质图:

      • 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 提取的引文网络。

  2. Base model:在 OAGAmazon 数据集上,我们使用最新的异质 GNN 模型 Heterogeneous Graph Transformer: HGT 作为 base model 来预训练 GPT-GNN 。另外我们也对比了其它异质 GNN 作为 base model 的效果。

  3. baseline 方法(均用于预训练):

    • GAE:图自编码器,聚焦于传统的链接预测任务。它随机遮盖固定比例的边,然后要求模型重建这些遮盖的边。
    • GraphSAGE(无监督):强迫相连的节点具有相似的 embedding。它和 GAE 的主要区别在于:GraphSAGE 在预训练过程中不会遮盖边。
    • Graph InfoMax:尝试使用全局的图 summary embedding 来最大化局部node embedding。对于每个采样的子图,我们混洗子图来构造负样本。
    • 此外,我们还单独使用 GPT-GNN 的两个预训练任务来进行对比,即属性生成 GPT-GNN(Attr)、边生成 GPT-GNN(Edge)
  4. GPT-GNN 模型配置:

    • 所有的 base model,其隐层维度为 400head 数量为 8GNN 层数为 3
    • 所有GPT-GNN 都采用 PyTorch Geometric(PyG) package 实现。
    • 使用 AdamW 优化器,使用 Cosine Annealing Learning Rate Scheduler 训练 500epoch,并选择验证损失最低的模型作为预训练模型。
    • 自适应队列大小为 256
    • 在下游评估阶段,我们使用相同的优化配置来微调模型,微调期间训练 200epoch
    • 我们对下游任务重复训练 5 次,并报告测试结果的均值和标准差。
  5. 迁移学习配置:我们首先预训练 GNN,然后使用预训练的模型权重来初始化下游任务的模型。然后我们使用下游任务的训练集来微调模型,并评估测试集性能。

    大体而言,有两种不同的配置:

    • 第一种是在完全相同的图上进行预训练和微调。
    • 第二种是在一张图上进行预训练,但是在另一张图(和预训练的图具有相同类型)上进行微调。

    其中第二种更为实用,我们选择第二种进行测试。

    如果是跨图的微调,如何处理训练期间 unseen 节点的 embedding

    • 如果是 transductinve 的,那么只能要求两个图中的节点尽可能重合。
    • 如果是 inductive 的,那么两个图可以不同,因为我们只需要预训练模型权重矩阵(如 GAT 中的投影矩阵)即可。

    具体而言,我们选择以下三种图迁移学习:

    • 时间迁移 Time Transfer:使用来自不同时间段的数据进行预训练和微调。对于 OAGAmazon,我们使用 2014 年之前的数据进行预训练,使用 2014 年之后的数据进行微调。

    • 领域迁移 Field Transfer:使用来自不同领域的数据进行预训练和微调。

      • OAG 中,我们选择计算机科学领域 CS 的论文用于微调,其它领域的论文用于预训练。
      • Amazon 中,我们选择艺术 Art、手工艺品 Craft、缝纫品 Sewing 进行预训练,并对时尚、美容、奢侈品进行微调。
    • 组合迁移 Time + Field Transfer:使用 2014 年之前特定领域的数据来预训练,使用 2014 年之后另一些领域的数据来微调。这比单独的时间迁移或领域迁移更具挑战。

    在微调期间,对于这两个数据集我们选择 2014~2016 年的节点进行训练,2017 年的节点作为验证,2018 年的节点作为测试。

    为满足缺乏训练数据的假设,默认情况下我们仅提供 10% 的标记数据用于微调训练。

    在预训练期间,我们随机选择部分数据(2014 年以前)作为验证集。

  6. OAGAmazon 数据集上的不同预训练方法的下游任务性能如下表所示。

    结论:

    • 总体而言,GPT-GNN 框架显著提高了所有数据集上所有下游任务的性能。

      • 平均而言,GPT-GNN 相比于没有预训练的 base model,在 OAGAmazon 上获得了 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%

      • 首先,在这两个数据集上,GAEGPT-GNN(Edge) 都要比 GraphSAGE 提供更好的结果,这表明在边上进行遮盖是用于自监督的图表示学习的有效方式。
      • 其次,GPT-GNN(Edge) 始终超越了 GAEGPT-GNN(Edge) 的优势在于它会自动生成缺失的边,从而捕获被遮盖边之间的依赖关系,这些依赖关系已被 GAE 丢弃。

      总之,结果表明:GPT-GNN 可以为 GNN 预训练提供有效的自监督。

    • 节点分裂旨在缓解属性生成任务的信息泄露问题,如果没有该部分,则属性将会出现在输入中。此时属性生成任务只需要简单的把输入预测为输出即可,即它无法学到输入图的任何知识,因此对结果有负面影响。

      w/o node seperation 可以看到,移除节点分裂使得预训练模型效果很多情况下甚至比没有预训练的更差。这证明了节点分裂在避免属性信息泄露方面的重要性。

    • 自适应队列旨在缓解采样子图和完整图之间的 gap。从 GPT-GNN(Edge)w/o adaptive queue 之间的对比可以看到:移除自适应队列使得模型性能下降。

      这表明通过使用自适应队列来添加更多负样本,确实有助于预训练框架的效果提升。

  7. 我们考察其它 GNN 框架能否从 GPT-GNN 框架中受益。因此,除了 HGT 之外,我们还考察了 GCN, GAT, R-GCN, HAN 作为 base model

    我们在 OAG 上对它们进行预训练,然后在组合迁移配置下使用 paper-field 预测任务,并使用10% 的微调训练数据来微调。模型无关的超参数(如隐层维度、优化器)保持不变。结果如下所示,可以看到:

    • HGT 在所有非预训练模型中效果最好。
    • 采用 HGTGPT-GNN 在所有模型中效果最好。
    • GPT-GNN 预训练框架可以增强所有 GNN 模型的下游性能。

  8. 我们考察微调期间不同训练数据规模的效果。可以看到:

    • GPT-GNN 和其它预训练框架通过更多的标签数据可以不断提高下游任务的效果。
    • GPT-GNN 在所有预训练框架中表现最好。
    • GPT-GNN 仅需要 10% ~ 20% 的数据来微调,就可以达到监督学习 100% 训练数据的效果。这证明了 GPT-GNN 的优越性。

  9. 除了异质图之外,我们还评估了 GPT-GNN 预训练框架是否可以应用于同质图的迁移学习。我们在两个同质图上进行预训练和微调:

    • OAG 的计算机科学领域的论文引文网络,对每个论文的主题进行预测。
    • Reddit 帖子组成的 Reddit 网络,对每个帖子的社区进行推断。

    我们将 HGT 忽略其异质部分从而用于 base model。下表给出了 10% 标记数据的训练结果。可以看到:

    • 两个同质图的下游任务都可以从所有预训练框架中受益。
    • GPT-GNN 可以提供最大的性能提升。

  10. 我们给出 OAG 上预训练和微调的收敛曲线。

    下图给出了预训练期间每个 epoch 的验证误差曲线。结果表明:模型的验证损失不断下降,而不是很快地找到一个平凡解。这在某种程度上表明:生成式预训练任务足够艰巨,因此可以指导模型真正捕获数据的内在结构。整个GPT-GNN 预训练收敛大约需要 12 个小时。

    下图给出了微调期间的验证MRR 曲线(同时对比了没有预训练的验证 MRR 曲线)。可以看到,GPT-GNN 总是可以获得更泛化的模型,并且由于预训练的良好初始化,微调期间对于过拟合更鲁棒。

  11. 对于 OAG 数据集,我们的属性生成任务是生成论文标题,所以我们希望了解 GPT-GNN 如何学习生成标题,结果见下表。

    可以看到:模型仅通过查看部分邻域即可捕获需要预测的论文的主要含义。例如,对于第一句话,我们的模型成功地预测了本文的关键词,包括 person recognition, probabilistic 等。这表明图本身包含了丰富的语义信息,也解释了为什么预训练模型可以很好地泛化到下游任务。

二十五、Geom-GCN[2020]

  1. 消息传递神经网络 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 中,邻域被定义为 k 阶邻居的集合,k1 。换句话讲,聚合器只会聚合来自附近节点的消息。这种聚合方式的 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 learningnode 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
  2. 相关工作:

25.1 几何聚合方案

  1. 这里首先介绍几何聚合方案,然后概述它和现有工作相比的优点和缺点。

25.1.1 基础模块

  1. 如下图所示,几何聚合方案由三个模块组成:node embeddingA1A2)、结构邻域(B1B2)、bi-level 聚合(C)。图中:

    • A1-A2:原始图(A1)被映射到一个潜在的连续空间(A2)。
    • B1-B2:结构邻域(B2)。为可视化,我们放大了中心节点(红色)周围的邻域。关系算子 τ 由彩色的 3x3 网格表示,每个单元格代表了和红色目标节点的几何关系(即几何位置是左上、左下、右上、右下等等)。
    • C:在结构邻域上的 bi-level 聚合。虚线和实线箭头分别表示 low-level 聚合和 high-level 聚合。蓝色箭头和绿色箭头分别表示图上的聚合以及潜在空间上的聚合。

  2. node embedding:这是一个基础组件,它将图中的节点映射到潜在的连续空间 latent continuous space

    令图 G=(V,E) ,其中 V={v1,v2,,vn} 为节点集合, E 为边集合。每个节点 vV 关联一个特征向量 xvRdf ,其中 df 为特征向量维度。

    f:vzvRd 为一个映射函数,它将节点 v 映射到representation 向量 zv ,其中 drepresentation 向量的维度。这可以理解为将节点 v 映射到潜在的连续的 d 维空间, zv 为节点 v 在这个连续空间中的位置。在映射过程中,图的结构和属性将被保留,并显示为潜在空间中的几何结构 geometry 。这里可以使用各种 embedding 方法来得到不同的潜在连续空间(《A comprehensive survey of graph embedding: Problems, techniques, and applications》《A united approach to learning sparse attributed network embedding》)。

  3. 结构邻域 structural neighborhood :基于离散的图空间和连续的潜在空间,我们构建一个结构邻域 Nv=({Ng(v),Ns(v)},τ) ,它由一组邻域 {Ng(v),Ns(v)} 以及一个邻域上的关系算子 τ 组成。

    • Ng(v) 为节点 v 在图上的相邻节点集合 Ng(v)={uuV,(u,v)E}

    • Ns(v) 为节点 v 在潜在空间中相邻节点集合 Ns(v)={uuV,dist(zu,zv)<ρ} ,其中 dist(,) 为潜在空间中的距离函数, ρ 为提前给定的距离参数。因此 Ns(v) 给出了在潜在空间中和节点 v 距离小于 ρ 的节点集合。

      Ng(v) 相比,Ns(v) 可能包含那些和节点 v 相似、但是在图上远离节点 v 的其它节点。因为映射函数 f 可以保持这种相似性,因此这些节点在潜在空间中都被映射到节点 v 的附近。通过聚合 Ns(v) 上的邻域节点,我们可以捕获到异配图上的长程依赖。

    • 关系算子 τ 是定义在潜在空间上的函数。给定节点 vu 的一个有序的representation pair(zv,zu) 作为 τ 的输入,其输出为一个离散的变量 r ,该变量指示潜在空间中从 vu 的几何关系 geometric relationship

      τ:(zv,zu)rR

      其中 R 为几何关系的集合。例如在上图的 B2 中, R 包含九种关系:{左上、中上、右上、左中、相同、右中、左下、中下、右下 }

      根据不同的潜在空间和不同的应用,R 可以选择任意的关系集合。唯一的要求是:给定一对有序的 representation pair 对,它们的关系应该是唯一的。

  4. bi-level 聚合:借助结构邻域 Nv ,我们为图神经网络提出了一种新颖的 bi-level 聚合方案来更新节点的 hidden featurebi-level 聚合方案由两个聚合函数组成,它可以有效地提取邻域节点的结构信息,并保持图的排列不变性。

    hv(l) 为节点 v 在第 l 层的 hidden feature,其中 hv(0)=xv 为节点特征。则节点 v 在第 l+1 层的 hidden feature hv(l+1) 为的更新为:

    注意:节点 v 有两种 representationzvnode embedding 用于构建结构邻域(通常具有较小的维度)、hv(l)node representation 用于具体的任务(图,节点分类)。

    • low-level 聚合:

      e(i,r)(v,l+1)=p({hu(l)uNi(v),τ(zv,zu)=r}),i{g,s},rR

      low-level 聚合,处于相同类型的邻域 i 且具有相同集合关系 r 的节点的 hidden feature 通过聚合函数 p 聚合到虚拟节点。

      • 这个虚拟节点的特征是 e(i,r)(v,l+1) ,并且这个虚拟节点由 (i,r) 索引,该索引对应于邻域 i 和关系 r 的组合。
      • p 要求使用排列不变函数,如 Lp 范数,p=1,2, 分别对应于 average pooling, enerage pooling, max pooling

      low-level 聚合如上图 C1 的虚线箭头所示。

    • high-level 聚合:

      mv(l+1)=q({(e(i,r)(v,l+1),(i,r))i{g,s},rR})

      high-level,虚拟节点由函数 q 进一步聚合。函数 q 的输入既包含了虚拟节点的特征 ei,rv,l+1 ,也包含了虚拟节点的索引 (i,r) (用于识别虚拟节点的身份)。即 q 可以将有序对象作为输入(如拼接),从而区分不同虚拟节点,从而显式提取邻域中的结构信息。

      这里聚合了图空间邻域和潜在空间邻域,共两种类型的邻域。也可以构建 N 个潜在空间邻域,从而得到 N+1 中类型的邻域。

    • 非线性映射:

      hv(l+1)=σ(Wlmv(l+1))

      high-level 聚合的输出是向量 mvl+1 ,然后通过非线性变换可以得到节点 v 的新的 hidden feature hvl+1 。其中:

      • Wl 为待学习的、所有节点共享的、在网络第 l 层的权重矩阵。
      • σ() 为非线性激活函数,如 ReLU

25.1.2 排列不变性

  1. 排列不变性permutation invariance是图神经网络中聚合器的基本要求,随后我们将证明我们提出的 bi-level 聚合公式能够保证邻域节点的任何排列都不变。

  2. 图的排列不变映射的定义:给定一个双射函数 ψ:VV 为节点的一个排列,它将节点 vV 映射为 ψ(v)V 。 令 V,E 为经过 ψ 映射后的节点集合和边集合。对于图的映射 ϕ(G) ,如果对任意给定的 ψ 都有 ϕ(G)=ϕ(G) ,其中 G=(V,E) ,则我们称图的映射 ϕ(G) 是排列不变的。

  3. 引理:对于组合函数 ϕ1ϕ2(G) ,如果 ϕ2(G) 是排列不变的,则整个组合函数 ϕ1ϕ2 为排列不变的。

    证明:令 G 为图 G 经过排列函数 ψ 之后的同构图 isomorphic graph,如果 ϕ2(G) 是排列不变的,则有 ϕ2(G)=ϕ2(G) 。因此,整个组合函数 ϕ1ϕ2(G) 是排列不变的,因为有 ϕ1ϕ2(G)=ϕ1ϕ2(G)

    ϕ1ϕ2(G) 的含义是:ϕ1(ϕ2(G))

  4. 定理:给定图 G=(V,E) 及其结构邻域 Nv ,则 bi-level 聚合是排列不变的映射。

    证明:bi-level 聚合是一个组合函数,其中 low-level 聚合是 high-level 聚合的输入。因此,如果能够证明 low-level 聚合是排列不变的,则 bi-level 聚合是排列不变的。

    现在我们来证明 low-level 聚合是排列不变的。low-level 聚合由 2×|R| 个子聚合组成,每个子聚合对应于节点 v 的一个邻域类型 i 和关系类型 r

    • 首先,每个子聚合的输入都是排列不变的,因为 i{g,s}rR 都是由给定的结构邻域 Nv 决定的,而这个结构邻域对于任何排列而言都是恒定的。
    • 其次,子聚合采用了排列不变的聚合函数 p ,因此 low-level 聚合是排列不变的。

25.1.3 与相关工作的比较

  1. 这里讨论我们提出的几何聚合方案如何克服之前提到的两个缺点,即:如何有效地对邻域结构进行建模、如何捕获长程依赖。

    • 为了克服 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 nodeinformative node的相关的特征将以更高的权重传递给目标节点。

      最终通过整个消息传递过程间接捕获了长程依赖关系。

      此外, 《Representation learning on graphs with jumping knowledge networks》 中提出了一种方法 JK-Nets 通过在特征聚合期间 skip connection 来捕获长程依赖关系。

  2. 有些文献构造了一些非同构 non-isomorphic 图(《Covariantcompositional networks for learning graphs》《How powerful are graph neural networks? 》),它们无法被现有的 MPNN 聚合器(如均值、最大值)很好地区分。这里我们给出两个示例,它们来自于 《How powerful are graph neural networks?》

    • 如下左图所示,每个节点都具有相同的特征 a ,经过映射 f() 之后每个节点仍然保持相同。映射之后再经过常规的聚合器(如均值、最大值、最小值),仍然是 f(a) 。因此左图的两个 graph 中,节点 V1final representation都是相同的。即,均值聚合器和最大值聚合器无法区分这两个不同的图。

    • 相反,如果在聚合过程中应用结构邻域,则这两个图可以很容易地区分。应用结构邻域之后,其它节点和 V1 之间具有不同的几何关系,如右图所示。以 V1 的聚合为例:

      • 对于 V1 的邻居节点,我们可以对不同的几何关系 r 采用不同的映射函数 fr,rR
      • 然后,两个图中的聚合器具有不同的输入,左边的输入为 {f2(a),f8(a)} 、右边的输入为 {f2(a),f7(a),f9(a)}
      • 最终在两个图中,聚合器(平均值或最大值)对节点 V1 输出不同的表示形式,从而区分两个图之间的拓扑差异。

25.2 Geom-GCN

  1. 这里我们介绍 Geom-GCN,它是几何聚合方案在 GCN 上的具体实现,主要用于图的 transductive learning

    为实现几何聚合方案,需要给出其中的三个模块:node embedding、结构邻域、bi-level 聚合。

  2. node embedding:如我们实验所示,仅保留图中的边以及距离模式的常见 embedding 方法已经可以使几何聚合方案受益。

    对于特定的应用,可以指定特定的 embedding 方法来建立合适的、保留特定拓扑结构(如层次结构)的潜在空间。我们使用了三种 embedding 方法,即:IsomapPoincare EmbeddingStruc2vec ,这导致了三种 Geom-GCN 变体:Geom-GCN-I、Geom-GCN-P、Geom-GCN-S

    • Isomap 是一种广泛应用的 isometry embedding 方法,在该方法中,距离模式(最短路径的长度)被显式地保留在潜在空间中。
    • Poincare EmbeddingStruc2vec 能够创建特定的潜在空间,分别保留图中的层次结构和局部结构。

    为了便于说明,我们的 embedding 空间维度为 2 (即 zvR2) 。

  3. 结构邻域:节点 v 的结构邻域 Nv=({Ng(v),Ns(v)},τ) 同时包含图空间的邻域和潜在空间中的邻域。

    图空间邻域 Ng(v) 由图中 v 的相邻节点组成,潜在空间中的邻域 Ns(v) 由潜在空间中与 v 距离小于 ρ 的节点组成。这里我们将 ρ 从零逐渐增加,直到对于所有节点 vNs(v) 的平均邻域大小等于 Ng(v) 的平均邻域大小。最终两个邻域平均大小相等的 ρ 就是我们需要的。

    另外对于不同的潜在空间我们使用不同的距离:在欧式空间中我们使用欧式距离;在双曲空间 hyperbolic space 中,我们通过两个节点在局部切平面上的欧式距离来近似测地线距离。

    我们简单地将几何算子 τ 实现为二维欧式空间或双曲空间中两个节点之间相对位置的四种关系。即,关系集合 R={upper left,upper right,lower left,lower right } ,并且 τ(zv,zu) 如下表所示。注意:我们在欧式空间中使用直角坐标系,在双曲空间中使用角坐标系。

    因为 embedding size = 2,所以划分为四种关系。

    也可以设计更复杂的几何算子 τ ,如利用流形几何中的描述符结构,从而在邻域中保留更多、更丰富的结构信息。

  4. bi-level 聚合:我们采用和 GCN 相同的归一化 hidden feature 聚合作为 low-level 聚合函数 p

    e(i,r)(v,l+1)=uNi(v),τ(zv,zu)=r(deg(v)×deg(u))×hu(l),i{g,s}

    其中 deg(v) 为节点 vdegree。聚合时仅考虑和节点 v 的关系为 r 的那些节点。

    对于最后一层我们使用均值聚合作为 high-level 聚合函数 q , 除最后一层之外我们使用向量拼接作为聚合函数 q

    hvl+1=σ(Wl(||i{g,s},rRe(i,r)(v,l+1)))

    其中: Wl 为待学习的权重矩阵; σ() 为非线性激活函数,这里我们使用 ReLU

25.3 实验

  1. 这里我们比较了 Geom-GCNGCN, GAT 的性能,从而验证 Geom-GCN 的效果。

  2. 数据集:我们使用 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 网络导出的仅包含演员的子图。

      在该网络中,节点代表演员,边表示同一个维基百科上两个演员的共现,节点特征为该演员的维基百科页面上的关键词。根据演员的维基百科的词汇,我们将节点分为五类。

    这些数据集的统计信息如下表所示:

  3. 实验配置:我们使用三种embedding 方法,即 IsomapPoincare embeddingstruc2vec ,从而构建三种 Geom-GCN 变体,即 Geom-GCN-I、Geom-GCN-P、Geom-GCN-S

    • 所有Geom-GCNembedding 空间维度为 2 ,并使用前面介绍的关系算子 τlow-level 聚合函数 p 为均值聚合,high-level 聚合函数 q 为向量拼接。

      zvR2

    • 所有模型的网络层数固定为 2,采用Adam 优化器。对于 Geom-GCN 我们采用 ReLU 作为激活函数,对于 GAT 我们采用 GAT 作为激活函数。

    • 我们使用验证集来搜索超参数,这些超参数包括:隐层维度、初始学习率、权重 decaydropout。为确保公平,每个模型的超参数搜索空间都是相同的。最终得到的超参数配置为:

      • dropout rate = 0.5、初始化学习率 0.05、早停的 patience100epoch

      • 对于 WebKB 数据集,weight decay5×106 ;对于其它数据集,weight decay5×105

      • 对于 GCN 模型,隐层维度为:Cora 数据集 16Citeseer 数据集 16Pubmed 数据集 64WebKB 数据集 32Wikipedia 数据集 48Actor 数据集 32

      • 对于 Geom-GCN 模型,隐层维度是 GCN8 倍,因为 Geom-GCN8 个虚拟节点。

        hv(l)R2

      • 对于 GAT 模型的每个 attention head,隐层维度为 Citation 网络为 8WebKB 数据集为 32Wikipedia 数据集为 48Actor 数据集为 32

      • 对于 GAT 模型,第一层具有 8headPubmed 数据集的第二层具有 8head,其它数据集的第二层只有 1head

    • 对于所有数据集,我们将每个类别的节点随机拆分为 60%, 20%, 20% 来分别作为训练集、验证集、测试集。

      我们随机拆分 10 次并报告模型在测试集上的平均性能。

  4. 所有模型在所有数据集上的评估结果如下表所示,其中评估指标为平均分类准确率(以百分比表示)。最佳结果突出显式。

    结论:

    • Geom-GCN 可以实现 state-of-the-art 性能。
    • 仅保留图中边和距离模式的 Isomap Embedding (Geom-GCN-I) 已经可以使得几何聚合方案受益。
    • 可以指定一种embedding 方法从而为特定应用构建合适的潜在空间,从而显著提升性能(如 Geom-GCN-P )。

  5. Geom-GCN 聚合了来自两个邻域的消息,这两个邻域分别在图空间和潜在空间中定义。这里我们通过构建仅有一个邻域的 Geom-GCN 变体来进行消融研究,从而评估每种邻域的贡献。

    • 对于仅具有图空间邻域的变体,我们用 g 后缀来区分(如 Geom-GCN-Ig)。
    • 对于仅具有潜在空间邻域的变体,我们用 s 后缀来区分(如 Geom-GCN-Is)。

    我们将 GCN 设为 baseline,从而评估这些变体相对 GCN 的性能提升。比较结果见下表所示,其中正向提升用向上箭头表示,负向衰减用向下箭头表示。评估指标为测试集的平均准确率。

    我们定义了指标 β 来衡量图的同质性 homophily

    β=1|V|vVvvv

    同质性以节点标签来衡量,其中相似的节点倾向于相互连接。较大的 β 值表示图的同质性很强。从下表可以看出,同配图assortative graph (如引文网络)具有比异配图disassortative graph (如 WebKB 网络)大得多的 β 值。

    结论:

    • 大多数情况下,图空间邻域和潜在空间邻域都有利于聚合。

    • 潜在空间邻域在异配图(更小的 β 值)上的提升要比同配图上的提升大得多。这意味着潜在空间邻域可以有效地捕获远程节点的相关信息。

      问题是:图空间邻域在异配图(更小的 β 值)上的提升,也是要比同配图上的提升大得多。因此图空间也可以有效捕获远程节点的相关信息?

      因此这里的结论不成立。

    • 令人惊讶的是,只有一个邻域的几种变体(下表)要比具有两个邻域的变体(上表)具有更好的性能。我们认为,原因是两个邻域的 Geom-GCN 相比单个邻域的 Geom-GCN 聚合了更多无关的消息,并且这些无关消息对于性能产生了不利的影响。

      我们认为注意力机制可以有效缓解这个问题,并留待以后工作进行研究。

  6. Geom-GCN 的结构邻域非常灵活,可以组合任意的 embedding 空间。为了研究哪种 embedding 空间是理想的,我们通过采用由不同 embedding 空间构建的结构邻域来创建新的 Geom-GCN 变体。对于采用 Isomap 构建图空间邻域、采用 Poincare Embedding 构建潜在空间邻域的变体,我们用 Geom-GCN-IP 来表示。其它组合的命名规则依此类推。

    这里构建了两种潜在空间,从而得到 3 种类型的结构邻域(一个来自图控件,两个来自潜在空间)。

    下表给出了所有变体的性能,评估指标为测试集的平均准确率。

    结论:有一些组合的性能要优于标准的 Geom-GCN,有一些组合的性能更差。因此,如何设计自动选择合适的 embedding 空间的端到端框架是未来的重要方向。

  7. 这里我们首先介绍Geom-GCN 的理论时间复杂度,然后比较 GCN, GAT, Geom-GCN 的实际运行时间。

    Geom-GCN 更新一个节点的 representation 的时间复杂度为 O(n×dh×2|R|) ,其中 n 为节点数量,dh 为隐单元维度, 2|R| 为虚拟节点数量。相比之下 GCN 更新一个节点representation 的时间复杂度为 O(n×dh)

    我们给出所有数据集上 GCN, GAT, Geom-GCN 的实际运行时间(500epoch)进行比较,结果如下图所示。 y 轴表示对数时间(秒)。

    结论:GCN 训练速度最快,GATGeom-GCN 处于同一水平。未来的一个重要方向是开发 Geom-GCN的加速技术,从而解决 Geom-GCN 的可扩展性。

  8. 为研究 Geom-GCN 在节点feature representation 中学到的模式,我们可视化了 Cora 数据集在 Geom-GCN-P 模型最后一层得到的feature representation。我们通过 t-SNE 将该特征表示映射到二维空间中,如下图所示。节点的不同颜色代表不同的类别。

    可以看到:

    • 具有相同类别的节点表现出空间聚类 spatial clustering,这可以显示 Geom-GCN 的判别能力。
    • 图中所有节点均呈现放射状分布,这表明通过 Poincare Embedding 提出的 Geom-GCN 学到了图的层次结构。