GNN的理解与研究

文章目录

一:初识GNN

1.什么是GNN

  • 图(Graph)
    在讨论GNN之前,我们先来了解一下什么是 。在计算机科学中, 图是由节点和边两部分组成的一种数据结构。图G可以通过节点集合V和它包含的边E来进行描述。如下图所示:
    GNN的理解与研究
  • GNN
    GNN全称—-图神经网络,它是一种 直接作用于图结构上的神经网络。我们可以把图中的每一个节点 V V V 当作个体对象,而每一条边 E E E 当作个体与个体间的某种联系,所有节点组成的关系网就是最后的图 U U U。
    这里的V , E , U V, E , U V ,E ,U都可以编码成一个特征向量,所以实际上GNN还是做的是提取特征的工作而已。GNN的一个典型应用是节点分类,我们希望利用GNN提取出每个节点 V V V 的特征向量,来预测每个节点的标签。同样的,也可以通过节点与节点间的特征,来预测出对应边 E E E 的标签。当然,也可以利用所以节点提取出的特征,来预测整个图 V V V 的标签。 如下图:
    GNN的理解与研究
    GNN的理解与研究

; 2.GNN与CNN、RNN的区别

那都是提取特征的神经网络,那为什么要利用图模型来提取呢?CNN的卷积和RNN的递归方式不行吗?
答案还真不行,或者说十分麻烦。

因为 GNN面向的输入对象其实都是结构不规则、不固定的数据结构,而CNN面向的图像数据和RNN面向的文本数据的格式都是固定的,所以自然不能混为一谈。因此,面对本身结构、彼此关系都不固定的节点特征,必须需要借助图结构来表征它们的内在联系。

3.GNN的应用领域

GNN应用的领域自然都是由结构不规则、不固定的数据组成的场合了。比如下图所示的场景:

GNN的理解与研究
GNN的理解与研究
GNN的理解与研究
GNN的理解与研究
GNN的理解与研究
GNN的理解与研究
GNN的理解与研究

GNN的理解与研究
其中的交通流量感知、医疗领域是当前GNN应用最为火热的领域,以上仅供参考。接下来,我们来一起探究GNN的工作原理是什么,到底是如何提取、更新每个节点的特征呢?

; 二:GNN原理

1.邻接矩阵

首先引入邻接矩阵(Adjacency Matrix)的概念,它来表示节点与节点间的连接关系,即Edge的关系,矩阵的具体样式如下图所示:

GNN的理解与研究
GNN的理解与研究

; 2.聚合操作

GNN的输入一般是每个节点的 起始特征向量和表示节点间关系的 邻接矩阵,有了这两个输入信息,接下来就是聚合操作了。所谓的聚合,其实就是将周边与节点 V i Vi Vi 有关联的节点{V a , V b , . . . Va,Vb,…Va ,Vb ,…}加权到V i Vi Vi上,当作一次特征更新。同理,对图中的每个节点进行聚合操作,更新所有图节点的特征。

聚合操作的方式多种多样,可根据任务的不同自由选择,如下图所示:

GNN的理解与研究
GNN的理解与研究
当然对这个图节点进行完了一次聚合操作后,还需要再进行一波 w w w 的加权,这里的 w w w 需要网络自己学习。

3.多层迭代

CNN,RNN都可以有多个层,那么GNN也当然可以。一次图节点聚合操作与 w w w 加权,可以理解为一层,后面再重复进行聚合、加权,就是多层迭代了。 一般GNN只要3~5层即可,所以训练GNN对算力要求很低。如下图所示:

GNN的理解与研究

至此我对GNN的基本概念和工作原理,进行了简单讲解,希望对大家有所帮助,有不懂的地方或者建议,欢迎大家在下方留言评论。

我是努力在CV泥潭中摸爬滚打的江南咸鱼,我们一起努力,不留遗憾!

Original: https://blog.csdn.net/weixin_43702653/article/details/123779738
Author: 江南綿雨
Title: GNN的理解与研究

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/624185/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球