1. \textbf{1. }1. 导论与背景
1.1. \textbf{1.1. }1.1. 研究背景
1️⃣两种文本相似性检索模型
类型 嵌入方式 相似度计算 单向量(SV)\text{(SV)}(SV) 对整个句子生成唯一的嵌入 MIPS\text{MIPS}MIPS算法,从一堆向量找出与qqq有最大内积的 多向量(MV)\text{(MV)}(MV) 对每个Token\text{Token}Token都生成一个嵌入 Chamfer\text{Chamfer}Chamfer相似度,也就是所谓的MaxSim\text{MaxSim}MaxSim之和 2️⃣多向量模型的问题:检索成本还是高过单向量
- 空间占用上:Token\text{Token}Token数量过多,需要大量的存储
- 计算成本上:缺乏对于Chamfer\text{Chamfer}Chamfer的优化,大多的优化只针对于MIPS\text{MIPS}MIPS而无法用在Chamfer\text{Chamfer}Chamfer上
3️⃣改进的尝试:将MV\text{MV}MV改为基于SV\text{SV}SV的MIPS\text{MIPS}MIPS流水(单向量启发式方法)
- SV\text{SV}SV阶段:每个查询Token→MIPS\text{Token}\xrightarrow{\text{MIPS}}TokenMIPS最相似的文档Token\text{Token}Token
- MV\text{MV}MV阶段:收集所有的最相似文档Token\text{Token}Token,再用原始Chamfer\text{Chamfer}Chamfer相似度得到最终评分
1.2. \textbf{1.2. }1.2. 本文工作: Muvera\textbf{: Muvera}: Muvera概述
1️⃣Chamfer\text{Chamfer}Chamfer相似度
- 相似度的定义:对查询Q/Q/Q/段落PPP的每个Token(q/p)\text{Token}(q/p)Token(q/p),相似度为Chamfer(Q,P)=∑q∈Qmaxp∈P⟨q,p⟩\displaystyle{}\text{Chamfer}(Q,P)\text{=}\sum_{q \text{∈} Q} \max _{p \text{∈} P}\langle q, p\rangleChamfer(Q,P)=q∈Q∑p∈Pmax⟨q,p⟩
- 扩展到最邻近:在P={ P(1),P(2),…,P(N)}\mathscr{P}\text{=}\left\{P^{(1)},P^{(2)},\ldots,P^{(N)}\right\}P={ P(1),P(2),…,P(N)}中找到与QQQ之间Chamfer\text{Chamfer}Chamfer相似度最高的文档P∗∈DP^{*} \text{∈} DP∗∈D
2️⃣Muvera\text{Muvera}Muvera概述
- 核心思想:将所向量压缩为单向量,原有的Chamfer\text{Chamfer}Chamfer搜索也变成MIPS\text{MIPS}MIPS搜索
- 维度压缩:特殊的映射函数{ Fque:2Rd→RdFDEFdoc:2Rd→RdFDE→\begin{cases}\mathbf{F}_{\mathrm{que}}: 2^{\mathbb{R}^{d}} \rightarrow \mathbb{R}^{d_{\mathrm{FDE}}}\\\\\mathbf{F}_{\text{doc}}: 2^{\mathbb{R}^{d}} \rightarrow \mathbb{R}^{d_{\mathrm{FDE}}}\end{cases}\text{→}⎩ ⎨ ⎧Fque:2Rd→RdFDEFdoc:2Rd→RdFDE→将多向量压缩为固定dFDEd_{\text{FDE}}dFDE维单向量编码
- 相似度计算:用内积⟨Fque(Q),Fdoc(P)⟩\left\langle\mathbf{F}_{\mathrm{que}}(Q), \mathbf{F}_{\text{doc}}(P)\right\rangle⟨Fque(Q),Fdoc(P)⟩作为原有Chamfer(Q,P)=∑q∈Qmaxp∈P⟨q,p⟩\displaystyle{}\text{Chamfer}(Q,P)\text{=}\sum_{q \text{∈} Q} \max _{p \text{∈} P}\langle q, p\rangleChamfer(Q,P)=q∈Q∑p∈Pmax⟨q,p⟩的替代
- 工作流程:
- 预处理:对所有文档进行Fdoc\mathbf{F}_{\text{doc}}Fdoc映射得到Fdoc(Pi)\mathbf{F}_{\text{doc}}(P_i)Fdoc(Pi)的固定维度编码(FDEs\text{FDEs}FDEs)
- 查询初排:对查询QQQ进行Fque\mathbf{F}_{\text{que}}Fque映射得到Fque(Q)\mathbf{F}_{\text{que}}(Q)Fque(Q),计算⟨Fque(Q),Fdoc(Pi)⟩\left\langle\mathbf{F}_{\mathrm{que}}(Q), \mathbf{F}_{\text{doc}}(P_i)\right\rangle⟨Fque(Q),Fdoc(Pi)⟩得到Top-k\text{Top-}kTop-k文档
- 查询重排:再用完整的∑q∈Qmaxp∈P⟨q,p⟩\displaystyle{}\sum_{q \in Q} \max _{p \in P}\langle q, p\rangleq∈Q∑p∈Pmax⟨q,p⟩相似度,对Top-k\text{Top-}kTop-k个文档进行重排
- 备注的点:
- Fdoc/Fque\mathbf{F}_{\text{doc}}/\mathbf{F}_{\text{que}}Fdoc/Fque是与数据分布无关,由此对不同分布的处理都有鲁棒性
- ⟨Fque(Q),Fdoc(Pi)⟩\left\langle\mathbf{F}_{\mathrm{que}}(Q), \mathbf{F}_{\text{doc}}(P_i)\right\rangle⟨Fque(Q),Fdoc(Pi)⟩求解过程在高度优化的MIPS\text{MIPS}MIPS求解器中完成
2. \textbf{2. }2. 固定维度嵌入(FDEs\textbf{FDEs}FDEs)
2.1. FDE\textbf{2.1. FDE}2.1. FDE的生成过程
![]()
1️⃣文本嵌入:对查询文本和段落文本分别应用嵌入器(如ColBERTv2\text{ColBERTv2}ColBERTv2),得到各自的多向量嵌入
- 查询嵌入QQQ:{ q1,q2,...,qm}\{q_1,q_2,...,q_m\}{ q1,q2,...,qm},其中qi⊆Rdq_i\text{⊆}\mathbb{R}^{d}qi⊆Rd即为固定ddd维
- 段落嵌入PPP:{ p1,p2,...,pn}\{p_1,p_2,...,p_n\}{ p1,p2,...,pn},其中pi⊆Rdp_i\text{⊆}\mathbb{R}^{d}pi⊆Rd即为固定ddd维
2️⃣向量分桶:用SimHash\text{SimHash}SimHash将原有空间分为2ksim2^{k_{\text{sim}}}2ksim个桶,每个桶用长为ksimk_{\text{sim}}ksim的定长二进制向量编码
- 法向抽取:从高斯分布中抽取ksim≥1k_{\text{sim}}\text{≥}1ksim≥1个向量g1,…,gksim∈Rdg_{1},\ldots,g_{k_{\text{sim}}}\text{∈}\mathbb{R}^{d}g1,…,gksim∈Rd,作为ksimk_{\text{sim}}ksim个超平面的法向量
- 空间划分:φ(x)=(1(⟨g1,x⟩>0),…,1(⟨gksim,x⟩>0))\varphi(x)\text{=}\left(\mathbf{1}\left(\left\langle{}g_{1},x\right\rangle{}\text{>}0\right),\ldots,\mathbf{1}\left(\left\langle{}g_{k_{\text{sim}}},x\right\rangle{}\text{>}0\right)\right)φ(x)=(1(⟨g1,x⟩>0),…,1(⟨gksim,x⟩>0))
- 1(⟨gi,x⟩>0)\mathbf{1}\left(\left\langle{}g_{i},x\right\rangle{}\text{>}0\right)
MUVERA全过程及理论保证解析

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



