空域图卷积神经网络理解 GCN,GAT,GraphSAGE讲解

在这里插入图片描述


空域图卷积神经网络理解

在上一章节中,对谱域图卷积技术进行了深入的探讨,包括其概念框架和详实的计算过程。起初在SCNN的革新研究中,构建了一种新颖的图卷积神经网络体系,将图卷积分解为两个截然不同的范式:谱域与空域。在这两种范式中,谱域图卷积牢牢植根于谱图理论,通过融合传统卷积操作的精髓,成功将卷积概念拓展到了图数据领域。与此相对,空域图卷积打破常规,它不受谱图理论的束缚,从图的空间结构本身出发,实现了更为直接和直观的卷积方式。

本章节旨在桥接谱域与空域的理论鸿沟。不仅会对谱域图卷积公式做更通俗易懂的空域解释,还会深入剖析两个颇具影响力的空域图卷积模型——图注意力网络(GAT)和GraphSAGE。通过这些内容的展开,希望为那些想深入了解空域图卷积神经网络的读者提供一个全面且细致的入门指南。这些模型不仅对理解图结构数据中的复杂模式至关重要,也为图卷积神经网络的实际应用提供了必要的理论基础和技术支撑。


一、CNN的卷积的理解

传统的卷积神经网络,是如何工作的呢?
在卷积神经网络(CNN)中,使用卷积核或过滤器对数据进行特征提取是一种基本的操作。以3x3的卷积核为例,它可以看作是一个小的窗口,滑动遍历整个图像或矩阵数据。在每个位置,这个卷积核都会覆盖数据的一个局部区域,并通过该区域内对应位置的数值与卷积核上的权重系数相乘,然后将所有乘积求和得到一个单一的数值。这个过程就是所谓的卷积操作。

在这里插入图片描述
由上图可以看到,更新当前位置(或节点)的信息基本上是通过对其邻域内其他节点信息的选择性聚合来实现的。 这其中,卷积核扮演的是一个权重模板的角色,它决定了如何从局部邻域中提取或强调特定的信息

二、空域图神经网络

在CNN中卷积操作这个求和过程,卷积核会考虑当前数据点及其周围的信息,这种机制使得卷积核能够捕捉到局部的特征。正是通过这种方式,卷积神经网络可以从原始数据中学习到有意义的特征表示,形成对当前数据点丰富且综合的新表征。

因此得到了一个重要信息,就是卷积本身就是进行聚合,然后更新当前位置的数据,多次的卷积就是对这一行为的循环。故此在为了实现在图结构上的卷积只需要找到当前节点的邻居进行聚合然后更新自身节点信息就可以。

设计图卷积神经网络的流程:

  1. 聚合
  2. 更新
  3. 循环

即通过邻居信息更新自身节点信息,从而使得不同节点的表示融合了局部信息这一行为。首先聚合局部信息,然后进行更新自身信息循环往复。下图直观的展示了这一流程。
在这里插入图片描述

  • A节点的特征:(1, 1, 1, 1, 1)
  • B节点的特征:(2, 2, 2, 2, 2)
  • C节点的特征:(3, 3, 3, 3, 3)
  • D节点的特征:(4, 4, 4, 4, 4)
  • E节点的特征:(5, 5, 5, 5, 5)
  • F节点的特征:(6, 6, 6, 6, 6)

给定邻居信息为 :
N e i g h b o r = w 1 ⋅ A 节点特征 + w 2 ⋅ B 节点特征 + w 3 ⋅ D 节点特征 + w 4 ⋅ E 节点特征 Neighbor = w1 \cdot A节点特征 + w2 \cdot B节点特征 + w3 \cdot D节点特征 + w4 \cdot E节点特征 Neighbor=w1A节点特征+w2B节点特征+w3D节点特征+w4E节点特征

这里的 w 1 、 w 2 、 w 3 、 w 4 w1、w2、w3、w4 w1w2w3w4 是待定的权重参数。

C节点的信息更新公式为:
C 节点的信息 = 激活函数 ( W 1 ⋅ C 节点的特征 + W 2 ⋅ N e i g h b o r ) C节点的信息 = 激活函数(W1 \cdot C节点的特征 + W2 \cdot Neighbor) C节点的信息=激活函数(W1C节点的特征+W2Neighbor)

