图神经网络揭秘:视觉和实用指南

Graph Deep Learning (GDL) 是一个新兴的研究领域。在学习和分析图形数据时,它非常有用。在这里,我将介绍一个简单的图神经网络 (GNN) 的基础知识以及其内部工作原理背后的直觉。别担心,有大量彩色图表供您直观地了解正在发生的事情!

二、图如何网络化?

图形是一种数据结构,由节点(顶点)和边连接在一起,以表示没有确定开始或结束的信息。所有节点在空间中占据任意位置,当绘制在 2D(甚至 nD)空间中时,通常根据相似的特征进行聚类。

边缘上的黑色箭头表示节点之间的关系类型。它显示了一种关系是相互的还是单方面的。这两种不同类型的图形是有向的(节点之间的连接方向很重要)和无向的(连接顺序无关紧要)。有向图本质上可以是单向的,也可以是双向的。

图表可以表示很多东西——社交媒体网络、分子等。节点可以被认为是用户/产品/原子,而边缘代表连接(跟随/通常购买/绑定)。社交媒体图可能如下所示,节点为用户,边缘为连接:

节点表示用户,而边缘表示两个实体之间的连接/关系。社交媒体图表通常更加庞大和复杂!

三、你需要知道的

在这里,我将立即提及一些概念。我将讨论递归单元嵌入向量表示前馈神经网络。很高兴了解相当多的图论(例如,图是什么以及它看起来是什么样子)。

可能有些术语您不熟悉。不用担心!对于所有令人困惑的行话,我已经链接了我能找到的最佳解释,涵盖了上述概念的基础知识。这样,您可以进一步阅读这些概念,同时还可以理解它们在图神经网络中扮演的角色。

3.1 进入图神经网络

每个节点都有一组定义它的特征。在社交网络图的情况下,这可能是年龄、性别、居住国家/地区、政治倾向等。每条边都可以将具有相似特征的节点连接在一起。它显示了它们之间的某种互动或关系。

假设我们有一个任意图形 G,其中包含以下顶点和边:

这是上面的同一张图。

为简单起见,我们假设特征向量是当前节点索引的热编码。同样,标签(或类)可以是节点的颜色(如上所示的绿色、红色和黄色)。它看起来像这样:

他们所处的顺序并不重要。

注意:实际上,尽量不要使用一个热编码,因为节点的顺序可能会很混乱。相反,使用唯一标识节点的特征(例如:年龄、性别、政治倾向等用于社交媒体或数值化学性质用于分子研究)。

现在我们已经有了节点的单热编码(或嵌入),让我们通过引入神经网络来改变图形。所有节点都被转换为递归单元(或者实际上,任何神经网络架构;我在这里使用递归单位),所有的边缘都包含简单的前馈神经网络。它看起来像这样:

包络只是每个节点(现在是递归单元)的热编码(嵌入)向量。

3.2 消息传递

一旦节点和边的转换完成,图形就会在节点之间执行消息传递。此过程也称为邻域聚合,因为它涉及通过定向边将来自给定参考节点周围的节点的消息(也称为嵌入)推送。

注意:有时,您可以对不同类型的边使用不同的神经网络;一个用于单向,另一个用于双向。这样,您仍然可以捕获节点之间的空间关系。

就GNNs而言,对于单个参考节点,相邻节点通过边缘神经网络将其消息(嵌入)传递到参考节点上的循环单元中。通过在当前嵌入上应用所述循环函数和相邻节点嵌入的边缘神经网络输出的求和,更新了参考循环单元的新嵌入。让我们放大顶部的红色节点并可视化该过程:

紫色方块是一个简单的前馈 NN,应用于来自相邻节点的嵌入物(白色包络)。应用于当前嵌入(白色包络)的递归函数(红色三角形)和边缘神经网络输出(黑色包络)的求和以获得新的嵌入(白色包络素数)。

此过程在网络中的所有节点上并行执行,因为第 L+1 层中的嵌入依赖于第 L 层中的嵌入。这就是为什么在实践中,我们不需要从一个节点“移动”到另一个节点来执行消息传递。

注意:边缘神经网络输出的总和(图中的黑色包络线)是输出顺序不变的。

3.3 我们如何处理最终的向量表示?

一旦您执行几次邻域聚合/消息传递过程,您就会为每个节点循环单元获得一组全新的嵌入。

通过消息传递的时间步长/轮次,节点对自己的信息(特征)和相邻节点的信息(特征)有了更多的了解。这样可以更准确地表示整个图形。

为了在管道的更高层进行进一步处理,或者只是为了表示图形,您可以获取所有嵌入并将它们相加,以获得表示整个图形的向量 H

使用 比使用邻接矩阵更好,因为尽管有任何图形扭曲,但这些矩阵并不表示图形的特征或独特方面——只是节点之间的边缘连接(根据某些上下文,这并不重要)。

为了总结这一步,我们将所有节点递归单元的最终向量表示(当然是阶数不变)相加,将此结果向量用作其他管道的输入或简单地表示图形。此步骤如下所示:

这是最终的图表,其中完全更新的节点在消息传递 n 次重复后嵌入向量。您可以获取所有节点的表示,并将它们相加得到 H。

四、图神经网络,总结

GNNs使用起来相当简单。事实上,实施它们涉及四个步骤。

  1. 给定一个图形,我们首先将节点转换为循环单元,将边转换为前馈神经网络。
  2. 然后我们对所有节点执行邻里聚合(消息传递,如果听起来更好)n 次。
  3. 然后,我们将所有节点的嵌入向量相加,得到图形表示 H
  4. 随意将 H 传递到更高的层中,或使用它来表示图形的独特属性!

4.1 为什么选择图形神经网络?

既然我们知道了图神经网络是如何工作的,我们为什么要应用/使用它们呢?

在社交媒体图表的情况下,GNNs在内容推荐方面非常出色。例如,当用户关注具有相似政治倾向的其他用户时,GNNs可用于节点分类,以预测网站上的某一内容是否可以发送到该用户的新闻源。

在建议“关注谁”时,系统可以考虑用户的行业并提供潜在的联系——边缘分类。

4.2 简而言之

在这里,我们通过一系列可视化介绍了图神经网络的基础知识。Graph DL 真的很有趣,我敦促你尝试编写自己的实现。有大量的图形构造库,如 Deep Graph Library 或 PyTorch Geometric

如果您对 Graph NN 的数学分解感兴趣,并带有解释本文中概念的代码片段,请将建议放在评论部分或给我留言(下面列出的配置文件)。

此外,还有一些很棒的资源可用于了解 GDL 算法以及从图形表示中捕获大量顺序和空间方面的不同方法。请在本文之外进行探索,并使用您选择的工具实现它。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无水先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值