基于关键词的知识图

基于关键词的知识图:核心思想

本文不涉及任何代码、接口或落地形式,只解释这套知识组织方式背后的思想模型


一、要解决的问题

人类积累知识的过程不是堆数据,而是给概念起名字、把概念挂到已有的概念体系上、再把零散的资料附在概念上

主流的"知识库"方案要么是:

这套设计选了一条更克制的路:

概念骨架 + 资料挂载 + 二态匹配 + 智能体导航

不让机器猜"像不像",让它要么直接命中,要么沿着人类已经搭好的概念骨架一步步走过去。


二、核心抽象:两类关系,仅此而已

世界上的概念关系千变万化,但落到知识组织上,最有用的只有两种:

1. 包含 / 派生关系(有方向)

"A 是 B 的上位概念" / "B 是从 A 派生出来的"。

2. 关联关系(无方向)

"A 和 B 相关,但说不清谁包含谁"。

关键取舍


三、二态匹配哲学:要么命中,要么不命中

绝大多数检索系统都在试图回答"有多像"。这套设计反其道而行:

匹配只有两种状态:命中 / 不命中。不打分、不排序、不做模糊比较。

具体到查询时:

这看起来过于简陋,但它换来三件事:

  1. 结果可预期——同一个查询永远返回同一组节点,不会因为模型版本、嵌入空间漂移而变。
  2. 维护成本极低——没有相似度阈值、没有 top-K、没有"调参"。
  3. 真正的"找不到"信号——倒排零命中是一个清晰的状态,可以触发完全不同的处理流程(见下一节)。

精确匹配的代价是召回率低——用户写"小猫",库里只有"猫",倒排不会命中。这正是下一节要解决的问题。


四、命中失败时:让智能体在概念骨架上"下钻"

倒排零命中不是终点,而是另一条路径的起点:

沿着包含树(DAG),让 LLM 一步步往下走,直到找到目标、否定所有候选、或者证明库里确实没有。

工作直觉

想象一个图书管理员:

LLM 在这套系统里扮演的就是这位管理员:它不评估相似度,它只做"该往哪里走"的导航选择

设计要点

1. 起点(种子)的多路加权

下钻不是从根节点盲目展开,而是先构造一组种子节点作为起点,混合多种信号:

这套加权的目的不是排出"最像"的节点,而是给智能体一个信息丰富的起跑线:既不空手出发,也不被冗余候选淹没。

2. LLM 视野的最小化

每一轮,智能体只看到极少量候选(默认不超过 10 个),每条候选只包含两件事:

不暴露内部 ID、不暴露描述、不暴露信息。 原因有三:

3. 跨轮次持久的探索队列

最关键的设计承诺:没有节点会因为单轮容量限制被默默丢弃

这样即使 LLM 一开始走偏了,只要兄弟分支还在队列里,最终仍能被探索到。召回率由结构而非模型保证

4. 智能体的四种动作

四种动作覆盖了"前进 / 后退 / 否决 / 终止"的全部决策面,没有第五种。


五、命中之后:沿关联边铺开"周边"

找到目标节点不是终点,用户往往还想知道这个概念附近还有什么

设计上严格区分两个动作:

动作 沿什么走 给用户的语义
下钻(找到目标之前) 仅包含边(树结构) "我在分类体系中往下找"
展开(找到目标之后) 关联边 + 包含的子边(混合) "目标节点的周边有什么"

为什么命中后也要走包含的子边?因为"狗"的"周边"理应包括"金毛 / 拉布拉多"等子类——它们和"狗"的关联性甚至比关联边更强。但祖先方向不进入展开结果——用户已经"在狗这里",不必再被拉回"哺乳动物 → 动物"。要看祖先,得显式调用祖先子图的接口。


六、信息与关键词的解耦

知识不仅有"概念",还有"事实 / 资料 / 引用"。这套设计把它们彻底分开:

好处:


七、存储哲学:仅追加,软删,可重建

写入只允许两种动作:

永远不修改已有行。要"改"一个节点,就追加一条版本号 +1 的新行。

启动时扫一遍所有行,按 ID 取最新版本,丢弃删除标记的,重建所有内存索引。这意味着:

代价是文件会无限增长,需要定期压实(重写一次只保留最新版本)。但在概念量级是数千~数万的场景下,这点开销完全可以接受。


八、LLM 在这个系统中扮演的角色

理解这套设计的关键,是看清 LLM 做什么不做什么

LLM 做的事

  1. 导航判断——在概念骨架上选择往哪走、停在哪。
  2. 缺失建议——当库里确实没有目标时,给出一个建议名字,让用户决定要不要新建。
  3. 关联挖掘(可选)——给定一个节点,让模型推荐它可能"相关但还没连"的其他节点。

LLM 不做的事

  1. 不算相似度——相似度由倒排和子串匹配处理。
  2. 不打分排序——没有 top-K 的概念。
  3. 不感知 ID——只看名字和跳数。
  4. 不参与存储 / 写入——LLM 的所有输出都要经过结构校验(动作合法、目标节点存在、非自环、不与现有边冲突)才会落盘;校验失败静默跳过,不污染图。

这条边界划得很清楚:LLM 是导航员,不是裁判,更不是仓库管理员


九、与其他方案的取舍

维度 向量库 / 嵌入检索 传统知识图谱 本设计
召回方式 相似度排序 关系类型查询 精确命中 + 智能体下钻
关系建模 隐式(向量空间) 多种边类型 + 本体 仅两类边,最小本体
写入门槛 低(嵌入即可) 高(要选关系类型) 中(要起名、挂位置)
结果稳定性 随模型 / 数据漂移 稳定 完全稳定
"找不到"的语义 模糊(永远能返回 top-K) 清晰 清晰,且能触发下钻流程
维护成本 中(嵌入要重算) 高(本体要维护) 低(追加文件)
适用规模 百万级以上 任意 千~十万级概念

这套设计的舒适区是:中等规模、关系语义不需要细分、希望 LLM 增强但不希望被 LLM 主导的知识组织场景。它不试图取代向量库或图数据库——它给"个人/团队的概念档案"提供了一个介于 wiki 和图谱之间的中间形态。


十、一句话总结

用最小的本体(两类边)+ 最严格的匹配(二态精确)+ 最克制的 LLM 用法(只做导航)+ 最朴素的存储(仅追加),换取一个能让人和模型协同维护、长期稳定演化的概念骨架。


Revision #1
Created 2026-05-01 06:46:49 UTC by Colin
Updated 2026-05-01 06:46:49 UTC by Colin