论文:A Representation Learning Framework for Property Graphs
属性图中的表示学习框架PGE

作者:Yifan Hou, Hongzhi Chen, Changji Li, James Cheng, Ming-Chang Yang 香港中文大学计算机科学与工程系

来源:KDD 2019

论文链接:http://www.cse.cuhk.edu.hk/~jcheng/papers/pge_kdd19.pdf

github链接:https://github.com/yifan-h/PGE

图表示学习,又称graph embedding,在分类、预测、推荐等一系列机器学习应用中发挥了重要作用。然而,现有的工作在很大程度上忽略了在现代应用中的节点和边的属性中包含的丰富的信息,例如,属性图中就存在大量丰富的信息。迄今为止,大多数现有的graph embedding方法要么集中于仅具有图拓扑的图,要么仅考虑节点上的属性。文中提出了一个图表示学习框架PGE,它在graph embedding过程中同时包含了节点和边的属性。PGE利用节点聚类的方法来分配bias来区分节点的邻居,并利用多个数据矩阵来聚合基于bias策略采样的邻居的属性信息。PGE采用主流的inductive模型进行邻居聚集。最后实验中对该方法的有效性进行了详细的分析,并通过在实际数据集上的节点分类和链路预测等benchmark应用中,展示了PGE如何比最新的graph embedding方法获得更好的embedding结果,从而验证了PGE的性能。

1 相关介绍

相关概念

  • plain graphs:只有纯拓扑,没有节点/边标签属性的图。
  • 在现实中的图中,entities对应了节点,relationships对应了边。
  • 属性图:节点和边都有属性的图

1.1 背景

此文处理的图是属性图。因为目前的一些GNN的方法都没有考虑将节点和边所携带的丰富信息加入到 graph embedding过程中。对属性图的研究目前存在两个挑战:

  • 每个节点可能有许多属性,很难找到哪个属性对在特定应用中对此节点的影响更大。例如,在一个引用图中,考虑将论文分成不同的主题,其中节点表示论文,边表示引用关系。假设每个节点有两个属性,“year”和“title”。显然,属性“title”在论文分类中可能比属性“year”更重要。因此,需要考虑如何度量在不同应用中节点属性对每个节点的影响
  • 对于每个节点,它的邻居节点以及连接的边可能具有不同的属性。如何在不同的应用中度量邻接和连接的边对节点的影响又是一个挑战。在上面的例子中,对于引用目标论文的论文,引用次数高的论文比引用次数低的论文对目标论文的意义更大。

1.2 现有方法的局限性

现有的工作中,GCN利用节点属性信息生成节点embedding,而GraphSAGE将GCN从谱域扩展到空间中。在给定的应用中,GraphSAGE在信息聚集之前先训练一个权重矩阵,然后用训练好的矩阵将每个节点的邻居的属性信息聚合起来,计算节点的embedding。但是,GraphSAGE并没有对每个节点的属性不同的邻居进行区分,而是在聚合其属性信息时对所有邻居一视同仁。此外,GraphSAGE只考虑节点信息,而忽略边的方向和属性。除了节点或边的属性外,真实世界的图还有特殊的结构特征。例如,在社交网络中,节点往往以社区的形式组织起来,相似的节点要么是由于同质性(homophily)(The role of social networks in information diffusion,WWW 2012)特征而形成的邻居,要么虽然没有直接直接邻接,但是由于结构等价性特征而形成的结构相似的邻居[Community detection in graphs,2010;Structural role extraction & mining in large graphs,KDD 2012]。因此,考虑结构特征也很重要。为此,node2vec结合广度优先随机游走和深度优先随机游走两种策略来学习节点embedding,考虑同质性特征和结构等价特征。然而,node2vec只利用了这两个结构特性,没有考虑任何属性信息。

1.3 contributions

针对现有方法的局限性,文中提出了一种新的属性图embedding框架PGE。PGE将拓扑和属性信息结合到图的embedding过程中,采用有bias的方法来区分邻居和相应的连接的边的影响。该框架主要包括三个步骤:

  • 基于属性的节点聚类,根据一个节点的属性与该节点的属性相似度,将该节点的邻居划分为相似和不相似的邻居;
  • bias邻居采样,根据bias参数(根据聚类结果设置)进行采样,得到更小的邻居,使embedding过程更具可扩展性;
  • 利用神经网络训练的权重矩阵对采样的邻居的属性信息进行聚集,计算最终的低维节点embedding。
    还详细分析了这三个步骤是如何协同工作以实现更好的图embedding的,以及为什么bias方法(合并节点信息和边信息)能够比现有方法获得更好的embedding结果。

实验的benchmark测试应用程序:节点分类和链接预测。结果表明,与现有的方法DeepWalk、node2vec、GCN和基于权重矩阵进行邻居聚合的GraphSAGE相比,PGE实现了显著的性能改进。实验验证了在图embedding中加入节点和边的属性信息以及拓扑信息的重要性。也证明了bias策略的有效性,该策略通过区分邻居来获得更好的embedding结果。

2 相关工作

图的embedding方法主要有三种:矩阵分解、随机游走和邻居聚合。

矩阵分解

  • Laplacian Eigenmap (LE):Laplacian Eigenmaps and Spectral Techniques for Embedding and Clustering,NIPS 2001
  • Graph Factorization (GF) algorithm:Distributed Large-scale Natural Graph Factorization,WWW 2013
  • GraRep:GraRep: Learning Graph Representations with Global Structural Information,2015
  • HOPE:Asymmetric Transitivity Preserving Graph Embedding,SIGKDD 2016
  • Distributed large-scale natural graph factorization,WWW 2013;Grarep: Learning graph representations with global structural information,CIKM 2018 利用邻接矩阵定义和度量节点间的相似度,进行图embedding
  • (HOPE,KDD 2016)进一步保留高阶近似,得到有向图的非对称传递性。另一组作品利用随机游走统计信息学习embedding和跳跃图模型[26],它应用向量表示来捕获单词关系

随机游走

