图神经网络GNN介绍

news2025/1/17 14:08:16

目录标题

    • 图神经网络基础
      • 图基本模块定义
      • 图的邻接矩阵
      • 点特征的更新(重构)
      • 多层GNN
    • 图卷积GCN模型
      • GCN基本思想
      • 网络层数:
      • 基本计算
    • 图注意力机制graph attention network
      • T-GCN序列图神经网络
    • 图相似度

图神经网络基础

图基本模块定义

三个特征:

  • 点–特征向量表示
  • 边–表示关系(分有向/无向)
  • 图—图向量(全局)

无论事整的多么复杂,我们利用图神经网络的目的就是整合特征,重构特征
目的:做好点特征,边特征,最后做好整体的图特征。借助图结构把这些特征做好(点、边、全局的)embedding
输出结果:对点/边/图 做分类、回归

图的邻接矩阵

邻接矩阵:告诉计算机每个点的邻居都有谁
在这里插入图片描述
有连接关系的标1,无关系的标0.
双向边的邻接矩阵对称的
GNN(A,X)传入模型中,邻接矩阵,点的特征

文本数据也可以表示图的形式,邻接矩阵表示的连接关系
在这里插入图片描述
蓝色表示1,白色表示0,比较稀疏的矩阵。
注:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵

邻接矩阵在代码中传入的一般不是N * N的,而是2 * N
在这里插入图片描述
[source,target]:从。。到。。

点特征的更新(重构)

点的更新,不仅考虑自身信息,也考虑邻居的信息
结合邻居与自身信息:
在这里插入图片描述
sigam激活函数,w权重,可学习的权重参数
聚合操作可以当作全连接层,更新的方法有很多,可以自己设置(求和,求均值,最大,最小)
在这里插入图片描述

多层GNN

GNN也可以有多层:

  • GNN的本质就是更新各部分特征
  • 其中输入是特征,输出也是特征,邻接矩阵也不会变的
    在这里插入图片描述
    原始输入–第一次结果–第二次结果
    图结构与邻接矩阵不变,在变的是点特征

感受野:随着卷积的进行,每个点能感受到的区域越来越大

图卷积GCN模型

图中常见任务:

  • 节点分类,对每个节点进行预测,不同点是否有连接预测
  • 整个图分类,部分图分类等,不同子图是否相似,异常检测等
  • GCN归根到底还是要完成特征提取操作,只不过输入对象不需要是固定格式

通常交给GCN两个东西就行:1.各节点输入特征;2.网络结构图
交给图神经网络,用损失函数去迭代去更新

GCN并不是纯的有监督学习,这个也是GCN优势:不需要全部标签,用少量标签也能训练。
计算损失时只用有标签的(交通预测中,偏远地区没有人工标签数据)
要让某一个点的损失小,那么它的邻居也要损失小,所以适合做半监督问题。

GCN基本思想

针对橙色节点,计算它的特征:平均其邻居特征(包括自身)后传入神经网络:
如何重构/更新黄色点:先聚合综合(平均)— 经过神经网络,即加上可训练参数—得到两维向量
在这里插入图片描述

网络层数:

这个跟卷积类似,GCN也可以做多层,每一层输入的还是节点特征
然后将当前特征与网络结构图继续传入下层就可以不断算下去了
在这里插入图片描述
原邻接矩阵–每个点更新–激活函数RELU— 第二次更新–激活函数RELU—经过图卷积的洗,最后得到每个点对应的向量。

但一般不用做太多层(通过6个人可以认识任何一个人),上图栗子中,做两次就能看到其余所有点。

基本计算

图中基本组成:
G就是咱们的图
A是邻接矩阵
D是各个节点的度
F是每个节点的特征
在这里插入图片描述

特征计算方法:其实就是邻接矩阵与特征矩阵进行乘法操作,表示聚合邻居信息
在这里插入图片描述
问题1:光想着别人,没考虑自己呢。
在这里插入图片描述
在这里插入图片描述
问题2:只考虑了加法,没考虑平均
其实就是对度矩阵乘以度矩阵D的逆矩阵,这样就相当于平均的感觉了
在这里插入图片描述
在这里插入图片描述

