intro

GNN

​ 在之前学过的模型中,我们习惯于处理序列化数据,例如:图像、文本和表格数据——这些结构规整的信息可以被轻松地输入卷积神经网络(CNN)或循环神经网络(RNN)。然而,现实世界中存在着大量非欧几里得数据:社交网络中的用户关系、蛋白质分子的原子连接、交通路网的动态车流…这些数据本质上由节点(实体)和边(关系)构成,形成了一个个复杂的图结构。图神经网络(Graph Neural Networks, GNN)就是用来理解这种关系型数据的模型。

为什么需要GNN?

传统深度学习模型在处理图数据时面临两大挑战:

  1. 拓扑结构敏感:图的节点排列顺序不影响其本质含义(置换不变性),但CNN的网格卷积操作会破坏这种特性
  2. 动态关系建模:图中节点间的依赖可能是多跳的(如朋友的朋友),而RNN的序列建模难以捕捉长程关联

​ GNN的突破在于直接在图结构上定义计算:它通过**消息传递(Message Passing)**机制,让节点特征沿着边进行交互,最终生成包含全局拓扑信息的嵌入表示。

​ GNN 的输入市局可以是任意尺寸的,这是其他的 NN 模型做不到的,GNN 的设计使其能够自然地处理任意尺寸的图数据。这是因为 GNN 中每个节点的特征向量可以通过聚合其邻居节点的信息来进行更新,而这个聚合过程并不依赖于图的大小。

为什么 GNN 的学习过程很难

  • 数据输入大小任意:GNN 能处理任意尺寸的图数据,这虽是优势,但也增加了学习难度。不同规模的图在计算和存储需求上差异巨大,大规模图可能导致计算资源和内存的极大消耗,对模型的可扩展性要求极高

  • 缺乏固定节点顺序和参考锚点:图数据没有固定节点顺序和参考锚点,这使得信息传播的方向和顺序难以确定。GNN 需要设计复杂的消息传递机制来应对这种无序性,增加了模型的复杂度和训练难度

  • 节点动态性:实际应用中的图数据往往是动态变化的,节点和边的数量及连接关系会随时间改变。GNN 需实时更新节点和边的特征以适应图的演化

  • 多模态数据融合:GNN 常需处理包含多模态数据的图,如图像、文本等。不同模态数据特征维度和表达方式各异,融合它们需设计复杂的数据融合策略,增加了模型的复杂度和计算成本

GNN 涵盖的内容:

  • 传统的图机器学习方法:

    • 图元(Graphlets):图中的小子图模式,用于分析图的局部结构

    • 图核(Graph Kernels):用于图分类和图相似性度量的方法,通过核函数计算图之间的相似性

  • 节点嵌入方法

    • DeepWalk:一种基于随机游走的节点嵌入方法,通过随机游走生成节点序列,然后使用 Skip-Gram 模型学习节点嵌入。

    • Node2Vec:是 DeepWalk 的扩展,通过调整随机游走的策略,能够更好地捕捉图的结构和节点的语义信息。

  • 图神经网络

    • GCN(图卷积网络):一种基于图卷积操作的神经网络模型,通过聚合节点及其邻居的信息来更新节点特征

    • GraphSAGE:一种基于采样的图神经网络,通过采样节点的邻居来生成节点嵌入,适用于大规模图数据

    • GAT(图注意力网络):引入了注意力机制,通过学习节点之间的注意力权重来聚合邻居信息,能够更好地捕捉节点之间的复杂关系

    • GNN 理论:GNN 的理论基础包括图信号处理、谱图理论和图卷积操作的数学原理,这些理论为 GNN 的设计和优化提供了指导

  • 知识图谱与推理

    • TransE:一种知识图谱嵌入方法,通过将实体和关系嵌入到低维向量空间中,能够有效地表示知识图谱中的三元组关系。

    • BetaE:一种基于贝叶斯推理的知识图谱嵌入方法,能够处理知识图谱中的不确定性和不完整性。

  • 图的深度生成模型

    • GraphRNN:一种用于生成图结构数据的深度生成模型,通过递归神经网络生成图的节点和边,能够生成复杂的图结构

图神经网络(GNN)能解决的问题

图神经网络(GNN)在处理图数据方面展现了强大的能力,能够解决多种复杂问题。以下是 GNN 可以解决的一些主要问题:

  • 路径查找与搜索:例如最短路径搜索,GNN 可以轻松找到图中两个节点之间的最短路径。也可以结合启发式算法加速搜索(A*)

  • 中心性与重要性分析(Centrality / Importance):例如 PageRank 可以衡量节点的重要性,广泛应用于网页排名和社交网络分析

  • 社群检测(Community Detection):一种用于揭示网络中聚集行为的技术。它旨在将网络中的节点划分为多个子集(即社区),这些子集内部的节点之间具有密集的连接,而不同子集之间的连接则相对稀疏

  • 链路预测(Link Prediction):预测两个节点之间可能存在的连接。例如 Adamic Adar 基于节点相似性的链路预测方法,用于推荐系统。

  • 相似性计算(Similarity):

  • 嵌入与表示学习

    • Node2Vec**:通过随机游走生成节点嵌入,用于节点表示学习。

    • GraphSAGE**:基于采样的图神经网络,适用于大规模图数据。

  • 辅助功能

    • 随机图生成:生成随机图,用于测试和验证算法。

    • 图导出:将图数据导出为不同格式,方便数据共享和分析。

task_cato

  • Node Level Tasks:例如 node classsification
  • Edge Level Tasks:连接层面任务,例如搜索推广,在商品和用户之间进行连接。药物联合副作用