当前位置: 首页 > news >正文

【论文阅读】GNN阅读笔记

A gentle introduction on gnn

前言

发表在distill的文章

图神经网络在应用上才刚刚开始

搭建了一个GNN playground

什么是图

图是表示实体之间的关系

可以分别表示成点向量、边向量、图向量

图可以分为有向图和无向图

数据是怎么表示成图

图片表示成图:

把图上的每一个像素都映射成图上的一个点

边是像素之间的关系

文本表示成图:

上一个词和下一个词之间有一条有向边

化学表示图:

每一个原子表示成一个点

社交网络表示成一个图:

人物在场景里同时出现

数据集:

Qm9 化学分子式

Cora 论文引用

wikipedia 知识图 引用图

在图上可以定义什么问题

图层面

比如给一张图,对图进行分类

顶点层面

节点分类

边层面

边的属性预测

将机器学习用在图上会遇到什么挑战

图的四个属性:点属性、边属性、图的全局属性、连接性

连接性可以通过邻接矩阵来表示

存储高效并且存储无关的

图神经网络

v1 最简单的GNN

对于点、边、图,分别构造一个MLP

进去以后得到了更新后的三种向量

比如做节点二分类,就在后面加一个输出维度为2的全连接层,再加一层softmax,就可以得到输出。

如果是n类,就加一个输出维度为n的全连接层,再加一层softmax。

pooling

对一个点的向量做预测

把全局向量、边的向量加起来;不过维度要一致,否则要做投影

所有边和顶点的向量加起来,可以得到全局的向量

总结

GNN一个层里就是三个MLP,对原图做transform

在图转换为向量以后,加一个分类层就可以做预测了

但是这种方法有局限性,没有考虑到连接信息,没有把图的信息更新到结构里

v2 信息传递

aggregate 把邻居的向量加起来,聚合后,再更新

这里相当于卷积,但是权重都是一样的

顶点和边之间的交换

可以交替交换

全局信息的交换

Master node

这个点是一个虚拟的点,可以和所有的点和边相连

把所有的顶点和边的信息都拿过来汇聚

这样对三类属性都可以学到预测的向量

其实有点像attention mechanism

基于消息传递的图神经网络

GNN playground

把gnn的训练程序嵌入到javascript

在浏览器里运行的

可以选图神经网络有多少层

可以改变超参数,重新进行训练

这个东西超参数比较难调

相关技术

不同类型的图

可能有很多别的图,比如multigraph,比如图可能是分层的

采样

如果图太大,可能要做采样

随机采样一些点,把这些点的邻居找出来,只在子图上做计算,减少内存

做随机游走,规定最多随机走几步,就可以得到子图

batch

inductive biases

gnn的假设是保持了图的对称性

不同的汇聚操作

求和、求平均

没有一个聚合的操作是比另一个更好的

所以在实际应用中可能要找一个适合的办法

GCN

GCN就是带了aggregation的神经网络

每一个点都是以自己为中心的往前走k步的子图的汇聚

GCN可以认为是有n个子图

dual

可以做对偶

在图上做卷积,做random work,都是在矩阵上做乘法

和pagerank的思想有点像

GAT

在图上做汇聚的时候每个点的权重是相同的

卷积的权重是对位置不敏感的

所以可以用注意力机制的的办法

做点乘,以后做softmax

图的可解释性

图到底学到了什么东西

结论

写作:非常流畅

gnn就是对属性做变换,但是不改变图的结构

怎么做预测,就是最后做输出层

如果有缺失可以用一个聚合的操作,弥补缺失的属性

消息交换,可以通过汇聚的方法把图上的信息进行汇聚

实验部分对于每个超参数对结果的影响是怎么样的

最后对gnn相关的技术进行了展开

交互图蕴藏了很多信息,美观直观

图既是一个优点也是一个缺点,图数据的可视化是比较难的

distill写作的门槛太高

尽量的使用图和文字来描述,而不是公式和代码

在图上做优化是很难的,因为它的架构很稀疏

图神经网络对超参数很敏感

所以图神经网络的门槛比较高

图神经网络在工业界的应用是比较少的

相关文章:

【论文阅读】GNN阅读笔记

A gentle introduction on gnn 前言 发表在distill的文章 图神经网络在应用上才刚刚开始 搭建了一个GNN playground 什么是图 图是表示实体之间的关系 可以分别表示成点向量、边向量、图向量 图可以分为有向图和无向图 数据是怎么表示成图 图片表示成图: …...

