图神经网络

news2024/11/26 16:37:40

前言

图与图的表示

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

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

转换成图的信息表示

 

神经网络与图的挑战

 核心问题是怎样表示图才能是和神经网络是兼容的。图上有四种信息:顶点的属性,边的属性,全局信息以及连接性(即为每条边连接的是哪两个顶点)。前三个信息都能用向量来表示,连接性可以用邻接矩阵来表示,该矩阵会是一个方阵,但是有一些问题。这个矩阵可能会非常大而且很稀疏,在空间上效率低下,并且计算比较困难。另外将邻接矩阵的行或列的顺序进行交换不会改变其属性的。 如果既想高效的存储邻接矩阵,又想这个顺序不会影响神经网络的结果,就可以用邻接链表的方式来表示邻接矩阵。

邻接矩阵有多种表示
邻接链表

图神经网络 GNN

GNN是对保持图对称性(排列不变性)的图的所有属性(节点、边、全局上下文)的可优化转换。对称信息指的是把这个顶点进行另外一个排序后,整个结果是不会变的。

GNN的理论基础是不动点(the fixed point)理论,这里的不动点理论专指巴拿赫不动点定理(Banach's Fixed Point Theorem)。首先我们用  表示若干个  堆叠得到的一个函数,也称为全局更新函数

GNN更新方法

  • GNN的基础理论是不动点理论,这就意味着GNN沿时间展开的长度是动态的,是根据收敛条件确定。而RNN沿时间展开的长度就等于序列本身的长度
  • GNN采用 Almeida-Pineda(AP) 算法反向传播优化,而RNN使用BPTT(Back Propogation Through Time)优化。前者对收敛性有要求,而后者对收敛性是没有要求的。
  • GNN循环调用 f 的目标是得到每个结点稳定的隐藏状态,所以只有在隐藏状态收敛后才能输出;而RNN的每个时间步上都可以输出,比如语言模型。
  • GNN每次时间步的输入都是所有结点v的特征,而RNN每次时间步的输入是该时刻对应的输入。同时,时间步之间的信息流也不相同,前者由边决定,后者则由序列的读入顺序决定。

GNN局限

初代GNN,也就是基于循环结构的图神经网络的核心是不动点理论。它的核心观点是通过结点信息的传播使整张图达到收敛,在其基础上再进行预测。收敛作为GNN的内核,同样局限了其更广泛的使用,其中最突出的是两个问题:

  1. GNN只将边作为一种传播手段,但并未区分不同边的功能。虽然我们可以在特征构造阶段为不同类型的边赋予不同的特征,但相比于其他输入,边对结点隐藏状态的影响实在有限。并且GNN没有为边设置独立的可学习参数,也就意味着无法通过模型学习到边的某些特性。
  2. 如果把GNN应用在图表示的场景中,使用不动点理论并不合适。这主要是因为基于不动点的收敛会导致结点之间的隐藏状态间存在较多信息共享,从而导致结点的状态太过光滑(Over Smooth),并且属于结点自身的特征信息匮乏(Less Informative)。

 

GCN:图卷积网络(Graph Convolutional Networks)

(半监督)

ViG:Vision GNN(2022)

计算机视觉的一个基本任务是识别图像中的物体。由于图片中的物体通常不是形状规则的方形,所以经典的网格表示或者序列表示在处理图片时显得冗余且不够灵活。比如一个对象可以被视为由很多部分的组合:例如,一个人可以粗略地分为头部、上身、手臂和腿,这些由关节连接的部分自然形成一个图结构。

在网格表示中,像素或小块仅仅通过空间位置排序。在序列表示中,2D 图像被切分成为一系列小块。在图表示中,节点通过其内容链接起来,不受本地位置的约束

基于把图片视为图表示的观点,本文提出一种基于图表示的新型通用视觉架构 ViG。将输入图像分成许多小块,并将每个小块视为图中的一个节点。在构建好了输入图片的图表征之后,作者使用 ViG 模型在所有节点之间交换信息。ViG 的基本组成单元包括两部分:用于图形信息处理的 GCN (图形卷积网络) 模块用于节点特征变换的 FFN (前馈网络) 模块。在图像识别,目标检测等视觉任务中证明了该方法的有效性。

图片的图表示 (Graph Representation)

图神经网络学习框架(2020)

图神经网络应用

References

图神经网络简介,什么是图神经网络,GNN_一起躺躺躺的博客-CSDN博客_图神经网络

数学公式:图神经网络GNN教程:7篇带你彻底学习 - 知乎

几种图神经网络方法总结(Graph Neural Network)_图灵的喵的博客-CSDN博客_图神经网络

表示符号和一些模型:【图神经网络综述】一文道尽GNN原理、框架和应用 - 飞桨AI Studio

GNN起源:图系列|从图(Graph)到图卷积(Graph Convolution): 漫谈图神经网络模型(一)

 

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

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

相关文章

MFC界面控件BCGControlBar v33.3 - 升级Ribbon Bar自定义功能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 该版本包含了增强的Ribbon自定义、新的日期/时间数字指示器、带有文本对齐的组控件、多行支持以及其他一些新功…

第二证券|12月A股投资方向来了!这些板块已先涨为敬

日前,我国银河、信达证券、中泰证券、安全证券等多家券商连续发布12月A股月度出资组合。全体上券商对后市持活跃情绪,以为当时商场处于震动磨底装备区间,商场动摇并不影响“暖冬行情”的延续,一些活跃的券商以为后市有望走出季度级…

R语言rcurl抓取问财财经搜索网页股票数据

问财财经搜索是同花顺旗下的服务之一,主要针对上市公司的公告、研报、即时新闻等提供搜索及参考资料。相对于其他股票软件来说,一个强大之处在于用自然语言就可以按你指定的条件进行筛选。而大部分现有的行情软件支持的都不是很好,写起来就费尽心思&…

Nginx加载Lua脚本链接mysql

1、nginx加载lua脚本方法可参我的这篇文章 Nginx安装Openresty加载Lua代码_IT东东歌的博客-CSDN博客 2、测试代码 官网 https://github.com/openresty/lua-resty-mysql local mysql require "resty.mysql" local db, err mysql:new() if not db then ngx.sa…

Django 第四章 模版系统详解(ORM数据模型-使用mysql数据库增删改查)

djiango模版系统: 用于自动渲染一个文本文件,一般用于HTML页面,模版引擎渲染的最终HTML内容返回给客户端浏览器 模版系统分成两部分 静态部分: 例如html css .js 动态部分 djiango 模版语言,类似于jinja语法变量定义&…

SpringCloud 组件Gateway服务网关【全局过滤器】

目录 1,全局过滤器 1.1:全局过滤器作用 1.2:自定义全局过滤器 1.3:过滤器执行顺序、 2:跨域问题 2.1:什么是跨域问题 2.2:示例跨域问题 2.3:解决跨域问题 1,全局…

python将CSV文件(excel文件)按固定行数拆分成小文件

最近接到一个需求,就是把非常大的CSV文件,电脑根本打不开(或者打开也不能完全展现所有的数据),以每 80万(不够80万行的也独自成为一个单独的文件) 行进行拆分成一个小文件,各位小伙伴在日常工作中有没有遇到…

seata分布式事务1.4版本TM注册全局事务之源码分析(五)

今天我们分析seata分布式事务1.4版本TM注册到全流程的源码,这也是事务执行的核心开始: 首先分为客户端TM和服务端TC,业务发起肯定在TM端,接受在TC端。 整体类图: 一、业务入口TM端: 1、GlobalTransactio…

将本地文件上传到gitee和GitHub,以及Github加速访问

(1)我全程使用网络上合法加速软件,网易UU加速器是网易自主研发极速引擎,属于合法软件。我们进行加速行为也只是针对于Github这一个网站。 (2)GitHub是一个面向开源及私有软件项目的托管平台,纯技…

Win,M1Mac上安装jupyter的MATLAB支持插件的方法

tags: MATLAB Win Mac Tips 写在前面 11月的最后一天了, 总结一下支持MATLAB的一个jupyter的插件, 有了这个你就可以在jupyter notebook或者jupyter lab上面使用MATLAB语句了, 还是很不错的, 虽然我安装了好久… 下面来说一下我在我的电脑以及朋友的电脑(Win11)上面安装这个…

安科瑞安全用电监测,智慧用电装置,导轨式安装带无线通讯功能

安科瑞 王晶淼/司红霞 前言 随着电气化的迅猛发展和用电普及程度的日益提高,电已经成为人类生存和发展必不可少的能源之一。然而,由于种种原因,由电气引发的火灾和爆炸事故也直呈现上升趋势。电气设备的绝缘大量使用塑料、橡胶、绝缘漆、稀释剂等易燃物品,在电气设备运行中,由…

【Redis】数据结构---String

文章目录String(字符串)1.Redis 键(key)2.String(字符串)2.1常用命令2.2.String底层结构3.空间分配策略3.1空间预分配3.2惰性空间释放3.3为什么SDS的最大长度是512M?4.SDS面试题String(字符串) 1.Redis 键(key) keys *查看当前库所有key (匹配:keys *1)exists ke…

使用并行流的注意事项

遇到的问题&#xff1a;当时用并行流的时候期望结果7&#xff0c;但是偶尔会有结果不对的情况。。。 如下代码&#xff1a; public static void main(String[] args) {long startSystem.currentTimeMillis();List<String> alist new ArrayList<String>(Arrays.a…

【读书笔记】打开心智

打开心智 0&#xff0c;写在前面 什么是打开心智&#xff1f;我认为是通过更好的认识人类&#xff0c;认识自己&#xff0c;了解自己的本性&#xff0c;然后顺应本性指导和改变自己对事物的看法&#xff0c;约束自己的行为的过程。这也是一个认识心智到打开心智的过程。其实我…

代码随想录刷题|LeetCode 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

目录 121. 买卖股票的最佳时机 思路 暴力解法 贪心算法 动态规划 买卖股票的最佳时机 贪心算法 动态规划 122.买卖股票的最佳时机II 思路 分析递推公式 买卖股票的最佳时机II 贪心算法 动态规划 121. 买卖股票的最佳时机 题目链接&#xff1a;力扣 思路 暴力解法 暴力解答会超…

矩池云|GPU 分布式使用教程之 TensorFlow

GPU 分布式使用教程之 TensorFlow TensorFlow 提供了6种策略实现分布式计算&#xff0c;各个策略详情请参考官方文档。本文档使用 MirroredStrategy 实现单机多卡分布式&#xff0c;MultiWorkerMirroredStrategy 实现多机多卡分布式计算。 选择机器 单机多卡分布式&#xff1…

【MySQL进阶】多表连接的原理

【MySQL进阶】多表连接的原理 文章目录【MySQL进阶】多表连接的原理前言一&#xff1a;连接简介1&#xff1a;连接的本质2&#xff1a;连接过程简介二&#xff1a;连接的原理1&#xff1a;嵌套循环连接&#xff08;Nested-Loop Join&#xff09;2&#xff1a;使用索引加快连接速…

MySQL 8.*版本 修改root密码报错

1、mysql.sock报错 解决办法&#xff1a; 1、根据报错提示&#xff0c;是无法找到/tmp下面的mysql.sock。 2、全局搜索该文件&#xff1a;mysql.sock。 使用命令&#xff1a;find / -iname "mysql.sock" 为mysql.sock该文件创建软连接&#xff0c;命令如下&#x…

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Redis企业版数据库如何支持实时金融服务?

一、数字化转型正在颠覆银行业和金融业 随着金融科技初创公司和互联网巨头利用前沿技术重塑客户对金融服务的预期&#xff0c;金融服务行业正在经历大规模的数字化颠覆。 对于非接触式支付、移动银行、信贷决策、欺诈检测等服务&#xff0c;金融业客户要求“实时体验”&#…