recoscosine-similarityembedding-similarityordinal-concordancests-benchmarkvector-space-modelrearrangement-inequalitycauchy-schwarzsimilarity-metric

Recos (Rearrangement-Cosine Similarity)

Definition. 归一化分母用排序后分量 |u_{\uparrow}\cdot v_{\updownarrow}|(基于 Rearrangement Inequality 的最紧点积上界)替代 |u||v|(Cauchy–Schwarz),从而把"完美相似"的饱和条件从线性依赖放宽到次序一致(ordinal concordance) 的点积余弦相似度。计算复杂度 O(d\log d),vs 经典 cos 的 O(d)。

形式化定义

给定 \mathbf u=(u_1,\ldots,u_d), \mathbf v=(v_1,\ldots,v_d)\in\mathbb R^d,记 \mathbf u_{\uparrow} 为升序排列,\mathbf v_{\updownarrow} 为反序排列。

\text{recos}(\mathbf u,\mathbf v) = \begin{cases} \dfrac{\mathbf u\cdot\mathbf v}{|\mathbf u_{\uparrow}\cdot\mathbf v_{\updownarrow}|} & \text{if } \mathbf u\cdot\mathbf v \ge 0\\[8pt]\\ \dfrac{\mathbf u\cdot\mathbf v}{|\mathbf u_{\uparrow}\cdot\mathbf v_{\updownarrow}|} & \text{if } \mathbf u\cdot\mathbf v < 0 \end{cases} \qquad \text{clip to } [-1, 1]

实际代码中(论文附录实现):

e1_asc, e1_desc = np.sort(e1), np.flip(np.sort(e1))
e2_asc = np.sort(e2)
dot = np.sum(e1 * e2)
dot_aa = np.sum(e1_asc * e2_asc)
dot_ad = np.sum(e1_desc * e2_asc)
dot_aa = np.where(dot_aa == 0, 1e-6, dot_aa)
dot_ad = np.where(dot_ad == 0, 1e-6, dot_ad)
sim = np.where(dot >= 0, dot / abs(dot_aa), dot / abs(dot_ad))
return np.clip(sim, -1.0, 1.0)

与 cos, decos 的对照

度量 分母 饱和条件 复杂度 适用场景
decos \tfrac12(\lvert\mathbf u\rvert^2+\lvert\mathbf v\rvert^2) \mathbf u=\pm\mathbf v O(d) 仅"几乎相同"
cos \lvert\mathbf u\rvert\lvert\mathbf v\rvert \mathbf v=k\mathbf u(线性依赖) O(d) 角度对齐 / 线性相关
recos \lvert\mathbf u_{\uparrow}\cdot\mathbf v_{\updownarrow}\rvert 同序或反序 O(d\log d) 次序一致的更广关系

度量层级:|\text{decos}|\le|\text{cos}|\le|\text{recos}|,recos 的 capture range 最广。

为什么"更紧"等价于"更鲁棒"

cos 的核心弱点:对"次序保留但非线性"的扰动欠敏感。考虑两组专家对 4 名候选人的打分:

  • e_1=(1,5.5,2,4),e_5=1.225\times e_1(线性放大),e_6=(1,8.5,2,4)(分量 2 从 5.5 非线性提到 8.5,但排序不变)。
对比 cos recos
(e_1, e_5) 线性放大 1.00 1.00
(e_1, e_6) 次序保留非线性 0.98 1.00

cos 把"完美线性相关"和"次序保留但非线性"打同样的高分区,无法识别后者有完美序关系。recos 抓住的是序这一独立于角的信号——也正因此在 unit-norm 标准化下(|u|=|v|=1),cos=decos 退化成同一量,但 recos 仍保持区分度(依赖分量序结构,不依赖范数)。

与 quant 主题的潜在桥梁

recos 本身是 NLP/embedding 度量, 但有两条潜在 quant 借鉴路径:

  1. Embedding-based factor engine: 当 LLM 用来编码公司、行业、新闻、宏观状态时,"次序一致相似度"对长度偏置的鲁棒性比 cos 强——这与 Factor-Loading Uncertainty 中提到的 ℓ2 范数膨胀问题同源。
  2. RAG-based 策略合成(参见 Spatiotemporal Composability 涉及的 RAG 范式): 从大文档库检索历史 regime / 类似 pattern 时,recos 较宽的 capture range 可能放大"非线形但结构同胚"的市场状态匹配。

两条路径目前都未在 quant 实证中验证,归为 Open Question。

关键文献

实现注意

  • 排序步骤使 recos 比 cos 慢一个 log 因子。d=128–1024 区间可忽略;billion-scale 检索需 partial sort 或量化近似。
  • 对高频词(ℓ2 范数大)特别有效,partial remedy 了 Zhou Ethayarajh Card Jurafsky 2022 Cosine Frequency Bias 揭示的 cos 系统性低估问题。
  • 不是 cos 的 wholesale 替代——cos 的几何直观和效率仍是优势,recos 是 capture range 更广的互补信号。