QT常用控件——QTreeWidget(树控件),QTableWidget控件

目录 ★先开个小灶,在此插句话:【有关Halcon与Qt联编变量转换】 QTreeWidget树控件 QTableWidget控件...

为什么学校购买小型数控机床而不是大型工业数控机床?

CNC 机器是计算机控制的设备,可以高精度和准确度地切割、雕刻、钻孔或雕刻各种材料。 它们广泛应用于制造、工程、设计和艺术行业。 CNC 机器具有不同的尺寸和功能,从小型台式机到大型工业机型。 人们可能想知道为什么学校会选择购买小型 CNC 机器而不是…...

【Go自学】一文搞懂Go append方法

我们先看一下append的源码 // The append built-in function appends elements to the end of a slice. If // it has sufficient capacity, the destination is resliced to accommodate the // new elements. If it does not, a new underlying array will be allocated. //…...

【压测】通过Jemeter进行压力测试(超详细)

文章目录背景一、前言二、关于JMeter三、准备工作四、创建测试4.1、创建线程组4.2、配置元件4.3、构造HTTP请求4.4、添加HTTP请求头4.5、添加断言4.6、添加察看结果树4.7、添加Summary Report4.8、测试计划创建完成五、执行测试计划总结背景 通过SpringCloudGateway整合Nacos进…...

C# | 上位机开发新手指南(七)加密算法

上位机开发新手指南(七)加密算法 文章目录上位机开发新手指南(七)加密算法前言加密算法的分类对称加密算法和非对称加密算法流加密算法和块加密算法分组密码和序列密码哈希函数和消息认证码对称加密与非对称对称加密优点缺点对称加…...

实验一 跨VLAN访问

目录 一、按照拓扑图配置VLAN,并实现跨VLAN间的访问。 二、实验环境 三、实验步骤 一、按照拓扑图配置VLAN,并实现跨VLAN间的访问。 1、配置好交换机的VLAN和各个终端的地址,实现各个VLAN内能连通。 2、开启两个交换机的VTY连接&#xff0…...

通信算法之130:软件无线电-接收机架构

1. 超外差式接收机 2.零中频接收机 3.数字中频接收机...

C++编程大师之路:从入门到精通-C++基础入门

文章目录前言主要内容C基础入门初识C第一个C程序注释变量常量关键字标识符命名规则数据类型整型sizeof关键字实型(浮点型)字符型转义字符字符串型布尔类型 bool数据的输入运算符算术运算符赋值运算符比较运算符逻辑运算符程序流程结构选择结构if语句三目…...

如何在千万级数据中查询 10W 的数据并排序

前言 在开发中遇到一个业务诉求,需要在千万量级的底池数据中筛选出不超过 10W 的数据,并根据配置的权重规则进行排序、打散(如同一个类目下的商品数据不能连续出现 3 次)。 下面对该业务诉求的实现,设计思路和方案优…...

RocketMQ消息文件过期原理

文章目录 消费完后的消息去哪里了?什么时候清理物理消息文件?这样设计带来的好处跳过历史消息的处理所有的消费均是客户端发起Pull请求的,告诉消息的offset位置,broker去查询并返回。但是有一点需要非常明确的是,消息消费后,消息其实并没有物理地被清除,这是一个非常特殊…...

Docker容器理解

目录 目录 一:简单理解操作系统 操作系统: 内核: 内核空间和用户空间: 二:简单理解文件系统 1:什么是文件系统 2:什么是root文件系统 三:docker 1:docker镜像 2&…...

SpringBoot 整合knife4j

文章目录SpringBoot 整合knife4j引入knife4j注解案例knife4j增强功能接口添加作者资源屏蔽访问页面加权控制接口排序分组排序请求参数缓存过滤请求参数禁用调试禁用搜索框SpringBoot 整合knife4j Knife4j是一款基于Swagger 2的在线API文档框架 在Spring Boot中,使…...

73-归并排序练习-LeetCode148排序链表

题目 给你链表的头结点 head ,请将其按升序排列并返回排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3&#xff…...

Hystrix学习笔记

Hystrix 官方文档: https://github.com/Netflix/Hystrix/wiki 是什么 In a distributed environment, inevitably some of the many service dependencies will fail. Hystrix is a library that helps you control the interactions between these distributed …...

