0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解图神经网络的数学原理3

jf_78858299 来源:人工智能大讲堂 作者:人工智能大讲堂 2023-03-17 09:58 次阅读

流行图神经网络总结

上面我们介绍完了古神经网络的基本流程,下面我们总结一下流行图神经网络,并将它们的方程和数学分为上面提到的3个GNN步骤。许多体系结构将消息传递和聚合步骤合并到一起执行的一个函数中,而不是显式地一个接一个执行,但为了数学上的方便,我们将尝试分解它们并将它们视为一个单一的操作!

1、消息传递神经网络

https://arxiv.org/abs/1704.01212

消息传递神经网络(MPNN)将正向传播分解为具有消息函数Ml的消息传递阶段和具有顶点更新函数Ul的读出阶段

MPNN将消息传递和聚合步骤合并到单个消息传递阶段:

图片

读取阶段是更新步骤:

图片

其中ml+1v是聚合的消息,hl+1v是更新的节点嵌入。这与我上面提到的过程非常相似。消息函数Ml是F和G的混合,函数Ul是k,其中eij表示可能的边缘特征,也可以省略。

图片

2、图卷积

https://arxiv.org/abs/1609.02907

图卷积网络(GCN)论文以邻接矩阵的形式研究整个图。在邻接矩阵中加入自连接,确保所有节点都与自己连接以得到~A。这确保在消息聚合期间考虑源节点的嵌入。合并的消息聚合和更新步骤如下所示:

图片

其中Wl是一个可学习参数矩阵。这里将X改为H,以泛化任意层l上的节点特征,其中H0=X。

由于矩阵乘法的结合律(A(BC)=(AB)C),我们在哪个序列中乘矩阵并不重要(要么是AHl先乘,然后是Wl后乘,要么是HlWl先乘,然后是A)。作者Kipf和Welling进一步引入了度矩阵~D作为"renormalisation"的一种形式,以避免数值不稳定和爆炸/消失的梯度:

图片

“renormalisation”是在增广邻接矩阵^A=D−12A~D−12上进行的。新的合并消息传递和更新步骤如下所示:

图片

3、图注意力网络

https://arxiv.org/abs/1710.10903

聚合通常涉及在和、均值、最大值和最小值设置中平等对待所有邻居。但是在大多数情况下,一些邻居比其他邻居更重要。图注意力网络(GAT)通过使用Vaswani等人(2017)的Self-Attention对源节点及其邻居之间的边缘进行加权来确保这一点。

边权值αij如下。

图片

这里的Wa∈R2d '和W⊆Rd ' ×d为学习参数,d '为嵌入维数,⊕是向量拼接运算。

虽然最初的消息传递步骤与MPNN/GCN相同,但合并的消息聚合和更新步骤是所有邻居和节点本身的加权和:

图片

边缘重要性加权有助于了解邻居对源节点的影响程度。与GCN一样,添加了自循环,因此源节点可以将自己的表示形式考虑到未来的表示形式中。

图片

4、GraphSAGE

https://arxiv.org/abs/1706.02216

GraphSAGE:Graph SAmple and AggreGatE。这是一个为大型、非常密集的图形生成节点嵌入的模型。

这项工作在节点的邻域上引入了学习聚合器。不像传统的gat或GCNs考虑邻居中的所有节点,GraphSAGE统一地对邻居进行采样,并对它们使用学习的聚合器。

假设我们在网络(深度)中有L层,每一层L∈{1,…,L}查看一个更大的L跳邻域w.r.t.源节点。然后在通过MLP的F和非线性σ传递之前,通过将节点嵌入与采样消息连接来更新每个源节点。

对于某一层l

图片

其中⊕是向量拼接运算,N(i)是返回所有邻居的子集的统一抽样函数。如果一个节点有5个邻居{1,2,3,4,5},N(i)可能的输出将是{1,4,5}或{2,5}。

图片

Aggregator k=1从1-hop邻域聚集采样节点(彩色),而Aggregator k=2从2 -hop邻域聚集采样节点(彩色)

论文中用K和K表示层指数。但在本文中分别使用L和L来表示,这是为了和前面的内容保持一致性。此外,论文用v表示源节点i,用u表示邻居节点j。

5、时间图网络

https://arxiv.org/abs/2006.10637

到目前为止所描述的网络工作在静态图上。大多数实际情况都在动态图上工作,其中节点和边在一段时间内被添加、删除或更新。时间图网络(TGN)致力于连续时间动态图(CTDG),它可以表示为按时间顺序排列的事件列表。

论文将事件分为两种类型:节点级事件和交互事件。节点级事件涉及一个孤立的节点(例如:用户更新他们的个人简介),而交互事件涉及两个可能连接也可能不连接的节点(例如:用户a转发/关注用户B)。

TGN提供了一种模块化的CTDG处理方法,包括以下组件:

  • 消息传递函数→孤立节点或交互节点之间的消息传递(对于任何类型的事件)。
  • 消息聚合函数→通过查看多个时间步长的时间邻域,而不是在给定时间步长的局部邻域,来使用GAT的聚合。
  • 记忆更新→记忆(Memory)允许节点具有长期依赖关系,并表示节点在潜在(“压缩”)空间中的历史。这个模块根据一段时间内发生的交互来更新节点的内存。
  • 时间嵌入→一种表示节点的方法,也能捕捉到时间的本质。
  • 链接预测→将事件中涉及的节点的时间嵌入通过一些神经网络来计算边缘概率(即,边缘会在未来发生吗?)。在训练过程中,我们知道边的存在,所以边的标签是1,所以需要训练基于sigmoid的网络来像往常一样预测这个。