其中, W 1 W1 W1 是模型需要训练的参数,激活函数可以选择常见的 ReLU、Sigmoid 等。这个过程类似于CNN的卷积操作,通过学习参数 W W W 来选择特征,并通过激活函数实现非线性变换,从而更新节点的特征信息。
经过第一次聚合后:

  • A节点中有C的信息
  • B节点中有C的信息
  • C节点中有A,B,E,D的信息
  • D节点中有C的信息
  • E节点中有C,F的信息
  • F节点中有E的信息

经过第二次聚合后:

  • C节点中有F的信息
    这是因为E节点在第一次聚合中得到了C,F的信息,所以再第二次聚合过程中C节点获得了F的信息

可以看到,在进行了单次图卷积后实现了对一阶段邻居信息特征的聚合,而进行了两次图卷积就成功的聚合到了二阶邻域信息。显然,增加更多卷积层的次数就可以扩展到更高阶的邻域信息,这种方法可以通过增加图卷积层的层数来实现,从而拓宽特征聚合的范围。

那么最终得到的信息有什么用呢?

通过这样的连续聚合过程,不断完善每个节点的表示,也即获得了节点的特征信息。得到这些特征信息后,可以将节点用于分类任务,通过计算损失(Loss)来对之前所描述的权重矩阵 W W W进行优化。通过持续的迭代优化过程,我们可以提升分类任务的性能。在这里值得注意的是,尽管这一部分在某种程度上与传统的卷积神经网络(CNN)相似,但图卷积的核心贡献在于实现了对非欧几里得数据的卷积操作,也就是邻域信息的聚合,换言之,它在特征提取这一环节上发挥了关键作用。

2.1 GCN的空域理解

(不同的图卷积模型的核心区别在于它们采用了不同的方法来实现邻域信息的聚合)
在实际应用中,图结构常常可以理解为类似于社交网络的结构,其中不同的节点代表不同的个体,例如人。这些个体之间的社交联系则通过连结各个节点的边来表示。每个节点拥有的特征信息则用以描述该个体的各种属性。例如,当你想描述你的朋友给其他人时,你可能会提及他们的身高、体重、发型、性别或头发颜色等。这些描述信息便构成了每个节点的特征信息,而在图结构中,这些不同的节点特征集合起来就是用来描绘整个网络中每个个体的独特属性。
在这里插入图片描述
打个比方,假如想了解C节点代表的个体的工资水平。在这个图结构中,ABDE节点都与C节点相连,类似于C的朋友圈。一个合理的推断是,这些朋友的工资水平很可能与C节点相似。因此,可以通过将C节点所有朋友的工资累加起来,从而得到一个总和。但是,仅仅使用这个总和作为C节点工资的估计显然是不合理的。为了得到一个更加合理的估算,我们需要进行平均化处理, 这可通过将朋友工资的总和除以C节点的朋友数量(即C节点的度)来实现。这样,我们就能得到C节点的估计工资水平。此过程实质上模拟了图卷积神经网络中的一个聚合操作。

则聚合公式可以表示为:
a g g r e g a t e ( X i ) = ∑ j ∈ N ( i ) A i j X j aggregate(X_i)= \sum_{j \in \mathcal{N}(i)} A_{ij}X_j aggregate(Xi)=jN(i)AijXj

其中, N ( i ) \mathcal{N}(i) N(i) 表示节点 i i i 的邻居节点集合, A i j A_{ij} Aij 是邻接矩阵 A A A 中的元素,表示节点 i i i 和节点 j j j 之间的连接权重, X j X_j Xj 是节点 j j j 的特征向量。
a g g r e g a t e ( X i ) = A X aggregate(X_i)= AX aggregate(Xi)=AX

在图卷积网络(GCN)的计算过程中,要更新节点的特征表示,通常会聚合邻居节点的特征信息。然而,为了不丢失节点自身的特征信息,会在邻接矩阵 A A A 上添加单位矩阵 I I I,执行所谓的“自连接”操作 A ^ = A + I \hat{A} = A + I A^=A+I,其中 A ^ \hat{A} A^ 表示加入自连接的邻接矩阵。

自连接后的邻接矩阵 A ^ \hat{A} A^ 会与节点特征矩阵 X X X 相乘,使得每个节点在计算新的特征表示时,同时融合了邻居节点和自身的特征信息。
a g g r e g a t e ( X i ) = A ^ X aggregate(X_i)= \hat{A}X aggregate(Xi)=A^X

