图神经网络入门

图神经网络基础知识——初识图学习 初识图学习一、简单的图基础什么是图?生活中的图图的分类同构图、异构图举例图的度和邻居图的表示邻接矩阵邻接表边集图的特征二、图学习初印象图学习的应用节点级别任务金融诈骗检测自动驾驶边级别任务推荐系统图级别任务气味识别图学习算法分类图游走类算法图神经网络算法三、PGL 图学习库初体验1. 环境安装2. 使用 PGL 来创建一张图3. 定义图模型4. 模型定义5. 训练前准备6. 开始训练7. 模型测试 一、简单的图基础 在上一篇文章中,我整理了数据结构与算法中的图,讲解了与图有关的基本概念。 这里再做一个小小的 阅读详情

近年来,深度学习领域关于图神经网络(Graph Neural Networks,GNN)的研究热情日益高涨,图神经网络已经成为各大深度学习顶会的研究热点。GNN处理非结构化数据时的出色能力使其在网络数据分析、推荐系统、物理建模、自然语言处理和图上的组合优化问题方面都取得了新的突破。

图神经网络有很多比较好的综述[1][2][3]可以参考,更多的论文可以参考清华大学整理的GNN paper list[4] 。

本篇文章将从一个更直观的角度对当前经典流行的GNN网络,包括GCN、GraphSAGE、GAT、GAE以及graph pooling策略DiffPool等等做一个简单的小结。

一、为什么需要图神经网络?

随着机器学习、深度学习的发展,语音、图像、自然语言处理逐渐取得了很大的突破,然而语音、图像、文本都是很简单的序列或者网格数据,是很结构化的数据,深度学习很善于处理该种类型的数据(图1)。

                                                                            图1

然而现实世界中并不是所有的事物都可以表示成一个序列或者一个网格,例如社交网络、知识图谱、复杂的文件系统等(图2),也就是说很多事物都是非结构化的。

                                                                          图2

相比于简单的文本和图像,这种网络类型的非结构化的数据非常复杂,处理它的难点包括:

  1. 图的大小是任意的,图的拓扑结构复杂,没有像图像一样的空间局部性
  2. 图没有固定的节点顺序,或者说没有一个参考节点
  3. 图经常是动态图,而且包含多模态的特征

那么对于这类数据我们该如何建模呢?能否将深度学习进行扩展使得能够建模该类数据呢?这些问题促使了图神经网络的出现与发展。

二. 图神经网络是什么样子的?

相比较于神经网络最基本的网络结构全连接层(MLP),特征矩阵乘以权重矩阵,图神经网络多了一个邻接矩阵。计算形式很简单,三个矩阵相乘再加上一个非线性变换(图3)。

                                                                             图3

因此一个比较常见的图神经网络的应用模式如下图(图4),输入是一个图,经过多层图卷积等各种操作以及激活函数,最终得到各个节点的表示,以便于进行节点分类、链接预测、图与子图的生成等等任务。

                                                                             图4

上面是一个对图神经网络比较简单直观的感受与理解,实际其背后的原理逻辑还是比较复杂的,这个后面再慢慢细说,接下来将以几个经典的GNN models为线来介绍图神经网络的发展历程。

三、图神经网络的几个经典模型与发展

1 . Graph Convolution Networks(GCN)[5]

GCN可谓是图神经网络的“开山之作”,它首次将图像处理中的卷积操作简单的用到图结构数据处理中来,并且给出了具体的推导,这里面涉及到复杂的谱图理论,具体推到可以参考[6][7]。推导过程还是比较复杂的,然而最后的结果却非常简单( 图5)。

                                                                              图5

我们来看一下这个式子,天呐,这不就是聚合邻居节点的特征然后做一个线性变换吗?没错,确实是这样,同时为了使得GCN能够捕捉到K-hop的邻居节点的信息,作者还堆叠多层GCN layers,如堆叠K层有:

上述式子还可以使用矩阵形式表示如下,

其中  是归一化之后的邻接矩阵,  相当于给层的所有节点的embedding做了一次线性变换,左乘以邻接矩阵表示对每个节点来说,该节点的特征表示为邻居节点特征相加之后的结果。(注意将换成矩阵就是图3所说的三矩阵相乘)  

