图卷积神经网络GNN(一)

news2024/9/20 0:52:47

图卷积神经网络GNN

研究学习的背景

对于图神经网络(GNN)来输入的数据是图。(解决输入数据不规则情况)输入的格式不是固定的

研究涵盖:节点分类(nodeclassification)、边预测(linkprediction)、社群检测(community detection)、网络营销(viral marketing)、网络相似度(network similarity)

snap数据集是Jure等人不间断收集的网络数据集,极大地推动社交网络领域的发展
在这里插入图片描述

整个GNN的任务整体上可以分为3种主要的任务组成。

  • Graph(图任务)
  • Edge(边任务)
  • point(点任务)

邻接矩阵

在图神经网络(GNN)中一般邻接矩阵表达形式如下,并不是一个N*N的矩阵,而是保存source,target。

所有在使用pytorch的情况下,通过传入的邻接矩阵是一个2 x N的矩阵形式 N:代表的是边的个数 2表示的是source,target

AdjacencyList
[[1,0][20][43][62][74][75]]

计算消息传递

  • 聚合操作可以当作全连接层

  • 但是更新的方法有很多,可以自己设置

  • 结合邻居与自身信息:
    m ˉ i = G ( { W j ⋅ x j : j ∈ N i } ) \bar{m}_{i}=G\left(\left\{\mathbf{W}_{j} \cdot x_{j}: j \in \mathcal{N}_{i}\right\}\right) mˉi=G({Wjxj:jNi})

  • 进行汇总和计算

h i = σ ( W 1 ⋅ h i + ∑ j ∈ N i W 2 ⋅ h j ) h_{i}=\sigma\left(W_{1} \cdot h_{i}+\sum_{j \in \mathcal{N}_{i}} \mathbf{W}_{2} \cdot h_{j}\right) hi=σ W1hi+jNiW2hj

在这里插入图片描述

其他的一些计算的方式还包括了:

 Sum  = ∑ j ∈ N i W j ⋅ x j  Mean  = ∑ j ∈ N i W j ⋅ x j ∣ N i ∣ Max ⁡ = max ⁡ j ∈ N i ( { W j ⋅ x j } ) Min ⁡ = min ⁡ j ∈ N i ( { W j ⋅ x j } ) \begin{aligned} \text { Sum } & =\sum_{j \in \mathcal{N}_{i}} \mathbf{W}_{j} \cdot x_{j} \\ \text { Mean } & =\frac{\sum_{j \in \mathcal{N}_{i}} \mathbf{W}_{j} \cdot x_{j}}{\left|\mathcal{N}_{i}\right|} \\ \operatorname{Max} & =\max _{j \in \mathcal{N}_{i}}\left(\left\{\mathbf{W}_{j} \cdot x_{j}\right\}\right) \\ \operatorname{Min} & =\min _{j \in \mathcal{N}_{i}}\left(\left\{\mathbf{W}_{j} \cdot x_{j}\right\}\right) \end{aligned}  Sum  Mean MaxMin=jNiWjxj=NijNiWjxj=jNimax({Wjxj})=jNimin({Wjxj})

多层GNN作用

GNN的本质就是更新各部分特征。其中输入是特征,输出也是特征,,邻接矩阵也不会变的。

多层计算的GNN可以聚合更远的特征(类似与感受野不断的变大)。

在这里插入图片描述

那输出得到的特征可以用来做什么呢?

  • 各个点的特征组合可以进行图的分类。
  • 各个节点的组合也可以进行分类。
  • 各个边之间进行组合同样可以进行分类。

本质上是通过多层的GNN得到对应节点的特征信息。

图卷积

通常交给GCN两个东西就行:1.各节点输入特征;2.网络结构图(邻接矩阵)。

特点:Semi-supervised learning(是一种半监督学习的任务)

这是图神经网络(GCN)的一种优势,不需要全部标签用少量标签也能训练。计算损失时只用有标签的。