随机游走的关键思想是,如果节点具有相似的embedding,那么这些节点通常倾向于出在短的随机游走上。

  • DeepWalk,DeepWalk是第一个将随机游走路径输入到用于学习节点embedding的skip-gram模型中的
  • node2vec,node2vec进一步利用有偏随机游走改进将节点embedding变换到低维空间的映射,同时结合广度优先游走和深度优先游走来考虑图的同质性和结构等价性
  • LINE
  • Walklets,为了获得更大的关系,Walklets使用偏移offset,以允许在随机游走期间有更长的步长
  • HARP,HARP利用将一些节点压缩成一个super-node的图数据预处理来改进随机游走

根据Representation learning on graphs: Methods and applications 2017:矩阵分解法和随机游走法是较浅的embedding方法,存在以下缺点

  • 首先,由于节点embedding是独立的,并且没有参数或函数的共享,所以这些方法对于处理大型图不是很有效。
  • 其次,它们不考虑节点或边的属性。
  • 第三,由于embedding是transductive的,只能在训练阶段生成,所以到目前为止,不可见的节点无法通过正在学习的模型计算embedding。

图神经网络中的邻接聚合

为了解决上述问题,一些方法是使用基于图的神经网络来学习节点embedding,这种方法通过压缩邻居信息将节点编码成向量(Deep neural networks for learning graph representations,AAAI 2016;Reducing the dimensionality of data with neural networks,science 2006; Structural deep network embedding KDD 2016)。然而,尽管这类方法可以共享参数,但严格地说,它们仍然是transductive的,并且由于自动编码器的输入维数等于节点数,因此在处理大型图数据时仍然存在性能瓶颈。

最近的一些工作, 如GCN、GraphSAGE、GAE等试图仅使用局部邻居而不是整个图来通过邻居聚合来学习节点embedding,这些方法考虑了节点上的属性信息。然而,现有的邻居聚合方法对邻居属性信息的处理是平等的,无法区分具有不同属性的邻居(和相连的边)的影响。

注:提取非欧氏距离的图数据的特征的一些方法还有:
(1)传统的机器学习核方法:

3 PGE框架

3.1 符号定义

  • G={V,E,P,L}\mathcal{G}=\{\mathcal{V}, \mathcal{E}, \mathcal{P}, \mathcal{L}\}定义为一个属性图。其中V\mathcal{V}代表节点集,E\mathcal{E}代表边集。
  • P\mathcal{P}是所有属性的集合,P=PVPE\mathcal{P}=\mathcal{P}_{\mathcal{V}} \cup \mathcal{P}_{\mathcal{E}}。其中,PV=vV{pv}\mathcal{P}_{\mathcal{V}}=\bigcup_{v \in \mathcal{V}}\left\{p_{\mathcal{v}}\right\}pvp_{\mathcal{v}}表示节点vv的属性集。PE=eE{pe}\mathcal{P}_{\mathcal{E}}=\bigcup_{e \in \mathcal{E}}\left\{p_{\mathcal{e}}\right\}pep_{\mathcal{e}}表示边ee的属性集。
  • L\mathcal{L}是所有标签的集合,L=LVLE\mathcal{L}=\mathcal{L}_{\mathcal{V}} \cup \mathcal{L}_{\mathcal{E}}。其中,LV\mathcal{L}_{\mathcal{V}}表示所有节点的标签集合,LE\mathcal{L}_{\mathcal{E}}表示所有边的标签集合。
  • Nv\mathcal{N}_{v}定义为节点vv的邻居集,即Nv={v:(v,v)E}\mathcal{N}_{v}=\left\{v^{\prime}:\left(v, v^{\prime}\right) \in \mathcal{E}\right\}。如果G\mathcal{G}是有向图,则Nv\mathcal{N}_{v}定义为节点的Nvin\mathcal{N}_{v}^{in}Nvout\mathcal{N}_{v}^{out}邻居构成的集合。

属性图模型具有通用性,可以表示其他常用的图模型:

  • 如果令P=,L=\mathcal{P}=\emptyset,\mathcal{L}=\emptyset,则G\mathcal{G}就是一个plain graph,即一个只有拓扑结构的图。
  • 如果令PV=A,PE=L=\mathcal{P}_{\mathcal{V}}=\mathcal{A},\mathcal{P}_{\mathcal{E}}=\emptyset,\mathcal{L}=\emptyset,其中A\mathcal{A}表示节点属性集,那么G\mathcal{G}就是一个属性图。
  • 如果令L=LV,P=\mathcal{L}=\mathcal{L}_{\mathcal{V}},\mathcal{P}=\emptyset,那么G\mathcal{G}就是一个标签图。

3.2 问题定义

  • 节点相似性:给定一个属性图G={V,E,P,L}\mathcal{G}=\{\mathcal{V}, \mathcal{E}, \mathcal{P}, \mathcal{L}\},定义两个节点viv_ivjv_j之间的相似性为sG(vi,vj)s_{\mathcal{G}}\left(v_{i}, v_{j}\right)。节点相似性可以表示成两个部分,sG(vi,vj)=l(sP(vi,vj),sT(vi,vj))s_{\mathcal{G}}\left(v_{i}, v_{j}\right)=l\left(s_{\mathcal{P}}\left(v_{i}, v_{j}\right), s_{\mathcal{T}}\left(v_{i}, v_{j}\right)\right)。其中,sP(vi,vj)s_{\mathcal{P}}\left(v_{i}, v_{j}\right)表示属性相似性,sT(vi,vj)s_{\mathcal{T}}\left(v_{i}, v_{j}\right)表示拓扑结构相似性。l(,)l(\cdot,\cdot)是一个非负映射。
  • embedding:节点vv的embedding为zv\mathbf{z}_{v},这个向量可以通过一个编码器ENC(v)=zv\text{ENC}(v)=\mathbf{z}_{v}得到。目标是通过最小化下式,找到一个最优的ENC(v)\text{ENC}(v)

