GNN图神经网络

news2025/1/19 11:24:42

文章目录

  • GNN
    • 图神经网络的元素
    • 消息传递方式
  • GCN
    • 消息传递方式
  • GAT
    • 消息传递机制

GNN

图神经网络的元素

节点,邻接矩阵

  • 为什么要计算多层
    邻居的邻居,融合多阶邻居特征

消息传递方式

图神经网络是一个相对宽泛的概念,本质是每个节点embedding都要融合邻居的特征,根据具体融合方式的不同又衍生出了下面各种具体模型。
最简单的GNN消息传递可以看做fc,所有邻居节点以权重w向当前节点加权,最终取一个mean/max/min等激活函数。

GCN

消息传递方式

Z = A X W Z=AXW Z=AXW,A为调整后的邻接矩阵,X是节点 embedding,W是可训练参数
调整后的邻接矩阵即对原始邻接矩阵做归一化,乘以度矩阵D,分左右各乘 D 1 / 2 D^{1/2} D1/2,做行、列归一化
在这里插入图片描述

  • GCN可以做半监督任务,部分节点没有标签,计算loss时只是用有标签的。
  • 一般层数3-5层即可,过大效果不好

GAT

消息传递机制

增加了attention结构,计算一阶邻居节点之间的相似度,进行加权

e i j = L e a k y R e L U ( W a ( W f x i ⊕ W f x j ) ) e_{ij}=LeakyReLU(W_a(W_fx_i\oplus W_fx_j)) eij=LeakyReLU(Wa(WfxiWfxj))

α i j = e x p ( e i j ) ∑ o ∈ N ( i ) e x p ( e i o ) \alpha_{ij}=\frac{exp(e_{ij})}{\sum_{o\in N(i)}exp(e_{io})} αij=oN(i)exp(eio)exp(eij)

x i ( l + 1 ) = ∑ j ∈ N ( i ) α i , j W x x j ( l ) x_i^{(l+1)}=\sum_{j\in N(i)} \alpha_{i,j} W_xx_j^{(l)} xi(l+1)=jN(i)αi,jWxxj(l)

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

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

相关文章

【Linux】Linux下安装Docker(图文解说详细版)

文章目录 一、前言二、Docker的三要素Docker镜像Docker仓库Docker容器 三、Docker的安装1. 确定Linux版本2.安装Docker3.测试是否安装成功4.配置下载docker镜像的仓库5.测试HelloWorld镜像 一、前言 Docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系…

【教程】用 HTML JavaScript 制作 2.5D 迷宫游戏地图

我写了一个能够随机生成迷宫的算法,得到了用户很好的反响,对大家有所帮助。我现在想将这个迷宫以2.5D游戏地图的方式呈现出来。最初我考虑使用CSS来实现这个目标,但效果并不太理想,因为我无法只将它渲染成背景,而不对整…

洛谷B2096 直方图

直方图 题目描述 给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。 假设 F m a x ( F m a x ≤ 100000 ) Fmax(Fmax \le 100000) Fmax(Fmax≤100000)是数组…

scratch绘制直尺 中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析2023年3月

目录 scratch绘制直尺 一、题目要求 1、准备工作 2、功能实现 二、案例分析

NSSCTF之Misc篇刷题记录⑨

