DIVE:通过自限制梯度更新的嵌入压缩

arXiv cs.CL 论文

摘要

提出DIVE,一种用于嵌入维度缩减的压缩适配器,采用自限制梯度更新和头部级NT-Xent对比损失,防止在小数据集上过拟合,在BEIR基准测试上优于现有方法。

arXiv:2605.20689v1 公告类型:新 摘要:来自大型语言模型的高维嵌入给向量搜索系统带来了巨大的存储和计算成本。最近的嵌入压缩方法,包括Matryoshka-Adaptor (EMNLP 2024)、Search-Adaptor (ACL 2024)和SMEC (EMNLP 2025),通过轻量级残差适配器实现了维度缩减,但其训练目标在标记数据稀缺时会导致严重的过拟合,使得检索性能低于冻结的基线。我们提出\textsc{DIVE} (\textbf{D}imensionality reduction with \textbf{I}mplicit \textbf{V}iew \textbf{E}nsembles),一种通过两种机制解决此问题的压缩适配器。首先,自限制铰链式三元组损失在三元组满足边界约束时产生零梯度,限定了对预训练嵌入空间施加的总扰动。其次,头部级NT-Xent对比损失将每个嵌入的多个学习投影视为隐式视图,提供密集的自监督梯度,弥补了小数据集上三元组信号的稀疏性。在六个BEIR数据集上,\textsc{DIVE}在每一个数据集和每一个评估的压缩比上均优于所有三种基线适配器,并提供了1400万参数的开源实现。
查看原文
查看缓存全文

缓存时间: 2026/05/21 06:34

# DIVE:通过自限梯度更新实现嵌入压缩  
来源:https://arxiv.org/html/2605.20689  
董方钊  
华盛顿大学塔科马分校 工程与技术学院,美国  
dzhao@uw\.edu  

###### 摘要  

来自大型语言模型的高维嵌入给向量搜索系统带来了显著的存储和计算成本。最近的嵌入压缩方法,包括 Matryoshka-Adaptor(EMNLP 2024)、Search-Adaptor(ACL 2024)和 SMEC(EMNLP 2025),通过轻量级残差适配器实现了降维,但其训练目标在标注数据稀缺时会导致严重过拟合,检索性能下降到低于冻结基线。我们提出 DIVE(Dimensionality reduction with Implicit View Ensembles),一种通过两种机制解决此问题的压缩适配器。首先,基于自限铰链的三重态损失在三元组满足边界约束时产生零梯度,从而限制了施加在预训练嵌入空间上的总扰动。其次,一种头级 NT-Xent 对比损失将每个嵌入的多个学习投影视为隐式视图,提供密集的自监督梯度,弥补小数据集上三重态信号的稀疏性。在六个 BEIR 数据集上,DIVE 在每个数据集和每个评估压缩比下均优于所有三种基线适配器,并提供了 14M 参数的开源实现。  

## 1 引言  

