Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
我们知道大模型为了实现文档 / 笔记的 AI 搜索(也就是自然语言搜索),需要把各个文档 / 笔记的文本做向量化 Embedding,得到一个个高维的向量来表示这些笔记,再在上层运用相似度检索或者 RAG 等技术。
而 Embedding 把笔记的文字转成向量的过程中,是需要保持语义接近的文字在向量空间下也是接近的;但是一般的模型转出来的 Embedding 向量都是上千维的,除了程序能读懂,对人来说就是一串冷冷冰冰的数字序列。
然而机器学习领域有一个非常成熟的技术,叫 t-SNE 算法,它是一种用于将高维数据可视化为低维空间(通常是 2 维或 3 维)的技术。 并且可以保证在低维空间中保持高维空间中数据点之间的局部相似性(说人话就是高维空间里面靠近的点在低维空间中也是靠近的);很多论文为了演示各种 Embedding 算法的效果,在展示的时候都是用这个处理成 2 维坐标点的。
而我给自己搭建的一个卡片笔记的应用(cflow)因为需要支持 AI,所以所有笔记本身就有 Embedding 的结果;所以有一天突发奇想,想在二维坐标上画一下我这 3000+ 则笔记,本来是作为一个趣味性功能的,但实现后却不亦乐乎的玩了一晚上~(可能跟这些笔记都是自己一个字一个字写下来的有关)
先介绍一下简要的功能:
打开就是显示所有笔记的 Embedding 向量在 t-SNE 计算后的坐标点,支持的交互包括:
最开始我就是在图上找感兴趣的点,点击一下看是哪一则笔记,而且好奇和它有引用关系的笔记的位置在哪里,是远的还是近的;这个「随机复习」倒也是一种挺有意思的体验。
最开始关注的是最外圈一些离群点,这些往往都是当时突发奇想写下的一些闪念,是一些写过后再也没有相关的笔记,比如吐槽评价工作上的某个需求;通过这个,一下子就能找到真正的「孤儿笔记」。
接来下开始关心那些明显成团的笔记,比如我和老婆下馆子的时候,如果觉得下次还会来,我会写一下对这个饭店的菜品的评价,给下次做参考(真不要以为自己记得住,吃过多次这个亏),这些笔记之间本身没有直接关联,都是描述不同菜品味道和价格的,但是通过算法,他们被聚到了一团,很有意思。
如果我再随手写一段描述,算出来的点也是在附近。
另外我每个月也会写一条叫做「成果清单」的笔记,记录我上个月的一些成果,作为对自己的鼓励,这些笔记之间也是没有关联的,而且内容也不尽相同,但是大部分都被聚成一团了。
上图中仅有的两个离群的点,是我在思考「成果清单」对我的作用的笔记,并不是真正的成果清单本身,所以离群也很合理。
体验了多次按标签粒度来搜索,看看他们在坐标上是怎么表现的;看到基本都聚成团了,说明 Embedding 算法和 t-SNE 模型都是有效的。
而且像上面的 AI,知识管理两团都靠得比较近,说明我知识管理相关的思考的笔记总是多多少少会和 AI 相关;然后我就会继续搜索,比如 #AI 的点在这里,我就好奇 #CODING 相关的笔记都在哪里(发现也在距离 #AI 不远处)。
慢慢地研究一个领域的笔记的点的「邻国」是哪些,一个领域是如何慢慢的「蔓延」到另一个领域的;这一顿研究,就会发现很多「情理之中」的现象,比如 #习惯 和 #上瘾,#逆向思维和 #独立思考 这些笔记就会很近。
但是!也有一些标签被分成了隔得很远的两团,比如 #投资。
仔细看一下两团的笔记,发现左边中间那一团是一些投资理解的笔记,而右下角那一团是我自己开发的一个量化交易框架的笔记,只是一个二级标签挂在了 #投资 这个一级标签下;这就让我不禁思考,这两部分可能确实是不同的领域的东西,标签也打的不太合理。
#投资 的笔记还有一些零散在各个地方的点我也仔细看了一下,也比较合理,因为都是在记录其他领域的笔记的时候(比如心理学,复盘等),想到可以用于投资,随口提了一嘴而已。
再然后,就开始研究那些笔记双链带来的连线了,大部分笔记引用的都是和它比较近的卡片。
但也有不少一下子跨得很远的,这时候我就会细细读一下这些「跨域」的笔记是怎么回事,这部分个人读下来,感觉比那些近的连线更有意思。
接下来就是体验输入一段新的文字,看看它的向量落在哪些笔记附近,这个本质就是低维版本的 AI 搜索(质量肯定低于高维空间下搜索),但是这种可视化的交互的搜索体验,在不忙的时候,当做「玩具」玩玩也是可以的。
还是上面那个成果清单的例子,如果我假装写一个新的成果清单的笔记,但是内容其实不是一个成果,就会发现其实它和「成果清单」离得很远。
但是如果我稍加修改,变成一个看起来像成果的,就里面回到成果清单笔记的团簇里面了。
再举个例子,「爬了华山」是一个成果,而「这是华山」则不是!
但是如果抛开「成果清单」这个背景而言,「好东西」和「吃了好东西」语义上是比较接近的!这句是语义理解的魅力~
「这是华山」和「爬了华山」也是很接近的笔记内容:
而且还有一些有趣的玩法,比如我在上一篇文章里面介绍过,cflow 可以为卡片单独创建空间,我建了两个具备 AI 自动化的空间(填写 URL 后保存笔记,AI 会自动按配置的格式和 Prompt 总结内容更新笔记),一个是收藏夹,一个是稍后阅读。
这个工具体验完,让我震惊的还是:Embedding 真的是机器学习领域顶级的发明。
试想一下,对一个完全不懂机器学习的人说,我有一个魔法,可以把一段话,不定长的若干个字符,经过一个固定的极其精密的数学函数计算,得到一个向量,就可以实现语义相近的文字的向量在高维空间中的距离是很近的。
但是这还不够直观,这个向量通过另一个数学函数计算,可以变成一个二维的坐标点,而那些语义上接进,可能完全没有用到任何相同字符的文字,经过这么一波计算,居然在坐标轴上变成一堆距离很近的点!
> 下载少数派 客户端、关注 少数派公众号,了解更多的新玩意 🆒
> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺 🛒