vi,vjVsG(vi,vj)zvizvj=vi,vjVl(sP(vi,vj),sT(vi,vj))zvizvj \sum_{v_{i}, v_{j} \in \mathcal{V}} \| s_{\mathcal{G}}\left(v_{i}, v_{j}\right)-\mathbf{z}_{v_{i}}^{\top} \mathbf{z}_{v_{j}}\|=\sum_{v_{i}, v_{j} \in \mathcal{V}} \| l \left(s_{\mathcal{P}}\left(v_{i}, v_{j}\right), s_{\mathcal{T}}\left(v_{i}, v_{j}\right)\right)-\mathbf{z}_{v_{i}}^{\top} \mathbf{z}_{v_{j}} \|

对于上述问题,很显然,对于像传统方法一样只考虑拓扑相似性sT(vi,vj)s_{\mathcal{T}}\left(v_{i}, v_{j}\right)不能收敛到全局最优解。给定一个节点vv和它的邻居viv_ivjv_j,属性相似性sP(v,vi)s_{\mathcal{P}}\left(v, v_{i}\right)可能非常不同于sP(v,vj)s_{\mathcal{P}}\left(v, v_{j}\right)。因此,PGE框架同时使用拓扑相似性和属性相似性去学习节点的embedding。

3.3 PGE三步骤

PGE主要由三个步骤组成:

  • 步骤1:基于节点属性的聚类。把G\mathcal{G}中的节点根据节点属性使用标准的聚类算法,例如K-Means、DBSCAN生成kk个cluster:C={C1,C2,,Ck}C=\left\{C_{1}, C_{2}, \ldots, C_{k}\right\}。这一步只考虑属性信息,不考虑拓扑信息。
  • 步骤2:基于邻居的采样。为了通过l(,)l(\cdot,\cdot)结合属性信息和图的拓扑信息的影响,基于步骤1执行一个有bias的邻居采样:
    (1)如果邻居vNvv^{\prime} \in \mathcal{N}_{v}vv属于同一个cluster,那么分配一个biasbsb_svv^{\prime},表示它们是相似的。若不属于同一个cluster,分配一个biasbdb_dvv^{\prime},表示它们是不相似的。
    (2)归一化Nv\mathcal{N}_{v}的偏差bias,然后根据归一化的bias采样Nv\mathcal{N}_{v}得到一个固定size的邻居Nvs\mathcal{N}_{v}^s
  • 步骤3:邻居聚合。基于步骤2中采样的Nvs\mathcal{N}_{v}^s通过乘以在网络中已经训练好的权重矩阵得到节点vv的embeddingzv\mathbf{z}_{v}
步骤1:基于节点属性的聚类

步骤1的目的是根据节点vv的节点属性信息将邻居Nv\mathcal{N}_{v}分成和节点vv相似和不相似两个类。

由于属性的高维和稀疏性(例如,属性值通常是文本,但也可以是数字和其他类型),在保持一个统一的全局标准对所有节点的邻居进行分类的同时,将节点的邻居分成相似组和不相似组是不容易的。例如,对于所有vVv \in \mathcal{V},可以尝试计算vv与每个邻居之间的属性相似度,然后设置阈值,将邻居划分为相似组和不相似组。然而,不同的节点可能需要不同的阈值,并且它们的相似度范围可能非常不同。此外,每个节点的邻居的分类方法可能是不同的,PGE框架实际上使用了2-hop邻居,而前面的例子只考虑了1-hop邻居。因此,需要一个统一的全局分类标准。为此,根据节点的属性对节点进行cluster,可以使得对节点邻居进行分类满足这个统一的全局分类标准。例如,根据节点vv的1-hop邻居和2-hop邻居是否位于与vv相同的cluster中,对它们进行相同方式的分类。

步骤2:基于邻居的采样

许多真实世界中的图的节点有很大的度,即邻居节点很多。因此没有必须考虑所有的节点进行信息聚合,否则内存和效率都面临很大的挑战。因此,文中使用biasbsb_sbdb_d采样一个固定size的邻居Nvs\mathcal{N}_{v}^s,于是就得到了一个采样图Gs={V,Es}\mathcal{G}^{s}=\left\{\mathcal{V}, \mathcal{E}^{s}\right\},其中Es={(v,v):vNvs}\mathcal{E}^{s}=\left\{\left(v, v^{\prime}\right): v^{\prime} \in \mathcal{N}_{v}^{s}\right\}。由于是基于节点属性聚类后才进行采样的,因此采样图Gs={V,Es}\mathcal{G}^{s}=\left\{\mathcal{V}, \mathcal{E}^{s}\right\}最终包含了节点的属性信息和拓扑结构信息。所有,步骤2本质上是一个融合了属性相似性sP(v,vi)s_{\mathcal{P}}\left(v, v_{i}\right)和拓扑相似性sP(v,vj)s_{\mathcal{P}}\left(v, v_{j}\right)的映射l(,)l(\cdot,\cdot)

偏差bsb_sbdb_d分别是指从不同的和相似的cluster中选择邻居的非标准化的可能性值。bsb_s的值被设置为1,而bdb_d可以根据在Gs\mathcal{G}^{s}中选择不同邻居的概率(较大的bd意味着较高的概率)而改变。在GraphSAGE中,size=25是一个很好的平衡点,因为较大的size将显著增加模型的计算时间。使用PGE中区分邻居时,使用采样邻居的方式比使用全部邻居可以获得质量更好的embedding。

步骤3:邻居聚合

最后一个步骤是学习函数ENC()\text{ENC}(\cdot)进行邻居聚合从而生成节点的embeddings。对于每一个节点,使用2-hop邻居生成zv\mathbf{z}_{v}

zv=σ(W1A(zv1,vNvszv1/Nvs))zv1=σ(W2A(pv,vNvspv/Nvs)) \begin{array}{c}{\mathbf{z}_{v}=\sigma\left(W^{1} \cdot \mathrm{A}\left(\mathbf{z}_{v}^{1}, \sum_{v^{\prime} \in N_{v}^{s}} \mathbf{z}_{v^{\prime}}^{1} /\left|N_{v}^{s}\right|\right)\right)} \\ {\mathbf{z}_{v^{\prime}}^{1}=\sigma\left(W^{2} \cdot \mathrm{A}\left(p_{v^{\prime}}, \sum_{v^{\prime \prime} \in \mathcal{N}_{v^{\prime}}^{s}} p_{v^{\prime \prime}} /\left|N_{v^{\prime}}^{s}\right|\right)\right)}\end{array}

  • pvp_v是节点vv的元素属性向量
  • A()A(\cdot)是concatenate连接操作
  • 使用两个权重矩阵W1W^{1}W2W^{2}聚合节点的1-hop和2-hop邻居的节点信息