接着说上述的例子
仅仅使用这个总和作为C节点工资的估计显然是不合理的。为了得到一个更加合理的估算,我们需要进行平均化处理,所以使用度矩阵的逆矩阵 D − 1 D^{-1} D1 来进行归一化,具体的聚合公式可以被写成:
a g g r e g a t e ( X i ) = D − 1 A ^ X aggregate(X_i) = D^{-1}\hat{A}X aggregate(Xi)=D1A^X
通过这种方式,我们对聚合得到的信息进行了归一化,即均值处理操作。

但是还存在一种特殊的情况,假如你的朋友是一个明星呢?

在这种情况下,该明星节点可能拥有更多的邻居,而其他节点只有少量邻居,甚至只有一个。这种不对称的连接关系可能导致上述公式失效。举例来说,考虑下图节点 C 和节点 E 之间的关系,如果节点 C 是一个明星,而节点 E 只有节点 C 一个邻居,那么节点 C 的工资情况不可能等同于节点 E 的工资情况。

在这里插入图片描述
为了解决这种不对称连接关系可能带来的问题,可以对每个节点的特征矩阵 X X X 和度矩阵的逆 D − 1 D^{-1} D1 进行乘积运算,以消除明星节点对结果的影响。具体地,可以将每个节点的特征矩阵除以该节点的度,从而将节点的特征信息归一化。然后,利用带有自环的邻接矩阵进行聚合操作,再次将结果与度矩阵进行乘积,以实现特征数据的归一化均值操作。

这种方法能够有效地消除明星节点对结果的影响,并更好地考虑到不同节点之间的连接情况,从而提高图卷积神经网络的性能和稳定性。现在看下GCN的公式:

H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}) H(l+1)=σ(D~21A~D~21H(l)W(l))

这里的符号代表:

  • H ( l ) H^{(l)} H(l) 表示第 l l l 层的节点特征矩阵。
  • H ( l + 1 ) H^{(l+1)} H(l+1) 表示第 l + 1 l+1 l+1 层的节点特征矩阵。
  • σ \sigma σ 是非线性激活函数,例如ReLU函数。
  • A ~ = A + I \tilde{A} = A + I A~=A+I,其中 A A A 是图的邻接矩阵, I I I 是单位矩阵,其在对角线上添加自环(self-loops)。
  • D ~ \tilde{D} D~ A ~ \tilde{A} A~ 的度矩阵的对角矩阵,其中每个元素 D ~ i i \tilde{D}_{ii} D~ii 等于节点 i i i 的度加上1(对应自环)。
  • W ( l ) W^{(l)} W(l) 是第 l l l 层的权重矩阵。

整个的过程就是上描述例子中描述的工资的计算方法。形象化理解有助于更直观地理解 GCN 的工作原理,
(不同的图卷积模型的核心区别在于它们采用了不同的方法来实现邻域信息的聚合)而GCN公式也给出了在聚合过程中自己的答案。

2.2 GAT模型的理解

在图卷积网络(GCN)中,度矩阵是一个关键的组成部分,它允许在特征聚合过程中为不同的邻居节点设置不同的权重参数。这种机制确保了特征聚合时邻居节点之间的权重得到了恰当的调整和处理。但正如之前讨论的,图卷积神经网络之间的主要创新和差异化主要来自于特征聚合的策略。GCN通过度矩阵的归一化来处理邻居节点的权重,不过这种方法在权重分配方面比较固定,缺乏灵活性,无法允许模型自适应地选择邻域信息。

这就引出了图注意力网络(GAT)的概念,GAT引入了注意力机制到特征聚合过程中,它通过反向传播的方式去自我学习和调整权重。这种设计使得模型能够根据损失函数来自适应并优化邻域信息的聚合,从而能够更加精细地处理节点间的重要性和关联性。这一机制不仅提高了模型的灵活性,还允许模型更加准确地捕捉和利用图结构数据中的复杂关系。

在这里插入图片描述
上图中的的 w 1 、 w 2 、 w 3 、 w 4 w1、w2、w3、w4 w1w2w3w4 是待定的权重参数。GCN中给出的方式通过度矩阵进行解决。而GAT中利用注意力机制进行计算得到,反向传播优化该参数。

