GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks

这篇具有很好参考价值的文章主要介绍了GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文链接

A Gentle Introduction to Graph Neural Networks (distill.pub)https://distill.pub/2021/gnn-intro/

内容简介:本文是“A Gentle Introduction to Graph Neural Networks”的阅读笔记,因为第一次接触GNN,很多深奥的概念不懂,因此没有读完全,maybe后续会补上。

Graph 是什么? Graph 实际上 就是 三个要素,vertex是节点,Edge边,Attribute是图的特征

Graph问题用来做什么?可以分为三类,一是根据graph级别,比如找出拓扑里有环形的图;二是 根据edge的关系给vertex聚类;三是根据vertex特点找到edge的feature。

Graph之间的信息如何传递聚合? GNN中的新信息传递是Information pooling,即节点之间传递信息,然后进行信息聚合。信息的聚合可以使用 平均,最大或者相加等方式

设计GNN的规则? 设计GNN时,GNN的表现并不是层数越深越好,层数多会增强最差和平均解表现,不能增强最好解表现。想要性能更好,一是设计更好的传播机制,二是增加图的属性。

训练GNN时采样? 因为GNN每个节点的邻居和连的边都不一样,不像传统神经网络可以取固定的size进行训练,有不同的方法可以采样去训练,比如随机采样 ,随机游走。

GNN的扩展模式? GNN 调整为更复杂的图结构,例如,我们可以考虑多边图或多图,如一对节点共享多条性质不同的边。

尚未理解的问题,Graph之间的信息传递机制都有哪些?以及是如何传递的?

Graph是如何训练的?采样的有哪些技术?需要更深的了解

1.什么样的数据可以转化为Graph

graph实际上就是 vertex edge 和他们的attribute 组成的图。

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 2.哪一类的问题可以转化为图图结构问题?

一共有三类 :

In a graph-level task, we predict a single property for a whole graph. For a node-level task, we predict some property for each node in a graph. For an edge-level task, we want to predict the property or presence of edges in a graph.

Graph-level task

比如从一堆拓扑图里找出具有两个环形的图

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 Node-level task

 类似于给节点聚类

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 Edge-level task

找出节点间的关系

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

用邻接矩阵表示图很消耗内存,特别是当邻接矩阵是稀疏矩阵时, 如何把图表示得更加节省内存?

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 GNN Predictions by Pooling Information

构建了GNN之后,如何完成任务or做预测 ??

汇集工作分两步进行:

1.对于要汇集的每个项目,收集它们的每个嵌入,并将它们连接成一个矩阵。

2. 然后,通常通过求和操作对收集到的嵌入式数据进行汇总

根据edge信息去预测node

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 根据node的信息去预测edge

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 根据 node 和 edge的信息去预测global信息

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

 Passing messages between parts of the graph

我们可以通过在 GNN 层中使用池化技术来进行更复杂的预测,从而使我们学习到的嵌入信息能够感知图的连通性。我们可以通过信息传递来实现这一点,即相邻节点或边缘交换信息,并影响彼此更新的嵌入。

消息传递分为三个步骤:

1. 对于图中的每个节点,收集所有相邻节点的嵌入(或信息),即上文所述的 g函数。

2. 通过聚合函数(如 sum)汇总所有信息。

3. 所有汇集的信息将通过一个更新函数(通常是一个学习的神经网络)进行传递。

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

从本质上讲,信息传递和卷积都是汇总和处理元素邻域信息以更新元素值的操作。在图中,元素是一个节点,而在图像中,元素是一个像素。然而,图中相邻节点的数量可以是可变的,这与图像中每个像素都有固定数量的相邻元素不同。

通过将消息传递 GNN 层堆叠在一起,一个节点最终可以整合来自整个图的信息:经过三层之后,一个节点就可以获得离它三步远的节点的信息。

一般建模模板先使用连续的 GNN 层,然后再用一个带有 sigmoid 激活的线性模型来进行分类。GNN 的设计空间有许多可以定制模型的杠杆:

1.GNN层数,也称为深度。

2.更新每个属性的维数。更新函数是一个带有relu激活函数和层规范化的1层MLP。

3.汇聚函数在汇聚中使用:最大值、平均值或总和。

4。更新的图属性或消息传递样式:节点、边缘和全局表示。我们通过布尔切换(开或关)来控制这些。基线模型将是独立于图形的GNN(所有消息传递关闭),它在最后将所有数据聚合到单个全局属性中。打开所有消息传递函数会产生GraphNets架构。

数据汇总到一个单一的全局属性中。切换所有消息传递功能可产生一个 GraphNets 架构。

由于这些是高维向量,我们通过主成分分析(PCA)将它们降至2D。一个完美的模型应该能够清晰地分离标记数据,但由于我们正在降维并且也有不完美的模型,这个边界可能会更难看到。

Some empirical GNN design lessons

1.越深的网络层并不能表现越好。

