图卷积网络GCN---底层逻辑最简单直白的理解

news2024/10/6 6:41:57

一 、GNN是怎么被提出来的?

比较常见的有CNN、RNN等。CNN的核心在于它的kernel,kernel在图片上平移,通过卷积的方式来提取特征。这里的关键在于图片结构上的平移不变性:一个小窗口无论移动到图片的哪一个位置,其内部的结构都是一模一样的,因此CNN可以实现参数共享。RNN针对的是自然语言这样的序列信息,是一个一维的结构。

但是在实际生活中,有很多不规则的结构,比如社交网络,分子结构等。图的结构是不规则的,没有平移不变性。简单来说,他也是一个特征提取器,只不过处理的对象是图数据。

图神经网络(GNN)可以解决的问题包括:节点分类、连接预测等。

二、GCN的思想

1、关键思想

基于附近的网络邻居生成节点的嵌入(embedding)表示。如下图所示,如果我们想要更新A点,那就要聚合一下它周围邻居的信息。

GCN模型可以有很多层。第K层的节点的嵌入表示是聚合第K-1层邻居的节点信息来计算得到的。其中,节点在第0层的嵌入表示就是节点特征(也就是这个点在最开始的时候含有的特征,它可能是多维的)。

更通俗的说,GCN的一个关键就是融合邻居的信息,那具体怎么来融合的,融合后进行什么操作?就是我们常听说的聚合与更新。

2、聚合与更新

 GCN在更新的时候,会加上自身的信息更新自身,如果这里不理解,下面会继续介绍。

3、简单理解

实际上无论经过多少层的GCN,最开始的图结构是不会被改变的,改变的是节点的信息,因为节点的信息一直在根据自己的邻居做更新。

 三、公式及其理解

太复杂的公式我也看不懂,但是我们把网络最基本的公式简单描述一下它的组成。

图神经网络的原型就是σ(AHW)这样的形势,跟上图对比,实际上是很像的。

本质就是邻接矩阵A和节点特征H,直接做内积,再乘一个参数矩阵W,然后激活一下,就相当于一个的神经网络层。就可以完成特征提取的工作了。

假设有一个图如下所示:

1、图结构的邻接矩阵A 和 图节点特征H

先说A,在上面已经给图的各个点进行编号,如果两个点之间有链接就是1,没有连接就是0。这个过程就是把图数据转化为邻接矩阵。

再说H,假如节点是有特征的,那么邻接矩阵就不能完整表达一个图结构,所以加入节点的特征矩阵。节点特征对于社交网络来说,可以是用户的身高、性别、年龄等;对于生物信息来说可以是基因表达矩阵等。

节点特征包含几列,取决于节点特征向量的长度,在下图中,特征向量的长度就是2。

如果 A 与 H 矩阵相乘(也就是说,节点与邻居相乘),这时候并没有把自身的信息保留下来,所以加入自连接。

2、有自连接的邻接矩阵\tilde{A}

它的作用就是上文所说的,加上自身的信息更新自身。

3、有自连接的邻接矩阵的度矩阵\tilde{D}

 这里的数值表示的是,包含的连接的节点和自连接本身。

4、为什么需要有自连接的邻接矩阵的度矩阵?

A是没有经过归一化的矩阵,这样与特征矩阵H相乘会改变特征原本的分布,所以对A做一个标准化处理。平衡度很大的节点的重要性。(对称归一化拉普拉斯矩阵)

四、参考链接

GCN(图卷积)--简书

GCN 图卷积网络---哔哩哔哩

The challenges of using graphs in machine learning

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

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

相关文章

Elk运维-elastic7.6.1集群安装部署

wei集群安装结果说明 实例配置安装软件安装账号hadoop1 2C4G 磁盘:50G 云服务器 elasticsearch kibana rdhadoop2 2C4G 磁盘:50G 云服务器 elasticsearchrdhadoop3 2C4G 磁盘:50G 云服务器 elasticsearchrd整个安装过程使用的账号&…

linux(docker)下使用VuePress从零开始搭建自己的博客(一):VuePress环境搭建

目标:在linux centos下使用VuePress搭建博客系统,最好能利用docker进行备份和迁移。 本节内容:本节主要讲述VuePress的环境搭建过程,VuePress的基本配置以及备份和迁移。详细记录了从零开始搭建的过程,以及搭建过程中遇…

Apache配置与应用

1.基于域名的虚拟主机 为虚拟主机提供域名解析 基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。例如,www.benet.com 和 www.accp.com 站点的 IP 地址都是 192.168.80.10。这是使用最为普遍的虚拟 Web 主机类型。 方法…

【Java Web】015 -- Maven高级(分模块设计与开发、继承与聚合、私服)

目录 一、分模块设计与开发 1、为什么要分模块设计? 2、实践:分模块开发 ①、实现步骤 3、小结 二、继承与聚合 继承 1、继承关系 ①、为什么要在Maven工程中实现继承? ②、继承关系实现 ③、继承实现小结 ④、maven项目父子工程结构说明 2、…

Java Stream API 操作完全攻略:让你的代码更加出色 (二)

前言 Java Stream 是一种强大的数据处理工具,可以帮助开发人员快速高效地处理和转换数据流。使用 Stream 操作可以大大简化代码,使其更具可读性和可维护性,从而提高开发效率。本文将为您介绍 Java Stream 操作的所有方面,包括 red…

