当前位置:首页 > 科技资讯 > 正文

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲

当我们谈论为文档或笔记实现AI搜索时,不可避免地需要涉及到将文本转化为向量,即所谓的Embedding。这一过程中,希望语义相近的文字在向量空间中也能保持接近。然而,生成的Embedding向量常常高达上千维,对人类而言仅是一串无意义的数字。

幸运的是,机器学习领域有一个非常强大的工具——t-SNE算法。它是一种能将高维数据映射到低维空间(通常是2维或3维)的技术,同时保持高维空间中数据点之间的局部相似性。在展示各种Embedding算法效果时,t-SNE是常用的工具。

我为自己开发的卡片笔记应用(cflow)添加了AI功能,因此所有笔记都带有Embedding结果。有一天,我突发奇想,试图在二维坐标上展示我的3000+则笔记。这原本只是一个趣味性的尝试,却让我乐此不疲地玩了一整晚!(可能与这些笔记都是我一字一句写下的有关吧)

简要功能介绍

先简要介绍一下功能:

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲 笔记AI t-SNE Embedding 知识管理 第1张

打开应用后,会显示所有笔记在t-SNE计算后的坐标点。支持的交互包括:

  • 点击一个点后,下方会显示笔记内容,图上也会通过绿线和蓝线连接显示它引用和被引用的笔记对应的点(即双链);
  • 顶部的输入框可以搜索笔记,并且搜索出来的笔记会用红点高亮(应用支持各种搜索宏,可以进行精细搜索)。点击笔记内的标签,也可以快速搜索这个标签的所有笔记。

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲 笔记AI t-SNE Embedding 知识管理 第2张

  • 第二个输入框可以输入新的文字,查看其在坐标中的位置(蓝色点)。

体验效果

最开始我只是在图上寻找感兴趣的点,点击后查看是哪一则笔记,并好奇与它有关联的笔记的位置。这种「随机复习」的体验很有趣。

我最初关注的是最外圈的离群点,这些往往是突发奇想写下的闪念,是写过后再无相关笔记的,如吐槽工作上的某个需求。通过这个功能,我一下子就能找到真正的「孤儿笔记」。

搜索笔记

接下来,我开始关注那些明显成团的笔记。比如与老婆下馆子时,如果认为还会再来,会写下对菜品和价格的评价。这些笔记之间无直接关联,但算法将它们聚到了一起,很有意思。

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲 笔记AI t-SNE Embedding 知识管理 第3张如果我再随手写一段描述,算出来的点也在附近。

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲 笔记AI t-SNE Embedding 知识管理 第4张另外,我每个月都会写一条「成果清单」的笔记,记录上个月的成果。这些笔记之间无关联且内容不同,但大部分都被聚到了一起。

探索笔记世界的奇妙之旅:AI与t-SNE的交响曲 笔记AI t-SNE Embedding 知识管理 第5张上图中仅有的两个离群点是我思考「成果清单」作用的笔记,并非真正的成果清单本身,所以离群也很合理。

体验了多次按标签粒度搜索,观察它们在坐标上的表现。看到基本都聚成团,说明Embedding算法和t-SNE模型都有效。

性价比服务器高防服务器