2,表现主要和以下相关:消息传递的类型,映射的维度,层数和汇聚操作类型。

平均性能和最差性能随着GNN层数的增多而性能上升,但是最好的性能并不会随层数增加而上升。这种效应可能是因为层数越多的 GNN 传播信息的距离就越远,其节点表征可能会因多次连续迭代而被 "稀释"。

交流的图形属性越多,平均模型的性能就越好。我们的任务以全局表示为中心,因此明确学习这一属性也往往会提高性能。我们的节点表征似乎也比边缘表征更有用,这是有道理的,因为这些属性中加载了更多的信息。

要想获得更好的性能,有很多方向可以选择。我们希望强调两个大方向,一个与更复杂的图算法有关,另一个则与图本身有关。

到目前为止,GNN 基于邻域的池化操作。有些图概念比较难用这种方式表达,例如线性图路径(节点的连接链)。设计新的机制,以便在 GNN 中提取、执行和传播图信息,是当前的一个研究领域  。

GNN 研究的一个前沿领域不是建立新的模型和架构,而是 "如何构建图",更准确地说,是为图添加可以利用的附加结构或关系。正如我们所看到的,图的属性越多,我们就越能建立更好的模型。在这种特殊情况下,我们可以考虑通过增加节点之间的空间关系、增加非键的边或明确子图之间的可学习关系,使分子图的特征更加丰富。

与GNN相关的graph

虽然我们只描述了每个属性都有矢量化信息的图形,但图形结构更加灵活,可以容纳其他类型的信息。幸运的是,消息传递框架足够灵活,通常情况下,将 GNN 调整为更复杂的图结构,只需定义信息如何通过新的图属性传递和更新即可。

例如,我们可以考虑多边图或多图,其中一对节点可以共享多种类型的边。例如,在社交网络中,我们可以根据关系类型(熟人、朋友、家人)指定边的类型。通过为每种边缘类型设置不同类型的信息传递步骤,可以对 GNN 进行调整。我们还可以考虑嵌套图,例如一个节点代表一个图,也称为超节点图。嵌套图对于表示层次信息非常有用。例如,我们可以考虑分子网络,其中一个节点代表一个分子,如果我们有将一个分子转化为另一个分子的方法(反应),则两个分子之间共享一条边。在这种情况下,我们可以在嵌套图上学习,方法是让一个 GNN 在分子层面学习表示法,另一个在反应网络层面学习表示法,并在训练过程中交替使用。

另一种图是超图,在超图中,一条边可以连接多个节点,而不仅仅是两个节点。对于给定的图,我们可以通过识别节点群落来构建超图,并分配一条与群落中所有节点相连的超边。

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks,# 文献阅读GNN,人工智能,深度学习

Sampling Graphs and Batching in GNNs 

通常对于神经网络的训练来说 ,我们取一个 固定 size 的mini-batch,可是对GNN网络不可这样,因为GNN网络中每个node连接的edge不是固定的,没有一个恒定的size。对图进行分批处理的思路就是构建子图。构建子图就会涉及到图采样。

如何对图进行采样是一个尚未解决的研究问题。

如果我们希望保留邻域级别的结构,一种方法是随机抽取一定数量的节点,即我们的节点集。然后添加与节点集相邻的距离为 k 的邻接节点,包括它们的边。每个邻域可视为一个单独的图,GNN 可在这些子图的批次上进行训练。由于所有相邻节点的邻域都不完整,因此可以掩盖损失,只考虑节点集。

更有效的策略可能是先随机抽样一个节点,将其邻域扩大到距离 k,然后在扩大的集合中挑选其他节点。一旦构建了一定数量的节点、边或子图,就可以终止这些操作。如果情况允许,我们可以通过选取一个初始节点集,然后对一定数量的节点进行子采样(例如随机采样,或通过随机漫步或 Metropolis 算法)来构建恒定大小的邻域。

Comparing aggregation operations

汇集相邻节点和边的信息是 GNN 关键步骤。每个节点的邻居数量不固定,需要一种差别化的方法来汇集这些信息,因此汇集操作应该有平滑性,对节点排序和节点数量具有不变性。

选择和设计最佳聚合操作是一个尚未解决的研究课题。聚合操作的一个理想特性是相似的输入提供相似的聚合输出,反之亦然。一些非常简单的候选包络不变操作包括总和、平均值和最大值。方差等汇总统计也可以使用。所有这些运算都采用数量可变的输入,无论输入排序如何,都能提供相同的输出。

没有哪种操作是一成不变的最佳选择。当节点的邻居数量变化很大,或者需要对局部邻域的特征进行归一化处理时,平均值操作可能会很有用。当你想突出本地邻域中的单个突出特征时,最大值运算可能会很有用。求和则在这两者之间取得了平衡,它提供了局部特征分布的快照,但由于没有进行归一化处理,因此也会突出异常值。在实践中,求和是常用的方法。文章来源地址https://www.toymoban.com/news/detail-611298.html

