知识图谱核心 20% — 先把本体设计对
一句话:知识图谱项目失败,90% 不是技术问题,而是实体与关系的粒度没定义清楚。先写 20–50 个核心实体类型和它们之间的关系,再谈抽取和存储。
🎯 这 20% 能解决哪些问题
| 常见困惑 | 本质 | 本页答案 |
|---|
| 知识图谱和普通数据库有什么区别 | 以关系为一等公民 | 见「三元组与本体」 |
| 实体太多太细,抽不完 | 本体没做收敛 | 见「本体设计四步」 |
| 同名实体合并错乱 | 缺少实体对齐 | 见「抽取流水线」 |
| 该用 Neo4j 还是关系库 | 查询模式差异 | 见「存储与查询选型」 |
| 知识图谱对 RAG 有用吗 | 用途被高估或错配 | 见「在 RAG 中的真实作用」 |
一、三元组与本体
graph LR
A["(头实体, 关系, 尾实体)"] --> B["本体 / Schema<br/>类型 + 关系定义"]
B --> C["实例数据<br/>三元组集合"]
C --> D["推理<br/>补出新三元组"]
| 概念 | 说明 | 例子 |
|---|
| 实体(节点) | 现实对象 | 张三、某公司 |
| 关系(边) | 有方向的连接 | 就职于、隶属于 |
| 属性(字面值) | 挂在实体上的键值 | 成立于 2010 年 |
| 本体 | 类型与关系的约束 | 人—就职于—公司 |
与关系库的核心差异:关系库用连接跨表,图谱把关系本身存成数据,因此可以表达”关系的属性”(如”就职于”带起止时间),也能承受多跳查询。
二、本体设计四步
| 步 | 动作 | 产出 |
|---|
| 1 | 列出业务问题(要回答什么) | 5–10 个关键问句 |
| 2 | 从问句反推实体与关系 | 实体表 + 关系表 |
| 3 | 定义约束(基数、必填、类型) | 校验规则 |
| 4 | 定义粒度与命名规范 | 命名词典、同义词表 |
粒度示例:“公司”要不要区分”母公司/子公司”?“人物”要不要区分”员工/客户”?没有对错,只有是否与你的问句匹配。
三、抽取流水线
| 环节 | 方法 | 关键点 |
|---|
| 实体识别 | NER 模型 / 词典 / LLM | 领域词典能显著提升 |
| 关系抽取 | 监督分类 / 远程监督 / LLM | 远程监督噪声大,需清洗 |
| 属性抽取 | 规则 + 抽取模型 | 数值、日期优先用正则 |
| 实体对齐 | 相似度 + 规则 + 人工 | 同名不同实体是最痛的坑 |
| 质量校验 | 抽样人工 + 约束检查 | 基数与类型约束能挡一半错误 |
LLM 抽取的实务要点:给出 Schema、要求输出 JSON、给 2–3 个示例、对结果做约束校验并重试。不要直接信任 LLM 的关系方向,它常搞反 A 收购 B。
四、存储与查询选型
| 方案 | 适合 | 代价 |
|---|
| 图数据库(Neo4j 等) | 多跳查询、路径分析 | 运维与成本 |
| RDF 三元组库 | 标准化、可推理、跨组织交换 | 工具链较重 |
| 关系库(两列 + 索引) | 规模中等、已知查询模式 | 多跳查询写起来复杂 |
| 搜索/向量库 + 图结构 | 混合检索 | 需自己拼装 |
查询语言:属性图用 Cypher,RDF 用 SPARQL。选型的实用判据:如果 90% 的查询是”给定实体找 N 跳邻居”,图数据库才值得;如果只是”查某个人的部门”,关系库足够。
五、在 RAG 中的真实作用
| 用途 | 有效性 |
|---|
| 实体归一(同一事物的不同叫法) | 高 |
| 多跳问答(A 的子公司 CEO 是谁) | 高(这是向量检索的弱项) |
| 结构化约束过滤(时间、类别) | 高 |
| 替代全文检索 | 低(覆盖率永远不够) |
| 自动构建无需人工 | 低(噪声会污染回答) |
务实架构:向量检索负责”找到相关段落”,图谱负责”补全实体之间的关系”,两者结果合并后交给生成模型。图谱是增强件,不是替代件。
六、六个高频坑
| 坑 | 表现 | 纠正 |
|---|
| 本体过度设计 | 几个月画不出第一版 | 从 20 个类型起步,迭代扩展 |
| 实体不对齐 | 同一公司三个节点 | 别名表 + 相似度 + 人工确认 |
| 关系方向错 | 上下游颠倒 | 约束校验 + 抽样复核 |
| 无时间维度 | 事实更新后新旧共存 | 边加时间戳,查询带时间过滤 |
| 只增不删 | 图谱越来越脏 | 建立失效与合并机制 |
| 忽视溯源 | 无法判断可信度 | 每条边记录来源文档与置信度 |
📋 一页速查
| 问题 | 答案 |
|---|
| 先设计什么 | 本体(类型与关系) |
| 本体怎么收敛 | 从业务问句反推 |
| 最痛的工程问题 | 实体对齐 |
| 图数据库何时值得 | 多跳查询为主时 |
| 图谱能替代向量检索吗 | 不能,是增强 |
| 每条边该带什么 | 时间戳、来源、置信度 |
🔗 相关链接