图片

每当一个节点参与一个活动(节点更新或节点间交互)时,记忆就会更新。

对于批处理中的每个事件1和2,TGN为涉及该事件的所有节点生成消息。TGN聚合所有时间步长t的每个节点mi的消息;这被称为节点i的时间邻域。然后TGN使用聚合消息mi(t)来更新每个节点si(t)的记忆。

图片

一旦所有节点的内存si(t)是最新的,它就用于计算批处理中特定交互中使用的所有节点的“临时节点嵌入”zi(t)。然后将这些节点嵌入到MLP或神经网络中,获得每个事件发生的概率(使用Sigmoid激活)。这样可以像往常一样使用二进制交叉熵(BCE)计算损失。

总结

上面就是我们对图神经网络的数学总结,图深度学习在处理具有类似网络结构的问题时是一个很好的工具集。它们很容易理解,我们可以使用PyTorch Geometric、spectral、Deep Graph Library、Jraph(jax)以及TensorFlow-gnn来实现。GDL已经显示出前景,并将继续作为一个领域发展。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421642
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100518
  • 数学
    +关注

    关注

    0

    文章

    99

    浏览量

    19219
收藏 人收藏

    评论

    相关推荐

    matlab 神经网络 数学建模数值分析

    matlab神经网络 数学建模数值分析 精通的可以讨论下
    发表于 09-18 15:14

    matlab 中亮剑数学 全面掌握控制 神经网络就在脚下

    `如果想学控制,你的数学就是造诣,神经网络的基础离散数学数学建模实际问题分析,如何matlab求解,这里给你解答,这里是数学视频,偏导数分
    发表于 07-30 11:46

    关于开关磁阻电机的matlab BP神经网络数学建模方面的资料

    求大神们 给点关于开关磁阻电机的matlab BP神经网络数学建模方面的资料
    发表于 11-17 11:16

    卷积神经网络入门资料

    卷积神经网络入门详解
    发表于 02-12 13:58

    【PYNQ-Z2试用体验】神经网络基础知识

    超过阈值,输出就一跃而起。但我们一般用S函数作为激活函数。如下图:2 该函数相比阶越函数更加接近现实。神经网络原理如图所示是一个具有两层的神经网络,每层有两个神经元。
    发表于 03-03 22:10

    BP神经网络的基础数学知识分享

    一文看懂BP神经网络的基础数学知识
    发表于 06-16 07:14

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高模型的预测
    发表于 07-12 08:02

    卷积神经网络数学原理介绍

    在之前的系列中,我们学习了密集连接的神经网络(densely connected neural networks)。这些网络神经元被分成组,形成连续的层,相邻的两个层之间的神经元相互
    的头像 发表于 04-22 11:44 4786次阅读

    深入卷积神经网络背后的数学原理

    在计算机神经视觉技术的发展过程中,卷积神经网络成为了其中的重要组成部分,本文对卷积神经网络数学原理进行了介绍。
    的头像 发表于 04-25 14:52 3515次阅读

    深度:了解训练神经网络时所用到的数学过程

    模型的训练、调参是一项非常费时费力的工作,了解神经网络内部的数学原理有利于快速找出问题所在。
    的头像 发表于 07-15 15:22 4063次阅读
    深度:了解训练<b class='flag-5'>神经网络</b>时所用到的<b class='flag-5'>数学</b>过程

    图解:卷积神经网络数学原理解析

    图解:卷积神经网络数学原理解析 源自:数学中国 过去我们已经知道被称为紧密连接的神经网络。这些网络神经
    的头像 发表于 09-16 10:01 1525次阅读
    图解:卷积<b class='flag-5'>神经网络</b><b class='flag-5'>数学原理</b>解析

    详解神经网络数学原理1

    。 本文将流行的神经网络及其数学细微差别的进行详细的梳理和解释,深度学习背后的思想是学习具有节点和边的的结构和空间特征,这些节点
    的头像 发表于 03-17 09:58 608次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>图</b><b class='flag-5'>神经网络</b>的<b class='flag-5'>数学原理</b>1

    详解神经网络数学原理2

    。 本文将流行的神经网络及其数学细微差别的进行详细的梳理和解释,深度学习背后的思想是学习具有节点和边的的结构和空间特征,这些节点
    的头像 发表于 03-17 09:58 502次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>图</b><b class='flag-5'>神经网络</b>的<b class='flag-5'>数学原理</b>2

    神经网络数学建模中的应用

    数学建模是一种利用数学方法和工具来描述和分析现实世界问题的过程。神经网络是一种模拟人脑神经元结构和功能的计算模型,可以用于解决各种复杂问题。在数学
    的头像 发表于 07-02 11:29 810次阅读

    数学建模神经网络模型的优缺点有哪些

    数学建模神经网络模型是一种基于人工神经网络数学建模方法,它通过模拟人脑神经元的连接和信息传递机制,对复杂系统进行建模和分析。
    的头像 发表于 07-02 11:36 795次阅读