面向对象编程(基础)8:关键字:package、import

目录 8.1 package(包) 8.1.1 语法格式 说明: 8.1.2 包的作用 8.1.3 应用举例 举例2:MVC设计模式 8.1.4 JDK中主要的包介绍 8.2 import(导入) 8.2.1 语法格式 8.2.2 应用举例 8.2.3 注意事项 8.1 package(包) package,称为包&#x…...

【机器学习】P10 从头到尾实现一个线性回归案例

这里写自定义目录标题(1)导入数据(2)画出城市人口与利润图(3)计算损失值(4)计算梯度下降(5)开始训练(6)画出训练好的模型(…...

【Java EE】-多线程编程(四) 死锁

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享:2023.3.31号骑行的照片再发一次(狗头)。 主要内容:什么是死锁?不可重入可重入、死锁的三个典型情况:1、一个线程一…...

学习数据结构第1天(数据结构的基本概念)

数据结构的基本概念基本概念和术语数据结构的三要素经典试题基本概念和术语 1.数据 数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 2.数据元素 数据元素是数据的基本…...

南大通用数据库-Gbase-8a-学习-33-空洞率查询与解决方法

目录 一、个人理解 二、存储过程 三、虚机测试 四、解决方法 1、重建表 2、shrink space 一、个人理解 空洞率的产生是由于delete语句并不会真实的删除数据,只是在数据上打了一个不可见标签,但实际还是占用着相应的存储空间。 二、存储过程 自定义…...

为什么我们认为GPT是一个技术爆炸

从23年初,ChatGPT火遍全球,通过其高拟人化的回答模式,大幅提升了人机对话的体验和效率,让用户拥有了一个拥有海量知识的虚拟助手,根据UBS发布的研究报告显示,ChatGPT在1月份的月活跃用户数已达1亿&#xff…...

程序员如何能提高自己的编程水平?

这些实用的小建议,能帮你迅速地提高编程水平: 不要做无意义的奋斗 拒绝喊口号和无意义的奋斗,包括但不限于: ①做了计划表却从未有执行的一天; ②每天都是最早来、最晚走,但是工作进度趋近于0&#xff1b…...

从零使用vuepress搭建个人博客部署.github.io

前言 记录小白如何搭建个人博客 github部署的博客👉: DreamLuffe的博客 netilify部署的博客:👉:DreamLuffe的博客 个人博客搭建实战 网上有很多优秀的开源博客页面,我们就直接安装好,再继续…...

Python 进阶指南(编程轻松进阶):十一、注释、文档字符串和类型提示

原文:http://inventwithpython.com/beyond/chapter11.html 源代码中的注释和文档可能和代码一样重要。原因是软件是永远不会完成的;无论是添加新功能还是修复错误,您总是需要做出改变。但是你不能改变代码,除非你理解它&#xff0…...

python item()方法

Python中有很多方法来解决一些简单的问题,其中最常见的就是用 item ()方法来完成。item ()方法的全称是item-process (),该方法用来对对象进行创建、删除、改变、添加、更新等操作。…...

【day2】Android Jetpack Compose环境搭建

【day2】Android Jetpack Compose环境搭建 以下是适用于 Jetpack Compose 的环境要求: Android Studio 版本:4.2 Canary 15 或更高版本Gradle 版本:7.0.0-beta02 或更高版本Android 插件版本:4.2.0-beta15 或更高版本Kotlin 版本…...

stable-diffusion安装和简单测试

参考: https://github.com/CompVis/stable-diffusion 理解DALLE 2, Stable Diffusion和 Midjourney的工作原理 Latent Diffusion Models论文解读 【生成式AI】淺談圖像生成模型 Diffusion Model 原理 【生成式AI】Stable Diffusion、DALL-E、Imagen 背後…...

MATLAB算法实战应用案例精讲-【智能优化算法】 基于帕累托包络的选择算法II(PESA-II)(附MATLAB代码实现)

目录 前言 知识储备 数据包络分析(DEA) 特点 名词解释 类型介绍 案例简介 软件操作(SPSSPRO)...

【华为机试真题详解JAVA实现】—坐标移动

目录 一、题目描述 二、解题代码 一、题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。 输入: 合法坐标为A(或者D或者W或者S) +…...

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

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