NSSCTF之Misc篇刷题记录⑨ [GKCTF 2021]签到[NISACTF 2022]bmpnumber[领航杯江苏省赛 2021]签到题[鹤城杯 2021]Misc2[鹤城杯 2021]A_MISC[GXYCTF 2019]CheckIn[HDCTF 2023]hardMisc[NSSRound#1 Basic]cut_into_thirds[闽盾杯 2021]Modbus的秘密[NISACTF 2022]神秘数字[INSHack…

asp.net+C#超市商品进销存管理系统

本超市商品管理系统主要超市内部提供服务,系统分为管理员员工两部分。 本研究课题重点主要包括了下面几大模块:管用户登录,员工管理,商品管理,进货管理,销售管理,供应商信息,会员信…

2023年6月DAMA-CDGP数据治理专家认证考试,火热报名中

目前6月18日CDGA&CDGP考试目前开放的城市有:北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安、武汉、天津。 新增了武汉、天津这2个城市。另外合肥、厦门、长春等地区还在接近开考人数中,打算参加6月考试的朋友们可以抓紧时间…

前端HTML学习笔记(一)

1、基础知识 网页概述:1、HTML概念:HTML (Hyper Text Markup Language)中文译为超文本标记语言专门用于网页开发的语言,主要通过HTML标签对网页中的文本、图片、音频、视频等内容进行描述。2、网页通常由文字、图片、音频、视频、超链接等部…

Julia入门-0、在Windows下安装Julia

文章目录 0、前言1、相关网站2、Windows 系统下安装Julia3、Julia 交互式命令窗口 0、前言 Julia 是一个面向科学计算的高性能动态高级程序设计语言。 Julia 最初是为了满足高性能数值分析和计算科学的需要而设计的,不需要解释器,速度快。 1、相关网站…

C++类与对象Plus

我们之前讲的都是类与对象的基础,以及类中的几个默认函数等,今天我们就讲一下类与对象的其他东西 初始化列表 在我们的默认构造函数的时候,我们在初始化的时候我们都是在构造函数中完成我们的初始化任务 我们现在来看一个类 我们看一下我们…

基于 LSTM 进行多类文本分类( TensorFlow 2.0)

NLP 的许多创新是如何将上下文添加到词向量中。一种常见的方法是使用循环神经网络。以下是循环神经网络的概念: 他们利用顺序信息。他们可以捕捉到到目前为止已经计算过的内容,即:我最后说的内容会影响我接下来要说的内容。RNNs 是文本和语音…

mac下删除python3.7,并将版本更新到3.9

如何卸载python3.7 有些小伙伴想直接从3.7升级到3.9 那恐怕是不行的,python3.7的库占的空间不少,所以首先我们应该来删除它. python安装后的路径分类 在删除之前需要先了解:python安装后有几类路径需要我们去查看删除 python存储库路径&am…

【分组码系列】线性分组码的网格图和维特比译码

线性分组码的网格图 由于码字的比特位是统计独立的,所以编码过程可以利用有限状态机来描述,它能精确地确定初始和最终状态。可以利用网格图进一步描述编码过程[36],采用维特比算法进行最大似然译码. 在GF(2)上定义线性分组码(n,k)。相应的(n-k)Xn维校验阵可以写成 令码字为系…

TensorFlow vs PyTorch:哪一个更适合您的深度学习项目?

在深度学习领域中,TensorFlow 和 PyTorch 都是非常流行的框架。这两个框架都提供了用于开发神经网络模型的工具和库,但它们在设计和实现上有很大的差异。在本文中,我们将比较 TensorFlow 和 PyTorch,并讨论哪个框架更适合您的深度…

队列、栈专题

队列、栈专题 LeetCode 20. 有效的括号解题思路代码实现 LeetCode 921. 使括号有效的最少添加解题思路代码实现 LeetCode 1541. 平衡括号字符串的最少插入次数解题思路代码实现 总结 不要纠结,干就完事了,熟练度很重要!!&#xff…

icevision环境安装

Installation - IceVision # 1. git clone 代码# pip 换源: ~/.pip/pip.conf 隐藏文件[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-hostmirrors.aliyun.compip install -e .[all,dev]ImportError: cannot import name Multi…

chatgpt-4它的未来是什么?该如何应用起来?

在当今快节奏的数字通信世界中,ChatGPT已成为一个强大的在线聊天平台,改变了人们互动和沟通的方式。凭借其先进的AI功能、用户友好的界面和创新技术,ChatGPT已成为个人和企业的热门选择。 然而,ChatGPT的未来有望更加激动人心和具…

VSCode的安装以及相关插件配置

VSCode是什么? VSCode严格来说,也是一款编辑器,强大之处在于集成了各种各样的插件。至此往后,将使用VSCode来取代vim。话不多说,步骤如下: 安装步骤 1、VSCode的下载 https://vscode.cdn.azure.cn/stabl…

NSSCTF (3)

[GDOUCTF 2023]hate eat snake 我们打开js源码 很明显这里当score大于60会出flag score = getScore 我们寻找到了getScore方法所在的地方 之后发现他存在于Snake

Python多线程之_thread与threading模块

Python多线程之_thread与threading模块 在Python程序中,多线程的应用程序会创建一个函数,来执行需要重复执行多次的程序代码,然后创建一个线程执行该函数。一个线程是一个应用程序单元,用于在后台并行执行多个耗时的动作。 在多…