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 借鉴路径:
- Embedding-based factor engine: 当 LLM 用来编码公司、行业、新闻、宏观状态时,"次序一致相似度"对长度偏置的鲁棒性比 cos 强——这与 Factor-Loading Uncertainty 中提到的 ℓ2 范数膨胀问题同源。
- RAG-based 策略合成(参见 Spatiotemporal Composability 涉及的 RAG 范式): 从大文档库检索历史 regime / 类似 pattern 时,recos 较宽的 capture range 可能放大"非线形但结构同胚"的市场状态匹配。
两条路径目前都未在 quant 实证中验证,归为 Open Question。
关键文献
- Xinbo Ai 2026 Beyond Cosine Similarity — recos 的原始论文。
- Zhou Ethayarajh Card Jurafsky 2022 Cosine Frequency Bias — 高频词 cos 估计偏低问题,recos 核心动机。
- Steck Ekanadham Kallus 2024 Is Cosine-Similarity About Similarity — 对 cos 表征意义的批判。
- Salton Wong Yang 1975 Vector Space Model — cos 起源。
实现注意
- 排序步骤使 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 更广的互补信号。