那么GCN的效果如何呢?作者将GCN放到节点分类任务上,分别在Citeseer、Cora、Pubmed、NELL等数据集上进行实验,相比于传统方法提升还是很显著的,这很有可能是得益于GCN善于编码图的结构信息,能够学习到更好的节点表示。

                                                                             图6

当然,其实GCN的缺点也是很显然易见的,第一,GCN需要将整个图放到内存和显存,这将非常耗内存和显存,处理不了大图;第二,GCN在训练时需要知道整个图的结构信息(包括待预测的节点), 这在现实某些任务中也不能实现(比如用今天训练的图模型预测明天的数据,那么明天的节点是拿不到的)。

2. Graph Sample and Aggregate(GraphSAGE)[8]

为了解决GCN的两个缺点问题,GraphSAGE被提了出来。在介绍GraphSAGE之前,先介绍一下Inductive learning和Transductive learning。注意到图数据和其他类型数据的不同,图数据中的每一个节点可以通过边的关系利用其他节点的信息。这就导致一个问题,GCN输入了整个图,训练节点收集邻居节点信息的时候,用到了测试和验证集的样本,我们把这个称为Transductive learning。然而,我们所处理的大多数的机器学习问题都是Inductive learning,因为我们刻意的将样本集分为训练/验证/测试,并且训练的时候只用训练样本。这样对图来说有个好处,可以处理图中新来的节点,可以利用已知节点的信息为未知节点生成embedding,GraphSAGE就是这么干的。

GraphSAGE是一个Inductive Learning框架,具体实现中,训练时它仅仅保留训练样本到训练样本的边,然后包含Sample和Aggregate两大步骤,Sample是指如何对邻居的个数进行采样,Aggregate是指拿到邻居节点的embedding之后如何汇聚这些embedding以更新自己的embedding信息。下图展示了GraphSAGE学习的一个过程,

                                            图7

K 第一步,对邻居采样

第二步,采样后的邻居embedding传到节点上来,并使用一个聚合函数聚合这些邻居信息以更新节点的embedding

第三步,根据更新后的embedding预测节点的标签

接下来,我们详细的说明一个训练好的GrpahSAGE是如何给一个新的节点生成embedding的(即一个前向传播的过程),如下算法图:

首先,(line1)算法首先初始化输入的图中所有节点的特征向量,(line3)对于每个节点 ,拿到它采样后的邻居节点 后,(line4)利用聚合函数聚合邻居节点的信息,(line5)并结合自身embedding通过一个非线性变换更新自身的embedding表示。

注意到算法里面的K ,它是指聚合器的数量,也是指权重矩阵的数量,还是网络的层数,这是因为每一层网络中聚合器和权重矩阵是共享的。网络的层数可以理解为需要最大访问的邻居的跳数(hops),比如在图7中,红色节点的更新拿到了它一、二跳邻居的信息,那么网络层数就是2。为了更新红色节点,首先在第一层(k=1),我们会将蓝色节点的信息聚合到红色解节点上,将绿色节点的信息聚合到蓝色节点上。在第二层(k=2)红色节点的embedding被再次更新,不过这次用到的是更新后的蓝色节点embedding,这样就保证了红色节点更新后的embedding包括蓝色和绿色节点的信息,也就是两跳信息。

为了看的更清晰,我们将更新某个节点的过程展开来看,如图8分别为更新节点A和更新节点B的过程,可以看到更新不同的节点过程每一层网络中聚合器和权重矩阵都是共享的。

那么GraphSAGE Sample是怎么做的呢?GraphSAGE是采用定长抽样的方法,具体来说,定义需要的邻居个数,然后采用有放回的重采样/负采样方法达到。保证每个节点(采样后的)邻居个数一致,这样是为了把多个节点以及它们的邻居拼接成Tensor送到GPU中进行批训练。

那么GraphSAGE 有哪些聚合器呢?主要有三个,

这里说明的一点是Mean Aggregator和GCN的做法基本是一致的(GCN实际上是求和)。

到此为止,整个模型的架构就讲完了,那么GraphSAGE是如何学习聚合器的参数以及权重矩阵呢?如果是有监督的情况下,可以使用每个节点的预测lable和真实lable的交叉熵作为损失函数。如果是在无监督的情况下,可以假设相邻的节点的embedding表示尽可能相近,因此可以设计出如下的损失函数,

