背景
可靠的样本图是GNN的基础[1],然而实际应用中,容易出现图形不可用[2]、节点存在噪声特征[3]、图结构不完整[4]等问题。
GL-GNN通过以下方法进行解决这些问题:
通过同时学习样本的多个关系图和图的关系网络→解决图形不可用问题。
通过选择关键特征和关键图→解决节点存在噪声特征及图结构不完整这两个问题。
从不同因素学习图→提取各种特征子集来学习图→聚合图(设计一个图网络来学习图)→该模块由多个子模块组成(每个模块学习数据样本的关系图)→每个模块学习数据样本(并选择重要的节点特征)的关系图→构建图网络(学习子模块的关系网络和子模块的聚合模块→学习到的图形进一步与聚合模块)
主要贡献
1.提出了一种新的GNN
在考虑不同因素(factors)(比如朋友关系、工作关系???)、关键数据特征的及这些因素的网络的同时学习图网络。
2.同时学习图和半监督分类器
因此在图分类器器的训练中可对图进行调整→使得GNN能够应用于图未知或不完整、节点有噪声数据的场景,拓展了GNN的应用范围。
方法
考虑n个数据样本,
X
=
(
x
i
)
i
=
1
N
X=(x_{i})_{i=1}^N
X=(xi)i=1N,其中
x
i
∈
R
F
x_{i}\in R^{F}
xi∈RF且F时是特征的维度。数据样本的标签的独热编码为
Y
=
(
y
i
)
i
=
1
N
Y=(y_{i})_{i=1}^N
Y=(yi)i=1N,其中
y
i
∈
R
C
且
C
为标签的数量。
y_i\in R^{C}且C 为标签的数量。
yi∈RC且C为标签的数量。
具体来说考虑以下半监督分类:
①当图不可用时,学习节点间的关系并去除样本中不重要的特征。
②当图标可用时,选择重要的特征并删除不重要的特征和图中的噪声边。
整体模型
图形定义
图形定义为三元组{n,e,w},其中n为节点集,e⊆ v*v为边集,w为边的权重。
模型结构
整体结构为下图,包括一个图学习模块(提取、处理所需图像),一个图网络学习模块[5](训练模型),一个聚合模块。GL-GNN通过学习图M的子模块中的子模块得到图M。
使用多个子模块的图形学习
每个子模块包括三个部分:关键特征学习、关键图学习、特征更新。以子模块m为例进行如下解释。在样本关系学习算法中,每个子模块学习数据样本以及从离散分布中采样的关系图。
关键特征学习
包含嘈杂的噪声会使模型学习变得困难,使用选择向量 ( s m ) m = 1 M , s m ∈ R F (s_{m})_{m=1}^{M}, s_{m} \in R^{F} (sm)m=1M,sm∈RF过滤噪声特征并保留关键特征以进行图学习。模型中不同子模块共享相同的结构但具有独立的参数,文章通过将特征X的每一行与Sm相乘以得到过滤后的特征。即根据 X ~ m = X m ⊙ s m \widetilde{X}_{m}=X_{m}\odot s_{m} X m=Xm⊙sm得到 X ~ m \widetilde{X}_{m} X m,其形状为 ( X ~ m , i ) m = 1 , i = 1 M , N (\widetilde{X}_{m,i})_{m=1, i=1}^{M,N} (X m,i)m=1,i=1M,N。其中选择向量Sm哈有助于为预测提供解释,即说明哪些特征是有助于分类的。
选择向量中标有黄色块的特征是需要过滤掉的特征。选择特征最开始初始化的值统一从(0,1)选择。即选择特征刚开始鼓励M的子模块关注M的特征子集学习图结构和嵌入向量,而在下一轮迭代中选择向量则鼓励M的子模块选择正确的特征。在学习的结束,用较小值标记的特征维度将会指示出噪音特征(????)。
关键图学习
考虑到实际应用中,需要数据样本具有内在联系。考虑标签Y具有潜在信息,在GL-GNN中文章将标签Y认为是一个特征并将其与
X
~
\widetilde{X}
X
连接来扩充特征。即
X
~
m
,
i
′
=
C
o
n
c
a
t
(
X
~
m
,
i
,
Y
i
)
\widetilde{X}_{m, i }^{' } = Concat(\widetilde{X}_{m, i }, Y_{i })
X
m,i′=Concat(X
m,i,Yi)[6]。
不过在测试阶段,文章将连接的标签替换为0去避免监督披露[7](这里可能是指直接将标签喂给模型吧?)。且GL-GNN在除了在每轮迭代学习数据样本中的关系,还利用了上次迭代中学到的图。
将t-1轮迭代中获得的样本图作为重要的先验知识,文章引入了一个变量V来衡量样本间关系的强度,样本i和样本j之间的关系系数为
R
m
,
i
,
j
=
V
i
,
j
+
S
o
f
t
m
a
x
(
X
~
m
,
i
,
⋅
′
,
X
~
m
,
⋅
,
j
′
T
)
.
R_{m, i, j}=V_{i,j}+Softmax(\widetilde{X}_{m, i, \cdot}^{'}, \widetilde{X}_{m, \cdot, j}^{'T}).
Rm,i,j=Vi,j+Softmax(X
m,i,⋅′,X
m,⋅,j′T).
然而由于V是个有N*N个元素的矩阵,太多参数会影响高效学习。考虑样本对之间的关系与它们的拓扑距离密切相关,故而对任意的i,j,
j
′
j_{'}
j′∈{1,……N},如果j和j’都是节点i跳数
λ
{\lambda}
λ<=K跳的邻居令
V
i
,
j
=
V
i
,
j
′
=
V
~
λ
V _ { i , j } = V _ { i , j ' } = \widetilde{V} _{\lambda }
Vi,j=Vi,j′=V
λ,对
λ
{\lambda}
λ>K的令
V
i
,
j
=
V
i
,
j
′
=
V
~
o
V _ { i , j } = V _ { i , j ' } = \widetilde{V} _{o }
Vi,j=Vi,j′=V
o。
这种优化降低了V.的复杂度,将计算消耗从 O(N^2) 降低到 O(1)。
具体来说,根据上一轮迭代得到的关系图(
A
m
l
\begin{matrix}A_{m}^{l}\end{matrix}
Aml)
H
m
,
:
,
:
λ
=
[
A
m
,
:
,
:
l
]
λ
H_{m,:,:}^{\lambda }=\left [\begin{matrix}A_{m,:,:}^{l}\end{matrix}\right ]^{\lambda }
Hm,:,:λ=[Am,:,:l]λ计算得到每个样本的
λ
\lambda
λ跳邻居。
由此我们得到节点i和节点j在第t轮时的关系(其中
H
~
\widetilde H
H
表示λ跳邻接矩阵):
R
m
,
i
,
j
=
S
o
f
t
m
a
x
(
X
~
m
,
i
,
.
′
X
~
m
,
:
,
j
′
T
)
+
(
∑
k
=
1
K
H
m
,
i
,
j
k
V
~
k
+
H
~
V
~
o
)
,
R_{m,i,j}=Softmax(\widetilde{X}^{'}_{m,i,.}\widetilde{X}^{'T}_{m,:,j})+(\sum _{k=1}^{K}H^{k}_{m,i,j}\widetilde{V}_{k}+\widetilde{H}\widetilde{V}_{o}),
Rm,i,j=Softmax(X
m,i,.′X
m,:,j′T)+(k=1∑KHm,i,jkV
k+H
V
o),
然后我们保留
R
m
,
:
,
:
R_{m,:,:}
Rm,:,:每行的前k个值并将其他的值设为0以获得邻接矩阵
A
m
,
:
,
:
A_{m,:,:}
Am,:,:。
功能更新
使用两层广义GCN更新特征:
①对得到的邻接矩阵(
A
m
{A}_m
Am)进行归一化得到
A
~
m
,
⋯
=
D
−
1
/
2
(
A
m
,
⋯
+
I
)
D
−
1
/
2
\widetilde{A}_{m,\cdots}=D^{-1/2}(A_{m,\cdots}+I)D^{-1/2}
A
m,⋯=D−1/2(Am,⋯+I)D−1/2,其中D是一个对角矩阵(对于任意的m ϵ {1,…,M},D(i,j)=1+
∑
j
A
m
,
i
,
j
∑_j A_{m,i,j}
∑jAm,i,j)
②然后将原始输出的特征
X
~
\widetilde{X}
X
更新为(W为层中的权重参数):
X
~
m
,
⋯
(
1
)
=
R
e
L
U
(
A
~
m
,
⋯
,
X
~
m
,
⋯
W
(
1
)
)
\widetilde{X}_{m,\cdots}^{(1)}=ReLU(\widetilde{A}_{m,\cdots},\widetilde{X}_{m,\cdots}W^{(1)})
X
m,⋯(1)=ReLU(A
m,⋯,X
m,⋯W(1))(第一个GCN隐藏层更新的特征)
X
~
m
,
⋯
(
2
)
=
S
o
f
t
m
a
x
(
A
~
m
,
⋯
,
X
~
m
,
⋯
W
(
2
)
)
\widetilde{X}_{m,\cdots}^{(2)}=Softmax(\widetilde{A}_{m,\cdots},\widetilde{X}_{m,\cdots}W^{(2)})
X
m,⋯(2)=Softmax(A
m,⋯,X
m,⋯W(2))(第二个GCN隐藏层更新的特征)
需要指出的时,嵌入是通过第二个GCN隐藏层输出的
X
~
m
,
⋯
(
2
)
\widetilde{X}_{m,\cdots}^{(2)}
X
m,⋯(2),表示为
Z
m
,
⋯
Z_{m,\cdots}
Zm,⋯,同时也被视为子模块的嵌入
m
.
Z
m
,
⋯
{m.}Z_{m,\cdots}
m.Zm,⋯.子模块的嵌入将进一步被用来学习图形网络。
使用图网络进行聚合
聚合模块构建了一个图网络来融合来自其他子模块的信息,该图网络的边表示不同子模块之间的注意力系数,聚合模块会根据这些系数来融合来自不同子模块的信息。
明天写
补充知识
背景补充知识
[1]可靠的样本图是GNN的基础
图神经网络(GNN)是一类专门处理图结构数据的深度学习模型,它们能够在节点、边和整个图的层面上捕获复杂的模式和关系。在许多应用中,可靠的样本图是GNN成功应用的基础,因为它们为模型提供了学习和泛化所必需的关键信息。下面将详细分析为何可靠的样本图对GNN至关重要:
- 图结构的完整性
- 数据质量:可靠的样本图意味着图中的数据是准确和完整的,这对于GNN学习节点间真实的关系至关重要。
- 图连通性:一个完整的图能够确保节点之间的连通性,这对于信息在图中的传播至关重要。
- 图结构的代表性
- 样本多样性:一个具有代表性的样本图应该包含来自不同类别或类型的节点和边,这有助于GNN学习到更泛化的特征表示。
- 无偏样本:避免采样偏差是确保图代表性的关键,这样GNN才能在实际应用中做出准确的预测。
- 图结构的一致性
- 数据一致性:可靠的样本图应该在其特征和标签上保持一致,这意味着相似的节点应该具有相似的表示。
- 结构一致性:图的结构应该反映出实际数据中的关联,这对于GNN学习正确的关系模式至关重要。
- 图结构的语义丰富性
- 丰富的语义信息:可靠的样本图应包含丰富的语义信息,这有助于GNN更好地理解节点间的复杂交互。
- 多维度特征:图中的节点和边应具有多维度的特征,这为GNN提供了更多的学习信号。
- 图结构的规模适中性
- 可管理的数据规模:可靠的样本图应该在保证数据完整性的同时,具有适中的规模,以便能够在现有的计算资源上有效处理。
- 高效的子采样技术:通过子采样技术构建的样本图应该在保留全图语义的同时,减少计算负担,从而提高GNN的训练效率。
- 图结构的泛化能力
- 泛化能力:可靠的样本图应该能够帮助GNN泛化到未见数据,这是评估模型性能的关键指标。
- 跨域适应性:样本图应具有一定的适应性,使得在其中一个领域训练的GNN能够迁移到其他领域。
- 图结构的数据预处理
- 数据清洗:可靠的样本图需要经过适当的数据清洗,以去除噪声和不一致的数据,这对于提高GNN的性能至关重要。
- 特征工程:有效的特征工程可以增强图的可靠性,使得GNN能够更好地从图中学习。
综上所述,可靠的样本图是GNN成功应用的基础,因为它们提供了高质量、代表性、一致性、语义丰富、规模适中、具有泛化能力的数据,这些都是GNN学习和预测的关键因素。为了构建这样的样本图,需要进行适当的数据预处理和特征工程,以确保图的结构能够满足GNN的需求。这些因素共同作用,使得GNN能够在各种任务中实现卓越的性能。
[2]图形不可用
在许多实际应用中,完整的图形结构可能无法直接获得。例如,在推荐系统中,用户之间的交互信息可能是有限的,导致无法构建一个完整的用户关系图。
缺乏图形结构限制了GNN的应用,因为GNN依赖于图结构来传播节点之间的信息,并通过迭代消息传递机制学习节点表示。
当图形不可用时,GNN无法有效地利用其核心机制——图结构的信息传递和聚合,从而影响模型性能。
[3]节点包含噪声特征
实际数据中的特征往往包含噪声,这些噪声可能源于数据采集的错误、数据预处理的不当或外部环境的影响。
噪声特征会影响GNN的学习过程,因为GNN通过邻居节点特征的聚合来更新节点表示,噪声特征会被传播到相邻节点,影响整个图的表示学习。
这种噪声传播现象可能导致GNN在训练过程中收敛到错误的局部最优解,降低模型的泛化能力和预测准确性。
[4]图结构不完整
在现实世界的应用场景中,获取的图往往是不完整的,即存在缺失的边或节点。这可能是因为观察数据的限制或者数据收集过程中的遗漏。
图形的不完整性对GNN的学习造成障碍,因为GNN需要完整的图结构来准确地捕获节点间的依赖关系和模式。
缺失的边或节点可能导致GNN在学习过程中丢失重要的信息传递路径,从而影响模型对图数据的理解和最终的预测结果。
整体模型补充知识
[5]图学习模块和图网络学习模块是两种不同的计算机视觉和机器学习技术,它们在处理和分析图形数据方面具有相似性,但在实现方式和应用方面存在一些区别。
-
定义:
- 图学习模块:图学习是一种基于图的学习方法,它通过构建和分析图形结构来表示和处理数据。图学习可以用于各种任务,如分类、聚类、推荐系统等。常见的图学习方法包括图神经网络(GNN)、图嵌入(Graph Embedding)和图注意力机制(Graph Attention Mechanism)。
- 图网络学习模块:图网络学习是指在深度学习框架中实现的图学习方法。它通常使用神经网络模型来处理和分析图形数据。图网络学习模块可以是一个独立的库或工具,也可以是集成到其他深度学习框架中的组件。
-
实现方式:
- 图学习模块:图学习模块通常使用专门的算法和技术来处理图形数据,如邻接矩阵、邻接列表、节点特征等。这些方法可以是基于规则的方法(如图卷积、谱分解等),也可以是基于深度学习的方法(如图神经网络)。
- 图网络学习模块:图网络学习模块通常使用神经网络模型来处理图形数据。这些模型可以是前馈神经网络、卷积神经网络、循环神经网络等。在图网络中,节点之间的连接被建模为边,而整个图形被建模为一个整体。
-
应用范围:
- 图学习模块:图学习可以应用于各种任务,如社交网络分析、知识图谱构建、生物信息学等。它可以解决与图形相关的各种问题,如实体识别、关系抽取、属性预测等。
- 图网络学习模块:图网络学习主要应用于深度学习领域,特别是与图形相关的任务。它可以用于图像分类、物体检测、语义分割等任务,也可以用于生成对抗网络(GANs)和其他生成模型。
总之,图学习模块和图网络学习模块都是用于处理和分析图形数据的技术,但它们的实现方式和应用范围有所不同。
**[6]**考虑到标签包含潜在信息,在 GL-GNN 中,我们处
理 作为一个功能,并将其与 以增强功能。——这种做法合理吗?不是说对于分类任务来说,标签是目的,是不能预先获得的不是吗?
在处理分类任务时,标签通常被视为模型训练的目标,是模型试图预测的未知结果。因此,在这种情况下,标签通常不会作为预先获得的信息来使用。然而,您提到的“将标签视为包含潜在信息的功能”可能指的是某种特定的学习策略或模型设计,这可能是一种非传统的处理方法。让我们探讨这种方法的可能含义和合理性:
-
标签作为潜在信息的处理方法:
- 在某些情况下,尽管标签不是预先获得的,研究人员可能会探索标签空间的某些结构或先验知识,以帮助改善模型的性能。例如,如果标签之间存在某种已知的关系或层次结构,这种信息可以被编码为潜在的标签向量。
- 这种做法可能有助于模型捕捉到标签之间的复杂关系,尤其是在标签数量很大或具有特定结构的情况下。
-
结合标签功能的GL-GNN:
- 在GL-GNN中,如果将标签处理为一个功能,可能意味着在图神经网络的框架内,标签不仅仅是用作监督学习的简单目标变量,而是以更复杂的方式与图的结构特征相结合。
- 通过将标签的潜在表示与图结构信息结合,可以增强模型对数据的理解,尤其是在图数据中,节点的标签可能与其邻居的标签相关联。
-
合理性分析:
- 这种方法的合理性取决于具体的应用场景和数据特性。如果标签之间存在可利用的结构信息,那么将其作为潜在功能结合到模型中可能是有益的。
- 然而,这种做法可能需要更多的数据预处理和模型设计的考虑,以确保正确地利用这些潜在信息,而不是引入偏差或过拟合。
总结来说,虽然标签在分类任务中通常是作为目标存在的,但在一些特定情况下,将标签视为包含潜在信息的功能并结合到模型中,可能是一种创新的方法来提高模型的性能。然而,这种做法需要谨慎考虑其适用性和潜在的影响。
**[7]**监督披露
在深度学习领域,“监督披露”可能指的是监督学习中的数据集公开。这包括将标记好的训练数据(带有标签的数据)提供给研究人员和开发者,以便他们可以使用这些数据来训练和测试他们的机器学习模型。这样的数据共享有助于推动技术的发展和应用。
这里可能是指直接将标签喂给模型吧?