微软 EigenLI 用文档特征方向压缩 ColBERT,k=32 时胜过聚类 15%

EigenLI: Spectral Approximations to Late Interaction

Archish S, Sabyasachi Basu, Ankit Garg, Ravishankar Krishnaswamy, Kirankumar Shiragur

cs.IR, cs.LG

2026-09-07

EigenLI 把每篇文档的 ColBERT token 向量收成 top-k 特征子空间,k=32 时在 BEIR 上相对 k-means++ 的 nDCG@10 算术平均提升 15%;同一构造还能变成 8256 维单向量,超过 MUVERA。

这篇在解决什么

ColBERT 这类 late-interaction 模型把文档拆成一堆 token 向量,查询时用 MaxSim:每个 query token 找最像的 document token 再加总。效果比单向量密检索好,代价也清楚:每篇文档要存几百个向量,ColBERTv2 默认是 512 个 128 维向量,索引大、MaxSim 慢。视觉文档检索更夸张,ColQwen3 一篇文档大约 1250 个 320 维向量。

免训练压缩目前最强的是把 token 聚成更少的代表向量。k-means++ 和 Ward 层次聚类是公开对比里最好的两条。聚类是在「集合压成更小的集合」,没有用上这些向量本身的几何结构。

方法

EigenLI 的观察很直接:同一篇文档的 token 向量大致躺在一个低维子空间里。把二阶矩矩阵 \(MD=\sumi di di^T\) 做特征分解,特征值掉得很快。于是压缩不再是挑代表 token,而是留下这篇文档的 top-k 特征方向 \(w1,\ldots,wk\)。

打分也换了。不再做 MaxSim,改看每个 query token 有多少质量投影进这篇文档的主子空间:

\[s=\sumi\sumj\langle qi,wj\rangle^2=\sumi\|\Pi qi\|^2\]

白话说,查询词如果落在这篇文档真正占据的方向上,分就高。当文档向量大部分质量已经集中在这 k 个方向上时,这个分数和 MaxSim 同向。一个关键设计是丢掉特征值本身。如果按特征值加权,分数会退化成所有 query-document token 对的平方相似度之和,比 MaxSim 差一截。

同一套构造还能写成单向量点积。把每个向量映射到二次多项式核 \(K(x)\),维度 \(d(d+1)/2\)。ColBERTv2 的 \(d=128\),得到 8256 维的 EigenLI-SV,和 k 无关,可以直接丢进 ANN。

结果

在 BEIR 13 个开发集上,k=32 的 EigenLI 对三个文本模型表现不一致。

模型对照nDCG@10 相对提升(算术平均)
ColBERTv2k-means++ / Ward+15.0% / +8.0%
AnswerAI-ColBERT-smallk-means++ / Ward+11.9% / +2.6%
GTE-ModernColBERTk-means++ / Ward−1.9% / −10.2%

相对完整 MaxSim,ColBERTv2 的 EigenLI-32 大约掉 3.2% nDCG@10,AnswerAI 掉约 13.3%,GTE 掉约 14.8%。k 不能随便加大:ColBERTv2 在 k=64(已经是 128 维的一半)时子空间开始不够有区分度。

视觉侧 ColQwen3-4B 在 ViDoRe-v3 上,EigenLI-32 相对 k-means++ / Ward 的 nDCG@10 算术平均提升 5.5% / 3.4%,相对完整 MaxSim 掉 5.5%。

单向量这边差距更大。EigenLI-SV(8256 维)对比 MUVERA 的 10240 维 FDE,ColBERTv2 上 nDCG@10 几何/算术平均相对提升 69.6% / 78.9%;AnswerAI 和 GTE 即使给 MUVERA 做了去中心化,算术平均仍高 178.1% 和 156.0%。论文自己测的 MUVERA 在 MS MARCO 上低于原论文数字,相对提升会被放大,看绝对值更稳妥。

压缩速度也便宜:39 组模型-数据集上,k-means++ 平均慢 6.81 倍,Ward 慢 17.46 倍。EigenLI-SV 还能用 FAISS PQ。2 bit 时,相对完整 MaxSim 的 nDCG 在四个小数据集上大约掉 4.4% / 4.7% / 4.2%(@10 / @100 / @1000)。

为什么重要

这是一条不用重训、不用改模型的压缩路径。对已经上了 ColBERT 家族的系统,离线算一遍每篇文档的特征子空间,就能把 512 个向量收到 32 个方向,索引和打分都变便宜。EigenLI-SV 更适合接现成 ANN,不必维护 MaxSim 引擎。

别把它当成全面替代 Ward。GTE-ModernColBERT 这种各向异性更强的模型,token 挤在窄锥里,谱方法在 k=32 时输给聚类。适用边界是模型几何,不是压缩比本身。

局限与存疑

评测几乎全是暴力扫描,没有把 EigenLI-SV 加 ANN 召回再接完整 MaxSim 精排,和 PLAID、Ward 流水线对着打。大规模延迟、索引体积、内存都还是空白。

EigenLI-SV 维度按 \(d^2\) 涨。ColBERT 的 8256 维还扛得住,ColQwen3 的 320 维会涨到 51360,论文直接没跑。量化实验只覆盖四个小 BEIR 集。GTE 上 k 从 8 加到 32,DBPedia-Entity 这类集分数还会掉,说明低秩结构退化时谱压缩会选错方向。相对 MUVERA 的大幅百分比,部分来自 MUVERA 复现偏弱,不宜直接当生产增益。

术语

原文与代码

社区讨论

相关论文

全部论文解读