图卷积的计算本质上就是一种计算消息传递,我们对每一个结点依次完成聚合操作后,经过激活函数后在进行下一层的图卷积操作。(层数不会太多

在这里插入图片描述

图卷积计算

对于一个Graph G(图G)进行图卷积的计算需要涉及到三个矩阵,分别是A矩阵D矩阵F矩阵

  • A是邻接矩阵矩阵

  • D是各个节点的度矩阵(主对角线

  • F是每个节点的特征矩阵

在这里插入图片描述
邻接矩阵与特征矩阵进行乘法操作,表示聚合邻居信息(也就是A 和 F做矩阵的乘法操作)

之后考虑对行和列同时做归一化的处理。相当在两侧同时乘D-1 [度矩阵的逆矩阵]。

  1. 首先在A矩阵参与运算的过程中需要考虑自身的元素。

A ~ = A + λ I N \tilde{A}=A+\lambda I_{N} A~=A+λIN

在这里插入图片描述
2. 在A和F做矩阵乘法之前需要对计算结果或者说是A矩阵做一个归一化的处理。去倒数(求逆

在这里插入图片描述
3. 对换顺序参与矩阵的归一化处理。(按行进行举例)左乘相当于对行做归一化.

D ~ − 1 ( A ~ X ) \tilde{D}^{-1}(\tilde{A} X) D~1(A~X)

( D ~ − 1 A ~ ) X \left(\tilde{D}^{-1} \tilde{A}\right) X (D~1A~)X

行和列同时做归一化处理。

D ~ − 1 A ~ D ~ − 1 X \tilde{D}^{-1} \tilde{A} \tilde{D}^{-1} X D~1A~D~1X

D ~ − 1 / 2 A ~ D ~ − 1 / 2 X \tilde{D}^{-1 / 2} \tilde{A} \tilde{D}^{-1 / 2} X D~1/2A~D~1/2X

在这里插入图片描述

经过上面的计算本质上相当于对矩阵做了一定的线性变换

A ^ = D ~ − 1 / 2 A ~ D ~ − 1 / 2 \hat{A}=\tilde{D}^{-1 / 2} \tilde{A} \tilde{D}^{-1 / 2} A^=D~1/2A~D~1/2

两层网络结构的计算公式

Z = f ( X , A ) = softmax ⁡ ( A ^ Relu ⁡ ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{Relu}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right) Z=f(X,A)=softmax(A^Relu(A^XW(0))W(1))

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

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

相关文章

​ArcGIS Pro和ArcGIS的10大区别

本文来源:水经注GIS公众号 如果你经常使用ArcGIS 进行制图和分析,那么你一定听说过ArcGIS Pro,这款软件是Esri未来主打的一款桌面GIS软件,那么这款软件和ArcGIS相比有什么不同呢,这里为你列举了两款软件的10大区别&am…

海康威视相机在QTcreate上的环境配置教程(qt+opencv+海康SDK)

环境配置教程 前言:环境配置:1.海康SDK2.opencv 参考导入文件 前言: 配置环境是编程的第一步,所以写这篇文章来指导环境的配置。如果已经配置好了,想在qt上使用海康的摄像头,可以参考这篇文章:…

骨传导耳机哪个品牌好用?良心测评推荐5大高分骨传导耳机!

在快节奏、数字化的生活时代,耳机成为连接外界与个人世界的桥梁,尤其在户外运动和健身场景中更是不可或缺。传统入耳式耳机虽然携带方便、音质优秀,但长时间佩戴会对耳道和鼓膜造成压力,甚至引发耳部不适。为解决这一痛点&#xf…

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt,并输入 java -jar D:\test\test.jar(修改为自己的jar包位置) 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt,输入以下内容,&…

Meme“淘金”热潮下:Meme发射平台的安全风险分析

2023年,Meme赛道成为加密市场和各大公链生态的重点关注板块之一,尤其是在Solana等公链上,Meme代币迎来了爆发。许多Meme代币的交易量飙升,年初Solana生态中的Meme代币交易额甚至达到百亿美元。乘着Meme代币的东风,Meme…

VSCode配置 C/C++ 开发环境

目录 1.概述 2. 安装 C/C 扩展 3. 安装编译器 3.1.Windows 3.2.macOS 3.3.Linux 4. 配置 VSCode 5. 构建和运行 1.概述 在 Visual Studio Code (VSCode) 中配置 C/C 开发环境,需要安装一些扩展和正确配置编译器。以下是详细的步骤: 2. 安装 C/C…

Agilent MSO7104A安捷伦示波器1G 4通道

Agilent MSO7104A安捷伦示波器1G 4通道 附加功能: 带宽:1 GHz 通道:4 个模拟和 16 个数字 采样率:4 GSa/s 记录长度:标准 8 Mpts MegaZoom III 深存储器 垂直分辨率:8位 自动缩放和峰值检测 有见地的…

数据分类:成功DLP的基本要求

现如今我们存储数据的方式发生了巨大变化,从优质硬盘到今天的云存储解决方案,存储技术的进步大幅削减了成本,并使组织能够呈指数级增长的数据,我们都在利用这一点。 事实上,数据每年以惊人的 25% 的速度增长&#xff…

顶级PCVR头显具备什么配置?清晰度如何?

头戴式显示器是VR体验中用户与虚拟现实环境交互不可或缺的一部分。高端的头显通常可为使用者提供具有超高分辨率的高清画面,因此当你拥有一部高端的VR头显,虚拟世界将如真实世界一样呈现在你眼前。 说到顶级头显我们就不得不提到Varjo,Varjo是…

最全的性能测试性能诊断工具清单

给做性能问题的诊断需要用到的工具分一下类的话,主要有以下类,网络通信报文抓取工具、基础软件监控工具、第三方资源监控工具、专业性能诊断工具和反编译工具。 接下来我们就分别说说,每类里面都有哪些工具。首先第一类是网络通信报文抓取工…

【CanMV K230 AI视觉】人脸3D网格

【CanMV K230 AI视觉】人脸3D网格 人脸3D网格 (动态测试效果可以去下面网站自己看。) B站视频链接:已做成合集 抖音链接:已做成合集 人脸3D网格 人脸3D网格,在检测到人脸后用多个点描绘整个脸,从而把人脸…

Java导入、导出excel保姆级教程(附封装好的工具类)

前言 我们在日常开发中,一定遇到过要将数据导出为Excel的需求,那么怎么做呢?在做之前,我们需要思考下Excel的组成。Excel是由四个元素组成的分别是:WorkBook(工作簿)、Sheet(工作表)、Row(行)、Cell(单元格)&#xff…

深度学习-目标检测(四)-Faster R-CNN

目录 一.模型框架 二:步骤详细 1.conv layers 2.RPN 3.anchors 4.cls layer分类 5.reg layer回归 6.Proprosal 7.Rol pooling 8.Classification 三.训练 1.训练RPN网络 2.全连接层部分训练: 都看到这里了,点个赞把!&a…

adb有线连接正常,adb connect失败

adb connect失败 1. 确认两个设备在同一个局域网 2. 确认此网络是否有adb连接的权限(有的公司网络不允许adb) 3. 确认防火墙设置 如果前面3步都确认没问题,Ping ip也能成功,那么有可能就是端口的问题: step1: 先用有线连接设备&#xff0…

DBeaver连接数据库报连接错误:Public Key Retrieval is not allowed

问题描述 使用DBeaver软件连接mysql数据库的时候,有如下提示信息: 解决办法 点击驱动属性->找到allowPublicKeyRetrieval这项,把值设置为TRUE,再点击连接测试 可以成功连接到mysql数据库,问题解决~

面试题 Spring bean 循环依赖解决方案以及三级缓存讲解

文章目录 Spring bean 循环依赖1.1 什么是循环依赖1.2 Spring循环依赖几种情况 什么是三级缓存到底是什么东西,三级缓存做了什么?三级缓存源码讲解 Spring bean 循环依赖 1.1 什么是循环依赖 当面试官问到你给我讲一下什么是循环依赖吧,该如…

简单数据库sqlite

目录 数据库 简介 1、分类: 大型 中型 小型 2、名词: 3、嵌入式数据库: 4、sqlite3的安装: LTS long term support 5.1、sqlite3的使用: 0、启动sqlite3 1、系统维护命令:> .help 5.2、标准SQL…

盘点4款高效率的PDF在线编辑工具

PDF格式的文件在分享和传输这方面确实要比七个格式的文件要方便一些,但正因为如此,导致有的时候编辑起来不是很方便。这个时候专业的PDF编辑工具就变得很重要,尤其是在线编辑工具,不用下载就可以直接使用。所以我便要跟大家分享几…

探索GPU算力在大模型和高性能计算中的无限潜能

在当今科技领域,大模型和高性能计算正以惊人的速度发展。大模型如语言模型、图像识别模型等,规模越来越大,精度越来越高,能够处理复杂的任务和生成逼真的结果。高性能计算则凭借强大的计算能力,推动着科学研究、工程设…

黑马点评18——多级缓存-OpenResty

文章目录 安装OpenRestyOpenResty快速入门OpenResty获取请求参数封装Http请求向Tomcat发送http请求根据商品id对tomcat集群负载均衡Redis缓存预热查询Redis缓存Nginx本地缓存 安装OpenResty 安装参考博客 OpenResty快速入门 nginx是没有业务能力的,我们是把请求转发…