具体这个注意力机制是如何实现的呢?

简单思考下,人的注意力是有限的,关注一个地方那么关注其他地方的注意力就会减少,因此这个数值的和是百分之百,因此要实现归一化操作。

1.首先计算中心节点和其中一个邻居节点之间的注意力系数。

GAT给出的解决方法是这样的:

首先,对于每个节点,计算其转换后的特征向量:

h i ′ = W ⋅ h i h'_i = W \cdot h_i hi=Whi

其中, h i h_i hi 是节点 i i i 的特征向量, W W W 是可学习的权重矩阵。这部分需要注意 W W W矩阵有些小特性。


在图注意力网络(GAT)中,转换矩阵 W W W 用于将输入特征映射到新的特征空间。 W W W 矩阵的维度定义为 F ′ × F F' \times F F×F,其中:

  • F F F 是输入特征的维度(即,每个节点特征向量的原始维数)。
  • F ′ F' F 是映射后的特征向量的目标维度。

因此,如果有节点的特征向量 h i h_i hi 具有维度 F F F,并且我们希望将其映射到维度为 F ′ F' F 的新特征空间,那么矩阵 W W W 将会具有 F ′ × F F' \times F F×F 的维度。可以简单的理解成特征增强技术,就是通过已有的特征加上可学习的参数生成了一组新的特征。通过 W W W矩阵的可学习性从而提高模型性能。


得到了两个节点的新特征信息进行拼接操作,接着,使用一个注意力机制 a a a 一个可学习的权重向量 ,来计算节点 i i i 和它的邻居节点 j j j 的注意力系数:

e i j = LeakyReLU ( a T ⋅ [ h i ′ ∥ h j ′ ] ) e_{ij} = \text{LeakyReLU}\left( a^T \cdot [h'_i \Vert h'_j] \right) eij=LeakyReLU(aT[hihj])

其中, [ h i ′ ∥ h j ′ ] [h'_i \Vert h'_j] [hihj] 代表节点 i i i 和节点 j j j 的特征向量的串联(concatenate), ∥ \Vert 是串联操作符, a T a^T aT 是注意力机制的权重向量的转置,LeakyReLU 是非线性激活函数,用于增加模型的表达能力。这部分主要特别的是 a T a^T aT也是可学习的参数进行内积得到了一个关于注意力的实数。

2.计算中心节点和每个邻居节点之间的注意力系数。

计算完每个 e i j e_{ij} eij 后,需要在节点 i i i 的邻接节点上应用softmax函数来标准化,得到最终的注意力权重 α i j \alpha_{ij} αij

α i j = exp ⁡ ( e i j ) ∑ k ∈ N ( i ) exp ⁡ ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k \in \mathcal{N}(i)} \exp(e_{ik})} αij=kN(i)exp(eik)exp(eij)

这里, N ( i ) \mathcal{N}(i) N(i) 表示节点 i i i 的邻接节点集合。分母是对所有节点 i i i 的邻居节点的 e i j e_{ij} eij 值应用softmax函数。整体的计算流程如图所示:
请添加图片描述

3.加权求和(aggregate)

通过学习到的注意力系数 α i j \alpha_{ij} αij,可以计算每个节点的加权特征表示,这通过汇总邻居节点的特征及其相应的注意力权重来实现。加权求和公式如下:

h i ′ = σ ( ∑ j ∈ N ( i ) α i j W h j ) h'_i = \sigma\left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij} W h_j \right) hi=σ jN(i)αijWhj

这里的 σ \sigma σ 表示激活函数, α i j \alpha_{ij} αij 是节点 i i i 对其邻居节点 j j j 的注意力系数, W W W 是特征转换矩阵, h j h_j hj 是邻居节点 j j j 的原始特征向量, N ( i ) \mathcal{N}(i) N(i) 是节点 i i i 的邻居节点集合。所以, h i ′ h'_i hi 是节点 i i i 的新的特征表示,它是根据邻居节点的特征和相应的注意力权重加权求和得到的结果。
这部分的内容都差不多,需要注意的是这两个 W W W矩阵不是相同的。具体的作用都差不多,可学习参数矩阵。
4.多头注意力
在CNN中使用多个卷积核是为了捕捉输入数据中不同的特征或模式,因为不同的卷积核可以从相同的数据中提取不同的特征。同样,在注意力机制中,特别是多头注意力机制里,目的也是为了从不同的角度捕捉输入数据的不同特征。

