图嵌入与图神经网络:GCN、GAT 与 GraphSAGE

04-知识图谱基础 进阶 约 25 分钟 #GNN#GCN#GAT#GraphSAGE#图嵌入 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照经典文献复核。

一句话定义

图神经网络(GNN)通过"聚合邻居信息"迭代更新节点表示:GCN 用度归一化平均、GAT 用注意力加权、GraphSAGE 用采样聚合支持大规模归纳——把图结构本身编码进向量,使"结构相似的节点表示相近",是图检索与图机器学习的表示层底座。

为什么重要

kp-007 的文本嵌入把"语义"编码进向量,GNN 把"结构角色"编码进向量:供应商网络里"位置相似的公司"(同为客户群的分销商)文本上毫无相似,结构上却高度相似。GraphRAG 进阶玩法(社区向量、结构检索、链接预测补全)都以 GNN 表示为底座。

前置知识

kp-007(嵌入与对比思想)、kp-018(图结构)、基础矩阵运算。

核心概念

  • 消息传递范式:每层 GNN 做三步——收集邻居特征(聚合)→ 变换(线性层)→ 更新自身表示;L 层后节点"看到"L 跳邻域。
  • GCN(图卷积网络):聚合函数为度归一化的加权平均 H' = σ(D̂^-½ Â D̂^-½ H W),简单高效,是基线模型。
  • GAT(图注意力网络):聚合权重由注意力机制学习(重要邻居权重大),对噪声边更鲁棒。
  • GraphSAGE:不聚合全部邻居而是采样固定个数,配合"训练时见过的图可泛化到新节点"(归纳式),是大规模工业场景主力。
  • 任务形态:节点分类(给实体打标)、链接预测(预测缺失关系——KG 补全的核心任务)、图分类、节点聚类(社区发现)。

原理与机制

过平滑(over-smoothing):层数堆高后所有节点表示趋同(每层都向邻居平均靠拢),判别力反而下降——GNN 通常 2–4 层,"层数=感受野"的 CNN 直觉在这里不适用。

转导 vs 归纳:GCN 原始形式依赖全图拉普拉斯矩阵(新节点加入要重算);GraphSAGE 的采样聚合函数与具体图无关,新节点来即可直接推断——RAG 场景图持续更新(kp-029),归纳式是刚需。

KG 补全与链接预测:TransE 类翻译模型(head + relation ≈ tail)与 R-GCN 类关系感知 GNN 可给"缺失边"打分——图构建管线(kp-023)抽不全关系时,链接预测提供候选补全(高置信进图,低置信给检索当扩展线索)。

公式或模型

  • GCN:H^(l+1) = σ(D̂^(-1/2)  D̂^(-1/2) H^(l) W^(l)), = A + I(加自环)。
  • GAT:α_ij = softmax_j(LeakyReLU(a^T[Wh_i ‖ Wh_j])),聚合 h_i' = σ(Σ_j α_ij W h_j)。
  • GraphSAGE:h_i' = σ(W·[h_i ‖ AGG_{j∈N(i)} h_j]),AGG ∈ {mean, max-pooling, LSTM}。

图示

2 层 GNN 的感受野:
      ○ ○ ○                 (第2层: 看到2跳)
       \|/                  
  ○ ── (v) ── ○   每层聚合一次邻居 → L 层看到 L 跳邻域
       /|\
      ○ ○ ○
结构相似节点(如同构的供应链位置) → 表示相近 → 支持结构检索/补全

实例或案例

  • 风控:GAT 学出的账号表示做团伙发现(结构异常簇),优于仅用账号属性。
  • 供应链:GraphSAGE 节点表示 + 近邻检索(kp-009 的 HNSW 复用)实现"找与 A 公司结构相似的备选供应商"。
  • KG 补全:R-GCN/ComplEx 链接预测给抽取遗漏的关系打分,高置信边人工审核后入图。

常见误区

  • 误区一:"GNN 层数越多越强"。过平滑使 2–4 层成为甜点;更深的"多跳信息"应靠结构特征或子图采样而非堆层。
  • 误区二:"有图就该上 GNN"。若核心查询是确定性多跳(kp-025 的 Cypher 遍历),直接查图即可;GNN 的价值在"结构相似性/预测"类模糊任务,上它有训练与维护成本。
  • 误区三:"图嵌入可以替代文本嵌入"。两者编码不同信息(结构 vs 语义);混合检索中它们是并列的路,不是替代关系(kp-026)。

与其他知识点的关系

  • kp-007:同一"表示学习"思想的图版本。
  • kp-009:图节点的 HNSW 索引支持结构近邻检索。
  • kp-023/024:图构建与社区发现的下游增强。

自测题

  1. 消息传递范式为什么让"L 层 GNN 看到 L 跳"?

答:每层把直接邻居的表示聚合进自身,二层后自身表示已含"邻居的邻居"信息,逐层外扩。

  1. GraphSAGE 相比 GCN 的工程优势?

答:邻居采样使训练与推断不依赖全图矩阵,且聚合函数与具体图无关——新节点/新图可直接归纳推断,适合持续更新的场景。

  1. 链接预测在 GraphRAG 管线里能做什么?

答:给抽取遗漏或未见于文本的潜在关系打分,高置信补全入图、低置信作为检索扩展线索,缓解知识抽取不全的问题。

延伸阅读

  • Kipf & Welling, "Semi-Supervised Classification with Graph Convolutional Networks"(ICLR 2017)。
  • Veličković 等, "Graph Attention Networks"(ICLR 2018)。
  • Hamilton 等, "Inductive Representation Learning on Large Graphs"(NeurIPS 2017,GraphSAGE)。