论文精度系列之详解图神经网络

论文地址:A Gentle Introduction to Graph Neural Networks

翻译:图表就在我们身边;现实世界的对象通常根据它们与其他事物的连接来定义。一组对象以及它们之间的连接自然地表示为图形。十多年来,研究人员已经开发了对图数据进行操作的神经网络(称为图神经网络或GNN)。最近的发展提高了他们的能力和表现力。我们开始在抗菌发现、物理模拟、假新闻检测、交通预测和推荐系统等领域看到实际应用。

本段介绍了文章的架构主要分为:

  • 1、什么数据可以表示为一张图
  • 2、图与其他数据的不同之处
  • 3、构建一个GNN
  • 4、提供一个GNNplayground

用来了解GNN模型每个组件如何对其做出的预测做出贡献

作者将图像视为带有图像通道的矩形网格,将它们视为数组。 另一种将图像视为具有规则结构的图形,其中每个像素代表一个节点,并通过边缘连接到相邻像素。每个无边界像素正好有8个邻居,存储在每个节点上的信息是一个三维向量,表示像素的RGB值。

后面还有文本作为图形、分子作为图形、社交网络作为图表

 这里作者说明在图上有三种常规类型的预测任务:图级、节点级与边级

图形级任务:主要目标是预测整个图的属性。

节点级任务:主要是预测图形中每个节点的身份或角色

边缘级任务:主要是对于图像场景的理解

 这段说明利用神经网络来解决不同的图任务时,首要问题是如何表示与神经网络兼容的图

这里说明图表中最多有四类信息:节点、边、全局上下文与连通性

其中图形的连通性是最难的最复杂的,因为使用邻接矩阵,很容易发生张量而且会导致邻接矩阵非常稀疏,空间效率低下。另外就是,并不能保证这些不同的矩阵会在深度神经网络中产生相同的结果。

规范化存储图的不同信息:

这段主要解释了GNN(Graph Neural Networks)是是对图的所有属性(节点、边、全局上下文)的  可优化转换,它保持了图对称性(排列不变性)。同时GNN的输入是一个图,输出也是一个图。

GNN会对节点、边等进行变换,但不会改变图形的连接性

一个简单的GNN模型:

 输入一个图进入一系列的GNN层,输出一个保持了整个图结构的输出但是里面所有的属性已经发生的变换,最后根据你要对哪个属性做预测添加合适的输出层但如果确缺失信息的话加入合适的汇聚层。

 这段说明我们通过GNN层中使用汇聚(池化)来做出更复杂的预测,可以使用信息传递来做到.

信息传递的三个步骤:

  • 1、对于图中的每个节点,收集所有相邻节点嵌入(或消息),即g功能如上所述。
  • 2、通过聚合函数(如 sum)聚合所有消息。
  • 3、所有汇集的消息都通过更新函数传递,通常是学习的神经网络

 这里作者说我们描述的网络存在一个缺陷:图中彼此相距很远的节点可能永远无法有效地相互传递信息,即使我们应用了多次消息传递。

为了解决上述问题,这里加入了一个主节点(这个点可以跟所有的点、边相连),是一个虚拟的点。

对于一个节点,我们可以考虑来自相邻节点、连接边缘和全局信息的信息。为了在所有这些可能的信息源上设置新节点嵌入的条件,我们可以简单地将它们连接起来。此外,我们还可以通过线性映射将它们映射到同一空间并添加它们或应用特征调制层,这可以被认为是一种特征化注意力机制。

GNN 中的采样图和批处理