利用矩阵WiW^{i}可以对不同属性赋予不同的权重,因为直接聚合(如取均值)节点属性向量不能捕获属性之间的差异,不同属性对embedding有不同程度的贡献。权重矩阵是数据驱动的,应该针对不同的数据集和应用分别进行训练,因为不同图数据中的节点具有不同类型的属性。权重矩阵可以使用Adam SGD优化器进行预训练,并为特定的应用定义损失函数,例如,对于节点分类,使用二进制交叉熵损失(多标记);对于链路预测,使用负采样的交叉熵损失。

3.4 边的方向和属性的支持

接下来,对采样的图Gs\mathcal{G}^{s}考虑边的方向和边的属性,使用和节点属性处理相同的策略。如果边是有向边,则分别考虑in-edges和out-edges。将边分成kek^e个cluster,Ce={C1e,C2e,,Ckee}C^{e}=\left\{C_{1}^{e}, C_{2}^{e}, \ldots, C_{k^{e}}^{e}\right\}。然后训练2×ke2\times k^e个矩阵,{W11,W21,,Wke1}\left\{W_{1}^{1}, W_{2}^{1}, \ldots, W_{k^{e}}^{1}\right\}{W12,W22,,Wke2}\left\{W_{1}^{2}, W_{2}^{2}, \ldots, W_{k^{e}}^{2}\right\}在2-hop邻居中为kek^e种不同类型的边聚合节点属性。最后,根据下式计算zv\mathbf{z}_{v}

zv=σ(A(W01zv1,ACieCe(Wi1EvNvs&(v,v)Cie[zv1])))(1) \tag{1} \mathbf{z}_{v}=\sigma \left( \mathrm{A} \left(W_{0}^{1} \cdot \mathbf{z}_{v}^{1}, \mathrm{A}_{C_{i}^{e}\in C^{e}} (W_{i}^{1} \cdot \mathbb{E}_{v^{\prime} \in N_{v}^{\mathrm{s}} \& (v, v^{\prime}) \in C_{i}^{e}[\mathbf{z}_{v^{\prime}}^{1}]})\right)\right)

zv1=σ(A(W02pv,ACieCe(Wi2EvNvs&(v,v)Cie[pv])))(2) \tag{2} \mathbf{z}_{v^{\prime}}^{1}=\sigma \left( \mathrm{A} \left( W_{0}^{2} \cdot p_{v^{\prime}}, \mathrm{A}_{C_{i}^{e} \in C^{e}}(W_{i}^{2} \cdot \mathbb{E}_{v^{\prime \prime} \in N_{v^{\prime}}^{s} \&(v^{\prime}, v^{\prime \prime}) \in C_{i}^{e}[p_{v^{\prime \prime}}]})\right)\right)

  • Ce|C^{e}|不应该太大,以避免高维向量操作。Ce|C^{e}|如果太大,一些clusters中的元素可能很少,导致训练的权重矩阵欠拟合。因此,设置Ce|C^{e}|为一个固定的比较小的数。

3.5 算法

PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
  • 算法1描述了为所有节点生成embedding向量zv\mathbf{z}_{v}的过程,遵循三步骤

4 PGE的分析

4.1 bias策略的效率

PGE和GraphSAGE的区别:

  • 在PGE的邻居采样是有偏差的,即邻居的采样是根据基于偏差bsb_sbdb_d定义的概率值选择的
  • GraphSAGE的邻居采样是无偏的,也就是所有邻居被采样的概率都相等

接下来讨论这种有偏和无偏采样策略的不同。

文中认为邻居采样是随机游走的一个特例。例如,如果将步行长度设置为1,并执行10次步行,则可以将该策略视为固定大小为10的1-hop邻居采样。考虑到每一步的随机游走过程对所有节点都是一个独立同分布(i.i.d.)的过程,将有偏策略定义为一个V×V|\mathcal{V}| \times|\mathcal{V}|的矩阵P\mathbf{P},其中Pi,jP_{i,j}是节点viv_i在随机游走中选择其邻居vjv_j的概率。如果两个节点viv_ivjv_j不相连,则Pi,j=0P_{i,j}=0。类似地,定义无偏策略Q\mathbf{Q},其中任意节点的所有邻居都有相同的选择概率。假设存在一个最优策略B\mathbf{B},它为一个给定的应用提供了最佳的embedding结果。

一些工作(HARP,2018;node2vec;Walklets)已经表明,在随机游走过程中对相似和不相似的邻居添加preference可以提高embedding结果,基于此得到如下结论:
对于一个有偏策略P\mathbf{P},如果BP1<BQ1\|\mathbf{B}-\mathbf{P}\|_{1} < \|\mathbf{B}-\mathbf{Q}\|_{1}BQ\mathbf{B} \neq \mathbf{Q},那么有偏策略P\mathbf{P}对于提高embedding结果有积极的影响。

因此,为了证明PGE的有偏策略的有效性,需要使策略P\mathbf{P}满足BP1BQ1\|\mathbf{B}-\mathbf{P}\|_{1} \leq\|\mathbf{B}-\mathbf{Q}\|_{1}。文中证明了bsb_sbdb_d可以用来调整策略P\mathbf{P}更接近B\mathbf{B}(而不是Q\mathbf{Q})。

假设节点基于节点属性信息PV\mathcal{P}_{\mathcal{V}}被分类成为了kk个cluster:C={C1,C2,,Ck}C=\left\{C_{1}, C_{2}, \ldots, C_{k}\right\}
对于无偏策略,两个节点在每个随机游走step中相似度的期望为:

