intro
GNN
在之前学过的模型中,我们习惯于处理序列化数据,例如:图像、文本和表格数据——这些结构规整的信息可以被轻松地输入卷积神经网络(CNN)或循环神经网络(RNN)。然而,现实世界中存在着大量非欧几里得数据:社交网络中的用户关系、蛋白质分子的原子连接、交通路网的动态车流…这些数据本质上由节点(实体)和边(关系)构成,形成了一个个复杂的图结构。图神经网络(Graph Neural Networks, GNN)就是用来理解这种关系型数据的模型。
为什么需要GNN?
传统深度学习模型在处理图数据时面临两大挑战:
- 拓扑结构敏感:图的节点排列顺序不影响其本质含义(置换不变性),但CNN的网格卷积操作会破坏这种特性
- 动态关系建模:图中节点间的依赖可能是多跳的(如朋友的朋友),而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**:基于采样的图神经网络,适用于大规模图数据。
-
-
辅助功能
-
随机图生成:生成随机图,用于测试和验证算法。
-
图导出:将图数据导出为不同格式,方便数据共享和分析。
-
- Node Level Tasks:例如 node classsification
- Edge Level Tasks:连接层面任务,例如搜索推广,在商品和用户之间进行连接。药物联合副作用