到了这里,关于GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 入门基础 Introduction to Python Fundamentals

    注释 单行注释 多行注释 pass 补充语法的完整性,什么都不做 字符串格式化 format % f-string(py3.6之后可用) 数据结构 数据类型的转换:目标类型(值),如int(‘1’),将浮点值转换为整型值会丢失精度 在函数中修改全局变量的值需要用 global 再次声明全局变量,以表明修改

    2024年01月16日
    浏览(46)
  • 【图神经网络】图神经网络(GNN)学习笔记:Graph Embedding

    Graph广泛存在于真实世界的多种场景中,即节点和边的集合。比如社交网络中人与人之间的联系,生物中蛋白质相互作用以及通信网络中的IP地址之间的通信等等。除此之外,我们最常见的一张图片、一个句子也可以抽象地看做是一个图模型的结构,图结构可以说是无处不在。

    2024年02月08日
    浏览(45)
  • GraphPlanner: Floorplanning with Graph Neural Network

    GraphPlanner: Floorplanning with Graph Neural Network https://doi.org/10.1145/3555804 在超大规模集成电路芯片的物理实现中,芯片布图规划一直是一项具有高计算复杂度的关键任务。它的主要目标是以最小的线长确定大芯片模块的初始位置,同时坚持密度约束,这在本质上是一个过程,构建一

    2024年02月13日
    浏览(51)
  • 【论文导读】- Variational Graph Recurrent Neural Networks(VGRNN)

    Variational Graph Recurrent Neural Networks(VGRNN) 原文地址:Variational Graph Recurrent Neural Networks(VGRNN):https://arxiv.org/abs/1908.09710 源码: https://github.com/VGraphRNN/VGRNN Representation learning over graph structured data has been mostly studied in static graph settings while efforts for modeling dynamic graphs are still scant

    2024年02月08日
    浏览(49)
  • 论文笔记:E(n) Equivariant Graph Neural Networks

            本文介绍了一种新模型来学习与旋转、平移、反射和排列等变的图神经网络,称为 E(n)-等变图神经网络 (EGNN)。          与现有方法相比,EGNN不需要在中间层中计算昂贵的高阶表示,同时仍能获得有竞争力或更好的性能。 此外,虽然现有方法仅限于 3 维空间的

    2023年04月08日
    浏览(38)
  • 论文阅读 - VGAER: Graph Neural Network Reconstruction based Community Detection

    https://arxiv.org/pdf/2201.04066.pdf         社群检测是网络科学中一个基础而重要的问题,但基于图神经网络的社群检测算法为数不多,其中无监督算法几乎是空白。         本文通过将 高阶模块化信息与网络特征融合 ,首次提出了基于变异图自动编码器重构的社群检测

    2024年01月18日
    浏览(42)
  • [论文阅读笔记25]A Comprehensive Survey on Graph Neural Networks

    这是一篇GNN的综述, 发表于2021年的TNNLS. 这篇博客旨在对GNN的基本概念做一些记录. 论文地址: 论文 对于图像数据来说, CNN具有平移不变性和局部连接性, 因此可以在欧氏空间上良好地学习. 然而, 对于具有图结构的数据(例如社交网络 化学分子等)就需要用GNN来学习. 最早期的GN

    2024年02月11日
    浏览(58)
  • 论文解读:SuperGlue: Learning Feature Matching with Graph Neural Networks

    SuperGlue: Learning Feature Matching with Graph Neural Networks 发表时间:2020 论文地址:https://arxiv.org/abs/1911.11763 项目地址:http://github.com/magicleap/SuperGluePretrainedNetwork。 本文介绍了一种通过联合寻找对应和拒绝非匹配点来匹配两组局部特征的神经网络。通过求解一个可微最优传输问题来估

    2024年02月08日
    浏览(57)
  • 论文阅读 (94):Substructure Aware Graph Neural Networks (SAGNN, AAAI2023)

    题目 : 子结构感知图神经网络 (Substructure aware graph neural networks, SAGNN) 背景 :尽管图神经网络 (GNN) 在图学习方面取得了巨大成就,但由于GNN的传播范式与一阶Weisfeiler-Leman图同构测试算法 (1-WL) 的一致性,导致其难以突破1-WL表达能力的上限。 思路 :通过子图更容易区分原始图

    2024年02月12日
    浏览(54)
  • 《论文阅读27》SuperGlue: Learning Feature Matching with Graph Neural Networks

    研究领域: 图像特征点匹配 论文:SuperGlue: Learning Feature Matching with Graph Neural Networks CVPR 2020 veido 论文code  [参考] [参考] [参考]    SuperGlue:使用图神经网络学习特征匹配 本文介绍了SuperGlue,一种神经网络,通过 共同寻找对应点和拒绝不匹配点 来匹配两组本地特征。分配估

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包