外观
知识图谱与知识注入
一句话定义
知识图谱(Knowledge Graph, KG) 是用「实体—关系—属性」三元组描述世界知识的图结构数据库,为 AI 提供结构化、可推理的知识表示。
一句话版本:知识图谱把"世界是什么样"变成一张点线相连的网——点是实体(人、公司、药物、蛋白质),线是关系(任职于、治疗、抑制),而每个点还可以挂上属性(成立年份、分子式)。向量数据库存的是"意思相近",知识图谱存的是"事实确凿";前者靠相似度找近似答案,后者靠关系跳转推出确定答案。二者各管一段,且能互补(详见下文对比与向量数据库与语义检索)。
为什么重要?因为大语言模型(LLM)的短板恰恰是知识图谱的长板:幻觉、陈旧、不可溯源、不会多跳推理。知识图谱能给出可追溯、可更新、可逻辑推演的事实,而 LLM 能理解自然语言、能补全图的噪声。从 2012 年 Google 靠知识图谱给搜索结果做侧边栏,到 2024 年微软 GraphRAG 让私有文档也能"全局提问",这条符号主义的线从未断过——现在它正在与神经网络深度合流。
符号主义:实体/关系/逻辑 → 精确、可解释、难构建
连接主义:向量/注意力/参数 → 灵活、强泛化、会幻觉
知识图谱 × LLM = 两条路线合流:精确性 × 灵活性一、基本概念:图结构的世界模型
1. 节点、边、属性
一张图由三样东西组成:
| 元素 | 别名 | 对应现实 | 例子 |
|---|---|---|---|
| 节点(Node) | 实体(Entity) | 一个独立事物 | 张伟、清华大学、北京、阿司匹林 |
| 边(Edge) | 关系(Relation) | 两个实体之间的联系 | 任职于、毕业于、治疗、位于 |
| 属性(Property) | 特征 / Attribute | 挂在实体上的描述值 | 张伟的出生年份、公司的成立日期 |
节点与边都有类型:节点的类型(人、公司、药物)叫概念(Concept),边的类型(任职于、治疗)叫谓词(Predicate)。给类型划规矩的就是本体(见下文)。知识图谱与"普通图数据库"的最大区别就是显式声明了类型与语义——所以它不只是数据结构,还是"知识的表示"。
2. 三元组:最小知识单位
图谱的基本存储单位是三元组(Triple),即 (主语, 谓语, 宾语),等价于一条有向边:
(张伟)──[任职于]──▶(深度智能公司)
│ │
│[毕业于] │[总部位于]
▼ ▼
(清华大学)────────[位于]────────▶(北京)写成三元组:
<张伟> <毕业于> <清华大学>
<清华大学> <位于> <北京>
<张伟> <任职于> <深度智能公司>
<深度智能公司> <总部位于> <北京>只凭这四条三元组,就能回答"张伟在哪工作?""清华在哪个城市?""张伟任职的公司总部在哪?"——最后一个是两跳推理:张伟 → 深度智能公司 → 北京。这正是知识图谱相对向量检索的核心差异:向量库只能回答"和什么相似",图谱能回答"从 A 经几步能到 B"。
3. 本体(Ontology):给图立规矩
本体是知识图谱的模式层(Schema),声明"世界里有哪些概念、它们之间允许哪些关系"。没有本体的图只是一堆节点连线,有本体的图才谈得上"知识"。
class 人 {
属性: 姓名, 出生日期, 国籍;
关系: 任职于 → 公司, 毕业于 → 学校;
}
class 公司 {
属性: 名称, 成立年份;
关系: 总部位于 → 城市, 招聘 → 人;
}
class 药物 { 属性: 分子式, 适应症; 关系: 治疗 → 疾病; }本体带来的三件事:一致性约束(人不该"毕业于"城市)、自动推理(A 任职于 B、B 属于跨国公司,则 A 是跨国公司的员工)、跨库对齐(不同系统都遵循同一本体才能合并)。工程上的经验之谈:本体宁简勿繁——先建覆盖 80% 业务的轻量本体,再逐步演化,一上来建模"宇宙万物"的项目通常死于建模阶段。
4. RDF 与属性图:两种存储范式
| 范式 | 代表 | 查询语言 | 特点 |
|---|---|---|---|
| RDF(资源描述框架) | Jena、Virtuoso、RDFLib | SPARQL | W3C 标准,面向开放数据互操作,一切皆三元组 |
| 属性图(Property Graph) | Neo4j、NebulaGraph、JanusGraph | Cypher / nGQL / Gremlin | 属性内嵌在节点/边上,工程性能好,业界主流 |
RDF(Resource Description Framework)是 W3C 定义的开放数据标准,强调语义可互操作——全世界的 RDF 数据可以用同一个查询语言(SPARQL)联查,Wikipedia 底层的 Wikidata(截至 2024 年条目数已超过 1.1 亿)就是最著名的开放 RDF 图谱。属性图则是工程派的产物,把"类型、属性"直接写在节点和边上,查询性能与建模便利性更胜一筹,Neo4j 的 Cypher 是事实上的工业标准。
二、知识图谱 vs 向量数据库:符号与向量的对决
两者常被放在一起比较,因为它们都在解决"机器怎么理解知识"。但底层逻辑截然相反:
| 维度 | 知识图谱 | 向量数据库 |
|---|---|---|
| 知识形式 | 符号化三元组,事实精确 | 稠密向量,语义连续 |
| 精确性 | 高:事实要么对要么错,可校验 | 低:靠相似度排序,可能答非所问 |
| 可解释性 | 高:回答可回溯到具体路径 | 低:相似向量无法解释"为什么" |
| 模糊匹配 | 弱:说"老王"匹配不到"王建国" | 强:同义改写、口语化都能命中 |
| 多跳推理 | 强:沿关系链推 N 步,可证明 | 弱:无法做组合约束与逻辑跳转 |
| 构建成本 | 高:需要本体设计、抽取、清洗 | 低:文档切块 + embedding 即可 |
| 更新成本 | 高:删改边要管一致性 | 低:重算向量即可 |
| 典型场景 | 反欺诈、医学、企业知识、KGQA | 语义搜索、相似推荐、RAG 召回 |
一句话判断
有"精确约束 + 多跳推理"的刚需才值得上知识图谱;只是"语义找相似",向量库一条路走到底。两者的黄金组合是:向量库负责模糊召回,图谱负责把召回结果里的实体关系精炼与推演——这正是 GraphRAG 的底层逻辑。
三、知识图谱 × LLM:四种结合模式
这一节也是**神经符号融合(neuro-symbolic)**的代表性实践:让擅长统计感知的神经网络(LLM)与擅长逻辑推演的符号系统(图谱)各取所长——LLM 负责理解自然语言、补全噪声,图谱负责提供可推理、可溯源的事实骨架。四种模式从"轻耦合"到"重耦合"排列:
这是本篇重点。图谱与 LLM 不是替代关系,而是互为补丁:LLM 补图谱的构建与问答,图谱补 LLM 的精确与溯源。
| 模式 | 方向 | 一句话描述 | 典型技术 |
|---|---|---|---|
| GraphRAG | 图谱→检索 | 把文档建图,沿图检索喂给 LLM | 社区摘要、图遍历召回 |
| 知识注入 | 图谱→LLM | 把图谱知识拼进提示词或训练语料 | 子图序列化、KG 语料预训练 |
| KGQA | 自然语言→图查询 | 把问题翻译成 Cypher/SPARQL 去图库执行 | Text2Cypher、语义解析 |
| LLM 辅助建图 | LLM→图谱 | 从非结构化文本自动抽实体关系建图 | 信息抽取(IE)、实体链接 |
1. KG 增强检索:GraphRAG
图谱检索增强生成(GraphRAG) 是 RAG 的图谱变体,由微软研究院于 2024 年 4 月提出(论文 From Local to Global: A Graph RAG Approach to Query-Focused Summarization)。传统 RAG 按文本块(chunk)切分检索,只能回答"局部"问题;GraphRAG 先把整个语料构造成知识图谱,再用社区检测把图聚成一个个"主题社区"并生成摘要,提问时先定位相关社区再综合回答。
文档集 → LLM 抽取实体/关系 → 知识图谱
→ 社区检测(如 Leiden)→ 社区摘要
→ 用户提问 → 定位相关社区 → 全局综合回答它解决的核心痛点是语料级问题(query-focused summarization):"这部小说里人物关系如何演变?"——这类问题散落在全书,任何单一文本块都答不了,而图结构天然把分散的实体关系聚到了一起。实践中的经验:GraphRAG 索引成本高(LLM 抽取每一块都要花钱),适合对全局性理解有刚需的私有知识库;只想做"文档 Q&A",传统 RAG 更划算。动手落地可参考从零搭建 RAG 应用。
2. 知识注入:把图谱塞进 LLM 的输入或参数
知识注入有两条路线,核心都是"把图谱三元组变成 LLM 能消费的形式":
- 提示词注入(prompt-side):把查询相关子图序列化成文本,拼进提示词。例如检索到"张伟"的局部子图后,生成
[张伟] -任职于-> [深度智能公司] -总部位于-> [北京]塞给 LLM。优点是零训练、可解释、图谱更新即生效;缺点是上下文长度有限,子图要精选。这正是提示词工程的实战场景。 - 训练注入(parameter-side):把三元组文本化(如
"张伟 毕业于 清华大学")作为语料加入预训练或微调,让知识"长进"参数里。经典例子是 2019 年的 K-BERT、ERNIE 等把图谱当外部知识喂给 BERT 系模型;大模型时代则演变为用图谱数据做 微调与 PEFT(LoRA)。代价是知识固化在参数中、难以更新——一旦事实变了要么重新微调要么靠提示词覆盖。
常见误区
"训练注入"不等于"万无一失"。参数化知识仍会冲突、遗忘、幻觉。稳妥的做法是分层:常识性、稳定的知识放参数;动态的、精确的、强约束的知识放提示词注入或 GraphRAG——把参数当"速记本",把图谱当"官方档案"。
3. 图谱问答(KGQA):从自然语言到图查询
知识图谱问答(Knowledge Graph Question Answering, KGQA) 让用户用自然语言问图谱,系统负责翻译成图查询。两种主流路线:
路线 A(语义解析): 问题 → Text2Cypher/SPARQL → 图库执行 → 结果
路线 B(检索-阅读): 问题 → 检索子图 → 子图序列化 → LLM 生成答案路线 A 精确但脆弱:NL2Cypher 一旦生成错语法或错字段就满盘皆输;路线 B 鲁棒性好(LLM 读的是"图片段"而非被迫写查询),但图检索质量决定上限。工程上推荐混血方案:先让 LLM 从问题里抽出实体与意图,用图检索召回候选子图,再让 LLM 基于子图生成答案——把"写查询"降级为"读图说话",幻觉面大幅收窄。KGQA 也是知识图谱面试题里的常客,可配合面试题库复习。
4. LLM 辅助建图:自动抽取实体关系
传统建图靠人工标注,贵且慢;LLM 把信息抽取(Information Extraction)变成了"提示词任务"。一条流水线通常包含:
- 实体识别:从文本中找出人、组织、药物、疾病等命名实体;
- 关系抽取:判断两实体之间是什么关系(任职于、治疗、抑制…);
- 实体链接:把"老王"对齐到规范实体"王建国"(消歧),这是自动建图的成败点;
- 去重与去噪:同一实体多个写法、LLM 编造的幻觉三元组都要清洗;
- 图谱合并:把增量三元组并入已有图,检查与本体的一致性。
LLM 建图的头号坑是幻觉三元组——模型会把"可能"写成"事实"。对策:多模型投票、交叉验证、限定关系类型白名单、人工抽样抽检。也正因此,自动建图 ≠ 免维护,清洗管线永远省不掉(翻车案例可看常见陷阱与反模式)。
四、经典案例
1. Google Knowledge Graph
2012 年 5 月,Google 发布知识图谱(Google Knowledge Graph),在搜索结果右侧展示实体卡片:"爱因斯坦的出生地、子女、获奖情况"。时任工程副总裁 Amit Singhal 的表述后来成为名言——"things, not strings"(是事物,不是字符串)。Google 靠它把搜索从"匹配关键词"升级为"理解实体",也为后来的语音助手(Google Assistant)提供了知识底座。截至 2020 年前后,Google 官方披露其图谱已包含约 5 亿实体、超过 350 亿条事实。这个案例也直接催生了 AI 搜索的图谱用法——AI 搜索里的图谱应用可以对照阅读。
2. 医疗知识图谱
医学是知识图谱最肥沃的土壤:疾病、症状、药物、基因、靶点之间的关系网络本身就是天然图谱,且对精确性要求极高。代表性工程包括:
- UMLS(统一医学语言系统):美国国家医学图书馆维护的超级医学本体,涵盖 100 万+ 概念;
- 药物-靶点-疾病图谱:制药公司用来做"老药新用"(drug repurposing)——在图上找"与已知适应症通路相连的候选药物";
- 中西医结合知识图谱:把症状、证型、方剂、中药关系建图,支撑辅助开方与临床决策。
医学图谱的启示是:专业领域图谱 = 强本体 + 人工审核,因为一条错误三元组可能直接指向错误治疗方案。
3. 企业知识管理
企业内部的知识高度碎片化:Wiki、邮件、工单、代码注释、离职同事的脑子。企业知识图谱把这些源统一建模成"人—项目—文档—客户—系统"网络,支撑:
- 智能问答:新员工问"我们给 X 客户交付过什么"——图谱沿 项目→客户→交付物 路径给出带来源的答案;
- 专家定位:"谁知道这个旧系统的支付逻辑"——在图上找连接该系统的人;
- 知识血缘:文档、代码、模型、数据集之间的派生关系,支撑合规审计。
这也是 Agent 落地的知识底座:AI 智能体(Agent)要可靠行动,需要的不只是"会说话",还有"知道事实在哪、信谁"。
五、应用场景
| 场景 | 图谱的作用 | 关键能力 |
|---|---|---|
| 问答增强 | 多跳推理:A 公司收购了 B,B 的 CEO 是谁? | 沿关系链跳 2~5 步 |
| 推荐系统 | 用户—物品—品类—品牌图,沿路径解释推荐理由 | 元路径、图嵌入(KGAT 等) |
| 风险控制 | 账户—设备—手机号—IP 连通图,团伙识别 | 连通子图、图传播 |
| 科研文献 | 蛋白结构、引用网络、论文—方法—数据集关联 | 图查询 + 子图摘要 |
| 智能运维 | 服务—依赖—告警—责任人拓扑,根因定位 | 影响分析、因果链 |
- 问答增强:普通 RAG 回答"谁"、"是什么"还行,碰到多跳组合问题就抓瞎(评估时尤其明显)。把图谱叠加进去后,"找 2019 年入职、毕业于清华、现任职公司的所有工程师"这种带三重约束的问题才有可靠答案。
- 推荐系统:知识图谱增强推荐(KG-based Recommendation)用用户与物品的外部知识做特征与解释。经典工作如 KGAT(KDD 2019)用图注意力建模高阶连通性。大模型时代的推荐演进可看大模型时代的推荐系统。
- 风险控制:反欺诈图谱把看似无关的账户通过"共用设备、共用手机号"连起来,团伙的连通子图一眼可辨;关联挖掘、社群检测都是图算法的主场。
- 科研文献:蛋白质结构数据库本质是"分子—结构—功能"的巨型图谱。AlphaFold 产出的AlphaFold Protein Structure Database 收录了约 2 亿个预测结构,其背后的蛋白质相互作用网络就是图谱的近亲——详见AlphaFold 与 AI for Science。
六、工程挑战:建图难,养图更难
| 挑战 | 具体表现 | 应对思路 |
|---|---|---|
| 构建成本 | 人工本体设计贵;LLM 自动抽取有幻觉与噪声 | 轻量本体起步;多模型交叉验证 + 抽检 |
| 维护更新 | 实体会消失、关系会变(人离职、公司改名) | 增量更新管道 + 时效性标注 + 定时爬取对齐 |
| 规模扩展 | 上亿节点、数十亿边的存储与查询延迟 | 图数据库分片、图索引、缓存、批式图算法 |
| 质量评估 | 三元组准确率、覆盖度、一致性能否量化 | 采样标注评估 + 图一致性校验器 |
三条经验判断:
- 先小后大:先在单个业务域建百万元素级图谱跑通闭环,再谈全公司整合——"一张大而全的图"是项目坟场;
- 本体与数据解耦:本体变更时要能自动迁移数据,否则改一个类型全图返工;
- 给知识标"保质期":把"成立年份、数据源、最后更新时间"挂在三元组上,动态知识才追得上现实。
七、权衡与取舍 · 常见误区
权衡清单
- 精确性 vs 覆盖度:图谱宁缺毋滥——缺失一条事实可用 LLM 兜底,错误一条事实会污染所有下游;
- 人工 vs 自动建图:核心本体与关键实体人工把关,长尾实体交给 LLM 抽取 + 抽检;
- 参数 vs 提示注入:稳定常识进参数,动态精确知识进提示词,按更新频率分流;
- 图谱 vs 向量:二者按"精确/模糊"分工,而不是二选一(对比详见向量数据库与语义检索)。
常见误区
| 误区 | 真相 |
|---|---|
| "知识图谱已死" | 恰恰相反,GraphRAG 让它在 RAG 时代翻红 |
| "有向量库就不需要图谱" | 向量库做不了约束查询与多跳推理 |
| "LLM 抽的图能直接用" | 幻觉三元组、实体消歧失败是常态,必须清洗 |
| "图谱 = 可视化大屏" | 可视化只是外壳,查询、推理、更新才是内核 |
| "KGQA 就是套个 LLM" | 图检索质量与查询翻译决定成败,两者都要磨 |
一句话判断
先问两个问题再决定要不要上知识图谱:业务是否要求"可追溯的精确事实"?是否需要"沿关系链的多步推理"? 两个都"是",图谱值得;否则向量库 + RAG 更快更省。
延伸阅读
- RAG——GraphRAG 是 RAG 的图谱变体,先理解 RAG 再看图谱版
- 向量数据库与语义检索——图谱的"孪生兄弟",负责模糊召回
- 提示词工程——知识注入提示词的具体技法
- 微调与 PEFT(LoRA)——把图谱知识"灌"进参数的另一条路
- 大语言模型(LLM)——四种结合模式的主角
- AI 智能体(Agent)——智能体的可靠行动依赖精确知识底座
- AI 搜索里的图谱应用——Perplexity 与 AI 搜索中的图谱检索实践
- 大模型时代的推荐系统——知识图谱增强推荐的落地案例
- AlphaFold 与 AI for Science——蛋白质结构数据库,图谱的近亲
- 从零搭建 RAG 应用——动手把 GraphRAG 跑起来
- 常见陷阱与反模式——建图、检索的翻车现场
- 术语表——实体、本体、三元组等术语速查
参考资料
- Edge et al. From Local to Global: A Graph RAG Approach to Query-Focused Summarization(arXiv:2404.16130, 2024) —— GraphRAG 原始论文,微软研究院
- 微软研究院博客:GraphRAG: Unlocking LLM discovery on narrative private data(2024) —— GraphRAG 发布与设计动机
- Google: Introducing the Knowledge Graph: things, not strings(2012) —— Google 知识图谱发布官方博客
- W3C: Resource Description Framework (RDF) —— RDF 数据模型标准
- W3C: SPARQL 1.1 Query Language —— RDF 图谱查询语言规范
- Wikidata 官方站点 —— 全球最大的开放知识图谱
- Neo4j 官方文档 —— 属性图数据库与 Cypher 查询语言
- Wang et al. KGAT: Knowledge Graph Attention Network for Recommendation(KDD 2019) —— 知识图谱增强推荐的经典工作