E[sG(v,v)]=vVviNvsG(v,vi)E \mathbb{E}\left[s_{\mathcal{G}\left(v, v^{\prime}\right)}\right]=\frac{\sum_{v \in \mathcal{V}} \sum_{v_{i} \in \mathcal{N}_{v}} s_{\mathcal{G}}\left(v, v_{i}\right)}{|\mathcal{E}|}
对于文中的有偏策略,两个节点在每个随机游走step中相似度的期望为:

E[sG(v,v)]=vVviNvCvns(v)sG(v,vi)Ek+vVvjNv(Cv)cnd(v)sG(v,vj)E(k1)k(3) \tag{3} \mathbb{E}\left[s_{\mathcal{G}\left(v, v^{\prime}\right)}\right]=\frac{\sum_{v \in \mathcal{V}} \sum_{v_{i} \in \mathcal{N}_{v} \cap C_{v}} n_{s}(v) \cdot s_{\mathcal{G}}\left(v, v_{i}\right)}{\frac{|\mathcal{E}|}{k}} +\frac{\sum_{v \in \mathcal{V}} \sum_{v_{j} \in \mathcal{N}_{v} \cap\left(C_{v}\right)^{c}} n_{d}(v) \cdot s_{\mathcal{G}}\left(v, v_{j}\right)}{\frac{|\mathcal{E}| \cdot(k-1)}{k}}

  • ns(v)n_{s}(v)nd(v)n_{d}(v)分别表示节点vv归一化了的biasbsb_sbdb_d
  • CvC_v表示包含节点vv的cluster
  • (Cv)c=C\{Cv}\left(C_{v}\right)^{c}=C \backslash \{C_v\}

由于在一个随机游走step中,只有连接的节点才被选择,因此归一化了的biasns(v)n_{s}(v)nd(v)n_{d}(v)可以使用下式推导得到:

ns(v)=bsbdvNvI{vCv}+bsvNvI{v(Cv)c} n_{s}(v)=\frac{b_{s}}{b_{d} \cdot \sum_{v^{\prime} \in \mathcal{N}_{v}} \mathbb{I}\left\{v^{\prime} \in C_{v}\right\}+b_{s} \cdot \sum_{v^{\prime} \in \mathcal{N}_{v}} \mathbb{I}\left\{v^{\prime} \in\left(C_{v}\right)^{c}\right\}}

nd(v)=ns(v)×bdbs n_{d}(v)=n_{s}(v) \times \frac{b_{d}}{b_{s}}
对于公式(3),如果令nd(v)=ns(v)n_{d}(v)=n_{s}(v),那么就退化为无偏随机游走策略。
如果令nd(v)ns(v)n_{d}(v) \neq n_{s}(v),可以通过赋值bd>bsb_d > b_s调整偏策略使用公式(1)来选择更多不相似的邻居,通过赋值bs>bdb_s > b_d来调整有偏策略使用(2)来选择更多相似的邻居。

假设聚类结果是不重要的,可以至少得到一个cluster,那么可以推导得到:

CiCv,vCisP(v,v)12CiCCi(Ci1)>v,vVsP(v,v)12V(V1) \frac{\sum_{C_{i} \in C} \sum_{v, v^{\prime} \in C_{i}} s_{\mathcal{P}}\left(v, v^{\prime}\right)}{\frac{1}{2} \sum_{C_{i} \in C}\left|C_{i}\right| \cdot\left(\left|C_{i}\right|-1\right)}>\frac{\sum_{v, v^{\prime} \in \mathcal{V}} s_{\mathcal{P}}\left(v, v^{\prime}\right)}{\frac{1}{2}|V| \cdot(|V|-1)}
由于l(,)l(\cdot,\cdot)是一个关于sP(v,v)s_{\mathcal{P}}\left(v, v^{\prime}\right)的非负映射。于是有

CiCv,vCisG(v,v)12CiCCi(Ci1)>v,vVsG(v,v)12V(V1)(4) \tag{4} \frac{\sum_{C_{i} \in C} \sum_{v, v^{\prime} \in C_{i}} s_{\mathcal{G}}\left(v, v^{\prime}\right)}{\frac{1}{2} \sum_{C_{i} \in C}\left|C_{i}\right| \cdot\left(\left|C_{i}\right|-1\right)}>\frac{\sum_{v, v^{\prime} \in \mathcal{V}} s_{\mathcal{G}}\left(v, v^{\prime}\right)}{\frac{1}{2}|V| \cdot(|V|-1)}
从公式(4)可以看出,如果节点vv和节点vv^{\prime}属于相同的cluster,那么相似度sG(v,v)s_{\mathcal{G}}\left(v, v^{\prime}\right)更高。因此,根据公式(3)和公式(4),可以得出结论:参数bsb_sbdb_d能够用于选择相似和不相似的邻居。

接下来,考虑1-hop邻居的最优化的策略B\mathbf{B},其中Bi,j=I{vjNvi}bvi,vj\mathbf{B}_{i, j}=\mathbb{I}\left\{v_{j} \in \mathcal{N}_{v_{i}}\right\} \cdot b_{v_{i}, v_{j}}^{*},bvi,vjb_{v_{i}, v_{j}}^{*}Bi,j\mathbf{B}_{i,j}归一化的最优的bias值。相似地,无偏策略Qi,j=I{vjNvi}1Nvi\mathbf{Q}_{i,j}=\mathbb{I}\left\{v_{j} \in \mathcal{N}_{v_{i}}\right\} \cdot \frac{1}{\left|N_{v_{i}}\right|}。因此,有

BQ1=viVvjVbvi,vj1Nvi \|\mathbf{B}-\mathbf{Q}\|_{1}=\sum_{v_{i} \in \mathcal{V}} \sum_{v_{j} \in \mathcal{V}}\left|b_{v_{i}, v_{j}}^{*}-\frac{1}{\left|\mathcal{N}_{v_{i}}\right|}\right|
对于文中的有偏策略

