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

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

3天内不再提示

简单图神经网络(GNN)的基础知识

倩倩 来源:机器之心 2020-04-17 09:20 次阅读

在社交网络分析等一些应用中,图神经网络已经得到了广泛的应用。新加坡科技研究局(A*STAR)的研究者 Rishabh Anand 近日通过图解的方式介绍了图与图神经网络的基本概念,或许能帮助初学者更直观地理解图神经网络的内涵和价值。

深度学习(Graph Deep Learning,GDL)是一个很有发展前景的研究领域,基于图数据来学习和分析非常有用。本文将介绍简单图神经网络(GNN)的基础知识及其内在工作原理背后的直观知识。不过,大家不用担心,为了能够更直观地看懂究竟发生了什么,作者在文中使用了大量彩图给出图解信息

图(Graph)是什么?

图是一种由连接在一起的节点(顶点)和边构成的数据结构,可用于表示没有明确起点或终点的信息。所有节点都可占据空间中的任意位置,当用二维或多维空间绘制图的结构时,具有相似特征的节点通常会聚集到一起。

这就是一个图,由一群分别表示实体的互连节点构成。

边上面的黑色尖头表示节点之间的关系类型,其可表明一个关系是双向的还是单向的。图有两种主要类型:有向图和无向图。在有向图中,节点之间的连接存在方向;而无向图的连接顺序并不重要。有向图既可以是单向的,也可以是双向的。

图可以表示很多事物——社交网络、分子等等。节点可以表示用户/产品/原子,而边表示它们之间的连接,比如关注/通常与相连接的产品同时购买/键。社交网络图可能看起来像是这样,其中节点是用户,边则是连接:

节点表示用户,边则表示两个实体之间的连接/关系。真实的社交网络图往往更加庞大和复杂!

接下来作者会介绍一些概念,如循环单元、嵌入向量表征和前馈神经网络。知道一些有关图论的知识(比如什么是图以及图的形态)也很不错。

有些术语你可能并不熟悉。不用担心!对于那些让人疑惑的术语,作者都尽力链接了他可以找到的最靠谱的解释,能让你理解所涉概念的基本含义。基于此,你还能进一步了解这些概念,同时还能理解它们在图神经网络中所发挥的作用。

了解图神经网络

每个节点都有一组定义它的特征。在社交网络图的案例中,这些特征可以是年龄、性别、居住国家、政治倾向等。每条边连接的节点都可能具有相似的特征。这体现了这些节点之间的某种相关性或关系。

假设我们有一个图 G,其具有以下顶点和边:

这个图与上图是一样的。

为了简单起见,我们假设其特征向量是当前节点的索引的 one-hot 编码。类似地,其标签(或类别)可设为节点的颜色(绿、红、黄)。那么这个图看起来会是这样:

节点的顺序其实并不重要。

注:在实际运用中,尽量不要使用 one-hot 编码,因为节点的顺序可能会非常混乱。相反,应该使用可明显区分节点的特征,比如对社交网络而言,可选择年龄、性别、政治倾向等特征;对分子研究而言可选择可量化的化学性质。

现在,我们有节点的 one-hot 编码(或嵌入)了,接下来我们将神经网络引入这一混合信息中来实现对图的修改。所有的节点都可转化为循环单元(或其它任何神经网络架构,只是我这里使用的是循环单元);所有的边都包含简单的前馈神经网络。那么看起来会是这样:

其中的信封符号只是每个节点的 one-hot 编码的向量(嵌入)。

消息传递

一旦节点和边的转化完成,图就可在节点之间执行消息传递。这个过程也被称为「近邻聚合(Neighbourhood Aggregation)」,因为其涉及到围绕给定节点,通过有向边从周围节点推送消息(即嵌入)。

注:有时候你可为不同类型的边使用不同的神经网络,比如为单向边使用一种神经网络,为双向边使用另一种神经网络。这样你仍然可以获取节点之间的空间关系。

就 GNN 而言,对于单个参考节点,近邻节点会通过边神经网络向参考节点上的循环单元传递它们的消息(嵌入)。参考循环单位的新嵌入更新,基于在循环嵌入和近邻节点嵌入的边神经网络输出的和上使用循环函数。我们把上面的红色节点放大看看,并对这一过程进行可视化:

紫色方块是一个应用于来自近邻节点的嵌入(白色信封)上的简单前馈神经网络;红色三角形是应用于当前嵌入(白色信封)和边神经网络输出(黑色信封)之和上的循环函数,以得到新的嵌入(最上面的白色信封)。

这个过程是在网络中的所有节点上并行执行的,因为 L+1 层的嵌入取决于 L 层的嵌入。因此,在实践中,我们并不需要从一个节点「移动」到另一节点就能执行消息传递。

注:边神经网络输出(黑色信封)之和与输出的顺序无关。

最后的向量表征有什么用?

执行了几次近邻聚合/消息传递流程之后,每个节点的循环单元都会获得一组全新的嵌入。此外,经过多个时间步骤/多轮消息传递之后,节点对自己和近邻节点的信息(特征)也会有更好的了解。这会为整个图创建出更加准确的表征。

要进一步在该流程的更高层面上进行处理或者只是简单地表征该图,你可以将所有嵌入加到一起得到向量 H 来表示整个图。

