【图神经网络】 - GNN的几个模型及论文解析(NN4G、GAT、GCN)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 【图神经网络】 - GNN的几个模型及论文解析(NN4G、GAT、GCN)

图神经网络

图神经网络(Graph Neural Network,GNN)是指使用神经网络来学习图结构数据,提取和发掘图结构数据中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。

Neural Network for Graphs(NN4G)

论文信息

Neural Network for Graphs: A ContextualConstructive Approach
在这里插入图片描述

原文地址: https://ieeexplore.ieee.org/abstract/document/4773279

摘要

This paper presents a new approach for learning in structured domains (SDs) using a constructive neural network for graphs (NN4G). The new model allows the extension of the input domain for supervised neural networks to a general class of graphs including both acyclic/cyclic, directed/undirected labeled graphs. In particular, the model can realize adaptive contextual transductions, learning the mapping from graphs for both classification and regression tasks. In contrast to previous neural networks for structures that had a recursive dynamics, NN4G is based on a constructive feedforward architecture with state variables that uses neurons with no feedback connections. The neurons are applied to the input graphs by a general traversal process that relaxes the constraints of previous approaches derived by the causality assumption over hierarchical input data. Moreover, the incremental approach eliminates the need to introduce cyclic dependencies in the definition of the system state variables. In the traversal process, the NN4G units exploit (local) contextual information of the graphs vertices. In spite of the simplicity of the approach, we show that, through the compositionality of the contextual information developed by the learning, the model can deal with contextual information that is incrementally extended according to the graphs topology. The effectiveness and the generality of the new approach are investigated by analyzing its theoretical properties and providing experimental results.

本文提出了一种利用构造性神经网络( NN4G )学习结构化领域( SD )的新方法。新模型允许将有监督神经网络的输入域扩展到包括无环/循环、有向/无向标记图的一般图类。特别地,该模型可以实现自适应的上下文转换,从图中学习分类和回归任务的映射。与以往针对具有递归动态结构的神经网络不同,NN4G基于具有状态变量的构造性前馈架构,使用无反馈连接的神经元。通过一个通用的遍历过程将神经元应用到输入图中,该过程放松了先前基于因果关系假设分层输入数据得到的方法的约束。此外,增量方法消除了在系统状态变量的定义中引入循环依赖关系的需要。在遍历过程中,NN4Gunits利用图顶点的(局部)上下文信息。尽管该方法简单,但我们表明,通过学习开发的上下文信息的组合性,该模型可以处理根据图的拓扑结构增量扩展的上下文信息。通过分析其理论性质和提供实验结果,研究了新方法的有效性和通用性。

NN4G模型思想

对于一个输入图,如下图所示:
在这里插入图片描述
其中,v~i~表示节点,x~i~表示每个节点对应的特征信息。

然后通过隐藏层进行特征学习并更新每个节点的特征信息,更新过程如下:

对于第一个隐藏层:
在这里插入图片描述
将节点的特征信息更新为在这里插入图片描述,其中layer表示当前是第几层,node表示对应哪个节点。

h = w * x,
w为一个权重,x为输入时节点的特征信息。

然后对每个节点都做同样的更新,就得到:
在这里插入图片描述
对于其他隐藏层,在第一个隐藏层的基础上再做如下更新:
在这里插入图片描述
即,先将节点邻居的特征加起来,乘上一个权重W,然后再加上节点本身的特征。

还是对每个节点做同样的更新就可以得到一个隐藏层的表示。

在叠加了多层之后,就可以对节点特征信息进行Readout,来代表整个图的特征信息,做法如下:
在这里插入图片描述
即,将每个节点对应每一层的特征信息相加求平均值,再乘上一个权重,并相加,就得到最后的结果y。

Graph Attention Network(GAT)

论文信息

GRAPH ATTENTION NETWORKS
在这里插入图片描述

原文地址: https://arxiv.org/pdf/1710.10903.pdf

摘要

We present graph attention networks (GATs), novel neural network architectures that operate on graph-structured data, leveraging masked self-attentional layers to address the short comings of prior methods based on graph convolutions or their approximations. By stacking layers in which nodes are able to attend over their neighborhoods’ features, we enable (implicitly) specifying different weights todifferent nodes in a neighborhood, without requiring any kind of costly matrix operation (such as inversion) or depending on knowing the graph structure upfront.In this way, we address several key challenges of spectral-based graph neural net-works simultaneously, and make our model readily applicable to inductive as wellas transductive problems. Our GAT models have achieved or matched state-of-the-art results across four established transductive and inductive graph benchmarks:the Cora, Citeseer and Pubmed citation network datasets, as well as a protein-protein interaction dataset (wherein test graphs remain unseen during training)