Pi,j=I{vjNviCvi}ns(v)+I{vjNvi(Cvi)c}nd(v) \mathbf{P}_{i, j}=\mathbb{I}\left\{v_{j} \in \mathcal{N}_{v_{i}} \cap C_{v_{i}}\right\} \cdot n_{s}(v)+ \mathbb{I}\left\{v_{j} \in \mathcal{N}_{v_{i}} \cap\left(C_{v_{i}}\right)^{c}\right\} \cdot n_{d}(v)

  • bsb_sbdb_d满足

viVvjVbvi,vj1NviviVvjVbvi,vjI{vjNviCvi}ns(v)I{vjNvi(Cvi)c}nd(v) \sum_{v_{i} \in \mathcal{V}} \sum_{v_{j} \in \mathcal{V}}\left|b_{v_{i}, v_{j}}^{*}-\frac{1}{\left|N_{v_{i}}\right|}\right| \geq \sum_{v_{i} \in \mathcal{V}} \sum_{v_{j} \in \mathcal{V}} \left| b_{v_{i}, v_{j}}^{*}-\mathbb{I}\left\{v_{j} \in\right. \left.\mathcal{N}_{v_{i}} \cap C_{v_{i}}\right\} \cdot n_{s}(v)-\mathbb{I}\left\{v_{j} \in \mathcal{N}_{v_{i}} \cap\left(C_{v_{i}}\right)^{c}\right\} \cdot n_{d}(v) \right|

  • 如果bsbdb_s \neq b_d,则可以严格推导出不等式

因此,如果为bsb_sbdb_d赋合适的值(下一节讨论),那么BP1<BQ1\|\mathbf{B}-\mathbf{P}\|_{1} < \|\mathbf{B}-\mathbf{Q}\|_{1}。上述分析可以推广到多跳邻居的情况。

4.2 bias值的影响

接下来讨论如何为邻居采样的偏差bsb_sbdb_d设置适当的值,并分析cluster数对PGE性能的影响。

对于PGE的步骤3中的邻居聚集,一个精确的embedding应该通过覆盖包含节点vv的整个连通分量来获得,其中k跳(k是最大可达hop)中的所有邻居都应该聚合。然而,对于一个大型图,邻居聚集的执行时间在2-hop以上迅速增加(特别是对于幂律图更具有挑战性)。因此,只考虑2-hop邻居。为了减少精度的下降,可以通过在2-hop中选择不同的邻居来扩大邻居对embeddingzv\mathbf{z}_{v}的贡献。

对于一个节点vv和它的两个邻居viv_ivjv_j,假设Nvi=Nvj\mathcal{N}_{v_{i}}=N_{v_{j}}但是pvpvi<pvpvj\left|p_{v}-p_{v_{i}}\right|<\left|p_{v}-p_{v_{j}}\right|。因此,有sT(v,vi)=sT(v,vj)s_{\mathcal{T}}\left(v, v_{i}\right)=s_{\mathcal{T}}\left(v, v_{j}\right)sP(v,vi)>sP(v,vj)s_{\mathcal{P}}\left(v, v_{i}\right)>s_{\mathcal{P}}\left(v, v_{j}\right)。由于l(,)l(\cdot,\cdot)是一个非负映射,因此有sG(v,vi)>sG(v,vj)s_{\mathcal{G}}\left(v, v_{i}\right)>s_{\mathcal{G}}\left(v, v_{j}\right)。基于zv\mathbf{z}_{v}zv1\mathbf{z}_{v^{\prime}}^{1}的定义,通过扩展zv\mathbf{z}_{v}zv1\mathbf{z}_{v^{\prime}}^{1},可以得到

zv=σ(W1A(zv1,vNvsσ(W2A(pv,vNvspv/Nvs))/Nvs))(5) \tag{5} \mathbf{z}_{v}=\sigma\left(W^{1} \cdot \mathrm{A}\left(\mathbf{z}_{v}^{1}, \sum_{v^{\prime} \in \mathcal{N}_{v}^{s}} \sigma\left(W^{2} \cdot \mathrm{A}\left(p_{v^{\prime}}, \sum_{v^{\prime \prime} \in \mathcal{N}_{v^{\prime}}^{s}} p_{v^{\prime \prime}} /\left|\boldsymbol{N}_{v^{\prime}}^{s}\right|\right)\right) /\left|\boldsymbol{N}_{v}^{s}\right|\right)\right)

公式(5)聚合了节点的属性向量pvp_v(在zv1\mathbf{z}_{v^{\prime}}^{1}中表示)和节点的2-hop邻居的属性向量,最后得到embeddingzv\mathbf{z}_{v}。这个过程可以理解为一个由sP(v,v)s_{\mathcal{P}}\left(v, v^{\prime}\right)sG(v,v)s_{\mathcal{G}}\left(v, v^{\prime}\right)的转换。因此,一个越小的sP(v,v)s_{\mathcal{P}}\left(v, v^{\prime}\right)可能对zv\mathbf{z}_{v}贡献一个越大的改变。

对于公式(5),如果pvpvi<pvpvj\left|p_{v}-p_{v_{i}}\right|<\left|p_{v}-p_{v_{j}}\right|,则可以得到zv1zvi11<zv1zvj11\left\|\mathbf{z}_{v}^{1}-\mathbf{z}_{v_{i}}^{1}\right\|_{1}<\left\|\mathbf{z}_{v}^{1}-\mathbf{z}_{v_{j}}^{1}\right\|_{1}。因此,对于embeddings,有zvzvi1<zvzvj1\left\|\mathbf{z}_{v}-\mathbf{z}_{v_{i}}\right\|_{1}<\left\|\mathbf{z}_{v}-\mathbf{z}_{v_{j}}\right\|_{1}。由于vvviv_i以及vvvjv_j相互影响,可以得出结论:对于固定跳的邻居聚集,不相似度越大的邻居对节点embedding的负影响更大。也就是说,对于固定跳邻居的聚集,需要设置bd>bsb_d > b_s来获得更好的embedding结果,最后的实验也验证了这一点。

