图神经网络的图网络学习(上)
原文:Learning the Network of Graphs for Graph Neural Networks
摘要
图神经网络 (GNN) 在许多使用图结构数据的场景中取得了巨大成功。然而,在许多实际应用中,在应用 GNN 时存在三个问题:图未知、节点具有噪声特征以及图包含噪声连接。为了解决这些问题,我们提出了一种新的图神经网络,称为 GL-GNN。我们的模型包括多个子模块,每个子模块选择重要的数据特征,并在图未知时学习数据样本对应的关键关系图。 GL-GNN 通过学习子模块的网络进一步得到图的网络。使用图网络上的聚合方法进一步融合学习到的图。我们的模型通过同时学习多个数据样本的关系图以及图的关系网络来解决第一个问题,并通过选择重要的数据特征以及重要的数据样本关系来解决第二个和第三个问题。我们将我们的方法与图未知时在七个数据集上的 14 种基线方法和在图已知时在两个数据集上的 11 种基线方法进行比较。结果表明,我们的方法比基线方法具有更好的准确性,并且能够从数据集中选择重要的特征和图形边缘。
1. 引言
GNN在许多领域取得了巨大的成功,例如在社交网络 [1]、[2]、推荐系统 [3]、[4]、药理学 [5] 和计算机视觉系统 [6]、[7]、[8] 等许多领域取得了巨大成功。 GNN 的优点之一是它能够利用数据中的关系信息。通过结合数据关系,学习算法通常可以使用来自关系 [9] 的信息来增强特征,从而获得更好的性能。例如,在文章主题识别问题中,文章之间的引用往往代表相似的主题,因此可以用于以半监督的方式识别文章主题。半监督学习方法是一组算法,在训练期间将一小部分标记数据与大量未标记数据结合起来[10]。GNN 广泛用于处理半监督分类问题,其中每个数据样本都被视为图中的一个节点,并且使用通过节点特征和训练标签训练的模型来预测图中未标记的节点。
然而,图在实际应用中通常是不完美的。在某些情况下,噪声节点特征和噪声节点关系(即图边)可能存在于数据集中。例如,在推荐系统中,社交网络信息和用户信息都是有噪声的,因此选择正确的社交网络连接和用户信息是成功推荐的关键。解决这些问题可以极大地扩展 GNN 的应用。在其他一些情况下,数据不包含图,算法需要联合学习图结构和模型参数。在这些情况下,一些算法使用两阶段程序。这些算法首先使用传统方法学习图,然后使用 GNN 方法解决目标问题。学习图最常用的方法是 k 最近邻(kNN)[11],[12]。NLE[13]是另一种最近提出的内在结构学习算法,它根据样本的固有属性自适应地选择邻居。受 NLE 的启发,DLLE[12] 通过估计输入数据的概率密度函数,提出了一种新的邻域查找方法。
对于之前的方法,图的构建和模型参数的学习是分开进行的,构建的图在训练过程中是不能调整的。因此,在最近提出的一些方法中,图结构和模型参数是同时学习的。在[14]中,提出了一种名为LDS的方法,可以通过求解双层程序来联合学习图结构和模型参数。 Graphite[15] 是最近提出的一种基于变分自编码器用于学习节点表示的无监督模型,它使用 GNN 对编码器和解码器进行参数化,并使用多层迭代过程来构建和细化图结构。
然而,样本之间的关系是由于许多相关因素造成的。以前的方法既没有考虑不同的因素,也没有考虑这些因素之间的关系。在本文中,我们提出了一种新的图神经网络,称为 GL-GNN,它能够学习图的网络,并使用获得的网络从不同方面学习图。我们的算法由多个子模块组成,每个子模块学习数据样本的关系图。
在本文中,网络也是一个图,其节点是在子模块中学习到的图。
图的网络是通过学习子模块和聚合模块的关系网络来构建的。学习到的图进一步与图网络上的聚合方法融合。每个子模块选择重要的节点特征,从不同的特征方面学习数据样本的对应关系图。这些子模块具有不同的参数,但具有相同的神经网络结构。数据样本的关系图和图关系网络是同时学习的。
据我们所知,这是第一个能够同时学习图网络、重要数据特征和数据样本的关键关系图的 GNN。(看样子作者对自己的模型还是很看好的)
我们的模型还可以为预测提供解释。我们遵循[16]中GNN Explainer中提出的可解释定义。具体来说,模型的预测值 y ^ \hat y y^ 的解释定义为 ( G S , X S ) (G_S , X_S ) (GS,XS),其中 G S G_S GS 是数据样本关系图的子图, X S X_S XS 是节点特征的子集, G S , X S G_S , X_S GS,XS是与 y ^ \hat y y^最相关的子图和特征。我们使用指示向量去除噪声特征并重建数据样本的关系图以去除给定图中的噪声边缘。因此,剩余的特征和关系是解释我们的预测最相关的部分。
我们的主要贡献如下:
- 我们提出了一种新颖的 GNN,它可以使用图网络同时学习图结构、重要数据特征和数据样本的关键关系图。据我们所知,这是第一个使用图网络来学习 GNN 的图结构的模型。
- 我们的方法同时学习图和半监督分类器,因此可以在分类器的训练过程中调整图。该属性允许我们的方法应用于图未知、节点具有噪声特征以及图包含噪声连接的场景,这扩展了 GNN 的应用。
- 我们将我们的方法与14 种基线方法在位置图上进行比较(table1),同时在已知图上与 11基线方法进行了对比(table3),这其中包括能够学习图的最新方法和使用 kNN 学习图的两阶段方法。结果表明,我们的方法比基线方法取得了更好的性能。
- 在 7 个真实数据集上的实验表明,我们的算法可以去除噪声的特征子集和节点的噪声关系(即学习关键特征和关键图边)。
点评:引言到这里基本就结束了,剩下的就是对全文的框架的一个总结以及对符号的一个定义。通过引言来看,这篇文章做了很多关于图数据的去噪工作。从最开始的knn+gnn到后面的LDS最后到作者的模型GL-GNN,整体行文还是很有逻辑同时在每个论点里都有足够的论据,这点也是我们以后写文章需要借鉴的。同时通过这篇文章我们也可以清晰的看到的趋势:
1.在深度学习的领域就是要做到更多的让机器来自主的学习,同时要避免人为的因素过多的干预。
2.模型相关的解释性。
2. 相关工作
作者在相关工作这一章通过四个小结来说明分别是:
2.1 GNN:
介绍了GNN的由来以及后面的发展,感觉主要是介绍了谱分解方法。
2.2 GNN 的图学习:
为了在没有图的应用程序中使用图神经网络方法,我们需要从数据中学习图。 kNN 是一种简单但有效的图结构学习方法,因此广泛用于两阶段方法,即先学习图,然后使用固定图来学习图神经网络。
在[14]中,LDS使用双层优化算法同时学习数据样本之间的离散和稀疏依赖关系以及图卷积网络(GCN)的参数。 LDS 是第一种在半监督节点分类问题中同时学习图和神经网络参数的方法,并且比两阶段方法取得了更好的性能。这条路线之后是最近提出的 DIAL-GNN [20]。我们提出的方法也遵循这条路线,但引入了一种基于图网络的方法来学习图和神经网络参数。
2.3 链接预测;
与图学习类似的工作是链接预测。大多数链接预测都是采用相似度度量的形式,但也有基于深度学习的方法,例如 Wlnm[21]。一些算法使用概率生成模型来学习图结构。概率生成模型起源于随机图生成模型[22],后来衍生出许多其他算法,如度分布[23]。
2.4 预测解释
大多数深度学习模型都是黑匣子,这会阻止开发人员选择有用的数据信息,导致计算资源的使用效率低下[24]。因此,深度神经网络的预测解释是一项重要的任务。
在 [24] 中,作者提出了一种称为 LIME 的方法,该方法可以通过使用另一个可解释模型逼近原始模型来为许多分类器提供忠实的可解释性。 [24] 中还提出了一种称为 SP-LIME 的方法,该方法通过选择具有解释的代表集来提供直观的全局模型解释。然而,这些算法并不是为 GNN 设计的。因此,在 [16] 中,Ying 等人。提出 GNNExplainer,它通过学习一个重要的子图和一个重要的节点特征子集,为 GNN 模型生成一致且简洁的解释。
据此第二章也结束了,说说感受。感觉第二章相关工作和其他的文章不太一样。作者通过自己模型中运用到的模块进行分类,然后每个分类再进行介绍。通过这章也再次印证了,将多种模型进行融合然后来解决一个相对困难的问题,是一个未来的趋势。
3. 方法
我们考虑 N 个数据样本, X = { x i } i = 1 N X =\{x_i\}^N_{i=1} X={xi}i=1N,其中 x i ∈ R F x_i ∈R^F xi∈RF和 F F F是特征的维度。数据样本的 o n e − h o t one-hot one−hot标签为 Y = { y i } i = 1 N Y = \{y_i\}^N_{i=1} Y={yi}i=1N,其中 y i ∈ R C y_i \in R^C yi∈RC和 C C C表示有多少种类。在许多机器学习方法中,样本独立性是一个基本假设。然而,在许多实际应用中,数据样本之间存在内在联系。利用这些关系将提高算法性能。
传统的图神经网络方法在图结构数据集的半监督分类任务中取得了良好的性能。然而,该图通常是嘈杂的或完全不可用的。因此,在本文中,我们旨在将 GNN 应用于图不可用、节点具有噪声特征和图包含噪声连接的场景。具体来说,我们考虑以下情况进行半监督节点分类: (1)当图未知时,我们学习节点之间的关系(即数据样本的图)并去除数据样本的不重要特征; (2)当图已知时,我们去除图中不重要的特征和噪声边缘。
模型全貌
我们方法的整体结构如图1所示。数据样本被输入到M个子模块中,以独立学习M个样本关系图。 M个图以及M个学习到的特征被进一步输入到图网络学习模块中,学习一个图网络,然后用于图聚合模块生成图和分类结果。每个子模块的整体结构如图2所示。
有没有门控网络的感觉或者lstm网络,但是这样的模型感觉不能堆叠很多层,毕竟只是用到了上一层学习的参数
参数和图结构是同时学习的,因此我们学习的离散结构可以在神经网络学习过程中进行自适应调整。我们的模型包括两部分:使用多个子模块的图学习算法和图学习算法网络。在图学习算法中,每个子模块选择节点特征,学习数据样本对应的关系图。在图网络学习算法中,我们学习子模块的网络。
接下来我们看下作者给的结构图了,初次看这个图的时候感觉很迷有没有,这画的是个什么。后来仔细观察了一下,才恍然大悟,图1中上下两个代表两层,图2是图1中的第一步中的一个子图模块(文中叫多子模块的图学习算法——multiple sub-modules )。我感觉这个流程图画的没有那么让人一看就懂,但是整体配色还是不错的,值得我们借鉴学习。
那么Multiple sub-modules就是下面的这张图
接下来文章给出了整个公式的推导过程,并且还很暖心的给出了一个伪代码,这里就不一一列举了(主要是太多,而我又太懒)。唯一一个我想说下的就是文章中一共给出了三个损失函数:
1.关系矩阵(就是上面图上的-- learn network of graphs N)
2.节点分类(就是文章中的标签Y)
3.类型的损失函数(就是文章中的C,还记得上面写的那个关系式 y i ∈ R C y_i\in R^C yi∈RC ,对了就是这个C。这真是小刀拉屁股开开眼了,没想到这个分类的种类都不是固定的)
其中 μ L 1 μ_{L_1} μL1和 μ L 2 μ_{L_2} μL2是损失 L 1 L_1 L1和 L 2 L_2 L2的权重, L R L_R LR是正则化操作的损失。(开始我还以为损失 L 1 L_1 L1和 L 2 L_2 L2,就是常规的那种正则化后的损失,后来转念一想,不对,应该是上面的式子中。)
据此第三章也就在我各种疯狂的删除后,结束了。点评一下第三章中作者通过数学表达式详细的将整个模型的各个模块都说的很清楚,同时也给出了模型结构图以及伪代码。相信仔细看过的人应该是能理解作者的相关思路以及模型的基本思想。
通过第三章我们总结如下:
1.文章通过数学表达式的方式将所有模块解释的清清楚楚,相信任何审稿人也是不会拒绝这样的一篇文章
2.同时作者贴心的给出了伪代码,并且通过伪代码的形式将文章中除了定义部分外的其他的公式都总结到一起,进一步给审稿人一种清晰明了的感觉,这真的是值得我们学习的方面。
3.给出模型结构图,我还是刚才的那句话,这个模型的结构图给的有点冗余,起码来说图一中的上面的那个部分可以不要,但是不得不说整个图给我一种赏心悦目的感觉(配色)。这点是值得我们学习的,同时在图2中继续给出了图1的模块的解释,有全局、有局部。这点也是我们以后写作中要学习的。
4. 实验
实验部分的具体参数就请大家移步去看原文了,要是懒得去看,我这里为各位看官将实验结果贴出来以供大家借鉴学习。