图神经网络 GNN 入门

参考链接

A Gentle Introduction to Graph Neural Networks (distill.pub)

零基础多图详解图神经网络(GNN/GCN)【论文精读】_哔哩哔哩_bilibili

目录

图的基本构成

图的表示方法

图的示例

图网络的基本任务

图网络的处理

影响图网络效果的超参数

图网络的评价指标


图的基本构成

边又可分为有向边和无向的 

 顶点、边和全局(master node)可能有多个属性,如下图

图的表示方法

邻接矩阵法:

  • 矩阵的的横纵坐标是所有的顶点,对应两个点之间记录边的情况(边的权重、边的指向)等;
  • 有n和顶点,邻接矩阵就是 n*n 的;
  • 如果 n 很大,对应的图的邻接矩阵也会很大
  • 邻接矩阵通常是很稀疏的,想要高效存储同时做高效计算很难

邻接列表:

  • 维护三个矩阵,分别存储顶点属性、边属性和边的关系
  • 只存相连接的边

图的示例

下面给出了一些可建模成图网络的数据,除了上面的图片,自然语言文本、人物关系也可以建模成图网络

注意,一个数据可能对应不同的邻接矩阵

一些常见图网络的数据规模

图网络的基本任务

图网络的输入是一个图网络,输出是一个拓扑结构相同的图网络;输入输出的属性可能会有所不同

1、全局级别的,如给定一个分子式的图网络结构,预测该分子的属性(气味、颜色等,或者该图网络中是否包含两个环)

2、节点级的,如对图网络中的节点做分类(人物属性预测)

3、边级别的,如对图网络中的边进行预测(人物关系预测)

图网络的处理

上面说过,图网络的输入是一个图网络,输出是一个拓扑结构相同的图网络;输入输出的属性可能会有所不同

那基本的方法就是对顶点、边和全局属性分别单独做变换(过全连接层),得到输出的图

 上面的图网络处理只考虑了,也可以对输入的缺失属性做补全,如用顶点预测补全边,或者用边预测补全顶点;

或者对顶点和边之间的信息做融合后再过券还能连接网络

影响图网络效果的超参数

跟其他基于学习的模型一样,受到下列参数的影响

  1. 学习率(learning rate):学习率决定了每次参数更新的步长大小,过大的学习率会导致模型不稳定过小的学习率会导致收敛速度慢

  2. 批大小(batch size):批大小决定了每次训练时输入模型的样本数量,过小的批大小会导致模型难以优化,过大的批大小会占用过多计算资源

  3. 正则化项(regularization):在损失函数中添加正则化项来限制模型的权重,防止过拟合

  4. 网络层数(number layers):神经网络层数的选择需要考虑模型的复杂度和有效性,过多的层数会增加训练难度和计算开销,过少的层数会影响模型表达能力

  5. 激活函数(activation function):激活函数用来引入非线性因素,提高模型的表达能力和性能,不同的激活函数适用于不同的场景

  6. 优化器(optimizer):优化器决定了参数更新的方式,不同的优化器适用于不同的任务,如 Adam、SGD 等

  7. 模型结构(model architecture):模型结构的选择需要综合考虑数据特征和任务需求,如图卷积网络、深度学习网络等

  8. 正则化项(regularization):在损失函数中加入正则化项,如 L1 或 L2 正则项等,可有效防止过拟合

  9. 随机正则化策略:通过类似 dropout 的随机正则化方式,可以减少 GNN 的过拟合风险

同时,图网络还受到下列图相关的参数的影响

  1. 图结构的表示方式:图可以用多种方式来表示,例如邻接矩阵、邻接表、边列表等。选择适合特定任务的图构表示方式可以提高模型的效果

  2. 图卷积神经网络的层数和跨层连接方式:GCN可根据具体任务的特点设计合适的层数和跨层连接方式

  3. 聚合方式(aggregation):对于每个节点,GCN采用邻域节点的特征值来计算新的节点特征。这里可以采用不同的聚合方式,例如平均聚合、最大聚合等

  4. 权重共享策略:GCN中可以在同节点间共享权重,这种策略可以有效减少需要训练的参数数量

图网络的评价指标

  1. 准确率、召回率,和通过混淆矩阵算得的 F1 Score 等

  2. AUC-ROC:评估二分类模型的准确性,可以评估模型在不同阈值下的性能。

  3. 平均精度均值(mAP):用于评估排序模型(比如谱聚类、社区发现等)的性能。

  4. 正确率代价曲线(Precision-Recall curve):显示不同阈值下的模型的准确率和召回率,可以用于评估模型性能。

  5. 迁移学习效果:用于评价将已经学习过的知识迁移到新任务的准确性。

  6. 训练时间和模型大小:对实时应用、移动设备等有限资源的场景,需要考虑模型大小和训练时间等因素。

下一篇介绍异构图、超图等其他图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速创建Django项目

环境搭建 安装Django之前需要先安装python环境和pycharm。 目前 Django 1.6.x 以上版本已经完全兼容 Python 3.x。 python安装教程:https://blog.csdn.net/David_house/article/details/100110542 项目创建 打开pycharm,选择文件–>新建项目 创建D…

HUAWEI悦盒ec6108v9c 如何刷成海纳思系统(家用低功耗服务器,使用Home Assistant服务)

