当我们谈论语义相似度时,余弦相似度(Cosine Similarity)几乎是默认选择。从 Word2Vec 到 BERT,从文档聚类到 RAG 检索,余弦相似度贯穿于现代 NLP 系统的每一个角落。然而,北京邮电大学的研究团队在一篇新论文中指出:余弦相似度所基于的 Cauchy-Schwarz 不等式并非最紧上界,而这种 "松弛" 可能导致我们对语义关系的系统性低估。他们提出了 recos(Rearrangement-inequality based Cosine Similarity)—— 一种基于重排不等式的全新相似度度量,通过捕获序数一致性(ordinal concordance)而非线性相关性来重新定义向量空间中的相似性判断。实验表明,recos 在 11 种预训练语言模型和 7 个 STS 基准数据集上实现了对余弦相似度的一致性超越(92.2% 胜率),尤其在 CLIP-ViT、DPR、SPECTER 等复杂嵌入模型上提升显著。
余弦相似度的数学根基与隐含局限
余弦相似度的数学基础是 Cauchy-Schwarz 不等式,该不等式为两个向量的点积提供了一个上界:|u・v| ≤ ||u|| ||v||。余弦相似度正是通过将点积除以这个上界来归一化,得到的值域为 [-1, 1],其中 1 表示完全正相关(即向量线性相关且方向相同)。从几何角度看,余弦相似度只关注两个向量之间的夹角,忽略它们的长度差异。这一特性使得余弦相似度在处理归一化嵌入时表现出色,因为此时向量的模长信息已被预处理掉。
然而,研究团队指出了余弦相似度的核心问题:达到完美相似度分数(分数为 1)的条件过于严苛。只有当两个向量严格线性相关时(即 v = k・u,其中 k > 0),余弦相似度才能返回 1。在真实的语义嵌入空间中,这种严格的比例关系几乎不存在。以专家评分为例,如果专家 A 给四位候选人的评分为 (1, 5.5, 2, 4),而专家 B 的评分为 (1, 8.5, 2, 4),两人的评分在相对排序上完全一致(候选 2 > 候选 4 > 候选 3 > 候选 1),但在数值上并不满足线性比例关系。这种 "序数一致但量级不同" 的情况在实际语义空间中极为普遍,而余弦相似度会将此类关系错误地评估为 "不够相似"。
此外,已有研究(如 Zhou et al., 2022)发现,余弦相似度对高频词存在系统性低估问题。这是因为高频词的嵌入通常具有膨胀的 L2 范数,导致余弦相似度无法准确反映其真实语义关系。Steck 等人(2024)也在研究中质疑余弦相似度是否真的在测量 "相似性"。这些发现共同指向一个结论:我们需要一种更灵活、更具包容性的相似度度量。
不等式层级:从 Cauchy-Schwarz 到重排不等式
recos 的理论创新在于引入了一个比 Cauchy-Schwarz 更紧的上界。论文证明了以下不等式链条对于任意向量 u 和 v 均成立:|u・v| ≤ |u↑・v↕| ≤ ||u|| ||v|| ≤ ½(||u||² + ||v||²)。其中 u↑ 表示将 u 按升序排列后的向量,v↕ 的定义则依赖于 u・v 的符号 —— 当 u・v > 0 时取 v 的升序排列,当 u・v < 0 时取 v 的降序排列。
这个链条中的关键新项是 |u↑・v↕|,它基于重排不等式(排列论)推导而来。重排不等式是组合数学中的一个经典结果,它表明对于两组实数,当它们按相同方向排序时,点积最大化;当它们按相反方向排序时,点积最小化。通过利用这一性质,研究团队推导出了一个更紧的上界,这个上界允许完美相似度分数在比 "严格线性相关" 更宽松的条件下达到。
根据这个不等式层级,论文定义了三类相似度度量:decos(基于 ½(||u||² + ||v||²) 的归一化)、cos(标准余弦相似度)、以及 recos(基于重排不等式的归一化)。这三个度量形成了一个严格的层级结构:|decos (u,v)| ≤ |cos (u,v)| ≤ |recos (u,v)|。dec os 要求向量完全相同或相反才能达到分数 1;余弦相似度要求线性相关;而 recos 只要求 "序数一致"—— 即两个向量在所有维度上保持相同的相对排序。
recos 的形式化定义与直观解释
具体而言,recos 的定义为:recos (u,v) = (u・v) / |u↑・v↕|。这个定义的直觉非常清晰:分母 |u↑・v↕| 代表了在所有可能的排列下,u 和 v 能够达到的最大点积。当 u 和 v 的元素在排序后保持一致方向时,这个上界最小化(因为 u↑・v↕ 接近 u・v),从而使 recos 接近 1。当两个向量的元素在排序后方向相反时,这个上界变大,导致 recos 变小。
用专家评分的例子可以很好地说明这一点。假设专家 A 的评分向量为 e1 = (1, 5.5, 2, 4),专家 B 的评分向量为 e5 = 1.225 × e1 = (1.225, 6.7375, 2.45, 4.9),专家 C 的评分向量为 e6 = (1, 8.5, 2, 4)。对于余弦相似度,cos (e1, e5) = 1.00(完美线性关系),但 cos (e1, e6) ≈ 0.98—— 这意味着余弦相似度无法区分 "序数一致的非线性关系"(e1, e6)与 "存在真正分歧的关系"。而 recos (e1, e6) = 1.00,因为它识别出两个向量在排序后方向完全一致,只有 recos 能够正确反映序数一致性这一语义本质。
这个性质对于语义嵌入空间具有重要意义。在高维嵌入空间中,语义相似的词或句子不一定满足线性比例关系,但它们的嵌入向量往往在多个维度上呈现出单调的对应关系。recos 通过捕获这种 "维间序数一致" 来扩展相似度的捕获范围。
实验验证:11 种模型、7 个基准的全面评估
研究团队在 7 个广泛使用的语义文本相似性(STS)基准上进行了全面评估:STS12、STS13、STS14、STS15、STS16、STS-B 和 SICK-R。评估涵盖了 11 种预训练语言模型,分为三类:静态词嵌入(Word2Vec、FastText、GloVe)、上下文嵌入(BERT、SGPT、DPR)以及通用文本嵌入(BGE、E5、GTE、SPECTER、CLIP-ViT)。所有实验均采用零样本协议,不进行任何微调或超参数优化,确保评估的公平性。
核心实验结果呈现出一致的层级关系:recos 在 77 个评估设置(11 模型 × 7 数据集)中的 71 个(92.2%)超越了余弦相似度,仅有 1 个设置表现略差,其余 5 个持平。余弦相似度在 58 个设置中优于 decos,剩余的主要是归一化模型(如 BGE、E5),这与理论预期完全一致 —— 对于单位范数向量,decos 和 cos 在数学上等价。
从平均性能来看,recos 达到了 66.12 分,高于余弦相似度的 65.83 分和 decos 的 65.65 分。值得注意的是,性能提升的幅度与模型复杂度呈现明显的相关性。对于静态嵌入(Word2Vec、FastText、GloVe),recos 的提升幅度较小(0.02–0.37 分),因为这些模型的表示空间相对简单。对于上下文嵌入(BERT、SGPT、DPR),提升幅度变大(0.05–0.65 分)。对于通用嵌入(BGE、E5、GTE、SPECTER、CLIP-ViT),提升最为显著,尤其是 CLIP-ViT 获得了 +0.96 分的提升(在 STS14 和 STS15 上甚至达到 +1.36 分),DPR 获得 +0.65 分,SPECTER 获得 +0.49 分。
这些结果揭示了一个重要规律:模型越复杂、表示空间越偏离简单的文本相似性假设,recos 的相对优势就越明显。这是因为现代大规模预训练模型产生的嵌入空间往往包含非线性但结构化的关系,而余弦相似度对这类关系存在系统性低估。
统计显著性分析进一步确认了这些发现的可靠性。使用 Wilcoxon 符号秩检验(考虑到性能差异的非正态分布),recos 相对余弦相似度的提升在 p < 0.001 水平上高度显著,效果量 r = 0.835(属于大效果量)。符号检验显示,在 72 个非平局比较中,recos 胜出 71 次,胜率 98.6%,二项检验同样支持 p < 0.001。线性混合效应模型在控制模型、数据集及其交互效应后,仍然确认了 recos 的显著优势(β = 0.292, t = 7.201, p < 0.001)。留一法交叉验证表明,结果对任何单一数据集的排除都是稳健的。
计算复杂度与实践考量
recos 的主要代价在于计算复杂度。余弦相似度的计算复杂度为 O (d),而 recos 需要对向量进行排序操作,复杂度为 O (d log d)。对于典型的嵌入维度(128 到 1024),这个对数因子在实际应用中的开销通常是可接受的,但对于十亿级向量的检索场景,这一额外开销可能变得显著。
论文作者在 GitHub 仓库中提供了 recos 的参考实现,使用 NumPy 的向量化操作。在实践中,对于批量计算场景,排序开销可以被高效的实现(如使用 Top-k 排序或量化近似)部分抵消。作者也指出,未来的工作方向包括探索高效的近似算法以支持大规模应用。
另一个实践考量是归一化向量的处理。对于单位范数向量,decos 和 cos 数学上等价,但 recos 即使对归一化向量也保持其独特性质,因为 recos 的分母依赖于向量元素的序数结构而非仅仅依赖于范数。这意味着 recos 可以在已有归一化流程的情况下直接替代余弦相似度,而不会丧失序数一致性捕获能力。
工程落地的参数选择与监控要点
对于希望在生产系统中引入 recos 的工程师,以下参数和监控点值得关注。首先是排序稳定性问题:recos 对向量元素的大小关系敏感,如果嵌入模型产生不稳定或随机的元素排序(例如某些 Transformer 架构中的注意力机制),recos 的效果可能受到影响。建议在引入 recos 前对目标模型的嵌入稳定性进行测试。其次是性能与效率的权衡:对于离线批处理场景,recos 的 O (d log d) 复杂度通常可接受;但对于在线实时检索场景,可能需要评估延迟预算是否允许额外的排序操作。推荐从离线分析开始,先在测试集上对比 recos 与余弦相似度的实际差异,再决定是否进行全量替换。第三是多度量并行策略:论文表明 decos、cos、recos 形成了一个层级结构,捕获不同类型的相似性关系。在高精度要求的场景中,可以同时计算这三个度量并取加权平均,以获得更稳健的相似度评估。
结语:从角度到序数,重新理解语义相似性
余弦相似度在语义嵌入领域的统治地位并非偶然:它简单、高效、几何直观,且对于归一化向量表现稳定。然而,这项研究揭示了一个根本性的视角转换可能带来的收益:与其仅关注向量方向的 "角度相似性",不如同时考虑元素排序的 "序数一致性"。recos 的核心洞见在于,语义相似性在很多情况下并不等价于严格的比例关系,而是体现为一种更宽松但同样有意义的结构对应 —— 当两个向量在所有维度上保持一致的相对排序时,它们在语义上可能是高度相关的,即使数值上并不满足线性比例。
这一发现对检索增强生成(RAG)、语义搜索、文本聚类等依赖嵌入相似性的下游任务具有直接启示。对于使用现代大规模语言模型(如 CLIP、DPR、SPECTER)的系统,recos 提供了即插即用的性能提升可能。研究团队开源了完整的代码和复现指南,为这一新度量的大规模应用奠定了基础。随着向量数据库在生产系统中的普及,探索超越余弦相似度的度量选择将成为优化检索质量的一个有前景的方向。
参考资料
- Xinbo Ai, "Beyond Cosine Similarity", arXiv:2602.05266, 2026
- GitHub: https://github.com/byaxb/recos
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。