那么GrpahSAGE的实际实验效果如何呢?作者在Citation、Reddit、PPI数据集上分别给出了无监督和完全有监督的结果,相比于传统方法提升还是很明显。 

至此,GraphSAGE介绍完毕。我们来总结一下,GraphSAGE的一些优点,

(1)利用采样机制,很好的解决了GCN必须要知道全部图的信息问题,克服了GCN训练时内存和显存的限制,即使对于未知的新节点,也能得到其表示

(2)聚合器和权重矩阵的参数对于所有的节点是共享的

(3)模型的参数的数量与图的节点个数无关,这使得GraphSAGE能够处理更大的图

(4)既能处理有监督任务也能处理无监督任务

当然,GraphSAGE也有一些缺点,每个节点那么多邻居,GraphSAGE的采样没有考虑到不同邻居节点的重要性不同,而且聚合计算的时候邻居节点的重要性和当前节点也是不同的。 

 3. Graph Attention Networks(GAT)[9]

为了解决GNN聚合邻居节点的时候没有考虑到不同的邻居节点重要性不同的问题,GAT借鉴了Transformer的idea,引入masked self-attention机制,在计算图中的每个节点的表示的时候,会根据邻居节点特征的不同来为其分配不同的权值。

 具体的,对于输入的图,一个graph attention layer如图9所示,

图9 

 其中 \alpha采用了单层的前馈神经网络实现,计算过程如下(注意权重矩阵  对于所有的节点是共享的):

计算完attention之后,就可以得到某个节点聚合其邻居节点信息的新的表示,计算过程如下:

为了提高模型的拟合能力,还引入了多头的self-attention机制,即同时使用多个计算self-attention,然后将计算的结果合并(连接或者求和):

此外,由于GAT结构的特性,GAT无需使用预先构建好的图,因此GAT既适用于Transductive Learning,又适用于Inductive Learning。

那么GAT的具体效果如何呢?作者分别在三个Transductive Learning和一个Inductive Learning任务上进行实验,实验结果如下:

无论是在Transductive Learning还是在Inductive Learning的任务上,GAT的效果都要优于传统方法的结果。

至此,GAT的介绍完毕,我们来总结一下,GAT的一些优点,

(1)训练GCN无需了解整个图结构,只需知道每个节点的邻居节点即可

(2)计算速度快,可以在不同的节点上进行并行计算

(3)既可以用于Transductive Learning,又可以用于Inductive Learning,可以对未见过的图结构进行处理

(仍然是简单的idea,解决了问题,效果还好!!!)

到此,我们就介绍完了GNN中最经典的几个模型GCN、GraphSAGE、GAT,接下来我们将针对具体的任务类别来介绍一些流行的GNN模型与方法。

四、无监督的节点表示学习(Unsupervised Node Representation)

由于标注数据的成本非常高,如果能够利用无监督的方法很好的学习到节点的表示,将会有巨大的价值和意义,例如找到相同兴趣的社区、发现大规模的图中有趣的结构等等。

                                                                           图10

这其中比较经典的模型有GraphSAGE、Graph Auto-Encoder(GAE)等,GraphSAGE就是一种很好的无监督表示学习的方法,前面已经介绍了,这里就不赘述,接下来将详细讲解后面两个。

  1. Graph Auto-Encoder(GAE)[10]

在介绍Graph Auto-Encoder之前,需要先了解自编码器(Auto-Encoder)、变分自编码器(Variational Auto-Encoder),具体可以参考[11],这里就不赘述。

理解了自编码器之后,再来理解变分图的自编码器就容易多了。如图11输入图的邻接矩阵

和节点的特征矩阵 ,通过编码器(图卷积网络)学习节点低维向量表示的均值和方差

,然后用解码器(链路预测)生成图。 

                                                                          图11

编码器(Encoder)采用简单的两层GCN网络,解码器(Encoder)计算两点之间存在边的概率来重构图,损失函数包括生成图和原始图之间的距离度量,以及节点表示向量分布和正态分布的KL-散度两部分。具体公式如图12所示:

                                                                           图12

另外为了做比较,作者还提出了图自编码器(Graph Auto-Encoder),相比于变分图的自编码器,图自编码器就简单多了,Encoder是两层GCN,Loss只包含Reconstruction Loss。