训练神经网络的常见做法是使用根据训练数据(小批次)的随机常量大小(批量大小)子集计算的梯度来更新网络参数。由于相邻的节点和边的数量存在可变性,这种做法对图提出了挑战,这意味着我们不能有一个恒定的批量大小。使用图进行批处理的主要思想是创建保留较大图的基本属性的子图。此图形采样操作高度依赖于上下文,并涉及从图形中子选择节点和边。这些操作在某些上下文(引文网络)中可能有意义,而在另一些上下文中,这些操作可能太强(分子,其中子图只是表示一个新的,更小的分子)。如何对图表进行采样是一个悬而未决的研究问题。如果我们关心在邻域级别保留结构,一种方法是随机抽取统一数量的节点,即我们的节点集然后将距离 k 的相邻节点添加到节点集附近,包括它们的边。每个邻域都可以被视为一个单独的图,并且可以在这些子图的批次上训练GNN。可以屏蔽损失以仅考虑节点集,因为所有相邻节点都具有不完整的邻域。 更有效的策略可能是首先随机抽样单个节点,将其邻域扩展到距离 k,然后在扩展集中选择另一个节点。一旦构造了一定数量的节点、边或子图,这些操作就可以终止。 如果上下文允许,我们可以通过选择一个初始节点集,然后对恒定数量的节点进行子采样(例如随机,或通过随机游走或 Metropolis 算法)来构建恒定大小的邻域。

图注意力网络

在图形属性之间传递信息的另一种方式是通过注意力(权重取决于两个顶点向量的关系,不再是顶点的位置)。例如,当我们考虑节点及其 1 度相邻节点的总和聚合时,我们也可以考虑使用加权和。那么的挑战是以排列不变的方式关联权重。

结论:

先介绍了一下什么是图,图的属性应该用向量来表示,现实中的数据怎么表示为图,怎么样对图(点、边、全局)上做预测。简单说明了GNN的定义,假设属性有缺失做聚合操作,把边的属性或者点的属性拿过来。然后说明了真正意义上的GNN 。就是在每一层里面通过汇聚把整个图的信息传递过来。接下来就是对实验的可视化,进行漂亮的可视化。

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

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

相关文章

CentOS 7.9 安装 mydumper(RPM方式)

链接:https://pan.baidu.com/s/1sGhtiKPOmJw1xj0zv-djkA?pwdtaoz 码:taoz 开始正文啦: rpm -ivh mydumper-0.14.5-3-zstd.el7.x86_64.rpm 问题如下: 解决: yum -y install epel-release yum install -y libzstd …

zabbix安装Grafana

一、web访问 https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm [rootserver ~] yum localinstall -y grafana-4.6.1-1.x86_64.rpm //yum方式安装本地rpm并自动解决依赖关系 [rootserver ~] grafana-cli plugins install alexanderzob…

利用 trait 实现多态

我在书上看到基于 std::io::Write 的示例,它是一个 trait 类型,内部声明了一些方法。和 go 语言不同,rust 中类型必须明确实现 trait 类型,而 go 语言属于 duck 模式。 std::io::Write下面的例子中调用 write_all 方式来演示&…

国标GB28181视频监控平台EasyGBS无法播放,抓包返回ICMP的排查过程

国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强,支持将…

1 请使用js、css、html技术实现以下页面,表格内容根据查询条件动态变化。

1.1 创建css文件,用于编辑style 注意: 1.背景颜色用ppt的取色器来获取: 先点击ppt的形状轮廓,然后点击取色器,吸颜色,然后再点击形状轮廓的其他轮廓颜色,即可获取到对应颜色。 2.表格间的灰色线…

【Spring Boot】Web开发 — 数据验证

Web开发 — 数据验证 对于应用系统而言,任何客户端传入的数据都不是绝对安全有效的,这就要求我们在服务端接收到数据时也对数据的有效性进行验证,以确保传入的数据安全正确。接下来介绍Spring Boot是如何实现数据验证的。 1.Hibernate Vali…

生态合作丨MemFireDB通过麒麟软件NeoCertify认证

近日,敏博科技“MemFireDB分布式关系数据库系统V2.8”与麒麟软件“银河麒麟高级服务器操作系统V10” 完成兼容性测试,获得麒麟软件 NeoCertify 认证证书。测试结果显示,MemFireDB数据库在国产操作系统上运行稳定,产品已经达到通用…

android studio(火烈鸟版本)使用protobuf

一、简介 Protobuf 全称:Protocol Buffers,是 Google 推出的一种与平台无关、语言无关、可扩展的轻便高效的序列化数据存储格式,类似于我们常用的 xml 和 json。 二、特点 Protobuf 用两个字总结:小,快。用 Protobu…

