思维的拓扑:嵌入空间里的Obsidian
15,800则笔记。49,746个文本块。每个文本块都是一个256维向量。7 我对整份数据集跑了一遍UMAP,把它投影到三维,然后让结果在屏幕上缓缓旋转。我的第二大脑是有形状的,而这个形状说出了笔记本身从未告诉过我的事:我的智识工作聚集在三个密集的枢纽周围(Claude Code、设计系统、AI研究),枢纽之间靠几道细窄的交叉笔记桥梁相连,外围还漂着一圈稀疏的孤立信号——什么都连不上。
知识的形状会告诉您:您在哪里思考,在哪里回避思考,以及您的想法在哪里还有相互碰撞的余地。塑造智能体行为的那套上下文架构,同样在塑造人的知识结构。
一句话总结: 把15,800则Obsidian笔记投影到256维嵌入空间,会显露出三种知识拓扑——中心化、去中心化、分布式——各有各的失效模式。聚类之间的桥接笔记催生出最新颖的洞见;而关于相变的研究表明,粗率的整理会在某个临界点上让整个知识结构骤然坍塌。
TL;DR
嵌入空间赋予知识库一种空间结构,而这种结构揭示了智识拓扑。Kat(@poetengineer__)为Obsidian笔记库演示了三种拓扑:中心化(一个核心观念串起一切)、去中心化(成簇的主题枢纽)、分布式(观念之间的连边带有语义关系标签)。1 我这个含15,800份文件、49,746个文本块的笔记库呈现的是去中心化拓扑,有三个主导聚类。Pesce等人关于神经网络剪枝相变的研究,给出了一套数学框架,用来理解简化操作(整理、归档、过滤)何时会越过临界点、破坏知识结构的功能。2 下文包括:嵌入究竟捕捉到了什么、三种知识拓扑及真实笔记库数据、如何诊断您自己的拓扑,以及一个基于我真实笔记库构建的交互式浏览器。
嵌入究竟捕捉到了什么
文本嵌入把一段文字变成一串数字。分词可视化那篇文章讲过文本如何变成token。嵌入更进一步:token变成高维空间中的坐标,而空间中的距离对应着意义。
两段讲“用Claude Code钩子做上下文注入”的文字,在嵌入空间里彼此靠得很近。一段讲“Claude Code钩子”、另一段讲“iOS SwiftUI导航”,则相距甚远。这个距离并不是关键词重合度。两段文字可以一个词都不共享,却因为讨论同一批概念而落在相邻位置;也可以共享大量词汇(“系统处理数据”),却因为周围语境不同而相距极远。
我的笔记库用的是Model2Vec的potion-base-8M模型:760万参数,输出256维嵌入。3 该模型从更大的句向量模型(bge-base-en-v1.5)蒸馏而来,性能约为all-MiniLM-L6-v2的90%,同时以静态模型的方式运行——在CPU和GPU上都快出数个数量级。笔记库里的49,746个文本块,每一个都成为256维空间中的一个点。
256维无法直接可视化。UMAP这类降维技术会把高维结构投影到二维或三维,同时尽量保留局部邻域关系。4 在256维中彼此靠近的点,在三维中依然靠近。全局结构只是近似,但聚类是真实的。
知识的三种拓扑
Kat对Obsidian笔记嵌入的探索识别出三种截然不同的知识拓扑。1 每一种都对应一种不同的智识结构,也各有各的失效模式。
中心化:一个核心观念串起一切
在中心化拓扑里,绝大多数笔记都通过某个占绝对主导的主题相连。嵌入空间中会出现一个位于中央的密集聚类,向外伸出几缕细细的触须。一个只写React的开发者就会看到这种拓扑:React是枢纽,测试、状态管理、部署、工具链的每一则笔记都经由它相连。
优势: 在核心领域拥有深度专长。检索效果很好,因为大部分查询都落在同一片邻域。
失效模式: 脆弱。一旦中心主题失去意义(转行、某项技术退场),整个知识结构就失去了组织原则。那些只有相对于中心才说得通的笔记,会集体沦为孤儿。
去中心化:成簇的主题枢纽
在去中心化拓扑里,笔记形成若干个彼此独立的聚类,由桥接笔记串联。我的笔记库正属此类,有三个主导枢纽:
| 聚类 | 文本块数 | 占总量比例 | 核心主题 |
|---|---|---|---|
| AI与ML | 约13,100 | 26% | Claude Code、智能体架构、LLM研究 |
| 设计 | 约7,200 | 14% | UI系统、字体排印、色彩科学、视觉设计 |
| 开发 | 约5,100 | 10% | FastAPI、SwiftUI、Web工程、数据库 |
| Inbox(未处理) | 约13,700 | 28% | 原始信号、未分类的采集 |
剩下的22%散落在灵感、效率、科学以及一些更小的类别中。
优势: 韧性。丢掉一个聚类不会毁掉其余的。跨学科的连接在聚类的交界处形成,而最新颖的洞见正诞生于此。
失效模式: 碎裂。如果聚类之间的桥接笔记太单薄,各个聚类就会变成智识孤岛。我的笔记库在设计与Claude Code之间有一道细桥(关于智能体界面设计、提示词交互模式的笔记),但在设计与纯粹的开发之间几乎没有桥(后端架构笔记很少与视觉设计发生关联)。这道缺口就是盲区:我思考设计,也思考后端工程,但很少把两者放在一起思考。
分布式:带关系标签的连边
在分布式拓扑里,笔记之间的连接带有语义标签,说明观念之间如何关联。Kat的实现用一个LLM为相邻笔记生成连边标签。1 邻近关系不再匿名,每条连接都有一句描述:“与之矛盾”“对其扩展”“为其提供证据”“在另一领域中的应用”。
优势: 可导航。分布式拓扑回答的不只是“有什么相关内容”,还有“它们是怎么相关的”。这种标注让更高阶的推理成为可能:找出反驳某个论点的笔记,而不只是提到它的笔记。
失效模式: 成本。为每一对连接生成标签,开销呈平方级增长。以我笔记库的49,746个文本块计,穷举式标注大约需要12亿次LLM调用。实际可行的做法是只为相似度超过某个阈值的连边打标签。
相变:简化何时会击穿结构
Pesce、He与Caldarelli研究了神经网络剪枝中的相变现象,发现存在一个陡峭的临界点:网络会出现“从协作的、有功能的相,转变为性能坍塌的无序相”。2 在临界点之下,移除连接几乎不影响功能;到了临界点,功能骤然崩溃。这一转变遵循的标度律与二阶临界行为吻合——与描述冰融化成水的是同一套数学。
这与知识整理的对应关系相当直接。我的信号评分流水线6通过一道相关性阈值,把Inbox从14,771则笔记压到5,886则。让智能体记忆不断增值的那套复利式上下文动力学在这里同样成立:一则笔记的价值取决于它的连接,而不只是它的内容。这次压缩确实提升了检索质量:低相关结果变少,聚类更紧凑,检索更快。但有信号被丢掉吗?这次简化有没有越过某个相变临界点?
剪枝研究给出的答案是:关键在连通性,不在数量。移除孤立节点(没有语义邻居的笔记),对网络功能的影响微乎其微。而移除桥接节点(连通原本彼此分离的聚类的笔记),哪怕这些笔记单看并不起眼,也可能让整个结构垮掉。
我的分拣流水线把相关性阈值从0.30提到了0.40。Inbox缩减60%——这是按数量衡量的。我并没有衡量它对拓扑的影响。一套具备相变意识的整理策略应当做到:
- 在过滤之前先识别桥接笔记(在相似度图中中介中心性较高的笔记)
- 不论其个体得分如何,桥接笔记一律豁免于相关性过滤
- 每完成一轮整理,监测聚类连通性指标
- 当某一步整理使聚类间的桥梁密度跌破阈值时发出告警
# Sketch: bridge note detection before curation
def identify_bridge_notes(embeddings, threshold=0.7):
"""Find notes that connect otherwise-separate clusters."""
from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=10, metric='cosine')
nn.fit(embeddings)
distances, indices = nn.kneighbors(embeddings)
# Bridge score: how many of a note's neighbors are from
# different clusters than the note itself
bridge_scores = []
for i, neighbors in enumerate(indices):
own_cluster = labels[i]
cross_cluster = sum(1 for n in neighbors if labels[n] != own_cluster)
bridge_scores.append(cross_cluster / len(neighbors))
return bridge_scores
诊断您自己的知识拓扑
分析知识拓扑并不需要15,000则笔记。任何一批100则以上、带有嵌入的笔记都能显出结构。如果您已经把Obsidian当作AI基础设施来用,原料就已经在手上了——我库中那一万七千条信号,起初也不过是每天随手的采集。三个诊断问题:
1. 有多少个聚类?
对嵌入跑一遍k-means或DBSCAN,数一数有几个明显的聚类。少于3个,多半是中心化拓扑;3到8个之间,属于去中心化;超过8个,则要么是真正的分布式拓扑,要么是整理不足(聚类多意味着主题多,也可能意味着每个主题都没有深度)。
2. 桥梁有多密?
对每一对聚类,统计有多少笔记在两个聚类中都有最近邻。桥梁密度低于较小聚类规模的2%,就说明存在孤岛风险。我这里设计与开发之间的桥梁密度约为1.4%——低于阈值,印证了我观察到的那片盲区。
3. 孤立笔记占多大比例?
所谓孤立笔记,是指在余弦相似度阈值(通常取0.7)之内没有任何邻居的笔记。孤立并不必然是坏事——它们可能代表真正新颖的想法。但孤立率高于15%,往往意味着采集不一致(笔记与您的知识领域不匹配),或者嵌入质量有问题。
我的笔记库孤立率约为8%。多数孤立笔记是尚未加工成结构化笔记的Inbox原始采集。排除Inbox后,孤立率降到3%,说明经过加工的笔记能很好地融入既有拓扑。
这些聚类透露了什么
上面的可视化使用了从我笔记库中随机抽取的500个文本块。这些聚类对应着真实的智识邻里。
AI与ML枢纽(占26%)是最密集的聚类。Claude Code架构、智能体设计模式、LLM研究论文、提示词工程技巧,构成一片紧凑的邻域。密度反映的是体量:我阅读并采集的AI/ML内容多于任何其他类别。密度也带来检索质量上的优势——这个领域的查询能返回高度相关的结果,因为嵌入空间在此处足够稠密。
设计枢纽(14%)与AI和ML保持着距离。字体排印系统、色彩科学、UI组件模式、视觉设计参考,自成一簇。这种分离是合理的:设计与AI工程使用不同的词汇、不同的推理框架、不同的评判标准。但分离也意味着,像“面向开发者评审的智能体输出该如何排版”这类查询会掉进两个聚类之间的缝隙,只能从其中一侧取回结果,很少能命中交界处。
开发枢纽(10%)与AI和ML的重叠多于与设计的重叠。FastAPI模式、数据库设计、SwiftUI架构与AI工程笔记共享着一套概念词汇(两者都在谈代码、架构、测试)。词汇上的重叠催生出一片混合地带,“面向智能体的DevOps”和“面向AI的基础设施”这类笔记就住在那里。
Inbox光晕(28%)笼罩着一切。原始采集、未分类信号、未处理的书签,形成一团稀疏的云,与既有聚类只有微弱的连接。那条把Inbox从14,771则压到5,886则的信号评分流水线,清掉的主要就是这层光晕里的东西:与任何既有聚类相似度都很低的笔记。
灵感聚类(6%)位于设计与Inbox之间。动态字体排印参考、动效设计研究、视觉艺术采集,构成一片松散的邻域。这个聚类之所以存在,是因为我持续采集视觉灵感,却很少把这些采集加工成结构化笔记。它暴露出一个模式:我在视觉灵感上摄入极广,产出的设计工作却极窄。摄入与产出之间的落差,在拓扑上表现为一个入向密度高(采集)而出向连接少(基于灵感生长出的笔记)的聚类。
跨聚类桥梁是最有意思的部分。最细的一道桥连接设计与开发:较小聚类中约1.4%的笔记在两个聚类里都有最近邻。相比之下,AI与开发之间的桥梁密度是8.3%,这反映出我的开发工作有多大比例牵涉AI基础设施。桥梁密度预示着新工作会在哪里冒头。我那篇从boids到智能体的文章,正来自一则桥接笔记——它把涌现行为研究(AI与ML聚类)和群飞算法实现(开发聚类)连了起来。没有那道桥,这两批笔记永远不会相撞。
拓扑同样塑造着检索质量。驱动我笔记库检索的混合检索器同时使用BM25关键词匹配和向量相似度——但它的效果取决于底层的聚类结构。落在密集聚类中的查询会返回精准结果;落在聚类之间的查询,则需要BM25兜底来跨越缝隙。
在笔记库之外还有第二个嵌入数据库:工具链搜索库,653份文件、4,518个文本块。5 它的拓扑迥然不同:一个密集的单一聚类(Claude Code配置),外加测试、钩子、技能几个小卫星聚类。这种单一化的拓扑对工具链是合适的,因为工具链只有一个目的。可知识库若也呈现单一化拓扑,那就是个危险信号了。
重塑您的拓扑
拓扑并非固定不变。有四种主动的动作可以重塑知识结构。
写桥接笔记。 如果两个聚类之间缺乏连接,就写下明确跨越两者的笔记。我的设计与AI之间桥梁很细,是因为我很少写关于智能体界面设计的东西。一则题为《智能体输出的UX模式》、同时引用设计原则与智能体架构研究的笔记,就能造出一个桥点。
检出孤立笔记。 每月跑一次孤立笔记扫描,然后做决定:整合、归档,还是删除。代表萌芽想法的孤立笔记,应当通过桥接笔记接入既有聚类;只是一次性引用的,归档即可。
整理之后要复测。 任何批量整理(删除、归档、过滤)前后,都测一次聚类连通性。如果聚类间桥梁密度下降,说明这次整理误伤了本该保留的桥接笔记。
在边界处阅读。 最值钱的阅读方向,不是往您最密集的聚类里再钻深一层,而是在聚类的交界地带。一篇同时贯通AI工程与视觉设计的论文,比又一篇加厚本已稠密的AI聚类的论文,能催生出多得多的新连接。
关键要点
- 嵌入空间赋予知识库一种形状。 这个形状揭示了智识拓扑:您把注意力集中在哪里、回避在哪里,以及想法在哪些领域之间发生连接。
- 三种拓扑有三种失效模式。 中心化很脆弱;去中心化缺了桥接笔记就会碎裂;分布式维护成本最高,但导航能力最丰富。
- 相变让整理变成非线性的事。 在临界点之下删笔记几乎不影响结构;到了临界点,功能骤然坍塌。任何批量整理之前,都必须先识别并保护桥接笔记。
- Inbox光晕是整理的前线。 原始采集在既有聚类周围形成一团稀疏的云。信号评分会过滤这层光晕,而拓扑会告诉您,过滤究竟保住了还是毁掉了桥接连接。
- 在边界处阅读。 价值最高的笔记是连通聚类的,而不是加厚聚类的。孤立笔记检测与桥梁密度指标,正好用来指引阅读的优先次序。
常见问题
什么是文本嵌入?它如何表示知识?
文本嵌入把一段段文字转换成高维空间中的数字列表(向量),空间中的距离对应语义上的接近程度。主题相近的两段文字会彼此靠近,不论它们是否共享词汇。像potion-base-8M这样的256维嵌入模型,会把每个文本块转换成256个坐标。当它作用于整个知识库时,这些向量的集合就形成了一种空间结构,其中的聚类、桥梁与缝隙,揭示出内容的智识拓扑。
如何可视化我的Obsidian笔记库的嵌入空间?
先用一个句向量模型为笔记生成嵌入(Model2Vec的potion-base-8M既快又免费),再用UMAP把高维向量投影到二维或三维。把嵌入存进数据库(SQLite加vec扩展就很好用),跑一遍UMAP投影,然后用任意一个三维绘图库可视化即可。得到的点云会显露出笔记库的聚类结构:您频繁书写的稠密区域、主题之间的稀疏缝隙,以及不同领域交汇的桥接地带。
知识整理中的相变是什么?
知识整理中的相变,是指存在这样一个临界点:删除笔记不再让知识结构逐步退化,而是让它骤然坍塌。神经网络剪枝研究表明,随着连接被移除,网络的功能能维持相当长一段区间,直到某个陡峭的临界点上性能崩溃。知识库遵循同样的动力学:删掉孤立的低价值笔记影响甚微,但删掉连通各聚类的桥接笔记,即便它们单看并不重要,也可能让拓扑碎裂。具备相变意识的整理,会在过滤之前先识别并保护桥接笔记。
做有意义的拓扑分析需要多少则笔记?
大约100则带嵌入的笔记就能浮现出有意义的聚类结构。少于100则,可能形不成明显的聚类。100到500则之间,可以看出基本拓扑(2到4个聚类)。500到5,000则之间,则能显露出带桥接地带和孤立模式的细致结构。超过5,000则之后,拓扑趋于稳定,新增笔记更多是加厚既有聚类,而不是催生新的。关键指标不是总量,而是聚类的多样性:您的笔记是否至少覆盖了三个各不相同的主题领域?
Obsidian嵌入与知识图谱有什么区别?
知识图谱通过您手动创建的显式链接(反向链接、标签、MOC)来连接笔记;嵌入则通过模型自动发现的语义相似度来连接笔记。两者是互补的:知识图谱记录的是您有意为之的结构,嵌入揭示的则是您从未显式创建过的潜在结构。没有任何反向链接的两则笔记,也可能因为用不同词汇讨论了相关概念而在嵌入空间中相邻。把两者一起用——图谱负责导航,嵌入负责发现——就能得到一个会主动浮现出您本会错过的连接的第二大脑。
大型Obsidian笔记库最好的检索策略是什么?
把BM25关键词检索与向量相似度结合起来的混合检索,效果优于任何单一方法。BM25能抓住嵌入可能漏掉的精确术语匹配,嵌入则能捕捉关键词检索无从察觉的概念相似性。倒数排名融合(RRF)负责把两份结果列表合并。对于超过10,000则笔记的库,在初次召回之后再加一步重排序,还能进一步提升精度。哪种策略占上风取决于库的拓扑:稠密聚类偏向向量检索,稀疏或术语密集的区域则偏向BM25。
参考资料
-
Kat (@poetengineer__), “Exploring shapes of thoughts: extracted my Obsidian notes’ embeddings and arranged them as a 3D network using 3 different topologies,” 发布于 X,2026年2月。三种拓扑:中心化、去中心化,以及带LLM标注连边的分布式。 ↩↩↩
-
Pesce, Diego, Yang-Hui He, and Guido Caldarelli, “Phase Transitions in Neural Networks Pruning,” arXiv:2602.15224, 2026年2月。arxiv.org。从协作的功能相到无序相之间存在陡峭转变,其标度律与二阶临界行为吻合。 ↩↩
-
MinishLab, “Model2Vec: Fast State-of-the-Art Static Embeddings,” 2024。github.com/MinishLab/model2vec。potion-base-8M:760万参数,256维嵌入,性能约为all-MiniLM-L6-v2的90%。 ↩
-
McInnes, Leland, John Healy, and James Melville, “UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction,” arXiv:1802.03426, 2018。arxiv.org。相比t-SNE更好地保留全局结构,运行性能也更优。 ↩
-
作者的语义记忆系统。Model2Vec + sqlite-vec + FTS5 BM25 + RRF 混合检索,覆盖49,746个文本块。模块:
~/.claude/lib/memory/中的embedder.py、vector_index.py、chunker.py、retriever.py。 ↩ -
作者的信号评分流水线。通过调校相关性阈值,把Inbox从14,771则笔记压到5,886则(缩减60%)。详见《信号评分流水线》。 ↩
-
作者的笔记库拓扑分析。从49,746个文本块中随机抽取500个点,按笔记库目录结构做主题归类,用PCA投影到三维以供交互式可视化。 ↩