环境: 1.HW悦盒ec6108v9c一套 2.16G U盘 3.格式化软件USB_format.exe 4.固件 mv100-mdmo1g-usb-flash.zip(底层是Ubuntu 20.04系统) 5.十字螺丝刀 6.翘片/薄铲子 7.有线网络环境 8.镊子/回形针 问题描述: 最近玩智能家居…

【Linux】基本指令,拥抱Linux的第一步

[Linux]常见指令 Linux基本指令指令的本质ls指令pwd指令cd指令touch指令mkdir指令(重要)rmdir&&rm指令(重要)man指令(重要)cp指令(重要)mv指令(重要)重定向cat指令more指令less指令(重要…

Android Retrofit 给你的接口加上缓存

转载请注明出处:https://blog.csdn.net/kong_gu_you_lan/article/details/131200501?spm1001.2014.3001.5501 本文出自 容华谢后的博客 往期回顾: Android Retrofit RxJava使用详解 Android 探讨一下Retrofit封装的最佳姿势 Android 谈谈我所理解的…

export 和 export default 的区别

一、铺垫 ES6模块化主要包含以下3种用法: ① 默认导出和默认导入---export default ② 按需导出和按需导入---export ③ 直接导入并执行模块中的代码 二、默认导出 语法:export default 需要共享的成员 创建一个共享的数据 order.js let name…

详解Eureka服务注册和调用

目录 1.概述 2.环境 2.1.项目结构 2.2.项目架构 2.3.依赖 3.注册中心 3.1.配置使用 3.2.管理页 3.3.集群 4.服务注册 5.服务调用 5.2.Ribbon 5.3.Feign 5.4.OpenFeign 1.概述 我们把从外部进入到微服务集群里的流量称为“南北流量”、微服务集群节点间流转的流量…

从零开发短视频电商 Jmeter插件安装和常用插件

Jmeter插件安装和常用插件 插件安装方式 一种是手动安装各种插件,下载对应的jar包,放到lib\ext目录下就可以使用了。另一种是通过漂亮的 UI ,jmeter 插件管理器Plugins Manager可以方便的管理其他插件的下载和更新。安装一次插件管理器&…

数据库SQL查询(一)

本文介绍SQL查询,如何在海量数据中筛选想要数据; 数据库管理系统选择:关系型数据库mysql 数据库管理工具选择:navicat 本文中查询语句和查询案例参考自:https://edu.csdn.net/course/detail/27673?ops_request_mis…

面试专题:计算机网络常见面试点总结

socket、tcp、udp、http 的认识及区别 socket、tcp、udp、http 的认识及区别​ 一、先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传…

【Django 网页Web开发】24. 实战项目:moudleForm的文件上传应用到城市管理(17)(保姆级图文)

目录 用户上传文件存放media如何启用1. 在urls.py中进行配置:2. 在settings.py中进行配置:3. 能够通过media的url访问文件 moudleForm上传文件实现城市管理1. moudle.py2. url.py3. city.py4. city.html5. 文件上传小结6. 城市管理效果总结 欢迎关注 『D…

基于Java菜匣子优选系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码)

人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 目录 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 1. 前言 2. 项目说明 (1)开发版本 (2)依赖库说明(O…

Docker部署gitlab-runner

gitlab-runner 1.部署 Linux使用二进制的方式Docker中使用容器的方式启动gitlab-runnerHelm包的方式安装gitlab-runner Docker中使用容器的方式启动gitlab-runner 1.安装gitlab runner docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/conf…

When viruses are good for you 病毒,有时对人体是有益的 | 经济学人20230506版社论双语精翻

本篇来自《经济学人》(The Economist)2023年5月6日社论(Leaders)精选:《病毒,有时对人体是有益的》(When viruses are good for you)。 Bacteriophages 噬菌体 When viruses are goo…

202319读书笔记|《春之海终日优哉游哉:谢芜村俳句300》——远山峡谷间樱花绽放,宇宙在其中

202319读书笔记|《春之海终日优哉游哉:谢芜村俳句300》——远山峡谷间樱花绽放,宇宙在其中 与谢芜村,小林一茶,芭蕉,与谢野晶子,俳句都很赞,虽多本书中略有重复,但多多观…

Android插件化框架-Shadow原理解析

作者:dennyz 1、前言 所谓插件化,是实现动态化的一种具体的技术手段。 对于移动端的App而言,无论是Android还是iOS,都存在一个共同的问题,那就是更新的周期较长。 当我们希望快速为App更新功能时,必须经…

【redis】redis的5种数据结构及其底层实现原理

文章目录 redis中的数据结构redis数据结构底层实现stringlisthashsetintset字典 zset跳表插入删除过程 redis中的数据结构 Redis支持五种数据类型:string(字符串),hash(哈希),list(…

Python如何制作图标点选验证码

本文讲解如何使用python中的opencv库来制作图标点选验证码 图标点选验证码制作起来非常简单,你只需要准备两部分数据集,数据集数量都不用很多,背景图我选择了20个左右,大小为(300, 500)左右,图标我抓取了100多个,图标大小为(40,40)左右,图标由不同大小的透明度构成…

C++:IO流

目录 一. C语言的输入输出方式 二. C的输入输出 2.1 C标准IO流 2.2 文件IO流 2.3 字符串IO流 一. C语言的输入输出方式 一般C语言通过scanf和printf来实现输入输出,scanf和printf都需要显示地指定数据类型。同时,C语言还支持fscanf/fprintf以及ssc…

【大数据】可视化仪表板 - Superset的安装和使用

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…