Knowledge Graph

Knowledge Graph 是用图结构组织知识的方式,节点是实体,边是关系。它能表达"张三-属于-技术部"这样的结构化知识,补充向量搜索的不足。

#type / concept #status / evergreen #tech / ai

[!info] related notes

Knowledge Graph

一句话定义

Knowledge Graph 是用图结构组织知识的方式。节点是实体(人、产品、概念),边是关系(属于、导致、包含)。它能表达”张三-属于-技术部-开发-产品A”这样的结构化知识。

核心原理

知识图谱 vs 向量搜索

向量搜索知识图谱
知识表示非结构化文本结构化实体和关系
检索方式语义相似度图遍历
优势自然语言查询多跳推理
劣势不擅长关系查询构建成本高

应用场景

问: "技术部有哪些人参与了产品A的开发?"

向量搜索: 可能找到包含"技术部"和"产品A"的文档,但不一定有人员列表

知识图谱:
  技术部 --[属于]--> 张三
  技术部 --[属于]--> 李四
  张三 --[参与开发]--> 产品A
  → 精确回答: 张三

图数据库示例 (Neo4j)

// 创建实体
CREATE (zhang:Person {name: "张三"})
CREATE (tech:Department {name: "技术部"})
CREATE (productA:Product {name: "产品A"})

// 创建关系
CREATE (zhang)-[:BELONGS_TO]->(tech)
CREATE (zhang)-[:WORKS_ON]->(productA)

// 查询
MATCH (p:Person)-[:BELONGS_TO]->(d:Department {name: "技术部"}),
      (p)-[:WORKS_ON]->(prod:Product {name: "产品A"})
RETURN p.name

常见坑

  1. 构建成本高: 需要从非结构化文本中提取实体和关系
  2. 维护困难: 实体和关系需要持续更新
  3. 不适合所有场景: 自然语言问答还是向量搜索更好

参考资料

创建于 2026/6/30 更新于 2026/7/15