除了bsb_sbdb_d的值外,PGE第1步得到的cluster的数量也会影响节点embedding的质量。考虑一个平均度为E/V|\mathcal{E}| /|\mathcal{V}|的随机图G={V,E,P}\mathcal{G}=\{\mathcal{V}, \mathcal{E}, \mathcal{P}\}。假设在步骤1中从G\mathcal{G}中获得kk个cluster,那么与节点vv处于同一个cluster邻居的平均数量为Nv/k=(E/V)/k\left|\mathcal{N}_{v}\right| / k=(|\mathcal{E}| /|\mathcal{V}|) / k。如果kk很大,大多数邻居将被聚类于和节点vv不同的cluster。相反,一个小的kk意味着邻居更有可能和节点vv在同一个cluster。因此,对于有偏策略的节点embedding,kk的值太大太小都不合适,因为这种情况下的所有邻居要么是相似的,要么是不相似的,这本质上使得邻居不可区分(in-differentiable)。因此,为了保证有偏策略的有效性,kk值不应该落在两个极端中。根据实验结果,发现kk值接近平均度数是一个不错的选择。

4.3 合并边的属性

除了bias的值、cluster的数量,边的属性对embedding结果也有巨大的提升。现实世界中的图,例如设计网络图,边都有类似“positive”和“negative”的属性。考虑一个社交网络图G={V,E,P}\mathcal{G}=\{\mathcal{V}, \mathcal{E}, \mathcal{P}\},它有两种类型的边,E=E+E\mathcal{E}=\mathcal{E}^{+} \cup \mathcal{E}^{-}。假设有一个节点vv有两个邻居viv_ivjv_j,这些邻居有相同的属性pvi=pvjp_{v_i}=p_{v_j},并且拓扑信息相同Nvi=Nvj\mathcal{N}_{v_{i}}=\mathcal{N}_{v_{j}},但是这两个节点和vv所连的边的类型不同,也就是(v,vi)E+,(v,vj)E\left(v, v_{i}\right) \in \mathcal{E}^{+} ,\left(v, v_{j}\right) \in \mathcal{E}^{-}。如果只用公式(5),不区分边的信息,那么就不能区分节点viv_ivjv_j的embedding。为了能考虑到边的信息,为每一个属性引入一个额外的矩阵。例如,前面的例子中,为属性“positive”和“negative”引入两个额外的矩阵,即此时ke=2k^e=2。对于有向图,进一步用不同的权重矩阵分别考虑in/out-neighbors。

5 实验评估

two benchmark applications:

  • node classification
  • link prediction

Baseline Methods

  • DeepWalk
  • node2vec
  • GCN
  • GraphSAGE