CNN中多卷积核的作用:

  1. 特征多样性:每个卷积核都可以视为一个特征探测器,专注于提取图像中的某种特定模式或特征,比如边缘、角点或者特定的纹理。

  2. 提升性能:通过组合多个卷积核的响应,可以在输入数据中捕捉到更丰富的信息,进而提升模型在各种任务上的表现。

类似地,注意力参数 α \alpha α 和多头注意力的目的:

  1. 捕捉细微差别:注意力参数可以帮助模型确定输入数据中哪些部分是更重要的,哪些可能可以忽略,从而让模型可以更聚焦于关键信息。

  2. 多角度洞察:多头注意力允许模型在多个“注意力空间”并行处理信息,这样模型可以在不同的表示子空间中捕捉到不同的信息特征。

无论是CNN中的多卷积核还是在注意力机制中的多头注意力,都是为了让模型具有捕捉和集成来自不同方面信息的能力,以此来增强模型的表现,使其能够更好地理解和处理复杂的数据。

因此GAT采用多头注意力机制,从而提升模型的性能,但是需要注意的是这部分也增加了模型的参数量。请添加图片描述
上图描述了多头注意力的工作原理,在单次聚合的过程中,通过注意力机制可以获得中心节点在不同注意力下的特征表示。最后,这些特征可以通过拼接或者均值等操作得到节点的最终特征表示。剩下的部分和GCN都是差不多的,损失函数优化提神模型的性能。

2.3 GraphSAGE模型的理解

对于大型图,特别是像超级大的社交网络这样的图,邻接矩阵 A A A可能会变得非常巨大,并且非常稀疏。对这样大规模的邻接矩阵进行存储和计算,尤其是在图卷积网络(GCN)或图注意力网络(GAT)等模型中,会对计算资源提出很高的要求。

GCN的每一层计算其实都依赖于整个图的结构,特别是当使用拉普拉斯矩阵的时候,实际上是对邻接矩阵加上一个单位矩阵再进行归一化处理。在这种计算过程中,对于每个节点,理论上都需要考虑到其所有一阶邻居的信息,这意味着计算复杂度与节点的度成正比。而在大型社交网络中,节点的度可能会非常大,导致计算代价非常高。甚至简单的矩阵乘法操作也可能非常耗费资源。因此,图采样技术诞生了,也就是GraphSAGE,GraphSAGE = Graph Sample Aggregate。也就是说对图进行 sample 和 aggregate。

首先看下这个图:
请添加图片描述

这个图对采样和聚合进行了讲解,在其他的技术帖下,解说这个图是 K=2时采样邻居节点数是2,K=1时采样邻居节点个数为3,这部分看得我云里雾里,一度以为是先对远距离的节点让他聚合了一阶段的邻居然后在使用更新的节点信息聚合给中心节点实现第二次聚合更新了中心节点的信息。
但是这个和伪代码中描述的又出现了分歧,所以这部分极其容易造成混淆故此对这部分进行详细的讲述。

首先看下伪代码中是如何描述的:
在这里插入图片描述
在看伪代码之前,其他模型的训练都是全图进行训练,而GraphSAGE的特殊之处就来源于采用了minibatch的方式进行训练的,就是分批次的进行节点信息更新,而对不需要的节点信息则不进行更新因此对实现了在大型图结构上的性能优势。具体的情况如下图:
在这里插入图片描述
可以看到GraphSAGE可以特定地只更新中心节点及其K阶邻居的信息,而不需要对更高阶的邻居节点进行更新。在K=2的情况下,GraphSAGE会使用中心节点的一阶和二阶邻居信息来更新节点的嵌入表示,而不会涉及三阶及更远的邻居。这种局部邻域聚合的策略在大规模图数据集上尤为有用,因为它可以有效地减少计算和内存的消耗。而GCN通过和邻接矩阵的乘积实现邻域聚合,每次都会对所有的节点信息进行更新。

GraphSAGE算法利用小批量节点集合通常用字母 Bbatch 表示,在每个训练迭代中更新这些特定节点的信息,而不是图中的所有节点。这种方法具有以下优点:

  • 减少计算量:不需要对所有节点进行操作,使得资源使用更高效。
  • 提高可扩展性:算法可以处理含有数百万至数十亿节点的大型图。
  • 增加训练速度:处理小批量节点可以显著提升训练速度,尤其是在节点数量巨大的图中。
  • 内存管理:减少了内存需求,因为不需要一次性将整个图加载到内存中。

