CrossQ: Task-Aligned Cross-Token Conditional Quantization for Late Interaction Retrieval
Rohit Kumar Salla, Manoj Saravanan, Ramya Manasa Amancherla
cs.IR
2026-06-11
CrossQ用索引时算出、并不入库的文档上下文给token选码,按排序目标训练。MS MARCO上2字节/token的MRR@10从0.359到0.369,4字节时相对全精度约64倍压缩。
ColBERT这类晚交互检索把文档存成一串token向量,查询时对每个查询token做max-sim再求和。精度高,索引也肥。工业部署往往要把文档侧压成每token几个字节,才能放进内存。
常见量化(PQ、OPQ、残差量化)最小化平均重建误差。晚交互并不吃平均误差。真正进得分的是稀疏的「赢家token」:一篇文档里多数token对任何查询都赢不了max-sim,均匀分配比特等于把七成预算花在从不计分的向量上。重建MSE和MRR的相关只有0.3左右,按失真训练会训歪。
CrossQ只压文档侧,查询向量保持全精度,质量差就能归因到索引压缩。编码仍是ColBERT/ColBERTv2那套。
索引时给每篇文档算一个轻量、与查询无关的上下文向量h(D),用它调节每个token的码本选择,让更可能成为赢家的token拿到更有效的表示。h(D)算完即丢,库里只留整数码。量化是加性残差码本,K=256,M=2/4/8对应2/4/8字节每token。
训练目标对准max-sim排序,不是像素级重建:
离散码用直通估计器。可选轻度微调:解冻最后两个Transformer块和投影头,让检索器适应量化噪声,不必整网重训。
主表是MS MARCO、三随机种子、严格按名义码预算对齐。
| 方法 | 2B MRR@10 | 2B R@10 | 4B MRR@10 | 8B MRR@10 |
| OPQ | 0.345 | 0.796 | 0.366 | 0.379 |
| Token-wise RQ(排序) | 0.359 | 0.811 | 0.371 | 0.387 |
| PLAID(候选对齐参照) | 0.357 | 0.812 | 0.381 | 0.389 |
| CrossQ | 0.369 | 0.826 | 0.386 | 0.395 |
| CrossQ + 轻度微调 | 0.374 | 0.831 | 0.392 | 0.399 |
2字节时相对最强足迹对齐基线+0.010 MRR,相对PLAID +0.012。4字节时九数据集BEIR子集平均nDCG@10从0.387到0.396。8字节加微调约保留全精度ColBERT MRR@10的98%。4字节相对原始token存储约64倍,含元数据约61倍,按对齐填充保守算约58倍。
4字节消融:去掉文档上下文,MRR从0.386掉到0.371,是最大单项;去掉listwise到0.377;只留重建掉到0.358。参数对齐的无上下文变体只挽回0.001,打乱h(D)掉到0.370,说明涨点来自跨token信息,不是多出来的131K参数。索引吞吐从PQ的2400篇/秒降到1850,约1.3倍慢;2万候选打分p50是3.6毫秒对PQ的3.2毫秒。
晚交互一直被存储卡住。CrossQ把「每token均分精度」改成「按这篇文档内部谁更可能计分来分精度」,而且上下文不入库。对内存装不下全精度ColBERT索引、又不愿退回单向量检索的人,2到4字节这一档开始能用。排序损失比再抠重建误差更对症,相关只有0.28到0.41已经把这件事说死了。
这是文档侧压缩,不是新的检索架构。PLAID那套路由堆栈并未按每个字节预算重训,论文把它标成系统参照而不是严格足迹对照。
极端压缩下max-sim仍可能翻盘。目标算子绑在ColBERT式max-sim上,换打分方式要改训练信号。查询侧未压缩。索引变慢约三成,高更新语料上会痛。教师是同一骨干的全精度文档向量,不是交叉编码器,蒸馏上限受教师本身限制。社会风险与普通晚交互检索同类:把强检索变便宜,也可能把有偏排序部署得更广。