语义的几何结构
embedding 空间是有结构的:方向承载关系,簇承载类别,而且它的几何行为既有用,又偶尔会误导人。
从 man→woman 的向量,与 king→queen 大致平行。这个一致的偏移就是「性别」方向——king − man + woman 的结果落在 queen 附近。
embedding 空间不是随机撒下的点。它有结构,而正是这个结构让语义搜索、检索增强生成(RAG)和聚类能够成立。
它也有一些总会把人带偏的性质。这两面都值得了解。
方向是有含义的
那个著名的演示:king − man + woman 落在 queen 附近。
从几何上读它。空间里存在一个大致对应「性别」的方向,而且它相当一致——从 man 指向 woman 的向量,和从 king 指向 queen、从 actor 指向 actress 的向量很像。含义不仅编码在点在哪儿,也编码在点与点之间的偏移里。
类似的结构也出现在单数/复数、动词时态、比较级/最高级,以及国家/首都这样的配对里。这些都不是设计进去的。它之所以出现,是因为把这些规律编码下来有助于预测下一个 token。
一句老实话:这些类比在精心挑选的演示里,效果远好于一般情况。已发表的结果常常把输入词从答案集合里排除掉,这一步悄悄做了不少功夫。方向是真实且有用的,但比这些例子所暗示的要嘈杂得多。
簇代表类别
拉远看,点会聚成团。动物靠近动物,编程语言靠近编程语言,情绪靠近情绪。没有人给这些区域打过标签;是使用模式把它们造出来的。
层级结构也出现了。在动物这个簇内部,犬种聚得比更大的动物区域更紧。类别是嵌套的,这与这些词实际被使用的方式相呼应。
这就是聚类能成为一项实际应用的原因。按 embedding 的邻近程度给客服工单或文档分组,不用事先定义主题,就能得到按主题的归类。
为什么用余弦而不是距离
相似度几乎总是用余弦来度量——向量之间的夹角——而不是直线距离。
原因是向量的模长往往编码的是一些无关紧要的东西。常见词得到的向量长度常常和生僻词不一样;更长的文档也可能产生更长的向量。这两者都与含义无关。语义内容住在方向上。
同一主题、长度差很多的两篇文档应该算作相似,余弦能给你这个结果。见相似度检索到底是怎么运作的。
高维空间很反常
embedding 住在几百到几千维的空间里,在三维里建立的直觉会把你带得很偏。
几乎所有东西都近似正交。 在高维里随机取两个方向,它们的余弦相似度接近零。空间之所以有容量,原因就在这里——海量的概念可以共存而不互相干扰,因为有的是空间让它们彼此无关。
距离会压缩。 随着维度升高,一个点的最近邻和最远邻之间的距离比值会朝 1 收缩。「最近」这个区分比听起来要弱,这也是检索需要第二遍更具分辨力的处理的原因之一——见为什么你需要重排序模型。
体积住在表面。 高维球体的体积几乎全部集中在靠近边界的部分。点比三维心智图景所暗示的要分散得多,也没那么向中心聚集。
叠加(superposition)。 模型似乎能表示比维度数更多的特征,办法是把特征编码到重叠的非正交方向上,并容忍轻微的干扰。这是一个活跃的研究领域,它让任何「一个概念一个方向」的简单说法都站不住。
二维图能看出什么,看不出什么
embedding 空间的可视化,是用 t-SNE 或 UMAP 之类的技术,从几百维投影到二维的结果。
它们对看簇结构确实有用。它们也在几个特定的地方有损,值得知道:簇之间的距离往往没有意义,看上去的簇大小是算法参数的产物,同一个投影跑两次可能给出明显不同的布局。
读它们的方式是「这些东西聚在一起」,绝不是「这个东西离那个东西正好这么远」。
偏见是几何的
如果训练文本把某些职业和某些性别关联起来,这种关联在空间里就作为一条可测量的方向存在。给你 king − man + woman ≈ queen 的那套机制,也会给你关于职业的刻板类比。
这不是另加上去的一个独立缺陷。它就是同一个结构在做同一件事,只不过作用在源文本里本就存在的关联上。embedding 空间是人们写作方式的压缩记录,包括其中没人会认同的那部分。
去偏技术是存在的——找出并中和特定的方向——成功有限。值得知道的是,它们确实有限。
要点回顾
- 点与点之间的偏移编码关系;簇编码类别。两者都是训练中自己长出来的,不是设计出来的。
- 优先用余弦相似度,因为模长往往编码无关紧要的属性,而方向承载含义。
- 高维违反直觉:近似正交才是常态,距离会压缩,而叠加让模型能塞进比维度数更多的特征。
- 二维投影能可靠地显示分组,不能可靠地显示距离。
- 训练文本里的偏见会变成可测量的几何结构。
下一篇: Prompt 基础 —— 从内部机制走向实践。