Graph and GNN——图的表示与图神经网络的介绍与应用

Hi,大家好,我是半亩花海。细数日子已然有很长一段时间没有更新博客了,不是在忙东忙西,就是在玩这玩那,在家摆,在学校gap,无敌了。言归正传,今天暂且先进一步探索并整理一部分图神经网络(GNN)的图的表示图神经网络部分。

目录

一、图的表示

(一)图的概念与形式

1. 聚合

2. 更新、循环

(二)图数据的任务

1. 图层面(分类/回归)

2. 边层面(分类/回归)

3. 节点层面(分类/回归)

二、图神经网络(GNN)

(一)图神经网络的概念

(二)图神经网络的工作流程

(三)图神经网络的数据集

参考文章


一、图的表示

(一)图的概念与形式

在开始讨论图神经网络之前,首先考虑如何表示图。在数学上,图 G 定义为一组节点/顶点 V 和一组边/链接 E,构成 G =(V,E) 的二元组,且每条边都连接着两个顶点。 

    如上示例图所示,顶点是 V = 1, 2, 3, 4,边是 E =(1, 2)、(2, 3)、(2, 4)、(3, 4)。为了简单起见,这里假设图是无向的,因此并未添加像 (2, 1)、(3, 2)、(4, 3) 这样的镜像对。

    而在实际应用中,顶点和边通常可以具有特定的属性特征,也可以是有向边。那么,如何用一种有效的方法来表示图呢?通常有两种方案:

    • 邻接矩阵:表示顶点之间相邻关系的矩阵。
    • 邻接表:存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。

      假设上图中的每个节点的特征分别为:F_{1},F_{2}, F_{3}, F_{4}

      1. 聚合

      • 节点3的邻居信息:N = W_{1}F_{2} + W_{2}F_{4},其中 W_{1}, W_{2} ​表示可训练参数,这些参数也可以手动设置。
      • 节点3的信息:\sigma(W \cdot F_3 + \alpha \cdot N),其中 \sigma 是激活函数,W 是可训练参数。

      同理,节点1、2、4以同样的方式聚合信息。

      • 第一次聚合:节点3可以包含节点2、3、4的信息。
      • 第二次聚合:节点3可以包含节点1、2、3、4的信息,因为节点2会在第一次聚合后包含节点1的信息。

      2. 更新、循环

      多次聚合、得到Loss,更新参数、循环训练。

          (二)图数据的任务

          1. 图层面(分类/回归)

          例:分子是天然的图,原子是节点,化学键是边。现在要做一个分类,有一个苯环的分子分一类,两个苯环的分子分一类。这是图分类任务

          2. 边层面(分类/回归)

          例:UFO拳击赛上,首先通过语义分割把台上的人和环境分离开来。赛场上的人都是节点,现在要做一个预测,预测的是这些人之间的关系,是对抗关系?还是观众watch的关系?还是裁判watch的关系?这是边分类任务。

          3. 节点层面(分类/回归)

          例:假设一个跆拳道俱乐部里有A、B两个教练,所有的会员都是节点。有一天A、B两个跆拳道教练决裂,那么各个学员是愿意和A在一个阵营还是愿意和B在一个阵营?这是节点分类任务。


          二、图神经网络(GNN)

          (一)图神经网络的概念

          图神经网络(Graph Neural Network, GNN)是一种深度学习模型,专门用于处理图结构数据。它能够捕捉节点的邻域结构信息,广泛应用于各种领域,如社交网络分析、生物信息学、推荐系统等。

          GNN的核心思想通过节点间的连接关系来传递和更新信息。基本的GNN模型包括递归图神经网络(Recursive GNN, RecGNN)和卷积图神经网络(Convolutional GNN, ConvGNN)。RecGNN通过递归地应用相同的参数集来提取节点的高级表示,而ConvGNN则通过图卷积层来学习节点特征的高级表示。

          GNN可以针对不同类型的任务进行输出,包括节点级输出(如节点分类和回归任务)、边级输出(如边分类和链接预测任务)以及图级输出(如图分类任务)。在训练GNN时,可以根据任务和数据标签的可用性采用不同的训练策略,包括半监督学习、监督学习和无监督学习。

          (二)图神经网络的工作流程

          GNN是对图上的所有属性进行的一个可以优化的变换,它的输入是一个图,输出也是个图。它只对属性向量(即上文所述的V、E、G)进行变换,但它不会改变图的连接性(即哪些点互相连接经过GNN后是不会变的)。在获取优化后的属性向量之后,再根据实际的任务,后接全连接神经网络,进行分类和回归。大家可以把图神经网络看做是一个图数据的在三个维度的特征提取器。

          (三)图神经网络的数据集

          我常用的包是PyG(PyTorch Geometric),它是一个为图形数据的处理和学习提供支持的PyTorch扩展库,以轻松地实现基于图形的机器学习任务,例如图分类、图回归、图生成等。

          PyG有许多内置的图分类和图回归数据集,可以用于训练和评估图神经网络。以下是一些常用的内置数据集:

          • Cora, Citeseer, Pubmed:这些数据集是文献引用网络数据集,用于节点分类任务。
          • PPI:蛋白质蛋白相互作用网络数据集,用于边分类任务。
          • Reddit:Reddit社交网络数据集,用于节点分类任务。
          • Amazon-Computers,Amazon-Photo:Amazon商品共同购买网络数据集,用于节点分类和图分类任务。
          • ENZYMES:蛋白质分子结构数据集,用于图分类任务。
          • MUTAG:分子化合物数据集,用于图分类任务。
          • QM7b:有机分子数据集,用于图回归任务。

          下篇文章将以一些代码实例来简单地演绎GNN网络的运作。


          参考文章

          [1] 实战-----基于 PyTorch 的 GNN 搭建_pytorch gnn-CSDN博客

          [2] 图神经网络简单理解 — — 附带案例_图神经网络实例-CSDN博客

          [3] 一文快速预览经典深度学习模型(二)——迁移学习、半监督学习、图神经网络(GNN)、联邦学习_迁移学习 图神经网络-CSDN博客

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

          如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

          相关文章

          京准电钟:NTP精密时钟服务器在自动化系统中的作用

          京准电钟:NTP精密时钟服务器在自动化系统中的作用 京准电钟:NTP精密时钟服务器在自动化系统中的作用 NTP精密时钟服务器在自动化系统中的作用非常重要,特别是在需要高精度时间同步的场景中。NTP能够提供毫秒级的时间同步精度,这…

          Https解决了Http的哪些问题

          部分内容来源:小林coding 详细解析 Http的风险 HTTP 由于是明文传输,所以安全上存在以下三个风险: 1.窃听风险 比如通信链路上可以获取通信内容,用户号容易没。 2.篡改风险 比如强制植入垃圾广告,视觉污染&#…

          GO 进行编译时插桩,实现零码注入

          Go 编译时插桩 Go 语言的编译时插桩是一种在编译阶段自动注入监控代码的技术,目的是在不修改业务代码的情况下,实现对应用程序的监控和追踪。 基本原理 Go 编译时插桩的核心思想是通过在编译过程中对源代码进行分析和修改,将监控代码注入到…

          flex布局自定义一行几栏,靠左对齐===grid布局

          模板 <div class"content"><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"…

          微软推出Office免费版,限制诸多,只能编辑不能保存到本地

          易采游戏网2月25日独家消息&#xff1a;微软宣布推出一款免费的Office版本&#xff0c;允许用户进行基础文档编辑操作&#xff0c;但限制颇多&#xff0c;其中最引人关注的是用户无法将文件保存到本地。这一举措引发了广泛讨论&#xff0c;业界人士对其背后的商业策略和用户体验…

          NLP的预处理数据

          处理文本数据的主要工具是Tokenizer。Tokenizer根据一组规则将文本拆分为tokens。然后将这些tokens转换为数字&#xff0c;然后转换为张量&#xff0c;成为模型的输入。模型所需的任何附加输入都由Tokenizer添加。 如果您计划使用预训练模型&#xff0c;重要的是使用与之关联的…

          应用的负载均衡

          概述 负载均衡&#xff08;Load Balancing&#xff09; 调度后方的多台机器&#xff0c;以统一的接口对外提供服务&#xff0c;承担此职责的技术组件被称为“负载均衡”。 负载均衡器将传入的请求分发到应用服务器和数据库等计算资源。负载均衡是计算机网络中一种用于优化资源利…

          C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手

          在上一篇《访问DeepSeekR1本地部署API服务搭建自己的AI办公助手》中&#xff0c;我们通过通过Ollama提供的本地API接口用Python实现了一个简易的AI办公助手&#xff0c;但是需要运行Py脚本&#xff0c;还比较麻烦&#xff0c;下面我们用C#依据Ollama提供的API接口开发一个本地A…

          springboot+dubbo+zookeeper的注册服务和调用实践

          目录 zookeeper为什么可作为注册中心zookeeper注册中心优缺点启动zookeeper编写springboot项目提供dubbo服务1. 服务接口2. Springboot引入dubbo实现服务接口2.1 工程目录和依赖2.2 启动程序和application.properties2.3 DubboService 实现服务接口2.4 测试api&#xff0c;用于…

          NL2SQL的应用-长上下文模型在处理NL2SQL任务时,相较于传统模型,有哪些显著的优势

          大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下NL2SQL的应用-长上下文模型在处理NL2SQL任务时&#xff0c;相较于传统模型&#xff0c;有哪些显著的优势。NL2SQL&#xff08;自然语言转SQL&#xff09;技术旨在将用户自然语言提问自动转换为结构化查询语句&#…

          A Large Recurrent Action Model: xLSTM Enables Fast Inference for Robotics Tasks

          奥地利林茨约翰开普勒大学机器学习研究所 ELLIS 小组&#xff0c;LIT 人工智能实验室奥地利林茨 NXAI 有限公司谷歌 DeepMind米拉 - 魁北克人工智能研究所 摘要 近年来&#xff0c;强化学习&#xff08;Reinforcement Learning, RL&#xff09;领域出现了一种趋势&#xff0c;…

          DeepSeek本地部署+自主开发对话Web应用

          文章目录 引言前端部分核心页面DeepSeek.vueMyModal.vue 后端部分WebSocketConfig 配置类AbstractDeepSeekToolDeepSeekWebSocketHandler 数据库设计总结 引言 最近DeepSeep横空出世&#xff0c;在全球内掀起一股热潮&#xff0c;到处都是满血大模型接入的应用&#xff0c;但这…

          DMA 定制固件教程:小白跟做即得单人固件,超详细纯喂饭教程,100% 成功秘籍!FPGA仿真1:1、中断逻辑和TLP核心都在。

          DMA 定制固件教程 小白跟着操作做可以做出的单人固件 图文教程 链接&#xff1a;https://docs.qq.com/doc/DQ01lVGtHelROVHNv 本图文教程包含内容&#xff1a; 一、DMA仿真技术采集真实单人固件 二、网卡TLP仿真固件生成 三、DMA仿真技术io、中断逻辑&#xff0c;从零仿真 四、…

          Linux | Ubuntu 与 Windows 双系统安装 / 高频故障 / UEFI 安全引导禁用

          注&#xff1a;本文为 “buntu 与 Windows 双系统及高频故障解决” 相关文章合辑。 英文引文&#xff0c;机翻未校。 How to install Ubuntu 20.04 and dual boot alongside Windows 10 如何将 Ubuntu 20.04 和双启动与 Windows 10 一起安装 Dave’s RoboShack Published in…

          spring中的注解介绍

          本篇文章专门用来介绍spring中的各种注解。 1、RestController 1、含义 2、举例 3、使用场景 RestController 通常用于开发 RESTful API&#xff0c;适合返回 JSON 或 XML 数据的场景 4、总结 RestController 是 Spring 中用于简化 RESTful Web 服务开发的注解&#xff0c;它结…

          JVM生产环境问题定位与解决实战(二):JConsole、VisualVM到MAT的高级应用

          生产问题定位指南&#xff1a;几款必备的可视化工具 引言 在上一篇文章中&#xff0c;详细的介绍了JDK自带的一系列命令行工具&#xff0c;&#xff0c;如jps、jmap、jstat、jstack以及jcmd等&#xff0c;这些工具为排查和诊断Java虚拟机&#xff08;JVM&#xff09;问题提供…

          网页制作09-html,css,javascript初认识のhtml如何使用表单

          表单主要用来收集客户端提供的相关信息。,使网页具有交互作用。在网页制作的过程中&#xff0c;常常需要使用表单&#xff0c;如进行会员注册&#xff0c;网上调查和搜索等 访问者可以使用如文本域列表框&#xff0c;复选框以及单选按钮之类的表单对象输入信息&#xff0c;然后…

          基本网络安全的实现

          基本网络安全的实现 一 &#xff1a;AAA AAA 是Authentication&#xff0c;Authorization and Accounting&#xff08;认证、授权和计费&#xff09;的简 称&#xff0c;它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架&#xff0c; 它是对网络安全…

          Jupyter Notebook~Anaconda3安装教程

          一、下载anaconda&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 百度网盘通道&#xff0c;链接:https://pan.baidu.com/s/1gyVDG2p71neFXi8VwXgvEQ?pwdewn7提取码: ewn7 二、安装 1、右击安装软件选择【以管理员身份运行】&#xff0c;点击【Next】…

          【运维】内网服务器借助通过某台可上外网的服务器实现公网访问

          背景&#xff1a; 内网服务器无法连接公网,但是办公电脑可以连接内网服务器又可以连接公网。 安装软件 1、frp 2、ccproxy 配置 1、内网服务器 # 内网服务器启动frp服务配置文件参考vi frps.ini# frps.ini [common] bind_port 7000# 备注: bind_port端口可以随意配置。配置完…