引用
Pang Y, Liu C. Graph Decipher: A transparent dual-attention graph neural network to understand the message-passing mechanism for the node classification[J]. arXiv preprint arXiv:2201.01381, 2022.
摘要
图形神经网络可以有效地应用于许多不同领域的实际问题的解决方案。图神经网络的成功与图上的消息传递机制有关,但在大多数算法中,消息聚合行为仍不完全清楚。为了改进功能,我们提出了一个名为Graph Decipher的新透明网络,通过在节点分类任务下的图形的图形、特征和全局级别上对两个主要组件(图形结构和节点属性)进行优先级排序,来研究消息传递机制。然而,计算负担现在成为最重要的问题,因为图结构和节点属性的相关性都是在图上计算的。为了解决这个问题,图形特征过滤器只提取相关的代表性节点属性,允许以面向类别的方式执行计算。对七个数据集的实验表明,图解密在节点分类任务下实现了最先进的性能,同时大大降低了计算负担。此外,由于我们的算法能够按类别探索具有代表性的节点属性,因此它被用于缓解多类图数据集上的不平衡节点分类问题。
1. Introduction
图神经网络(GNN)应用广泛。然而,在图结构上自发聚合消息的底层行为并不清楚。
为了解决这个问题,了解消息传递机制的策略至关重要。该机制沿边缘递归聚合信息,然后在中心节点上更新这些新合并的特征。此过程涉及两个主要组件:图形结构和节点属性。这两个组件都需要明确标识,以便在节点分类任务的图形上查看消息传递机制。
在一些研究[1、7、8]中消息沿边缘均匀传递,而不考虑图结构或节点属性的优先级。直观地看,在节点分类任务中,每个相邻节点的影响与中心节点不同。因此,提出了基于注意力的GNNs[9,10],以进一步评估邻居对中心节点的贡献如何根据图形特征变化。然而,在这些研究中,节点属性的贡献仍然没有被明确识别。由于节点属性是通过聚集从邻居节点接收的特征来更新的,因此节点属性的影响对信息的传输也至关重要。因此,我们希望对图结构和节点属性的作用有一个清晰的理解。特别是在这项工作中,提出了一种透明的GNN,即图形解密(Graph Decipher,GD),用于解释消息传递机制中这两个主要组件对节点分类任务中图形的影响。
所提出的GD从三个不同的角度审查图形上的消息传递机制:图形级、特征级和全局级。图级侧重于区分消息传递机制中的图结构,同时,特征级澄清了节点属性在节点分类任务下的贡献。如图1所示,GD的单个头部包含两个并行分支:一个节点注意分支(NAB)用于图级别的图结构,一个特征注意分支(FAB)用于特征级别的节点属性。在全局层面上,多人注意方案用于并行多次重复计算,然后组合在一起生成最终决策。
FAB首先考虑节点属性或特征的相关性,以深入了解消息传递机制。引入图形特征池和升采样模块,根据节点类别更新节点特征矩阵。为了估计节点分类任务下每个节点的内部特征的影响,基于维度的自我注意机制是提出了一种利用图学习中对节点属性的关注度的方法。这种创新的方法大大改进了根据类别查找每个节点各自的最佳属性。此外,由于只关注最佳属性而不是所有属性,因此它也有助于减少计算负担。然后在FAB的末尾,它的输出与并发NAB分支相结合,该分支增强了相邻节点对中心节点的贡献,以便进一步计算。最终,一个由多个并行的单头组成的多头关注方案将输出最终决策。
图1:单头图解析器的总体架构包括两个主要的注意分支:特征注意分支(FAB)和节点注意分支(NAB)。前一个分支致力于在特征级别深入挖掘不同类别节点中节点属性的重要性,而后一个分支则在图形级别确定节点的优先级。
由于GD不仅关注图结构,还考虑了节点属性对消息传递的贡献,因此它也能很好地处理不平衡的节点分类任务。对于节点类别分布不均匀的数据集,网络更喜欢具有大量数据的大多数类别,而来自少数类别的样本代表性不足,导致性能次优。一个可能的解决方案是通过增加少数群体中的节点数来平衡数据集每个类别中的条目。为了避免过度拟合问题,只保留GD分析的每个类别的主导节点属性,并在复制过程中随机删除或替换不具有代表性的特征。实验表明,该数据增强方法显著提高了不平衡节点分类任务的性能。
贡献
为了提高GNN模型在节点分类任务上的性能,建议从一个新的角度,即提高图上消息传递机制的清晰度。
提出了一种透明的GNN,图形解密器。该方案可以从特征、图和全局三个层次解释图结构和节点属性如何影响节点分类任务中的消息传递机制。
与为同一节点的每个特征分配相同权重的常用方法不同,我们设计了新颖的图形特征池和上采样模块,以提取并更加关注优化消息传递机制的主要特征。
为了减少计算负担,我们按类别分析组中的节点属性,计算中仅使用由图形特征池过滤器提取的代表性属性。
由于GD能够对每个节点的特征进行代表性分析,因此它可以用于增加少数类别的样本,从而提高不平衡节点分类任务的性能。
2. 相关工作
2.1 GNN
对GNN消息传递机制的一般理解是,它通过沿图上的边聚集消息来更新所有节点的特征表示,其中图结构和节点属性的贡献至关重要。
指出最近研究平等地从所有邻居中收集信息。
图注意力网络注意了节点地重要性,忽视了节点特征地相关性。低重要性的节点,其内部重要特征被抑制;高重要性的节点,其内部低重要性的特征被强调。
而所提出的GD综合内外部影响。
2.2 图形数据增强
神经网络倾向于从数据多的类别中学习特征。
加减边的操作影响图中数据传播。
在这项工作中,我们使用GD对节点属性进行代表性分析,以解决上述问题,从而从少数类别中增加样本。在少数群体中,优势和代表性节点属性被放大,而不重要的节点属性在数据增强后被抑制。实验表明,该方法显著提高了少数群体在不平衡节点分类任务中的性能。
3. 准备工作
本节说明了本文中的术语和初步知识。
定义1.一般图形概念。通常,图
G
G
G包含两个主要矩阵:图结构的邻接矩阵
A
A
A和图信息的特征矩阵
X
X
X。邻接矩阵的元素表示每个对象(节点)的连接(边)。特征矩阵的每一行表示图中一个节点的特征表示。因此,
X
∈
R
N
∗
F
X∈R^{N*F}
X∈RN∗F,其中N是节点数,F是节点属性。
定义2.无向图和有向图。如果一个图的邻接矩阵是对称的,那么这种图是无方向的。边缘e⊆ E是节点vi和vj之间的无序对
E
=
(
i
,
j
)
E=(i,j)
E=(i,j),这意味着
(
v
i
,
v
j
)
≡
(
v
j
,
v
i
)
(v_i,v_j)≡ (v_j,v_i)
(vi,vj)≡(vj,vi)。与无向图不同,有向图的邻接矩阵由于边
(
v
i
,
v
j
)
(v_i,v_j)
(vi,vj)。
(
v
j
,
v
i
)
(v_j,v_i)
(vj,vi)而不对称。无向图也被认为是具有相反方向的双有向边的有向图。
定义3.图形节点分类。给定一个具有邻接矩阵a和节点特征X的图,最终的任务是估计节点v的匿名标签y通过聚合和更新来自其邻居的消息。训练处理的损失函数如方程式1所示。
4. 方法
图1说明了单个GD头的主要架构。为了研究图在节点分类任务中的潜力,探索了两个并行注意分支,节点注意分支(NAB)和特征注意分支(FAB),以跟踪消息传递机制。与GAT一样,NAB学习一个节点注意矩阵NM,它表示相邻节点在图级别对中心节点的贡献。而创新的FAB模块用于获取特征注意矩阵(FM),以强调每个节点在特征级别的属性。然后,将NAB和FAB(NM和FM)的输出组合成一个集成的注意矩阵(IA),该矩阵包含图形结构的注意信息和节点属性,以完成单个头部预测。最后利用多头机制稳定节点分类任务的学习过程。
4.1. 图形级别:节点注意分支
注:本节就是讲了图注意力网络。对图结构的边进行自适应的权重分配,找到与中心节点相关性最高的节点。
邻接矩阵通常用于与图相关的任务中,以表示图上节点之间的关系。但它忽略了这样一个事实,即邻居对中心节点的贡献可能不同。在图的消息传递机制中,我们希望来自重要邻居的消息在收敛到中心节点时能够得到更多的关注。因此,在本工作中,节点注意分支用于根据图形任务的特点计算邻居对中心节点的贡献,从而为消息传递流分配不同的权重,如图2(a)所示。
图2:节点注意力分支。(a) NAB的目标是计算每个邻居与中心节点的相关性。不同的边缘颜色指示这些邻居在节点分类任务中的优先级。(b) 节点注意系数指示NAB中中心节点的邻居的重要性。
图2(b)说明了NAB的体系结构。与GAT类似,学习节点自我注意矩阵
β
v
s
β_{vs}
βvs,以确定相邻节点与中心节点
v
v
v之间的相关性,如方程(3)和(2)所示。
其中
e
v
s
e_{vs}
evs表示相邻节点s对中心节点
v
v
v的重要性。
γ
γ
γ表示自我注意机制,
W
W
W是权重矩阵。
x
v
x_v
xv和
x
s
x_s
xs是中心节点v和邻居节点
s
s
s的节点属性。
计算注意系数后,应用激活函数
σ
σ
σ获得最终的非线性节点属性,如方程(4)所示。
节点注意系数,表示NAB中邻居对中心节点的贡献。然而,尚未考虑每个节点的不同内部属性所扮演的角色。因此,添加了一个新的特征注意分支(FAB),以与NAB交互,更新节点的注意及其相应属性。更多详情见第4.2节。
4.2.特征级别:特征关注分支
节点分类任务的目标是根据节点的属性对其进行分类。在这个任务中,传统GNN首先从中心节点周围的邻居节点收集节点属性。然后在该目标节点上更新聚合属性,以进行类别预测。在这两个过程中,节点属性在所有要素维度上统一聚合和更新。然而,不考虑节点属性重要性的不加区分的处理可能会导致无关紧要的节点属性,从而导致冗余或限制消息传递过程中所需的属性。因此,基于节点属性的重要性评估节点属性的内部优先级至关重要,这样可以在消息传递过程中更仔细地检查具有代表性的特征。该策略提高了节点分类任务下的信息传输效率和网络性能。
理想情况下,将彻底检查每个节点的属性。然而,这将导致巨大的计算负担。为了确定属性的内部优先级并减少计算次数,我们提出了一种面向类别的自我注意机制。FAB由两个串联的模块组成:图形特征池(GFP)和图形特征上采样(GFU),如图3所示;第二个模块按类别区分这些属性的优先级。更多详情见第4.2.1和4.2.2节。
图3:特征注意分支(FAB)的目标是以面向类别的方式获取节点特征的内部优先级。该分支包含两个串行连接的主要模块:图形特征池(GFP)和图形特征上采样(GFU)。第一个模块在每个维度上选取突出的局部属性,并减小特征地图的大小。下一个模块计算更新的要素图上这些高亮显示的属性的优先级。为了减少计算负担,FAB过程由有限的节点类别执行。GFP和GFU的详细信息如图4和图5所示。
注:本节考虑节点特征的重要性。
传统GNN首先从中心节点周围的邻居节点手机节点属性,然后更新聚合属性进行类别预测。在这个过程中某节点属性在所有节点特征上统一聚合和更新。而节点内部的特征重要性不加区分的处理可能导致无关紧要的节点属性在节点之间进行消息传递,从而导致特征冗余,或是出现不重要节点特征被放大。
因此特征注意分支的作用就是用来检索节点中的代表性特征,提高分类任务下的信息传递效率和网络性能。
特征注意分支由两个模块组成:用于特征选择的GFP(图形特征池)和用于加强突出属性的GFU(图形特征上采样)
4.2.1.图形特征池模块
图4:图形特征池模块(GFP)旨在按类别突出显示本地突出和具有代表性的属性。原始2D特征矩阵按节点类别划分为C子特征矩阵。在每个子矩阵中,节点具有可比较的属性,并根据与平均特征向量x的相似性进行排序。然后,每个2D子特征矩阵被传输到具有特征维度
F
F
F深度的3D特征地图。最大池层突出显示每个通道上的突出局部属性(原始特征维度)。然后,这些本地代表性属性被发送到图形特征上采样(GFU)模块,以按类别计算节点的内部优先级。
为了确定每个节点中属性的内部优先级,一种直观的方法是计算所有节点属性的相关性。在这种情况下,计算负担等于
O
(
X
n
)
O(X_n)
O(Xn),其中
X
⊆
R
n
×
F
X⊆ R^{n×F}
X⊆Rn×F是整个图的特征矩阵,
n
n
n是图上的节点数。这种理想化的方法只能应用于较小的图,因为随着图上节点数的增加,计算负担可能会更重。然而,在实践中,我们经常会遇到在社交网络图等区域具有大量节点和边的较大图。
在节点分类任务下,我们使用面向类别的特征注意系数来探索节点属性,以平衡调查需求和分类计算。从图的角度来看,如果节点共享相似的属性,那么它们将被分类在一起。当在每个类别中调查节点内部属性的优先级时,可以在当前任务下对每个属性的相关性进行排序。现在可以选择最重要的属性并沿图形边缘发送,而不太重要的属性在消息传递机制中被抑制。这种基于优先级的消息处理有助于提高GNN在节点分类任务下的性能。
此外,节点类别的数量是有限的,远远低于节点总数。由于重点是按类别而不是单个节点对属性进行优先级排序,因此特征注意矩阵的数量等于图上节点类别的数量。每个特征维度的值在标记为相同节点类别的每个矩阵中共享相同的注意系数。由于按类别连接的注意矩阵的大小等于整个图的特征矩阵X的大小,因此在学习过程中,计算可以减少到
O
(
X
)
O(X)
O(X)。
在GFP中,必须首先将所有节点划分为有限组。具有相同类别的节点被分配到单个组中。根据这些新分配的组,原始2D特征矩阵
X
X
X也被划分为
C
C
C个子特征矩阵,如图4所示。每个矩阵中最具代表性的属性向量是平均特征向量,用于指示相应的类别,因为同一组和矩阵中的节点具有可比属性。根据每个节点属性与平均特征向量之间的相似性,在等式5中的每个子特征矩阵中对节点进行排序。
其中,
x
i
x_i
xi是平均特征向量,
m
i
m_i
mi是第i个子特征矩阵的特征向量数。符号
x
x
x表示子特征矩阵的每个特征向量,符号
⊙
⊙
⊙表示两个特征向量之间的点积。
由于相邻节点表示排序后的子特征矩阵中的相似属性,因此必须确定局部主导值,因为它们通过维度F表示最具代表性的属性。在这个过程中,每个2D矩阵
m
i
×
F
m_i×F
mi×F都被转换为相应的3D特征图
k
i
×
k
i
×
F
k_i×k_i×F
ki×ki×F,并标记为节点类别,其中F是3D特征图的深度,也是2D特征矩阵的尺寸。请注意,
c
i
_
n
c_i\_n
ci_n的平方根不一定是整数,因此ki四舍五入为方程式7中的最接近整数。换句话说,在大多数情况下,原始2D子特征矩阵
m
i
m_i
mi的形状增加到较大的值
k
i
2
k_i^2
ki2。
GFP的最后一步是在每个特征地图上用相应的类别突出最大池操作中的本地主导和代表性属性。
操作等于池过滤器的大小,更新后的特征图的尺寸由公式8给出。
步幅
s
s
s决定了用于计算GFU中节点内部优先级的代表性属性的数量。必须平衡计算负担和性能,因为步长值越大,计算负担越低,性能越差,而步长值较低,计算负担就越大。这将在第5.4.1节中进一步讨论。
注:
GFP(图形特征池模块)这个模块首先是对节点做了一个大致分类,这一块文章没有说太清楚(文中说的是节点共享相似属性的,那他们大概率是同类节点。但没有说具体则么做),就把所有节点分为
c
c
c个子特征矩阵,计算
c
c
c个子特征中节点相同特征的相关性,排序后将相关性高的特征进行强化。
但是他这里的相似性计算方式很值得借鉴,他提出了计算同类矩阵中各个向量的均值,再用均值向量与特征的向量之间计算相似度,找到重要的属性,通过这种方法将原来计算两两节点之间相似度之后排序的的算复杂度(
X
N
X^N
XN)减少到了(
X
X
X)次。
然后对已经分好类别的特征矩阵做一个升维操作,将同类别中的特征从2D矩阵转换为相应的3D特征矩阵,接着采用最大池化操作突出特征池中的代表性属性。(我觉得这一步主要是没了满足池化层的数据格式)
式8中
s
s
s表示节点内部优先级的代表性属性的数量。是一个超参数,设置过大,性能降低;设置过小,计算负担变大。
然而图形特征池模块更多是对于同类节点中相同属性之间的特征降维,是一种强制降维的方式,就因为是最大池化,他会选择值较大的留下来,较大的值也许会和分类任务更相关。
然而,这一部分只做了一个特征降维,节点内部特征的优先级还是没有说明。
4.2.2.图形特征上采样模块
虽然在GFP末尾突出显示了每个类别中的本地主要代表性节点属性,但代表性特征的内部优先级尚不清楚。因此,串行连接模块GFU的目标是获得不同类别中本地突出和代表性特征的内部优先级,如图5所示。
图5:图形特征上采样(GFU)模块的目标是按类别从GFP中获取本地突出和代表性特征的内部优先级。在升采样和变换之后,3D特征地图接下来将转换为2D子特征矩阵。
s
o
f
t
m
a
x
softmax
softmax函数通过具有特定值(0/1)的掩码获得代表性特征的内部优先级,以减少每个特征矩阵中的计算。最后,合并子特征矩阵,然后转换回更新的特征矩阵
X
0
X_0
X0。
在GFU中,首先执行上采样操作,以便将特征映射从大小
(
k
i
/
s
,
k
i
/
s
,
F
)
(k_i/s,k_i/s,F)
(ki/s,ki/s,F)恢复到
(
k
i
,
k
i
,
F
)
(k_i,k_i,F)
(ki,ki,F)。由于恢复的特征地图的总大小很大,矩阵中的空白位置用零填充,因为它们不会影响相应特征维度中的图形语义。接下来,执行转换操作,以将每个3D特征地图转换回2D子特征矩阵
X
0
X_0
X0。因为节点是由中的特征相似性指定的在GFP模块中,它们在每个子特征矩阵中按原始顺序排序。同时,还生成一个具有相同矩阵形状且具有特殊值
(
0
/
1
)
(0/1)
(0/1)的对应掩码,以记录局部代表特征的位置。每个遮罩中的值为1表示相应子特征矩阵中此位置的局部代表属性。相反,值0表示此位置的相应值在此类别中可能不具有代表性。
由于本地代表性属性已经在每个更新的特征矩阵中确定,因此现在可以利用它们按类别查找节点的内部优先级。在这一步中,将一个可学习的自我注意方案应用于等式9中的每个子特征矩阵。
其中
x
j
x_j
xj表示每个子特征矩阵中的
j
j
j维向量。
在等式9中,当前子特征矩阵仍然稠密,具有不同的语义值,导致了沉重的计算负担,即使这些值中的大多数在升采样后最终被替换为零。由于只需要局部主要特征和代表性特征,因此可以通过使用记录局部代表性特征位置的掩码来减少计算负担,从而允许在计算中忽略不必要的零。
L
e
a
y
R
e
L
U
LeayReLU
LeayReLU非线性被视为激活函数。因此,方程式9可以更新为:
其中
θ
θ
θ表示网络的最佳参数。
新的非线性节点
v
v
v的特征由方程式11中的激活函数应用。
由于采用了按类别划分的所有特征注意矩阵,特征矩阵
X
0
X_0
X0是通过将这些更新后的矩阵与最后一个子特征矩阵按其原始顺序合并而生成的,如图5所示。
最后一步是从图上的并行分支捕获两个注意矩阵。(N AB)和(F AB)的相互作用结合在一起,形成一个综合注意矩阵(IA),如方程12所示。
这个组合注意力矩阵包含了图结构的注意力信息和完成单个头部预测所需的节点内部属性。
注:
GFU目的是获取不同类别中节点本身的特征重要性。
首先执行上采样操作,将由图形特征池模块的到的结果展开回原始的输入尺寸,空白的位置用0填充,同时根据上一模块中计算的到的特征相似度产生一个具有特殊值的(0、1)掩码矩阵。0表示节点特征再子特征矩阵中具有代表性,0表示不具代表性。
此时在通过最大池化操作减少后的特征矩阵上进一步对节点特征较大的特征进行归0操作,保留下与最相关的特征值。
最后根据所得到的特征矩阵对节点
v
v
v进行跟新。
4.3.全球层面:多头注意机制
以上各节描述了单头层的体系结构。最后利用多头机制稳定节点分类任务下的学习过程,有利于GAT。与GAT不同,多头部注意机制在方程式13中的每个头部上分配不同的注意c。
式中
ζ
ζ
ζ为多个多头的数量。由于这些特征是用不同的头部关注度连接起来的,因此计算平均值以使用交叉熵中的损失函数进行最终节点分类。
注:全局看上去更像是并行训练
5. 总结
文章的掩码创建,特征相似度计算和图注意力网络部分很值得参考。
还有根据神经网络倾向于从数据多的类别中学习特征这个点(原文中的第二章第二节第一段),因而引出文章的对所有数据进行预分类后进行网络。虽然文章这一块没有写清楚,(也有可能我没看出来,能力有限。。。)这一块也是值得思考的部分。