GraphSAGE算法伪代码解读

在GraphSAGE算法的伪代码中,集合 B B B表示要更新的一部分节点:

  1. 首先,将部分要更新的节点序号放入集合 B K B^K BK中。这里的 K K K是一个决定性因子,它定义了用于更新 B B B中节点的邻居阶数。
  2. 接着,创建 B K − 1 B^{K-1} BK1集合,并将 B K B^K BK中已确定的节点序号放入其中。
  3. B K B^K BK中的每个节点序号进行遍历,找出每个节点的邻居,并将这些邻居序号也加入到 B K − 1 B^{K-1} BK1集合中。此过程中可以根据实际需要设置邻居的数量,且不同的 K K K值可能对应选择不同数量的邻居。
  4. 现在, B K − 1 B^{K-1} BK1不仅包含了邻居节点序号,还有中心节点序号。接下来是第二次循环,直到 K K K值减小到1,可以从第一轮的循环中看出最终的列表 B 0 B^0 B0一定包括 K K K阶邻居所有的节点。

聚合函数部分:

  1. 注意聚合是从 B 0 B^0 B0开始的。如果聚合二阶邻居,会涉及三个节点:中心节点、中心节点的邻居,以及中心节点邻居的邻居。
  2. 聚合操作起始于 k = 1 k=1 k=1,即通过 B 0 B^0 B0集合选择节点的初始特征,作为更新 B 1 B^1 B1列表的依据。
  3. 然后,找到要更新的节点集合 B 1 B^1 B1,更新这其中的所有节点,这个更新过程包括中心节点的嵌入表示也被更新。
  4. 经过一轮更新后, B 1 B^1 B1集合中的所有节点获得了新的表示。接着利用 B 1 B^1 B1的表示更新 B 2 B^2 B2中节点的嵌入表示。此时中心节点经历了第二次更新。
  5. 重复此过程直到 K K K值循环结束,这时所有 B B B集合中的节点都已更新完成。可以看到中心节点被更新了 K K K次,因此聚合到了 K K K阶信息,类似于GCN的卷积K次效果。
  6. 完成更新后,开始处理下一个 B B B集合,并重复以上更新过程。

GraphSAGE算法将更新操作限制在每个训练批次中的部分节点,而不是全部节点,这一设计显著减少了计算量并提高了处理大规模图数据的能力。

这其中还有一部分需要提到的就是在聚合的部分GraphSAGE提供了三种聚合方
GraphSAGE算法聚合方法

GraphSAGE算法不仅在节点更新过程中具有高效的结构设计,还提供了三种不同的聚合器(aggregators),用于在邻居聚合操作中灵活地处理节点特征。这三种聚合器分别是:

  1. 均值聚合器(Mean aggregator)

    • 工作原理:对邻居节点特征的均值进行计算,将这些平均值作为聚合结果。类似于GCN的原理标准化邻居特征。
    • 优势:考虑到所有邻居节点的信息,可以平滑节点的表示。
  2. LSTM聚合器(LSTM aggregator)

    • 工作原理:通过训练有序的长短时记忆(LSTM)网络来聚合邻居特征。
    • 优势:能够捕捉邻居之间的序列或者时间关系,适用于边上有特定顺序的图结构。
  3. 池化聚合器(Pooling aggregator)

    • 工作原理:对每个邻居节点的特征应用一个神经网络,然后使用一个对称函数(如最大化)来汇总所有邻居的输出。类似于GAT通过权重选择邻居。
    • 优势:通过增加非线性变换,可以捕获更复杂的邻居特征关系。

这三种聚合器在不同的图数据集和任务中可能表现出不同的性能,并可以根据特定的应用场景进行选择。对算法的性能和结果产生重要影响:

  • 不同的聚合方法在特征融合上有不同的强调点,能为模型学习提供多样化的途径。
  • 选择合适的聚合器对于算法处理复杂网络结构和多样化节点特征至关重要。
  • 实践中可能需要根据实验结果和任务需求调整选择的聚合器。