这里1/2相当于是对第一行做归一化操作,列也应该做归一化:

在这里插入图片描述在这里插入图片描述
这样相当于归一化了两次,数导致更小了,应该开一个根号:
在这里插入图片描述
为什么这样做:
下面的小红和小绿,A和B两个人的度都要考虑进来,
在这里插入图片描述
在这里插入图片描述
因为小绿的度大会把其关系的权重变的很小,造成对小红的影响没有那么大。

最终公式:
例如完成一个十分类任务的,F就为10表示输出层

在这里插入图片描述
第一层:邻接矩阵,重新组合特征X,做一组预设乘上权重参数,套上激活函数relu
第二层:一样的

其中邻居矩阵是更新过的,
在这里插入图片描述

GCN的层数:
理论上来说肯定越大越好
但是实际的图中可能不需要那么多
在社交网络中,只需6个人你可以认识全世界
所以一般的GCN层数不会特别多
经过实验:在多个图数据集中,都发现两三层的比较合适,多了反而变差

图注意力机制graph attention network

哪个节点影响大,哪个节点影响小,需要权重来区分
栗子:5个点,每个点是四维数据。
通过权重来区分影响大小,2,3点对1的影响是否应该一样?
在这里插入图片描述
在这里插入图片描述
邻接矩阵[5×5] :N×N
特征矩阵[5×4] :5个点,每个点是四维数据。
可训练权重参数w[4×8]
聚合更新:[5,8]

这是前面的内容,这一节主要是引入一个权重项
在这里插入图片描述
公式:
在这里插入图片描述
hi,hj:点i与点j的特征
w:可训练的权重参数,先进行维度映射
拿到两个特征后,做内积—来体现权重值
a:指attention
在这里插入图片描述softmax:归一化,2对1的权重和3对1的权重,之和要为1
exp(eij):指对eij做ex 的幂次映射,让结果差异大一些

残留问题:a的计算

1×5维特征向量,称上一个5×8的向量,变成8维向量。并拼接
加入一个可训练可学习的权重参数矩阵
再称一个16×1的矩阵,得到一个值,作为我们的权重.
因为权重要为正值,加上relu激活函数,
最后归一化一下
在这里插入图片描述
attention其实就是对邻接矩阵进行了加权,多加了一次处理
1对2的权重e12,其实改的就是邻接矩阵中a12处的数值。

T-GCN序列图神经网络

有些图随时间变化而变化
1,随着时间变化,点的特征在变
2,随着时间变化,点的特征在变,图结构也在变
套进RNN中
应用:疫情蔓延图,交通流量随时间变化

图相似度

论文链接

输入:两个/多个图结构
输入到图神经网络
输出:进行匹配相似度,输出得分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 模板初阶

目录 一、函数模板 1.函数模板的概念 2.函数模板的定义 3.函数模板的原理 4.函数模板的实例化 ①隐式实例化 ②显式实例化 5.非模板函数与同名的函数模板同时存在 6.模板参数的匹配原则 二、类模板 1.类模板的定义格式 2.采用类模板的类外函数的定义格式 3.类模板…

【Linux-计算机网络】-TCP协议通信流程

1.TCP协议通信流程图 1.1TCP协议的通讯流程可以分为以下步骤: 应用层:应用程序通过系统调用API(如socket)创建一个TCP套接字(socket),并设置好相关的选项。 传输层:当应用程序调用c…

机器学习中的数学原理——过拟合、正则化与惩罚函数

通过这篇博客,你将清晰的明白什么是过拟合、正则化、惩罚函数。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言…

153.网络安全渗透测试—[Cobalt Strike系列]—[生成hta/exe/宏后门]

我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!! 文章目录一、后门简介1、hta后门2、exe后门3、宏病毒后门二、生成后门并测试0、测试环境1、生成hta后门并测试2、生成exe后门并测试3、生成宏病毒后门…

分布式监控平台-Zabbix

