图深度学习(GraphDeepLearning,GDL)是一个很有前途的研究领域,基于图数据进行学习和分析非常有用。本文将介绍简单图神经网络(GNN)的基础知识及其内部工作原理。不过大家不用担心,为了更直观的了解发生了什么,作者在文章中使用了大量的彩色图片来给出图文信息。什么是图表?图是由连接的节点(顶点)和边组成的数据结构,可用于表示没有明确起点或终点的信息。所有节点都可以在空间中占据任意位置,当在二维或更多维度上绘制图的结构时,具有相似特征的节点通常聚集在一起。这是一个由一组相互连接的节点组成的图,每个节点代表一个实体。边缘上方的黑色尖点表示节点之间的关系类型,可以表示关系是双向的还是单向的。有两种主要类型的图:有向图和无向图。在有向图中,节点之间的连接是有方向的;而在无向图中,连接的顺序并不重要。有向图可以是单向的或双向的。图可以表示很多东西——社交网络、分子等等。节点可以代表用户/产品/原子,而边代表它们之间的连接,例如关注/通常购买/与连接的产品打交道。社交网络图可能看起来像这样,其中节点是用户,边是连接:节点代表用户,边代表两个实体之间的连接/关系。真实的社交网络图往往更大更复杂!接下来,作者将介绍循环单元、嵌入向量表示和前馈神经网络等概念。了解一些关于图论的知识(例如什么是图及其形状)也很好。您可能不熟悉某些术语。不用担心!对于那些容易混淆的术语,作者已经尽力链接了他能找到的最靠谱的解释,让你能够理解所涉及概念的基本含义。在此基础上,你可以进一步理解这些概念,同时理解它们在图神经网络中的作用。理解图神经网络每个节点都有一组定义它的特征。在社交网络图的情况下,这些特征可以是年龄、性别、居住国家、政治派别等。每条边连接的节点可能具有相似的特征。这体现了这些节点之间的某种关联或关系。假设我们有一个具有以下顶点和边的图G:该图与上面的图相同。为简单起见,我们假设其特征向量是当前节点索引的单热编码。同样,它的标签(或类别)可以设置为节点的颜色(绿色、红色、黄色)。然后图形将如下所示:节点的顺序并不重要。注意:实际中尽量不要使用one-hot编码,因为节点的顺序可能会很混乱。相反,应该使用能够清楚区分节点的特征,例如年龄、性别、社交网络的政治倾向以及分子研究的可量化化学特性。现在我们有了节点的一次性编码(或嵌入),接下来我们将神经网络引入到这个混合信息中来修改图形。所有节点都可以变成循环单元(或任何其他神经网络架构,但我在这里使用循环单元);所有边都由简单的前馈神经网络组成。然后它看起来像这样:其中的信封符号只是每个节点的单热编码向量(嵌入)。消息传递一旦节点和边的转换完成,图就可以在节点之间执行消息传递。此过程也称为“邻域聚合”,因为它涉及通过有向边(即嵌入)从周围节点向给定节点推送消息。注意:有时您可以对不同类型的边使用不同的神经网络,例如一个神经网络用于单向边,另一个神经网络用于双向边。这样你仍然可以得到节点之间的空间关系。就GNN而言,对于单个参考节点,相邻节点通过边缘神经网络将它们的消息(嵌入)传递给参考节点上的循环单元。新嵌入参考循环单元更新,基于对循环嵌入和邻居节点嵌入的边缘神经网络输出的总和使用循环函数。让我们放大上面的红色节点并可视化这个过程:紫色方块是一个简单的前馈神经网络,应用于来自相邻节点的嵌入(白色信封);红色三角形是当前嵌入(白色信封)。信封)和边缘神经网络输出(黑色信封)的总和以获得新的嵌入(最上面的白色信封)。这个过程在网络中的所有节点上并行执行,因为L+1层的嵌入取决于L层的嵌入。因此,在实践中,我们不需要从一个节点“移动”到另一个节点来执行消息传递。注意:边缘神经网络输出(黑色信封)的总和与输出顺序无关。最终的向量表示有什么用?在执行多个邻居聚合/消息传递过程后,每个节点的循环单元都会获得一组新的嵌入。此外,经过多时间步/多轮消息传递,节点也会对自身和相邻节点的信息(特征)有更好的了解。这样可以更准确地表示整个图形。要在更高级别进一步处理该过程或只是为了表示图形,您可以将所有嵌入加在一起以获得表示整个图形的向量H。使用H比使用邻接矩阵要好,因为无论你如何扭曲图,这些矩阵都不会表征图的特征或独特属性-只是节点之间的边连接(在某些情况下这不是很重要)。总而言之,我们将所有节点循环单元的最终向量表示相加(当然与顺序无关),然后使用生成的向量作为其他工作流程的输入或简单地表示图形。此步骤如下图所示:这是经过n次消息传递迭代后具有完全更新的嵌入向量的最终图。您可以将所有节点移动到一个表中。levies相加得到H。四个步骤帮助你实现图神经网络GNN非常简单易用。实际上,实现它们涉及以下四个步骤:给定一个图,首先将节点转换为循环单元,将边转换为前馈神经网络;然后对所有节点执行n次最近邻聚合(又名消息传递);然后将所有节点的嵌入向量求和以获得图表示H;最后,可以完全跳过H并直接进入更高级别,或者可以使用H来表示图的独特属性。总结现在我们对图神经网络的运作方式有了清晰的认识。得益于GNN在对图节点之间的依赖关系进行建模方面的强大性能,它在社交网络、知识图谱和推荐系统中有着广泛的应用。以社交网络图为例,GNN在内容推荐方面表现良好。例如,当一个用户关注另一个具有相似政治倾向的用户时,可以使用GNN进行节点分类,以预测网站上的特定内容是否可以发送到上述用户的新闻流中;当GNN用于“推荐关注”时,系统可以考虑用户所在的行业,然后提供潜在的连接——边缘分类。图深度学习其实很有趣。这篇文章的亮点是用一些直观的图来介绍图神经网络的基本概念,但是如果你想彻底理解GNN,还是自己写代码看看吧。