Datasets

  • PubMed
    PubMed是一组文章(即与PubMed数据库中的糖尿病相关,这里的边表示引用关系。节点属性是TF/IDF-weighted单词频率,节点标签是文章中提到的糖尿病类型。
  • PPI
    PPI由24个蛋白-蛋白相互作用图组成,每个图代表一个人体组织。这里的节点是蛋白质,边是它们的相互作用。节点属性包括位置基因集、motif基因集和免疫标记。节点标签为基因本体集。文中使用的是经过处理的版本(GraphSAGE)。
  • BlogCatalog
    BlogCatalog是一个用户选择类别进行注册的社交网络。节点是博客,边是它们之间的关系(例如,朋友)。节点属性包含用户名、id、博客和博客类别。节点标签是user tags。
  • Reddit
    Reddit是一个在线论坛。这张图是由Reddit上的帖子构成的。这里的节点是帖子,如果相同的用户评论它们,它们就会被连接。属性信息包括文章标题、评论和分数。节点标签代表社区。使用在(GraphSAGE)中处理的稀疏版本。
PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
  • PPI和BlogCatalog是多标签图
  • PubMed和Reddit是单标签图
  • 平均度数可以根据E/V|\mathcal{E}| /|\mathcal{V}|计算,可见PubMed度数最低
  • 对于无向图,每条边存储为两条无向边
  • 节点的标签被视为classes

5.1 节点分类

  • PPI数据集按GraphSAGE中的,80%(即22张图)用于训练,剩下2张子图用于验证和测试
  • 其余数据集按照70% for training, 10% for validation and 20% for test划分
  • 所有数据集,bias默认值为bs=1b_{s}=1bd=1000b_{d}=1000
  • 最终embedding维度为zvRdl\mathbf{z}_{v} \in \mathbb{R}^{d_{l}},其中dld_{l}是表1中列出的classes
  • 向量zv\mathbf{z}_{v}中值最大的索引就是单类数据集的分类结果。对于多个类,利用舍入函数对zv\mathbf{z}_{v}进行处理,得到分类结果
  • 使用F1-score这一常用的多标签分类指标来评价分类的性能
PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
  • 表2左表表示F1-Micro值,右表表示F1-Macro值
  • 对于所有数据集,PGE在F1-Micro和F1-Macro方面的得分都高于其他所有方法,特别是对于PPI和BlogCatalog,它们的性能都有显著的提高
  • 通常,使用节点属性信息的方法(即, PGE, GraphSAGE和GCN)比使用跳跃图模型获取结构关系的方法(即, DeepWalk和node2vec)有更高的得分。这是因为前一种方法比后一种只使用纯图拓扑的方法使用更丰富的属性信息。
  • 与GraphSAGE和GCN相比,PGE通过引入偏差bias对邻居进行区分以进行邻居聚合,从而进一步提高了分类的准确性,这验证了前面对bias策略重要性的分析。
  • 为了对PubMed中的文章进行分类,由于图中节点数量不多,使用了步骤1中的DBSCAN聚类方法,得到k=4k = 4个cluster。由于图中的平均度很低,只有2.25。因此,区分邻居并没有带来显著的积极影响。因此,对于这个数据集,PGE的F1-scores并不明显高于GraphSAGE。
  • 为了对PPI蛋白质的功能进行分类,由于这个图不是很大,也使用了DBSCAN进行聚类,得到了k=39k = 39个cluster。对于这个数据集,PGE相对于其他方法的改进很大,这可以解释为,在蛋白-蛋白相互作用图中,邻居扮演着非常不同的角色,因此区分它们可能会为节点分类带来显著的好处。事实上,虽然GraphSAGE也使用节点属性信息,但由于GraphSAGE不区分邻居,所以它与DeepWalk和node2vec(仅使用结构信息)相比并没有显著的改进。GraphSAGE的小改进与PGE的大改进证明了文中bias邻居采样策略的有效性。对于GCN来说,由于它不考虑多标记分类,因此将它与其他方法进行比较是不公平的,而且对于这个数据集(也适用于BlogCatalog)没有意义。
  • BlogCatalog具有较高的特征维度。原始的BlogCatalog数据集将multi-hot向量作为特征向量(具有5413维)。文中使用Truncate-SVD来获得低维特征向量(1000维)。由于节点的数量并不多,步骤1使用了DBSCAN,它为这个数据集生成了k=18k = 18个cluster。与DeepWalk和node2vec相比,PGE在分类精度上的提高是非常显著的,说明了利用属性信息进行图embedding的重要性。对于这个数据集来说,PGE相对于GraphSAGE的改进也很明显,这是由于区分了邻居的不同并且考虑了边的方向。
  • Reddit图比其他图大得多,因此使用k-means (k=40k = 40)来对Reddit进行聚类,而不是使用DBSCAN, 因为DBSCAN要慢得多。文中没有对比DeepWalk和node2vec的结果,因为它们的训练过程超过10小时才能完成,而GraphSAGE和PGE在几分钟内完成。也没有和GCN对比,因为GCN需要加载完整的图矩阵到每个GPU,这使得耗尽了GPU的内存(每个12GB内存)。PGE的F1-scores比GraphSAGE高出约1%,文中认为这是一个显著的进步,因为GraphSAGE的准确率已经很高了(94.93%和92.30%)。

5.2 链接预测

  • 给定两个节点embeddingzv\mathbf{z}_{v}zv\mathbf{z}_{v^{\prime}},链接预测的任务是预测这两个节点之间是否存在一条潜在的边。
  • 使用MRR (mean reciprocal rank,平均倒数排名)评估链接预测的性能
  • 对于一个节点vvQ|Q|个待预测节点集,可以用1Qi=1Q1ranki\frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{r a n k_{i}}QQ的prediction queries/lists集计算MRR得分
  • 由于在DeepWalk、node2vec和GCN中没有找到链接预测的评估方法,文中将PGE与GraphSAGE进行了比较。对于稀疏引用图PubMed,epoch设置为10,以避免数据不足的问题。对于其他数据集,epoch被设置为1。
  • 其他bias,聚类方法等和节点分类设置一样。
PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
  • 表3报告了PGE和GraphSAGE在四个数据集的MRR评分
  • PGE (no edge info)表示只考虑bias,未使用边的信息。结果表明,在不考虑边的信息的情况下,除PPI外,PGE的MRR评分低于GraphSAGE。然而,当加入边的信息时,PGE在所有情况下都明显优于GraphSAGE,PGE的MRR评分比GraphSAGE至少高出37%。根据MRR评分定义,PGE的正确预测比GraphSAGE提前1-3 positions。
  • 与PGE对节点分类的改进相比,其对链路预测的改进更具说服力。区分相邻节点对预测两个节点之间的链接可能没有直接影响;相反,与GraphSAGE和PGE的变体PGE (no edge info)相比,PGE对边的信息的使用起着显著的作用。

5.3 参数敏感性测试

Epoch数量的影响
  • 为了测试训练epoch数量的影响,将PGE与GraphSAGE进行比较,将epoch数量由10改为100。
  • 报告了图1中四个数据集的F1-Micro和F1-Macro节点分类得分。
  • 结果表明,PGE和GraphSAGE在F1-Micro和F1-Marco有相似的趋势,但PGE的表现总是优于GraphSAGE。
  • 训练时间随epoch数量线性增加,但是100个epoch的训练时间对于小型数据集PubMed也只有几十秒,对于最大的数据集Reddit不到5分钟。
PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
bias和cluster数量的影响
  • 还测试了不同bias值和cluster数的影响
  • 在PPI数据集上运行1000次进行节点分类任务,其中,使用不同的kk和不同的bdb_d值(固定bs=1b_s=1
  • 步骤1使用可以灵活改变kk值的K-Means聚类算法
  • 每一次PGE运行,选了的epochs数设置为10
  • 所有其他参数都使用默认值
PGE - A Representation Learning Framework for Property Graphs 属性图中的表示学习框架 KDD 2019
  • 图2是bias和cluster数量的影响的实验结果
  • Y轴是bdb_d的对数值,Z轴是F1-Micro score,F1-Macro score相同所以省略了

bias数量的影响

  • 结果表明,取较大biasbdb_d(即,Y>0Y > 0)可以对F1-score带来正的影响,并且随着bdb_d的增大,性能提高。当bdb_d小于1时,即bd<bsb_d < b_s时,其性能并没有优于均匀近邻抽样(即bd=bsb_d = b_sY=0Y = 0),这表明选择更多的不相似的邻居(bdb_d越大,将不相似的邻居包含到Gs\mathcal{G}_s中的概率越大)有助于提高节点embedding的质量,这与前面的分析是一致的。

cluster数量的影响

  • 对于clusterkk的数量,由于PPI图的平均度为14.38,当cluster数量大于50时,F1-score波动到kk(即这种现象是由于聚类算法的局限性造成的,因为k-means对噪声比较敏感,较大的kk更容易受到噪声的影响。注意,当cluster数量并不大(不到50),一个小的biasbdb_d(小于1)也可能提高F1-score,这也可能被解释成图中有同质性和结构等效特性,bd<1b_d < 1时表明节点倾向于选择相似的邻居聚合。
  • 一般情况下,较大的bdb_d和较小的cluster数kk(接近平均度)更有可能提高邻居聚合方法的性能。

相关文章:

  • 2022-02-03
  • 2021-08-15
  • 2022-12-23
  • 2021-11-28
  • 2021-11-21
  • 2021-05-02
  • 2021-07-16
  • 2021-12-16
猜你喜欢
  • 2021-10-15
  • 2021-10-02
  • 2022-12-23
  • 2021-08-03
  • 2021-06-03
  • 2021-07-16
  • 2021-12-04
相关资源
相似解决方案