分布监控平台-Zabbix一、Zabbix概述1、Zabbix是什么?2、Zabbix监控原理二、部署Zabbix服务端(端口:10051)1、关闭防火墙 修改主机名2、获取Zabbix下载资源3、安装SCL(Software Collections),修改 Zabbix-front 前端源4…

SQL Server的子查询

SQL Server的子查询一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个子查询中的查询。 可以在允许表达式的任何位置使用子查询。…

【MySQL】联合查询

目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…

macOS Monterey 12.6.5 (21G531) 正式版发布,ISO、IPSW、PKG 下载

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

如何使用Midjourney辅助建筑平面设计和室内设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅图为例)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

unity 全局光照

全局光照由两部分组成:直接光照和间接光照。 直接光照由直接光照射到物体上以后直接弹射到人眼接收到的光照。 间接光照为直接光照照射到物体上又弹射到其它物体上面以后多次弹射才被人眼接收的光照(两次及以上的光照统称为间接光照) 材质光…

消息队列RocketMQ、Kafka小计

1、消息队列模型 点对点模式 (一对一,消费者主动拉取数据,消息收到后消息清除)点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是…

Observability: Elastic RUM (真实用户监控)演示

在之前的文章 “Elastic RUM(真实用户监测)浅谈”,我们详细描述了 Elastic RUM (Real User Monitor)。在今天的文章中,我将详细一步一步地对该文章进行演示以便大家也能和我一样进行展示。在今天的展示中&a…

Docker6种网络配置详解,网络模式应该这么选

文章目录一、Bridge网络模式二、Host网络模式三、Overlay网络模式四、None网络模式五、Macvlan网络模式六、Ipvlan网络模式七、网络模式选择在Docker中,网络配置是一个重要的主题,因为容器需要与其他容器或外部网络进行通信。Docker提供了多种网络模式和…

GPT-4 和ChatGPT API的定价分析

OpenAI发布了他们的ChatGPT新机器学习模型GPT-4。GPT-4是GPT-3的一大进步,GPT-3是当前ChatGPT免费版本(GPT 3.5 Turbo)所运行的模型的基础,今天我们也来凑个热点,研究一下它们的定价 GPT-4新的功能 GPT-4可以在对话中使用图像,并…

2023年美赛春季赛 赛题浅析

由于今年各种各样的原因,导致美赛头一次,据说也将是最后一次,临时调整,加设春季赛。这对于急需建模奖项的大家来说是一个很好的机会。无论怎样的原因,今年美赛我们可能有所遗憾。但,春季赛也许就是弥补遗憾…

在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法

尽管您可以使用指纹解锁手机,但大多数智能手机都需要 PIN 码、图案或字母数字代码作为主密码。如果您有一段时间没有输入手机密码,很容易忘记。正是由于这个原因,即使您打开了指纹解锁,大多数智能手机也会让您每天至少输入一次 PI…

Linux之磁盘分区、挂载

文章目录一、Linux分区●原理介绍●硬盘说明查看所有设备挂载情况挂载的经典案例二、磁盘情况查询基本语法应用实例磁盘情况-工作实用指令一、Linux分区 ●原理介绍 Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,…

【软考五】数据库(做题)

该文章不适合学习数据库,适合考证,遇到实际问题的,不要在这儿浪费时间。切记切记 软考之数据库一、概念数据模型(下午题常考)二、结构数据模型关系模型1、关系模型中基本术语2、关系模型中的关系完整性约束3、关系代数…

SQL Server 数据查询

文章目录前言首先在SQL Server 2008 中新建一个数据库chaxun.在库中建三个表,结构如下表所示,并且录入数据.1.2.(1)在KC表中查询学分低于三分的课程信息,并按课程号升序排列(2)在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列(3)在XS_KC表中…

「文心一言」内测详细使用体验

★观前提示:以下内容仅为内测测试内容,不代表未来正式版如何,或许你认为它与chatgpt仍有不小的差距,或许你认为它目前做的已经不错了,都可以,但是咱们测试体验,只讲述体验,本篇文章不…