图神经网络(GNN)

 一、前言

  本文为学习图神经网络过程中对搜集到的知识点进行汇总,参考了一些优质博主的学习笔记以及本人的见解,欢迎大家阅读原博文进行学习。同时,本人认知及知识储备有限,如有理解错误,欢迎大家与我进行讨论。以下是参考博文来源:

这篇来自distill的博文能在网页进行交互,可以帮助大家更好的进行理解:

A Gentle Introduction to Graph Neural Networks (distill.pub)icon-default.png?t=N7T8https://distill.pub/2021/gnn-intro/以下两篇为学习过程中参考的博文

【图神经网络实战】深入浅出地学习图神经网络GNN(上)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_51545953/article/details/127160151

详解深度学习中的图神经网络GNN_gnn图神经网络-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_39312146/article/details/134477679?spm=1001.2014.3001.5502

二、什么是图?

  图是由一些点和一些线构成的,能表示一些实体之间的关系,图中的点就是实体,线就是实体间的关系。如下图,V是顶点,E是边,U是整张图。attrinbutes 是信息的意思,每个点、每条边、每个图都是有信息的。

  怎么表示一张图,参考下面的例子

  每个顶点、边和整张图都可以用一个向量来表示,在这个例子中,顶点的向量有六个值,柱体的高矮就表示该值的大小,每条边用一个长为8的向量来表示,全局用一个长为5的向量来表示。

  图神经网络要做的事(整合特征):

  • 为每个节点整合特征向量,根据其对节点做分类或者回归
  • 为每条边整合特征向量,根据其对边做分类或者回归
  • 为每张图整合特征向量,根据其对图做分类或者回归

  图分为两种,一种是有向图,一种是无向图。有向图就是单边关系图,比如A暗恋B,而B并没有暗恋A,这就是一个单边关系;无向图就是互为这种关系,比如说情侣,双方互相喜欢。

三、怎么把一些内容表示成图?

1、把图片表示成图

  比如说一张图片可以表示为一个244*244*3的tensor244*244个像素,3RGB通道。就可以像下图这样表示,点表示的是像素,边表示的是像素间的邻接关系

2、把一句话表示成图

  句子中的每个单词可以表示成一个节点,有向边表示这些单词的链接关系

四、GNN中的常见任务

  图上面有三种常规类型的预测任务:图层面,节点层面,边层面。

1Graph级别任务

  基于整个图,做分类和回归。

  例如,给定一个分子结构图,判断它里面存在 几个环 或者 判断该分子结构属于哪一类

2NodeEdge级别任务

  先给出一张图片,然后经过语义分割将人物给分割出来,预测这个点是教练还是学员,即预测点;预测两个点之间的关系(是打架关系还是观看关系),即预测边

五、GNN是如何做预测的?

  前面我们知道,节点、边和图都是向量的形式,处理向量可以采用神经网络,以MLP为例。如下图所示,节点、边和图各有一个MLP,同时,所有的点共用一个MLP、所有的边共用一个MLP。下图构成了一个GNN block,也叫GNN层。

  另外,Layer N+1与上一层相比,图的连接性没变,只改变了属性向量。也就是可以继续使用初始的图结构。

  如果只是简单的节点二分类任务,使用下面的网络即可

  但是,如果一个节点没有属性信息,只有边存储了信息,目标是对节点进行分类,则需利用边的属性信息,这个过程称为信息聚合,聚合操作可以使用平均值、最大值、求和。如下图所示,当对一个节点进行预测时,将所有与该节点相连的边的信息进行聚合,聚合结果作为该节点的属性信息。

  同理,如果只有节点信息,对边进行分类,则将与边相连的节点信息进行聚合,作为边的属性信息,图分类任务也一样。

  最终的GNN结构如下:

  上述是针对比较简单的分类任务,节点、边以及整个图的信息都是独立处理的;对于复杂的任务,则需要利用图的连接性信息,实现方法为消息传递,可以理解为更进一步的信息聚合,即相邻节点和边之间交换信息并影响彼此的更新

ps:图神经网络相关应用

  • 芯片设计;
  • 场景分析和问题推理:剧本杀中的推理、警匪片中嫌疑人的推理等;
  • 推荐系统:抖音视频推荐;
  • 欺诈系统与风控相关:比如贷款,分析你的收入和日常花销等分析借款额度;
  • 道路交通的流量预测;
  • 化学、医疗等:对化学结构进行预测、分析;
  • ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值