那么两种图自编码器的效果如何呢?作者分别在Cora、Citeseer、Pubmed数据集上做Link prediction任务,实验结果如下表,图自编码器(GAE)和变分图自编码器(VGAE)效果普遍优于传统方法,而且变分图自编码器的效果更好;当然,Pumed上GAE得到了最佳结果。可能是因为Pumed网络较大,在VGAE比GAE模型复杂,所以更难调参。

五、Graph Pooling

Graph pooling是GNN中很流行的一种操作,目的是为了获取一整个图的表示,主要用于处理图级别的分类任务,例如在有监督的图分类、文档分类等等。

                                                                           图13

Graph pooling的方法有很多,如简单的max pooling和mean pooling,然而这两种pooling不高效而且忽视了节点的顺序信息;这里介绍一种方法:Differentiable Pooling (DiffPool)。

1.DiffPool[12]

在图级别的任务当中,当前的很多方法是将所有的节点嵌入进行全局池化,忽略了图中可能存在的任何层级结构,这对于图的分类任务来说尤其成问题,因为其目标是预测整个图的标签。针对这个问题,斯坦福大学团队提出了一个用于图分类的可微池化操作模块——DiffPool,可以生成图的层级表示,并且可以以端到端的方式被各种图神经网络整合。

DiffPool的核心思想是通过一个可微池化操作模块去分层的聚合图节点,具体的,这个可微池化操作模块基于GNN上一层生成的节点嵌入 以及分配矩阵 ,以端到端的方式分配给下一层的簇,然后将这些簇输入到GNN下一层,进而实现用分层的方式堆叠多个GNN层的想法。(图14)

                                                                           图14

那么这个节点嵌入和分配矩阵是怎么算的?计算完之后又是怎么分配给下一层的?这里就涉及到两部分内容,一个是分配矩阵的学习,一个是池化分配矩阵。

  • 分配矩阵的学习

这里使用两个分开的GNN来生成分配矩阵和每一个簇节点新的嵌入  ,这两个GNN都是用簇节点特征矩阵和粗化邻接矩阵作为输入,

  • 池化分配矩阵

计算得到分配矩阵和每一个簇节点新的嵌入之后,DiffPool层根据分配矩阵,对于图中的每个节点/簇生成一个新的粗化的邻接矩阵与新的嵌入矩阵

总的来看,每层的DiffPool其实就是更新每一个簇节点的嵌入和簇节点的特征矩阵,如下公式:

 至此,DiffPool的基本思想就讲完了。那么效果如何呢?作者在多种图分类的基准数据集上进行实验,如蛋白质数据集(ENZYMES,PROTEINS,D&D),社交网络数据集(REDDIT-MULTI-12K),科研合作数据集(COLLAB),实验结果如下:

其中,GraphSAGE是采用全局平均池化;DiffPool-DET是一种DiffPool变体,使用确定性图聚类算法生成分配矩阵;DiffPool-NOLP是DiffPool的变体,取消了链接预测目标部分。总的来说,DiffPool方法在GNN的所有池化方法中获得最高的平均性能。

为了更好的证明DiffPool对于图分类十分有效,论文还使用了其他GNN体系结构(Structure2Vec(s2v)),并且构造两个变体,进行对比实验,如下表:

可以看到DiffPool的显著改善了S2V在ENZYMES和D&D数据集上的性能。

而且DiffPool可以自动的学习到恰当的簇的数量。

至此,我们来总结一下DiffPool的优点,

(1)可以学习层次化的pooling策略

(2)可以学习到图的层次化表示

(3)可以以端到端的方式被各种图神经网络整合

然而,注意到,DiffPool也有其局限性,分配矩阵需要很大的空间去存储,空间复杂度为,为池化层的层数,所以无法处理很大的图。