在GraphSAGE框架内,这些聚合器可以根据具体的应用场景和数据特性来选择使用,以期优化模型的性能。
总的来说,GraphSAGE模型拥有三大优势。首先,其采用了小批量(minibatch)训练方法,这意味着模型无需依靠对全部图结构的训练,而是可以选择性地更新特定节点的特征,从而提高了训练效率。其次,通过进行邻居节点的采样,GraphSAGE增强了模型对新节点的泛化能力,使得模型能够更好地处理那些在训练过程中未曾出现过的节点数据。最后,GraphSAGE在节点信息的聚合过程中提供了多样化的聚合函数,允许模型根据不同场景选择最为合适的函数,这大大增强了模型的适用性和灵活性。

三、图神经网络的应用

请添加图片描述
1、Computer Vision

图形神经网络的最大应用领域之一是计算机视觉。研究人员在场景图生成、点云分类与分割、动作识别等多个方面探索了利用图结构的方法。

在场景图生成中,对象之间的语义关系有助于理解视觉场景背后的语义含义。给定一幅图像,场景图生成模型检测和识别对象,并预测对象对之间的语义关系。另一个应用程序通过生成给定场景图的真实图像来反转该过程。自然语言可以被解析为语义图,其中每个词代表一个对象,这是一个有希望的解决方案,以合成给定的文本描述图像。

在点云分类和分割中,点云是激光雷达扫描记录的一组三维点。此任务的解决方案使激光雷达设备能够看到周围的环境,这通常有利于无人驾驶车辆。为了识别点云所描绘的物体,将点云转换为k-最近邻图或叠加图,并利用图论进化网络来探索拓扑结构。

在动作识别中,识别视频中包含的人类动作有助于从机器方面更好地理解视频内容。一组解决方案检测视频剪辑中人体关节的位置。由骨骼连接的人体关节自然形成图表。给定人类关节位置的时间序列,应用时空神经网络来学习人类行为模式。

此外,图形神经网络在计算机视觉中应用的可能方向也在不断增加。这包括人-物交互、少镜头图像分类、语义分割、视觉推理和问答等。

2、Recommender Systems

基于图的推荐系统以项目和用户为节点。通过利用项目与项目、用户与用户、用户与项目之间的关系以及内容信息,基于图的推荐系统能够生成高质量的推荐。推荐系统的关键是评价一个项目对用户的重要性。因此,可以将其转换为一个链路预测问题。目标是预测用户和项目之间丢失的链接。为了解决这个问题,有学者提出了一种基于GCN的图形自动编码器。还有学者结合GCN和RNN,来学习用户对项目评分的隐藏步骤。

3、Traffic

交通拥堵已成为现代城市的一个热点社会问题。准确预测交通网络中的交通速度、交通量或道路密度,在路线规划和流量控制中至关重要。有学者采用基于图的时空神经网络方法来解决这些问题。他们模型的输入是一个时空图。在这个时空图中,节点由放置在道路上的传感器表示,边由阈值以上成对节点的距离表示,每个节点都包含一个时间序列作为特征。目标是预测一条道路在时间间隔内的平均速度。另一个有趣的应用是出租车需求预测。这有助于智能交通系统有效利用资源,节约能源。

4、Chemistry

在化学中,研究人员应用图神经网络研究分子的图结构。在分子图中,原子为图中的节点,化学键为图中的边。节点分类、图形分类和图形生成是分子图的三个主要任务,它们可以用来学习分子指纹、预测分子性质、推断蛋白质结构、合成化合物。

5、Others

除了以上四个领域外,图神经网络还已被探索可以应用于其他问题,如程序验证、程序推理、社会影响预测、对抗性攻击预防、电子健康记录建模、脑网络、事件检测和组合优化。

四、总结

在这一章中,对两种空域图神经网络模型——GAT(图注意力网络)和GraphSAGE,以及对GCN(图卷积网络)的空域解读进行深入分析。这些讲解旨在帮助读者迅速掌握图神经网络领域的基础知识,使其能够在阅读相关论文时容易理解公式,从而避免对这些理论感到反感。同时,这样的基础知识也让读者将重点放在论文的创新点上,而不必纠结于概念初学的困惑。在后续的文章中,我们还将为其他模型提供详尽讲解。至此,入门篇章就告一段落了。如果这些内容能帮到您,我也会感到十分欣慰。

  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值