一句话定义:各向异性(Anisotropy)指嵌入向量(embedding)在空间里的分布不均匀——它们没有朝四面八方铺开,而是几乎全挤在同一个狭窄的锥形区域里,方向高度趋同。
直观理解。想象一个巨大的停车场,车位按二维网格排开。理想情况下,每辆车停在各自的位置,两车距离远近就代表两句话语义的远近。但现实是:所有车都挤在入口附近的一条窄巷里,车头还都朝同一个方向。这时你量任意两辆车的距离,结果都差不多——你跟隔壁老王的"距离"和跟陌生人的"距离"几乎一样。向量空间维度再高,真正被用到的方向可能只有很窄的一束。
为什么会有这种现象。语言模型训练时,很多目标只要求"把正确的排到前面",不要求"把错的推远"。加上高频词、常见句式反复出现,向量的均值方向被不断强化,模型学到的表示就整体偏向那个方向。结果就是:随机抽两句毫不相干的话,AI 词典:余弦相似度">余弦相似度(cosine similarity)也可能高得吓人;真正相关的两句反而只比它高一点点。
怎么发现它。工程上有个便宜的做法:随机采样一批不相关的句子对,算平均余弦相似度。如果这个数明显偏离 0、普遍偏高,就说明空间被"压扁"了。也可以看奇异值分布:前几个主成分吃掉绝大部分方差,剩下的维度形同虚设。
和相邻概念的区别:
| 概念 | 表现 | 后果 |
|---|---|---|
| 各向异性 | 向量方向趋同,但仍能区分 | 相似度绝对值虚高,区分度变差 |
| 表示崩塌(representation collapse) | 向量几乎完全相同 | 模型基本失效,检索等于随机 |
| 维度灾难 | 高维空间距离失去对比性 | 需要更多数据、更好的索引 |
各向异性是"轻症",还没到崩塌,但已经足够让下游任务难受。
对从业者的实际意义:
- 别把相似度当概率用。0.85 在不同模型、不同批次之间没有可比性,阈值必须在自己数据上重新标定。
- 检索系统别只看绝对分数。用排序(top-k)而不是"大于某阈值就算命中",并配一个重排(rerank)环节。
- 需要时可以做后处理:白化(whitening)、去掉前几个主成分、或者直接用对比学习(contrastive learning)目标训练过的检索专用模型。
- 评估时同时看"相关对分数"和"不相关对分数"的差距,而不只看前者。
一句话收尾:向量空间不怕维度高,怕的是所有方向都用不上;各向异性就是那个"看起来哪儿都能去、其实只能往一个方向走"的状态。