参考

  1. ^Graph Neural Networks: A Review of Methods and Applications. arxiv 2018 https://arxiv.org/pdf/1812.08434.pdf
  2. ^A Comprehensive Survey on Graph Neural Networks. arxiv 2019. https://arxiv.org/pdf/1901.00596.pdf
  3. ^Deep Learning on Graphs: A Survey. arxiv 2018. https://arxiv.org/pdf/1812.04202.pdf
  4. ^GNN papers https://github.com/thunlp/GNNPapers/blob/master/README.md
  5. ^Semi-Supervised Classification with Graph Convolutional Networks(ICLR2017) https://arxiv.org/pdf/1609.02907
  6. ^如何理解 Graph Convolutional Network(GCN)? 如何理解 Graph Convolutional Network(GCN)? - 知乎
  7. ^GNN 系列:图神经网络的“开山之作”CGN模型 GNN 系列:图神经网络的“开山之作”CGN模型
  8. ^Inductive Representation Learning on Large Graphs(2017NIPS) https://cs.stanford.edu/people/jure/pubs/graphsage-nips17.pdf
  9. ^Graph Attention Networks(ICLR2018) https://arxiv.org/pdf/1710.10903
  10. ^Variational Graph Auto-Encoders(NIPS2016) https://arxiv.org/pdf/1611.07308
  11. ^VGAE(Variational graph auto-encoders)论文详解 VGAE(Variational graph auto-encoders)论文详解 - 知乎
  12. ^Hierarchical Graph Representation Learning withDifferentiable Pooling(NIPS2018) https://arxiv.org/pdf/1806.08804
图神经网络实战(6)——使用PyTorch构建图神经网络 图数据集通常比简单的连接集合更加丰富,因为节点和边可以具有表示分数、颜色、单词等特征。包含这些额外信息在输入数据中对于生成最佳嵌入至关重要。在本节中,我们将使用 Cora 和 Facebook Page-Page 数据集,首先将它们视为表格数据集,观察香草神经网络在节点特征上的表现如何。然后,尝试在神经网络中加入拓扑信息,实现图神经网络 (Graph Neural Networks, GNN) 架构:一个同时考虑节点特征和边的简单模型。最后,我们将比较两种架构的性能。 阅读详情

相关推荐

TensorFlow图神经网络(GNN)入门指南

图神经网络(Graph Neural Networks, GNN)是近年来深度学习领域最令人兴奋的发展之一。与传统神经网络处理欧几里得数据(如图像、文本)不同,GNN专门设计用于处理非欧几里得数据——图结构数据。解释图神经网络的基本概念和数学原理展示如何使用TensorFlow实现各种GNN架构提供实用的代码示例和最佳实践探讨GNN在实际应用中的挑战和解决方案本文范围涵盖从基础到中级的GNN知识,特别关注TensorFlow实现细节。首先介绍图数据和GNN的基本概念。

AI天才研究院 1521

图神经网络--GNN从入门到精通

图是由节点和边组成的,如下图所示。一般图中的节点表示实体对象(比如一个用户、一件商品、一辆车、一张银行卡等都可以作为节点),边代表事件或者实体之间的特殊关系(比如用户和商品之间的购买关系)。

feverfew1的博客 3470

一份简短入门《图神经网络GNN》笔记小册.pdf

本文组织如下:首先,介绍了图和网络的基本概念。其次,我们描述了在GNNs中用于计算节点嵌入的主要步骤。接下来,我们将介绍现有文献中经常提到的三种GNN技术。最后,我们对该领域的其他著名作品进行了有限的综述。

【图神经网络】GNN从入门到精通

【图神经网络】GNN从入门到精通

weixin_44039930的博客 118

方差分析ANOVA、T检验、卡方检验的区别

T检验和ANOVA都是用来看样本之间均值是否相等,但是两者又有什么区别呢? 卡方检验是用来看分类变量之间有没有相关性。 自变量X类型 自变量X组数 因变量Y类型 分析方法 离散(类别) 仅仅2组 连续(均值) t检验 离散(类别) 2组及以上 连续(均值) ANOVA 离散(类别) 2组及以上 离散(类别) 卡方检验 进一步细分 方差分析 从理论上讲,方差分析有两个前提条件,一是因变量Y需要满足正态性要求,二是满足方差齐检验。 方差不齐时可使用‘非参数检验’,同时还可使用wel

itslifeng的博客 4万+

Ubuntu终端一键安装英伟达驱动:无需手动下载的完整指南

本文提供了一份在Ubuntu系统上通过终端命令一键安装英伟达显卡驱动的完整指南。该方法利用官方PPA源,无需手动下载驱动文件,可自动检测硬件并安装最佳版本,极大简化了流程,适合深度学习环境搭建等场景,有效提升安装效率与稳定性。