WMS仓库管理系统,你能操作明白吗?别让"智能"变"滞能"

随着社会的进步,智能车间、智能工厂等申报的展开,“智能化”的概念,让企业系统出现更迭。以智能化仓储管理系统为例,企业工厂利用WMS的优势,依照运行的工作标准和运算法则,对仓库进行精细化管理。 WM…

IC学习笔记22——memory_compilermemory_wrapper

一、memory_compiler 1.1 memory_compiler的介绍 memory_compiler为一系列工具的统称,用于生成芯片开发所需要的memory。芯片开发中所需要的memory为sram、rom等。很多公司都有自己开发的memory_compiler工具。 1.2 SRAM基础 sram写操作(写1) 将要写入的数据“1”通过写入…

Vue学习笔记(3. 基本语法,数据绑定,指令)

1. 基本语法 vue2的基本语法如下&#xff1a; <html> <head> <title>testVUE</title> <script src"https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> </head><body><div id"app">模板…

【操作系统】深入理解Linux虚拟内存管理

【操作系统】深入理解Linux虚拟内存管理 本篇跟大家说说内存管理&#xff0c;内存管理还是比较重要的一个环节&#xff0c;理解了它&#xff0c;至少对整个操作系统的工作会有一个初步的轮廓。 虚拟内存 如果你是电子相关专业的&#xff0c;肯定在大学里捣鼓过单片机。 单片…

出口欧盟认证机构为什么推荐CE认证

产品做CE证书要什么好处&#xff0c;CE证书要什么作用&#xff1f; 在中国很多中小企业困扰的是&#xff0c;好不容易走出国门接到来自国外的订单。却因为没有相应的产品安全认证而无法顺利取得订单。或者当产品到达目的地后&#xff0c;因为无法提供相应的产品安全认证证明文件…

网络编程 端口状态都有哪些?

客户端各个状态&#xff1a; 三次握手阶段 CLOSED&#xff08;持续状态&#xff09; 关闭状态 SYN_SENT &#xff08;非常短暂&#xff09; SYN_SENT状态表示请求连接&#xff0c;当你要访问其它的计算机的服务时首先要发个同步信号给该端口&#xff0c;此时状态为SYN_SENT&a…

数据库MySQL —— 存储过程

目录 一、介绍 二、基本语法 三、变量 1. 系统变量 2. 用户自定义变量 3. 局部变量 四、流程控制语句 1. if判断 2. 参数 3. case 4. 循环 4.1 while 4.2 repeat 4.3 loop 五、游标 - cursor 六、条件处理程序 - handler 七、存储函数 一、介绍 存储过…

自学大数据第17天~Hive安装与配置及常用命令

嗨咯,好几天没更新了,你以为我不知道吗? 这几天主要还是学习,学习如何再学习! 简述以下这几天都学习了什么~ MongoDB的命令 GaussDB(for Mongo)集群架构与社区版架构的对比 社区版(副本集架构): mongos(路由) config(记录元数据) shard(负责计算和存储) GaussDB(for Mongo)存…

uni-app--》uni-app的生命周期讲解

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

数据库的安全性

安全性 安全性保护手段 用户标识与鉴别自主存取控制强制存取控制视图审计和数据加密 数据库的安全性是指保护数据库防止因用户非法使用数据库造成数据泄露、更改或破坏 数据库安全保护分层 物理层人际层网络层操作系统层数据库系统层 物理层的安全性是指计算机系统所位于的节…

银行数字化转型导师坚鹏:银行数据治理和数据质量问题解决

银行数据治理和数据质量问题解决 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不知道如何准确理解银保监会数据治理相关政策及要求&#xff1f; 不清楚如何有效解决数据治理及数据质量遇到的重要问题&#xff1f; 科技条线不清楚如何配合业务人员更好地提高数据…

模板方法设计模式(TemplateMethod)

文章目录抽象类语法使用说明注意事项模板方法设计模式代码示例应用抽象类 随着继承层次中一个个新子类的定义&#xff0c;类变得越来越具体&#xff0c;而父类则更一般&#xff0c;更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象&#xff0c;以…

Centos7安装Navicat15中文

1. ubuntu 下制作AppImage镜像 sudo apt-get install libcapstone-devsudo apt-get install cmake git clone https://github.com/keystone-engine/keystone.git cd keystone mkdir build cd build ../make-share.sh sudo make install sudo ldconfigsudo apt-get install rap…

【行为型模式】模板方法模式

文章目录优秀借鉴1、概述2、结构3、实现方式3.1、案例引入3.2、结构分析3.3、具体实现4、模板方法模式优缺点5、应用场景优秀借鉴 黑马程序员Java设计模式详解-模板方法模式概述 1、概述 模板方法模式(Template Method)是一种设计模式&#xff0c;它定义了一个算法的框架&am…

Nacos 2.2.2 发布,优化启动体验和鉴权提示

Nacos 社区近期发布了 2.2.0.1 和 2.2.1 版本&#xff0c;对默认鉴权插件做出了较大的改动&#xff0c;详情查看**风险说明 [ 1] **及 **2.2.1 发布 [ 2] **。由于 Nacos 默认控制台 ui 中默认依赖了 token.secret.key&#xff0c;所以在移除了 token.secret.key 的默认值后&am…