码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 从零开始学GNN


    动手学学GNN

    • 1.什么是Graph
      • 1.1 图结构的表示
      • 1.2 特殊数据的图表示
      • 1.3 GNN常用的输入数据
    • 2.Why GNN?
    • 3.GNN解决的问题及对应的任务
      • 3.1 例1
      • 3.2 例2
    • 4.GNN模型
      • 4.1 各任务对应的GNN简图
      • 4.2 GNN 分类
        • 4.2.1 GCN
        • 4.2.2 GAT
        • 4.2.3 GIN
    • 参考文献

    此blog和本人另一篇博客图神经网络GNN简介有部分内容重合,相对来说介绍的更清晰、更全面。

    另,若无特殊提示,博客设计的均是无向图。

    1.什么是Graph

    在人们的日常生活中,Graph结构的实例形形色色,无所不在。
    在这里插入图片描述
    甚至我们遇到的比较标准的数据,也可以看成是一种比较规则的graph结构。
    在这里插入图片描述

    1.1 图结构的表示

    在计算机中,图是怎样表示的呢?

    一个图结构是由它的vertex(node)、edge(边)以及一些特征(如node的属性/feature)组成。
    在这里插入图片描述

    为了表示图node之间的邻接关系,常常将图存储为一个其邻接矩阵 A A A的形式,该矩阵通常是一个对称的稀疏矩阵。

    在这里插入图片描述
    度矩阵 D D D的计算:

    D i i = ∑ j A i j \qquad\qquad D_{ii}=\sum_jA_{ij} Dii​=∑j​Aij​

    另外,在有些GNN模型中还要用到拉普拉斯矩阵 L L L(normalized graph Laplacian matrix):

    L = I n − D − 1 2 A D − 1 2 \qquad\qquad L=I_n-D^{-\frac{1}{2}} A D^{-\frac{1}{2}} L=In​−D−21​AD−21​

    需要进一步了解谱方法image/graph表征及重建,可以参考图片的谱表征。

    1.2 特殊数据的图表示

    常用CNN/RNN表示的数据,如图片、文本、语音等也可以表示为图结构的形式。

    在这里插入图片描述
    在这里插入图片描述
    文本这里使用的是有向图表示。

    1.3 GNN常用的输入数据

    GNN中最常用的输入数据是以下两种:一是邻接矩阵 A A A,另一个是特征(如节点特征 X X X):
    在这里插入图片描述

    2.Why GNN?

    在这里插入图片描述

    在这里插入图片描述
    CNN与GNN通常的数据计算范式如下:
    在这里插入图片描述

    3.GNN解决的问题及对应的任务

    在这里插入图片描述

    3.1 例1

    在这里插入图片描述

    3.2 例2

    在这里插入图片描述

    4.GNN模型

    4.1 各任务对应的GNN简图

    在这里插入图片描述

    在这里插入图片描述

    4.2 GNN 分类

    从算子角度,主要分为谱方法和空间方法。
    在这里插入图片描述

    4.2.1 GCN

    在这里插入图片描述

    从谱方法到GCN的演变过程,简单总结如下:
    在这里插入图片描述

    4.2.2 GAT

    在这里插入图片描述

    4.2.3 GIN

    GIN主要改进有两点:

    • 加入了一个小的学习参数 ϵ \epsilon ϵ;
    • concatenate/aggragate 所有layer的输出结果。

    在这里插入图片描述
    为了介绍更详细,本文使用了不少来自参考文献的图片,在此感谢。

    若有侵犯,请联系删除。

    参考文献

    [1] https://distill.pub/2021/gnn-intro/#other-types-of-graphs-multigraphs-hypergraphs-hypernodes
    [2] https://dsgiitr.com/blogs/gcn/
    [3] https://distill.pub/2021/understanding-gnns/
    [4] https://web.njit.edu/~ym329/dlg_book/dlg_book.pdf
    [5] Graph neural networks: A review of methods and applications
    [6] GIN: How to Design the Most Powerful Graph Neural Network
    [7] A Comprehensive Survey on Graph Neural Networks

  • 相关阅读:
    SpringBoot打war包并配置外部Tomcat运行
    PCA数学原理
    java计算机毕业设计web家庭财务管理系统MyBatis+系统+LW文档+源码+调试部署
    Abbexa小鼠Asprosin ELISA试剂盒,体外定量测量好帮手!
    十五、W5100S/W5500+RP2040树莓派Pico<TFTP Client>
    筛选日志并生成序列化文件
    记录一些 PostgreSQL问题分析思路
    上手Python之str(字符串)
    【数据结构】&&【C++】哈希表的模拟实现(哈希桶)
    leetcode 764. 最大加号标志
  • 原文地址:https://blog.csdn.net/WANGWUSHAN/article/details/127395173
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号