RAG | | arXiv:2609.07276 |★ 深度解读

Matryoshka Hash Representations for Model-Aware Compact Semantic Retrieval

模型感知紧凑语义检索的 Matryoshka 哈希表示

🧭 嵌套哈希压缩 · 语义检索索引

The Chinese University of Hong Kong, Shenzhen

Peichun Hua, Yunming Xiao

两级训练哈希码,分离全宽训练与前缀组织,实现8/16/32字节嵌套二进制码在零样本检索上全面超越PQ/JPQ

📌 工作参考价值

  • 在向量召回/RAG 索引中,存储成本敏感时可采用 MHR 两阶段训练:先训练全宽 binary code 保证排序质量,再冻结编码器训练零初始化残差适配器让前缀可搜索,避免直接多前缀联合训练的跷跷板效应。
  • 查询侧保留连续 logits、文档侧 hard sign 的不对称打分在检索质量与存储间取得平衡,并可映射到 FAISS IndexPQFastScan 的 analytic LUT 实现约 8.7× 加速;电商商品 embedding 检索可借鉴,尤其 CPU 服务。
  • 嵌套前缀码可作为一个通用压缩 payload 在 IVF、HNSW/LEANN 剪枝、粗排过滤中复用,无需按不同字节预算重编码 corpus;可在推荐系统召回/粗排阶段用 8/16/32 字节嵌套码做自适应候选筛选,再对少量候选 full-precision rerank,接近浮点效果。
  • 源域训练的 model-aware discrete code 在零样本域迁移上优于 reconstruction-based PQ/OPQ,说明用业务点击/成交等排序信号训练离散码比重建误差更值得投入;推荐场景可替换 PQ 作为 drop-in 压缩。

动机:向量检索在 RAG、搜索、推荐候选生成中是第一级,存储全精度向量是大规模索引主要成本。现有 PQ/OPQ 等模型无关量化以重建误差为目标,低字节预算下排序质量损失大;直接联合训练多个嵌套前缀(Matryoshka)会因早期位被多个宽度损失同时拉扯,尤其 binary code 的 sign flip 导致全宽码退化和前缀不佳。MHR 通过两阶段分离全宽训练与前缀组织。

方法关键点:

  • Stage I:从 BGE-base 初始化,LoRA + 256 维 hash head 训练单宽 256-bit binary code;文档侧 STE(hard sign),查询侧连续 logits;用 MS MARCO 的 BM25 负样本 + MiniLM 重排,蒸馏、排序、balance 损失。
  • Stage II:冻结 encoder 和 hash head,在固定 logits 上训练两个零初始化的 256 hidden 残差适配器;前缀损失包括部署匹配的 relevance ranking、全宽源码蒸馏锚定(KL)、MiniLM listwise,以及 balance/GOR 正则,使 64/128/256 前缀可搜索且不牺牲全宽质量。
  • 部署:文档存储每维 1 bit 的 hard sign,查询保留连续 logits;通过 analytic lookup table 映射到 FAISS IndexPQFastScan,支持 flat/IVF/LEANN 剪枝。

关键实验:在 MS MARCO 训练,零样本迁移到 BEIR 7 个数据集:MHR 在 8/16/32 字节预算均第一。32B macro NDCG@10 .5561 / Recall@100 .6535,对比最强 baseline JPQ-FT .5239/.6426;16B .502/.616 vs .404/.537;8B .376/.518 vs .217/.342。单线程 FastScan 比 PQ flat 快约 8.7×/7.5×;IVF 同存储下 NDCG 更高且更省时;8B MHR 作为 LEANN 图剪枝码,保持 99.6–100% 未剪枝 NDCG,减少约 67% 精确距离评估;作为粗排 filter,8B MHR 取前 100 重排可获得 .561 macro NDCG,超过自己的 32B compact 分数 .552。

最值得记住:先教好一个足够强的全宽二进制码,再冻结它、用零初始化残差适配器去组织前缀,能同时拿到 8/16/32 字节的存储效率和接近全宽的排序质量。