weixin_29232121的博客 180

图神经网络怎么入门?一文带你了解图神经网络入门路径-GNN入门

不同于声学,图像,自然语言处理这些方向,深度学习可以很好的提取这些数据中的底层数据的复杂模式,对于现实世界而言,现实生活中普遍存在的关系具有非常复杂的结构,例如社交网络,电商网络,生物网络和交通网络。每个节点都有不同数量的相同节点,彼此之间存在依赖关系,导致一些在声学,图像上的重要操作(例如卷积)不再适合直接用于图。免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。...

gu1857035894的博客 904

codesys多协议通信之OPC UA通信

测试不易,转载请注明出处!

weixin_44243068的博客 3638

我想让你成为香饽饽,图神经网络从入门到实战!

近几年,基于计算机算力的发展以及大量训练数据的可得性等原因,以深度学习为代表的 AI 技术给学术界、工业界带来了巨大变革。然而,除了文本、图像、语音等结构化的数据,在实际应用场景中,还有大...

实验楼 548

【Davinci开发】:MPU(内存保护)

【Davinci开发】:MPU(内存保护)

2209

图神经网络入门博客

由谷歌团队发布的能对图神经网络有初步了解的博客,还有可交互的组件,适合初学者入门。

m0_68100317的博客 135

【异常】Nacos 2.x 核心报错:Server check fail (gRPC 端口连不通) 深度排查

如果 Nacos 运行在 K8s 中,需确保对应的Servicemetadata:spec:ports:port: 8848port: 9848 # 必须暴露此端口selector:app: nacos在 Nacos 2.x 时代,“端口成套出现”是基础设施配置的基本要求。遇到连接失败时,首要检查的不是业务配置,而是网络链路上主端口 + 1000的 TCP 通讯是否被放行。更多关于 AI + 教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 325

快速入门图神经网络(GNN)之——pytorch_geometric

是库中用于表示图数据结构的一个核心类。

kaiaaaa的博客 1133

【教程4>第6章>第15节】 基于I+jQ复数信号的LS信道估计和均衡实现1——matlab仿真分析,QPSK为例

在基于QPSK调制的通信系统中,LS信道估计和均衡是用于补偿信道失真、提高信号传输质量的重要技术。以下将详细介绍基于I+jQ复数信号的 LS 信道估计和均衡的实现原理与过程。可以看到,通过线性插值之后,QPSK信号的星座图可以模糊的看到四个星座点(图2),通过非线性插值之后,可以清晰的看到QPSK的四个星座点(图3)。可以看到,信道均衡显著提高了通信系统的可靠性和有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 657

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 202

图神经网络从入门到入门

作者|yyHaker原文|文末『阅读原文』处整理| 极市平台导读本文从一个更直观的角度对当前经典流行的GNN网络,包括GCN、GraphSAGE、GAT、GAE以及graph...

Kaiyuan_sjtu的博客 1236

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

图神经网络入门:异构图学习与图表示实战

图神经网络(GNNs)是深度学习领域的热门研究方向,广泛应用于社交网络分析、推荐系统、生物信息学等领域。GNN通过学习图结构中的节点、边和子图的表示,捕捉复杂关系和模式。本文介绍了GNN的基础概念,包括异构图学习和图表示的基本原理,并通过实战案例展示了如何使用PyTorch Geometric实现异构图学习,以及使用Node2Vec进行图表示学习。异构图学习处理多种类型节点和边,捕捉复杂关系;图表示学习将节点映射到低维向量空间,保留图的拓扑结构和节点特征信息。

2501_91624122的博客 1128

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HMGNN: 异构分子图神经网络入门指南

HMGNN: 异构分子图神经网络入门指南 HMGNN项目地址:https://gitcode.com/gh_mirrors/hm/HMGNN 一、项目介绍 HMGNN(Heterogeneous Molecular Graph Neural Network)是由爱奇艺开源的一款异构分子图神经网络模型框架,专门用于处理复杂的分子结构数据。该项目旨在通过深度学习技术解决化学领域中分子结构预测和分析的...

gitblog_00884的博客 607
上一篇: 张量学习:张量补全(tensor completion)
下一篇: 推荐系统领域最新研究进展(0410-0417)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值