阅读笔记Graph Representation Learning--Chapter6

系列文章目录

阅读笔记Graph Representation Learning–Chapter2

阅读笔记Graph Representation Learning–Chapter3

阅读笔记Graph Representation Learning–Chapter4

阅读笔记Graph Representation Learning–Chapter5

阅读笔记Graph Representation Learning–Chapter6

阅读笔记Graph Representation Learning–Chapter8


# Graph Neural Networks inPractice 在第五章中,我们介绍了一些图神经网络(GNN)的结构。然而,我们没有讨论如何优化这些结构,以及通常使用什么类型的损失函数和正则化。在本章中,我们将把注意力转向GNN的一些实际方面。我们将讨论一些有代表性的应用,以及如何在实践中优化gnn,包括讨论无监督的预训练方法,这些方法可能特别有效。我们还将介绍一些常用的技术来规范和提高GNNs的效率。

6.1 Applications and Loss Functions

在当前的绝大多数应用中,gnn用于三个任务之一:节点分类、图分类或关系预测。如第一章所述,这些任务反映了大量的现实应用,如预测用户是否是社交网络中的机器人(节点分类)、基于分子图结构的属性预测(图分类)、在线平台的内容推荐(关系预测),我们简要描述了这些任务如何转化为GNN的具体损失函数,并讨论了如何在无监督的情况下对GNN进行预训练,以提高这些下游任务的性能。

6.1.1 GNNs for Node Classification

常用的损失函数为:
在这里插入图片描述
softmax的计算方式如下:
在这里插入图片描述
在这里插入图片描述
Supervised, semi-supervised, transductive, and inductive
在这里插入图片描述
在这里插入图片描述

6.1.2 GNNs for Graph Classification

在这里插入图片描述

6.1.3 GNNs for Relation Prediction

关系预测可以用于推荐系统,知识图谱补全。一般是把两个节点由GNN得出的embedding送入成对损失函数中。

6.1.4 Pre-training GNNs

研究人员发现使用随机参数初始化的GNN几乎和经过邻域重建预训练的GNN有同等的效果。作者认为这可能是因为:GNN消息传递已经有效地编码了邻域信息。由于消息传递的结构,图中的邻近节点往往在GNN中具有类似的嵌入,因此强制执行邻近重建损失可能是多余的。尽管在进行邻域重建损失的预训练方面存在负面结果,但使用其他预训练策略仍取得了积极结果。比如 Deep Graph Infomax(DGI) 该方法涉及最大化节点嵌入zu和图嵌入zG之间的相互信息:
在这里插入图片描述
大致意思是:我们先用GNN对于原图G的节点u生成一个embedding Z,然后对G进行修改(通常,通过以某种随机方式(例如,特征矩阵的改组条目)修改节点特征,邻接矩阵或两者来破坏图)。使用GNN在被修改的图上得到节点u的embedding Z_,D是一个判别函数。我们使用GNN得到的两个embedding以及原图的embedding输入D中要满足上式。即D能判别出Z属于原图,而Z_属于原图。可以看出,这种优化与最大化节点嵌入zu和图级嵌入zG之间的互信息密切相关。这些无监督的训练策略通常包括训练gnn,以最大化不同层次表示之间的互信息,或区分真实的嵌入和损坏的嵌入对。

6.2 Efficiency Concerns and Node Sampling

在第五章中,我们主要从节点级消息传递方程的角度来讨论GNNs。然而,基于这些方程直接实现GNN可能在计算上效率低下。例如,如果多个节点共享邻居,如果我们为图中的所有节点独立地实现消息传递操作,我们可能最终会执行冗余计算。在本节中,我们将讨论一些可以有效地实现GNNs的策略。

6.2.1 Graph-level Implementations

在这里插入图片描述
使用这些方程的好处是没有多余的计算。然而,这种方法的局限性在于它需要同时对整个图和所有节点特征进行操作,这可能由于内存限制而不可行。此外,使用图级方程本质上限制了一个到整批(而不是小批量)的梯度下降。

6.2.2 Subsampling and Mini-Batching

为了限制GNN的内存占用并便于小批量训练,可以在消息传递过程中处理节点的子集。从数学上讲,我们可以把它看作是在每个批处理中运行图中节点子集的节点级GNN方程。缺点是当我们使用子图来进行消息传递时,不可避免的会丢失信息。无法保证选择节点的随机子集甚至会构成连通图,并且为每个小批量选择节点的随机子集会对模型性能产生严重的不利影响。他提出了一种通过对节点邻域进行二次抽样来克服这个问题的策略。其基本思想是先选择一组目标节点进行批处理,然后对这些节点的邻域进行递归采样,以保证图的连通性。为了避免批量采样过多节点的可能性,Hamilton等人[2017b]提出对每个节点的邻居进行子采样,使用固定的样本大小来提高批量张量运算的效率。在后续工作中提出了额外的子抽样思想【Chen等人,2018年】,这些方法对于使GNN可扩展到大量真实世界的图形至关重要【Ying等人,2018a】

相关论文:

  • Iductive representation learning onlarge graphs. In NeurIPS, 2017b
  • Stochastic training of graph convolutional net-works with variance reduction. In ICML, 2018.
  • Graph convolutional neural networks for web-scale recommender systems. In KDD, 2018a.

6.3 Parameter Sharing and Regularization

Parameter Sharing Across Layers

在具有多层消息传递的GNNs中经常采用的一种策略是参数共享。核心思想是在GNN中的所有聚合和更新函数中使用相同的参数。一般来说,这种方法在六层以上的gnn中最有效,并且经常与门控更新函数结合使用。

Edge Dropout

另一种特定于GNN的策略称为边缘丢失。 在这种正则化策略中,我们在训练期间随机删除(或屏蔽)邻接矩阵中的边缘,这将使GNN不太容易过度拟合,并且对邻接矩阵中的噪声更鲁棒。 这种方法在将GNN应用于知识图谱上特别成功,并且是原始图注意力网络(GAT)工作中使用的一项必不可少的技术。还要注意的是,第6.2.2节中讨论的邻域二次采样方法会产生这种正则化的副作用,这使其成为大规模GNN应用程序中非常常见的策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值