我们提出了图注意力网络( Graph Attention Networks,GATs ),它是一种新颖的神经网络架构,可以在图结构数据上运行,利用掩蔽的自注意力层来解决基于图卷积或其近似的先验方法的缺点。通过将节点能够处理其邻域特性的层进行堆叠,我们可以(隐式地)为邻域中的不同节点指定不同的权重,而不需要任何昂贵的矩阵运算(例如反转),也不需要预先知道图结构。通过这种方式,我们同时解决了基于谱的图神经网络的几个关键挑战,并使我们的模型易于适用于归纳和转导问题。我们的GAT模型在四个公认的直推式和归纳式图形基准上取得或匹配了最先进的结果:Cora、Citeseer和Pubmed引文网络数据集,以及蛋白质-蛋白质相互作用数据集。

GAT模型思想

对于输入图用h表示每个节点的特征信息:
在这里插入图片描述
其中,N为节点的数量。

经过一个隐藏层之后,得到一层新的节点特征:
在这里插入图片描述
特征信息更新过程如下:

  1. 为了获得足够的表达能力,将输入特征通过至少一个可学习的线性变换,转换为更高层次的特征W~i~
  2. 通过一个注意力机制,计算得到一个注意力系数:

在这里插入图片描述

e~ij~ 表示节点j 的特征对节点i 的重要性。a表示注意力机制,是一个单层前馈神经网络。

  1. 对节点的每一个邻居计算一个注意力系数(邻居节点对该节点的重要性),然后使用softmax进行归一化处理。

在这里插入图片描述N~i~ 表示节点i的邻居节点。

  1. 得到归一化的注意力系数之后,再通过对邻接节点特征的线性组合经过一个非线性激活函数来更新节点自身的特征作为输出:

在这里插入图片描述在这里插入图片描述

Graph Convolutional Networks(GCN)

论文信息

在这里插入图片描述

原文地址: https://arxiv.org/abs/1609.02907

摘要

We present a scalable approach for semi-supervised learning on graph-structured data that is based on an efficient variant of convolutional neural networks which operate directly on graphs. We motivate the choice of our convolutional archi-tecture via a localized first-order approximation of spectral graph convolutions.Our model scales linearly in the number of graph edges and learns hidden layer representations that encode both local graph structure and features of nodes. Ina number of experiments on citation networks and on a knowledge graph dataset we demonstrate that our approach outperforms related methods by a significant margin.

我们提出了一种可扩展的基于图结构数据的半监督学习方法,该方法基于直接在图上运行的卷积神经网络的有效变体。我们通过谱图卷积的局部一阶近似来激励我们的卷积架构的选择。我们的模型以图边数线性扩展,并学习隐藏层表示,这些表示同时编码局部图结构和节点特征。在引文网络和知识图谱数据集上的大量实验表明,我们的方法优于相关方法。
在这里插入图片描述

GCN模型思想

对于一个输入图,他有N个节点,每个节点的特征组成一个特征矩阵X,节点与节点之间的关系组成一个邻接矩阵A,X和A即为模型的输入。

GCN是一个神经网络层,它具有以下逐层传播规则:
在这里插入图片描述

其中,

  • ˜A = A + I,A为输入图的领接矩阵,I为单位矩阵。
  • ˜D为˜A的度矩阵,˜D~ii~ = ∑~j~ ˜A~ij~
  • H是每一层的特征,对于输入层H = X
  • σ是非线性激活函数
  • W为特定层的可训练权重矩阵

经过多层GCN逐层传播,输入图的特征矩阵由X变为Z,但邻接矩阵A始终保持共享,如下图:
在这里插入图片描述
然后,根据带有标签的节点计算cross-entropy损失:
在这里插入图片描述
其中,在这里插入图片描述表示具有标签的节点索引的集合。

并采用梯度下降法训练神经网络权值W 。

目录
相关文章
|
19天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
114 30
|
22天前
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
42 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
2天前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
2天前
|
存储 监控 网络协议
一次读懂网络分层:应用层到物理层全解析
网络模型分为五层结构,从应用层到物理层逐层解析。应用层提供HTTP、SMTP、DNS等常见协议;传输层通过TCP和UDP确保数据可靠或高效传输;网络层利用IP和路由器实现跨网数据包路由;数据链路层通过MAC地址管理局域网设备;物理层负责比特流的物理传输。各层协同工作,使网络通信得以实现。
|
2天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
17 1
|
23天前
|
SQL 安全 算法
网络安全之盾:漏洞防御与加密技术解析
在数字时代的浪潮中,网络安全和信息安全成为维护个人隐私和企业资产的重要防线。本文将深入探讨网络安全的薄弱环节—漏洞,并分析如何通过加密技术来加固这道防线。文章还将分享提升安全意识的重要性,以预防潜在的网络威胁,确保数据的安全与隐私。
45 2
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
|
4月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
63 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码

热门文章

最新文章

推荐镜像

更多