AI 能力与限制
← 所有课程
课程 07AI 能力与限制

动手实践

摘要音频

语音摘要 — 点击播放以跟读:正在朗读的行会保持在顶部附近。

学习笔记

多维"邻近性"如何运作

字符串的局限性

搜索"car"只会找到包含"car"的文档。你不会找到"automobile"、"vehicle"或"我的思域需要新刹车"。

几十年来,搜索都基于字符串相似度而非语义。谷歌通过工程手段不断改进:同义词词典将"car"映射到"automobile",词干提取规则连接"running"和"run",点击模式挖掘发现搜索"NYC apartments"和"Manhattan rentals"的用户需要相同结果。这些非匹配字符串间的关联基本需要人工建立。

嵌入技术颠覆了这一切,提出语义可以是一个_位置_。通过将文本转化为坐标,相似概念会彼此靠近。这种语义空间的映射不是人工的,而是从训练数据中涌现的。

编码

从一个简化示例开始。

假设为知识库中的每个文档按两个维度评分:与恐龙的相关度,以及与过山车的相关度。相似主题的文档会彼此靠近。

先看三个来源。将它们放在你认为合适的位置。

过山车的相关度?→

毫不相关 非常相关 点击放置选中项

恐龙的相关度?→

来源

🦕

恐龙儿童读物点击选择

🎢

Velocicoaster网页点击选择

📚

完整百科全书点击选择

你刚刚在2D空间中完成了语义映射,根据内容主题放置了这些条目。

检索

现在搜索这个空间。

用相同坐标轴在图上标出问题。用映射来源的相同逻辑映射问题,可以确保最近的条目就是最相关的。额外功能:用滑块控制检索数量。

检索来源数(k): 2

过山车的相关度?→

毫不相关 非常相关 点击放置问题

恐龙的相关度?→

问题

❓ "最好的恐龙主题过山车是什么?"

点击图表放置

这就是相似性搜索的核心。我们标出问题并找到最近的k个条目。不再依赖关键词匹配或同义词表,而是使用多维邻近性。

两个维度是起点。但二维只能捕捉两个概念。现实世界有更多主题,所以需要更多维度

更多维度

增加第三个轴会怎样?用生物学维度。

儿童读物得分高(物种、栖息地、饮食)。百科全书涵盖部分。Velocicoaster页面几乎不涉及。

拖动旋转。

三维空间,每个文档三个坐标。Velocicoaster页面现在是(0. 50, 0. 90, 0. 05)而非(0. 50, 0. 90)。

现在想象第四个轴。

由于我只存在于三维空间,我本人无法想象😔但这其实不重要!每个新维度只是为每个点增加一个坐标,为距离公式增加一个平方项。空间表示在4D失效,但数学依然有效。

我们需要远超4维,因为真实嵌入模型使用约一千个维度。每个文档和查询都成为这个千维空间中的点。"找到最近文档"的含义与2D图中完全一致,只是距离计算更长。

未标记的轴

我们选择了轴:恐龙、过山车、生物学。但谁决定真实嵌入模型中的1024个主题?

事实上,无人决定。每个轴的含义是涌现的(即在训练中自然出现),更像黑箱。你不能查看第847维说"这是恐龙轴"。这些维度不对应任何人类可命名的概念。

这使得空间更难推理。我们无法通过询问第847维来理解为何两个文本彼此靠近,或为何预期相近的内容实际远离。

文本即坐标

那么谁分配坐标?嵌入模型。输入任意字符串,输出固定长度的数字列表。

文本

"居家办公"

嵌入向量

[0. 23, -0. 87, 0. 41, ... ]

1024个值

文本

"员工经经理批准每周可远程工作两天"

嵌入向量

[0. 71, 0. 09, -0. 33, ... ]

1024个值

输出长度固定(本例使用VoyageAI嵌入模型,故为1024值),无论输入是三个词还是三段话。一个文本块对应空间中的一个点。嵌入模型读取文本并输出单个向量

数学敏锐者会指出"向量"和"坐标集"并非完全等同,但对我们而言,将向量视为文本相对于其他内容的地址是合适的。

相似性

2D图中的"最近"指直线距离。实践中,相似性搜索使用余弦相似度。余弦相似度是另一种衡量文本相似度的方法,基于向量指向方向而非距离。

亲自试试!选择两个来源查看它们的余弦相似度。

来源A

❓ 🦕 🎢 📚

❓ 最佳恐龙过山车?

来源B

❓ 🦕 🎢 📚

🦕 恐龙儿童读物

余弦相似度 0. 2894

-1 相反 0 无关 1 相同

尝试比较Velocicoaster页面和恐龙读物——它们的向量指向截然不同的方向。百科全书位于所有内容之间,这很合理,因为它是万事通但无一精。

抽认卡 10 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 6 题