十大排序算法详解

目录 1. 冒泡排序 a. 思路 b. code 2. 插入排序 a. 思路 b. code 3. 希尔排序【插入排序plus】 a. 思路 b. code 4. 选择排序 a. 思路 b. code 5. 基数排序 a. 前置知识 b. 思路 c. code 6. 计数排序 a. 思路 b. code 7. 桶排序(计数排序plus &…

Could not resolve placeholder

本质原因:项目启动未扫描到该配置,一般来说是配置不对 检查方向 1、检查编译后的target包里是否有该配置所在的文件 如果不在就clear,重新编译启动再去检查 2、检查启动的环境是否匹配 编译后的target包下的配置文件名称是否跟启动类的环境…

【如何训练一个中译英翻译器】LSTM机器翻译模型部署之ncnn(python)(四)

ncnn:https://github.com/Tencent/ncnn 1、.h5模型保存为TFSaveModel格式 import tensorflow as tf from keras.models import load_model# 加载Keras模型 model load_model(encoder_model.h5)# 转换为SavedModel类型 tf.saved_model.save(model, TFSaveModel)2、…

redis的常用命令和数据结构

目录 redis的基本特征 Redis操作命令行 redis的数据结构 Redis的基本特征 键值型,value支持多种不同的数据结构,功能丰富 单线程,每个命令具备原子性 低延迟,速快(基于内存,IO多路复用,良好…

【OpenCV】windows环境下,java OpenCV环境搭建,java 也可以实现opencv的功能了!opencv自由了

目录 1. 下载opencv 2. 安装opencv 目录 1. 下载opencv 2. 安装opencv 3. dll文件的导入配置 dll文件的导入: (C的类库文件),opencv是c开发的类库,java语言要调用其中的方法,所以依赖了dll文件 3.1…

R语言机器学习之影像组学分析的原理详解

概要 影像组学从常规医学图像中高通量提取大量的放射学定量数据,并以非侵入性方式探索它们与临床结果的相关性,在医学研究中得到广泛的应用。 01 影像组学(Radiomics)的概念: 影像组学(Radiomics&#xff…

了解Unity编辑器之组件篇UI(一)

UI组件:提供了用户交互,信息展示,用户导航等功能 一、Button:用于响应用户的点击事件 1.Interactable(可交互):该属性控制按钮是否可以与用户交互,如果禁用则按钮无法被点击。可以通…

Ubuntu18.04配置PX4开发环境

源文件下载 读者可以参考PX4中文维基百科,或者使用下面命令↓ git clone https://github.com/PX4/PX4-Autopilot.git --recursive 下载完成之后,执行脚本安装命令,PX4给我们提供了脚本安装模式 bash ./PX4-Autopilot/Tools/setup/ubuntu.sh …

Spring Boot-3

学习笔记(今天又读了好多篇的博客,做个今天的总结,加油!!!) PS:快到中伏了,今天还是好热 使用阿里巴巴 FastJson 的设置 1、jackson 和 fastJson 的对比 有很多人已经…

Linux 网络收包流程

哈喽大家好,我是咸鱼 我们在跟别人网上聊天的时候,有没有想过你发送的信息是怎么传到对方的电脑上的 又或者我们在上网冲浪的时候,有没有想过 HTML 页面是怎么显示在我们的电脑屏幕上的 无论是我们跟别人聊天还是上网冲浪,其实…

Python绘制多条y轴范围不同的曲线并在一张图上显示

如何使用Python绘制多条y轴范围不同的曲线,然后把它们合并在一张图上显示 import matplotlib.pyplot as plt import numpy as npdef multilines(target, x, ys, types, colors, x_label, labels):"""用来绘制多条y轴范围不同的线,并在一…

苹果iOS 16.6 RC发布:或为iPhone X/8系列养老版本

今天苹果向iPhone用户推送了iOS 16.6 RC更新(内部版本号:20G75),这是时隔两个月的首次更新。 按照惯例RC版基本不会有什么问题,会在最近一段时间内直接变成正式版,向所有用户推送。 需要注意的是,鉴于iOS 17正式版即将…