本文目录导读:

图嵌入(Graph Embedding)是图机器学习中的一个核心概念,它是一种将图中的节点(或边、整张图)转换到一个低维、稠密的向量空间的技术。
为什么需要图嵌入?因为图是一种非欧几里得结构的数据(包含节点和连接),传统的机器学习算法(如逻辑回归、CNN)无法直接处理,通过嵌入,我们图的结构信息和属性信息转化为了数值向量,这样一来,就可以直接使用各种经典的机器学习算法(如分类、聚类、推荐)了。
以下是关于图嵌入表示的详细解读,分为几个关键层面:
核心目标:将“关系”转化为“距离”
一个好的图嵌入应该具备以下性质:
- 低维性: 向量维度远小于节点数量(通常是几十到几百维),方便计算,防止过拟合。
- 保留结构信息: 在图里“关系紧密”或“结构相似”的两个节点,在向量空间中也应该“距离很近”(例如余弦相似度高)。
- 保留属性信息: 如果节点带有特征(如用户年龄、商品价格),这些信息也应该被编码进向量中。
主要方法分类(迭代历程)
A. 基于矩阵分解的早期方法(浅层模型)
- 代表方法: Laplacian Eigenmaps(拉普拉斯特征映射)、Graph Factorization(图分解)。
- 原理: 将图的邻接矩阵(Adjacency Matrix)或拉普拉斯矩阵进行矩阵分解(如SVD,奇异值分解),得到的低维矩阵的行就是节点嵌入。
- 缺点: 计算复杂度高(分解大规模矩阵很难),难以捕获复杂的结构(如多跳邻居关系)。
B. 基于随机游走的无监督方法
- 代表方法: DeepWalk、Node2Vec。
- 原理: 借鉴了NLP中词向量(Word2Vec)的思想。
- 生成语料: 在图上进行随机游走,生成一系列节点序列(类似句子)。
- 训练模型: 将生成的节点序列作为“句子”喂给Word2Vec(Skip-Gram模型),最大化“在窗口中共同出现的节点”的共现概率。
- 结果: 训练结束后,模型的隐藏层权重就是节点嵌入向量。
- 关键改进(Node2Vec): 引入了广度优先搜索(BFS)和深度优先搜索(DFS)的游走策略平衡参数p和q,通过调整p和q,可以控制嵌入更侧重于“同质性”(DFS,社区结构)还是“结构等价性”(BFS,角色相似性,如两个不同社区的“枢纽节点”)。
C. 基于图神经网络的深度学习方法(目前主流)
-
代表方法: GCN(图卷积网络)、GAT(图注意力网络)、GraphSAGE。
-
原理: 这些方法不再是对整个图做一次性的分解或游走,而是设计了一个可学习的、多层的神经网络。
- 消息传递(Message Passing): 每一层,节点会聚合其邻居节点的特征和嵌入,然后更新自己的嵌入。
- 非线性变换: 通过激活函数(如ReLU)和权重矩阵学习到复杂的非线性特征。
- 归纳学习: 这是最大的优势,GNN可以训练出一个函数,当我们看到一个未见过的图(比如新的分子结构)时,可以直接应用这个函数生成它的嵌入,而不需要重新对整个图训练,之前的DeepWalk等方法是直推式(Transductive)的,无法处理新节点。
- GCN: 平均邻居特征,权重共享。
- GAT: 给不同的邻居学习不同的注意力权重,更灵活。
- GraphSAGE: 通过采样邻居来训练,适合极大规模图。
应用场景
- 节点分类: 预测图中节点的标签(如社交网络中的用户兴趣、论文图中的研究领域)。
- 链接预测: 预测两个节点之间是否存在边(如推荐好友、知识图谱补全)。
- 社区发现: 在嵌入空间中对节点进行聚类,发现隐藏的社区结构。
- 图分类: 整个图被嵌入为一个向量,用于分子性质预测(化学)、程序分类(代码分析)。
关键概念辨析:图嵌入 vs. 节点嵌入
- 节点嵌入(Node Embedding): 最常用,将每个节点映射为一个向量(如用户1 -> [0.2, 0.8, ...])。
- 边嵌入(Edge Embedding): 将边映射为向量,通常通过连接(拼接、求平均、哈达玛积)两个端点节点的嵌入得到。
- 整个图嵌入(Graph Embedding): 将整张图映射为一个向量,对于小图常用全局池化(如所有节点向量取平均);对于大图用“可学习的读出头(Readout Head)”或基于GNN的层次化方法。
挑战与局限
- 可扩展性: 对于拥有数十亿节点和边的超大规模图(如电商全量用户图),如何高效地学习嵌入是一个难题,现在的热点是大规模分布式GNN和图采样技术。
- 异构图(Heterogeneous Graph)嵌入: 如果图中有多种类型的节点(用户、商品、店铺)和边(购买、浏览、关注),需要设计专门的模型(如HAN、Metapath2vec)来处理类型的不同。
- 动态图(Dynamic Graph)嵌入: 现实世界中的图是不断变化的(新用户加入,新链接产生),如何增量地更新嵌入,而不是每次重新训练所有节点,是目前的研究热点。
- 可解释性: 为什么这两个节点被映射到相邻的空间?很难解释,GNN可以一定程度通过注意力权重或GNNExplainer来提供解释。
| 方法类别 | 代表算法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 矩阵分解 | SVD, LE | 理论基础扎实 | 可扩展性差,无法捕获多跳信息 | 小图,稀疏图 |
| 随机游走 | DeepWalk, Node2Vec | 能捕获全局结构,可扩展性好 | 直推式,无法泛化到新节点 | 静态图,节点分类 |
| 图神经网络 | GCN, GAT, GraphSAGE | 归纳式,端到端训练,结合节点特征 | 计算资源需求高,需要标签数据(半监督或无监督也可) | 动态图,大规模图,链路预测 |
一句话总结: 图嵌入就是把复杂的“图结构”变成计算机能直接用的“数值向量”,GNN是目前最强大的图嵌入工具,能够同时学习图的结构信息和节点自身特征,并泛化到新的数据上。