使用 H 比使用邻接矩阵更好,因为不管怎样对图进行扭转变形,这些矩阵都并不表征图的特征或独特性质——只是节点之间的边连接(这在某些情形下并不是很重要)。

总结一下,我们将所有节点循环单元的最终向量表征加到一起(当然,与顺序无关),然后使用所得到的向量作为其它工作过程的输入或简单地将其用于表征该图。这个步骤看起来如下图所示:

这是经过 n 次重复消息传递之后带有已完全更新的嵌入向量的最终图。你可以将所有节点的表。征加到一起得到 H。

四步骤助你实现图神经网络

GNN 用起来相当简单。事实上,实现它们涉及到以下四个步骤:

给定一个图,首先将节点转换为循环单元,将边转换为前馈神经网络;

接着为所有节点执行 n 次近邻聚合(也就是消息传递);

然后再在所有节点的嵌入向量上求和以得到图表征 H;

最后可以完全跳过 H 直接向更高层级进发或者也可使用 H 来表征该图的独有性质。

小结

现在我们清楚地了解图神经网络的运行方式了。得益于 GNN 在图节点之间依赖关系进行建模的强大性能,它在社交网络、知识图谱和推荐系统方面都有广泛的应用。以社交网络图为例,GNN 在内容推荐方面表现很好。举个例子,当一个用户关注另一个政治倾向相似的用户时,GNN 可用于节点分类,以预测是否可将网站上的特定内容发送到上述用户的新闻流;当 GNN 用于「推荐关注」时,系统可以考虑用户所在的行业,再提供潜在的连接——边分类。

图深度学习其实非常有趣。本文的亮点在于使用一些可视化图介绍了图神经网络的基础概念,但如果想要透彻地了解 GNN,大家最好自己写代码实现看看。

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

    关注

    42

    文章

    4662

    浏览量

    99495
  • 社交网络
    +关注

    关注

    0

    文章

    47

    浏览量

    3780
收藏 人收藏

    评论

    相关推荐

    rnn是递归神经网络还是循环神经网络

    RNN(Recurrent Neural Network)是循环神经网络,而非递归神经网络。循环神经网络是一种具有时间序列特性的神经网络,能够处理序列数据,具有记忆功能。以下是关于循环
    的头像 发表于 07-05 09:52 206次阅读

    递归神经网络是循环神经网络

    递归神经网络(Recurrent Neural Network,简称RNN)和循环神经网络(Recurrent Neural Network,简称RNN)实际上是同一个概念,只是不同的翻译方式
    的头像 发表于 07-04 14:54 221次阅读

    循环神经网络和卷积神经网络的区别

    循环神经网络(Recurrent Neural Network,RNN)和卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域中两种非常重要的神经网络
    的头像 发表于 07-04 14:24 199次阅读

    深度神经网络与基本神经网络的区别

    在探讨深度神经网络(Deep Neural Networks, DNNs)与基本神经网络(通常指传统神经网络或前向神经网络)的区别时,我们需要从多个维度进行深入分析。这些维度包括
    的头像 发表于 07-04 13:20 87次阅读

    反向传播神经网络和bp神经网络的区别

    反向传播神经网络(Backpropagation Neural Network,简称BP神经网络)是一种多层前馈神经网络,它通过反向传播算法来调整网络中的权重和偏置,以达到最小化误差的
    的头像 发表于 07-03 11:00 170次阅读

    bp神经网络是深度神经网络

    BP神经网络(Backpropagation Neural Network)是一种常见的前馈神经网络,它使用反向传播算法来训练网络。虽然BP神经网络在某些方面与深度
    的头像 发表于 07-03 10:14 126次阅读

    bp神经网络和卷积神经网络区别是什么

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种不同类型的人工神经网络,它们在
    的头像 发表于 07-03 10:12 146次阅读

    卷积神经网络和bp神经网络的区别

    卷积神经网络(Convolutional Neural Networks,简称CNN)和BP神经网络(Backpropagation Neural Networks,简称BPNN)是两种
    的头像 发表于 07-02 14:24 268次阅读

    人工神经网络的工作原理是什么

    人工神经网络(Artificial Neural Networks,简称ANNs)是一种模拟人脑神经网络的计算模型,它通过大量的简单计算单元(神经元)和它们之间的连接(突触)来实现对复
    的头像 发表于 07-02 10:06 205次阅读

    利用深度循环神经网络对心电降噪

    具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 我们提出了一种利用由长短期记忆 (LSTM) 单元构建的深度循环神经网络来降 噪心电信号 (ECG
    发表于 05-15 14:42

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3679次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 3250次阅读

    卷积神经网络的介绍 什么是卷积神经网络算法

    卷积神经网络的介绍 什么是卷积神经网络算法 卷积神经网络涉及的关键技术 卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像分类、物体识别、语
    的头像 发表于 08-21 16:49 1587次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1871次阅读

    卷积神经网络的应用 卷积神经网络通常用来处理什么

    卷积神经网络的应用 卷积神经网络通常用来处理什么 卷积神经网络(Convolutional Neural Network,简称CNN)是一种在神经网络领域内广泛应用的
    的头像 发表于 08-21 16:41 4524次阅读