大型语言模型已成为稠密检索的标准骨干,如 LLM2Vec(Behnam Ghader 等,2024(https://arxiv.org/html/2605.20689#bib.bib32))生成的高维嵌入在 BEIR(Thakur 等,2021(https://arxiv.org/html/2605.20689#bib.bib31))等基准上取得了最先进性能。然而,这些嵌入通常维度达数千,即使使用 FAISS(Johnson 等,2021(https://arxiv.org/html/2605.20689#bib.bib30))和 HNSW(Malkov and Yashunin,2020(https://arxiv.org/html/2605.20689#bib.bib27))等优化索引,仍给大规模向量搜索基础设施带来严重的存储和查询延迟成本。在不牺牲检索质量的前提下压缩这些嵌入已成为实际需求。  

一种自然的方法是遵循 Houlsby 等(2019(https://arxiv.org/html/2605.20689#bib.bib24))和 LoRA(Hu 等,2022(https://arxiv.org/html/2605.20689#bib.bib23))的范式,为冻结的 LLM 主干附加轻量级适配器。Matryoshka 表示学习(Kusupati 等,2022(https://arxiv.org/html/2605.20689#bib.bib34))引入了多尺度嵌套嵌入;Matryoshka-Adaptor(Yoon 等,2024b(https://arxiv.org/html/2605.20689#bib.bib35))和 Search-Adaptor(Yoon 等,2024a(https://arxiv.org/html/2605.20689#bib.bib33))将其扩展到通过排序损失和相似性保持的监督降维;SMEC(Zhang 等,2025(https://arxiv.org/html/2605.20689#bib.bib2))进一步引入了顺序训练阶段和自适应维度选择。这三种方法都是专有工业系统,其实现未公开。  

这些方法在标注的查询-文档对充足时效果良好,但我们在数据稀缺时观察到一致的失败模式:无论局部排序是否已满足,其训练目标在整个训练过程中对所有三元组产生梯度。这种无界的梯度压力扭曲了预训练嵌入几何,并将检索性能降低到冻结基线以下。例如,在 nfcorpus(323 个查询)上,Matryoshka-Adaptor 的 nDCG@10 崩溃至 0.098,远低于冻结基线 0.292。  

我们提出 DIVE(Dimensionality reduction with Implicit View Ensembles),一种基于稀疏-密集梯度分解的压缩适配器。借鉴 Weinberger 和 Saul(2009(https://arxiv.org/html/2605.20689#bib.bib16))以及 Schroff 等(2015(https://arxiv.org/html/2605.20689#bib.bib17))的基于边界的度量学习,DIVE 用基于铰链的三重态损失替换标准排序损失,该损失在三元组满足边界约束时产生精确为零的梯度。与 SimCSE(Gao 等,2021(https://arxiv.org/html/2605.20689#bib.bib3))等保持连续梯度流的目标不同,DIVE 的自限机制限制了施加在预训练空间上的总扰动:在所有数据集上,活跃三元组比例在 5–15 个 epoch 内降至 10% 以下,这表明适配器仅在预训练排序明显错误时才进行干预。  

查看标题  
图 1:DIVE 的架构。训练时,适配器将每个冻结嵌入映射到 H 个投影头;自限三重态损失仅监督头 1,而 NT-Xent 对比损失应用于所有 H 个头。推理时,丢弃头 2 至 H,仅保留头 1 用于检索。  

为了补偿由此产生的梯度稀疏性,DIVE 引入了一种头级 NT-Xent 对比损失(Chen 等,2020(https://arxiv.org/html/2605.20689#bib.bib13)),将每个嵌入的多个学习投影视为隐式视图。受多视图自监督学习启发,但无需数据增强(这对文本嵌入难以定义),该目标每批次提供 O(BH²) 个密集成对梯度,与三元组满足与否无关。推理时,仅保留第一个头,存储和检索成本与标准单头适配器相同。图 1(https://arxiv.org/html/2605.20689#S1.F1)展示了整体架构。DIVE 为冻结编码器附加一个三层 MLP,每个嵌入生成 H 个头向量;推理时仅保留第一个头,而所有 H 个头通过双目标损失参与训练。  

我们在六个 BEIR 数据集上使用两个规模差异很大的冻结骨干进行评估:LLM2Vec-Mistral-7B(4096 维)和 LLM2Vec-Sheared-LLaMA-1.3B(2048 维)。在两个骨干和三个评估压缩比(128、256、512)下,我们的主要发现如下:  

- • DIVE 在所有六个数据集上均优于 Matryoshka-Adaptor(Yoon 等,2024b(https://arxiv.org/html/2605.20689#bib.bib35))、Search-Adaptor(Yoon 等,2024a(https://arxiv.org/html/2605.20689#bib.bib33))和 SMEC(Zhang 等,2025(https://arxiv.org/html/2605.20689#bib.bib2)),在 128 维下,DIVE 在 nfcorpus 上的 nDCG@10 增益比 Search-Adaptor 高 +0.326,在 fiqa 上高 +0.307;256 和 512 维结果一致(附录 B(https://arxiv.org/html/2605.20689#A2))。  
- • DIVE 是唯一一种在任何数据集、任何评估压缩比下均未低于冻结基线的方法,并且超过了所有六个数据集上的原始高维嵌入。  
- • 自限行为可直接观察:在所有数据集上,活跃三元组比率 ρ(t) 在 5–15 个 epoch 内降至 10% 以下,证实梯度压力仅集中在需要的地方。  
- • 消融研究证实,对比损失和多头架构都是必不可少的:移除任一组件会使 nDCG@10 在所有数据集上平均降低 0.17,在数据稀疏场景下降级最严重。  
- • 结果在骨干架构和规模上稳健迁移,DIVE 在 7B 和 1.3B 骨干下均优于所有三种基线适配器(附录 C(https://arxiv.org/html/2605.20689#A3))。  

## 2 背景与相关工作  

##### 参数高效微调(PEFT)  
PEFT 方法通过少量可训练参数适配大型预训练模型。Houlsby 等(Houlsby 等,2019(https://arxiv.org/html/2605.20689#bib.bib24))引入了瓶颈适配器;LoRA(Hu 等,2022(https://arxiv.org/html/2605.20689#bib.bib23))在冻结权重中注入低秩矩阵。Prefix-Tuning(Li and Liang,2021(https://arxiv.org/html/2605.20689#bib.bib22))和 Prompt Tuning(Lester 等,2021(https://arxiv.org/html/2605.20689#bib.bib21))在输入前添加可学习的连续向量。AdapterFusion(Pfeiffer 等,2021(https://arxiv.org/html/2605.20689#bib.bib20))和 LST(Sung 等,2022(https://arxiv.org/html/2605.20689#bib.bib19))将适配器扩展到多任务和内存高效设置,Visual Prompt Tuning(Jia 等,2022(https://arxiv.org/html/2605.20689#bib.bib18))将该范式应用于视觉。这些方法针对分类或生成目标,未考虑检索特定的几何约束。DIVE 则通过自限三重态损失将适配器定制用于嵌入压缩。  

##### Matryoshka 表示学习(MRL)与嵌入压缩  
MRL(Kusupati 等,2022(https://arxiv.org/html/2605.20689#bib.bib34))在单个嵌入中编码多尺度信息,支持灵活截断,并启发扩展到生成式(Gu 等,2024(https://arxiv.org/html/2605.20689#bib.bib7))和视觉-语言(Hu 等,2024(https://arxiv.org/html/2605.20689#bib.bib6))模型。对于检索,Matryoshka-Adaptor(Yoon 等,2024b(https://arxiv.org/html/2605.20689#bib.bib35))和 Search-Adaptor(Yoon 等,2024a(https://arxiv.org/html/2605.20689#bib.bib33))对冻结嵌入应用轻量级残差适配器;SMEC(Zhang 等,2025(https://arxiv.org/html/2605.20689#bib.bib2))增加了顺序训练和自适应维度选择。强大的文本骨干如 LLM2Vec(Behnam Ghader 等,2024(https://arxiv.org/html/2605.20689#bib.bib32))以及通过 FAISS(Johnson 等,2021(https://arxiv.org/html/2605.20689#bib.bib30))、HNSW(Malkov and Yashunin,2020(https://arxiv.org/html/2605.20689#bib.bib27))和磁盘索引(包括 DiskANN(Jayaram Subramanya 等,2019(https://arxiv.org/html/2605.20689#bib.bib9))、SPANN(Chen 等,2021(https://arxiv.org/html/2605.20689#bib.bib8))和 ScaNN(Guo 等,2020(https://arxiv.org/html/2605.20689#bib.bib10)))的可扩展向量搜索构成了典型的检索栈,并在 BEIR(Thakur 等,2021(https://arxiv.org/html/2605.20689#bib.bib31))等基准上进行评估。然而,现有的监督适配器依赖嵌套维度损失,导致持续梯度冲突,并在标注数据稀缺时崩溃(第 5.2 节(https://arxiv.org/html/2605.20689#S5.SS2))。DIVE 将嵌套目标替换为单维铰链损失,自动门控梯度,即使在极有限的监督下也能实现安全压缩。  

##### 传统降维  
经典压缩方法如 PCA(Jolliffe and Cadima,2016(https://arxiv.org/html/2605.20689#bib.bib29))、乘积量化(Jegou 等,2011(https://arxiv.org/html/2605.20689#bib.bib28))、优化乘积量化(Ge 等,2013(https://arxiv.org/html/2605.20689#bib.bib5))和迭代量化(Gong and Lazebnik,2011(https://arxiv.org/html/2605.20689#bib.bib11))基于数据统计而非检索标签降维。DIVE 则执行标签引导的语义压缩,直接保留检索相关性。我们在附录 E(https://arxiv.org/html/2605.20689#A5)中包含了 PCA 和自编码器基线,证实无检索监督的无监督压缩远不及 DIVE。  

##### 度量学习与对比表示学习  
DIVE 背后的铰链损失源于度量学习:大间隔最近邻居(Weinberger and Saul,2009(https://arxiv.org/html/2605.20689#bib.bib16))、FaceNet(Schroff 等,2015(https://arxiv.org/html/2605.20689#bib.bib17))以及三重态网络(Hoffer and Ailon,2015(https://arxiv.org/html/2605.20689#bib.bib15))。对比目标如 SimCLR(Chen 等,2020(https://arxiv.org/html/2605.20689#bib.bib13))、MoCo(He 等,2020(https://arxiv.org/html/2605.20689#bib.bib26))和监督对比(Khosla 等,2020(https://arxiv.org/html/2605.20689#bib.bib12))通过拉近正样本、推开负样本来学习不变性。SimCSE(Gao 等,2021(https://arxiv.org/html/2605.20689#bib.bib3))和 Sentence-BERT(Reimers and Gurevych,2019(https://arxiv.org/html/2605.20689#bib.bib4))将对比训练适用于高质量文本嵌入。这些方法的一个共同点是梯度在整个训练过程中持续流动,无论局部排序是否已正确。DIVE 偏离了这一惯例:当三元组满足边界时,其梯度贡献精确变为零,从而防止不必要的预训练语义结构扭曲。  

## 3 方法  

### 3.1 问题形式化  

现有的压缩适配器面临一个基本困境:它们必须改变预训练嵌入空间以满足检索约束,但过度扰动会破坏预训练期间学到的语义结构。我们识别出两种失败模式。Matryoshka-Adaptor(Yoon 等,2024b(https://arxiv.org/html/2605.20689#bib.bib35))在嵌套维度上求和排序损失,即使三元组排序已正确,仍导致持续梯度流。在小数据集上,这种无界扰动导致灾难性崩溃:nDCG@10 在 nfcorpus 上降至 0.098,在 scidocs 上降至 0.031,远低于冻结的 4096 维基线(表 2(https://arxiv.org/html/2605.20689#S4.T2))。Search-Adaptor(Yoon 等,2024a(https://arxiv.org/html/2605.20689#bib.bib33))使用无门控的成对排序损失,过度拟合虚假相关性,在 quora 上性能下降(0.778 vs. 0.863 冻结基线)。  

DIVE(Dimensionality reduction with Implicit View Ensembles)通过稀疏-密集梯度分解解决了这两种失败模式:基于边界的三重态损失在单个输出头上提供稀疏的、满足约束的梯度,而头级对比目标在多个学习视图上提供密集的自监督正则化。其原则是梯度自限:一旦三元组满足边界约束,其贡献的梯度为零,从而限制施加在预训练空间上的扰动。  

### 3.2 多头适配器架构  

#### 3.2.1 整体设计  

设 φ: X → S^{d-1} 是一个冻结的文本编码器,将文档和查询映射到 d 维单位范数嵌入。DIVE 附加一个轻量级适配器 f_θ,将每个嵌入压缩为 H 个不同的 k 维头向量,其中 k ≪ d 是目标维度,H 是辅助视图的数量。适配器由两个阶段组成:非线性特征变换 g_θ 后接多头投影:  

f_θ(z) = MultiHead(g_θ(z)),   (1)  

其中 g_θ: ℝ^d → ℝ^{kH} 生成一个拼接表示,MultiHead 将其重塑并归一化为 H 个独立的头。下面我们详细描述每个组件。  

#### 3.2.2 非线性特征编码器  

特征编码器 g_θ 是一个三层 MLP,隐藏维度递减:  

h₁ = ReLU(BatchNorm(W₁z + b₁)),   (2)  
h₂ = ReLU(W₂h₁ + b₂),  
h₃ = W₃h₂ + b₃,  

其中 W₁ ∈ ℝ^{2048×4096}, ...

相似文章

梯度平滑:耦合逐层更新以改进优化

arXiv cs.LG

介绍了深度方向梯度增强(Depth-wise Gradient Augmentation),这是一种通用的优化范式,沿着深度维度转换块级优化器更新。该方法,即梯度平滑(Gradient Smoothing),提升了包括Transformer和扩散模型在内的多种架构的优化和泛化性能。

高维潜变量的扩散性

Hugging Face Daily Papers

本文表明,为重建而微调自编码器会降低有效维度,使得标准速度预测在扩散模型中效率低下,并提出使用x0预测来聚焦于信号流形,从而持续提升文本到图像生成性能。