文献分享: Muvera多向量到单向量的转化方法(Part1.导论/原理/实验)

MUVERA全过程及理论保证解析

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️⃣多向量模型的问题:检索成本还是高过单向量

  1. 空间占用上:Token\text{Token}Token数量过多,需要大量的存储
  2. 计算成本上:缺乏对于Chamfer\text{Chamfer}Chamfer的优化,大多的优化只针对于MIPS\text{MIPS}MIPS而无法用在Chamfer\text{Chamfer}Chamfer

3️⃣改进的尝试:将MV\text{MV}MV改为基于SV\text{SV}SVMIPS\text{MIPS}MIPS流水(单向量启发式方法)

  1. SV\text{SV}SV阶段:每个查询Token→MIPS\text{Token}\xrightarrow{\text{MIPS}}TokenMIPS 最相似的文档Token\text{Token}Token
  2. 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相似度

  1. 相似度的定义:对查询Q/Q/Q/段落PPP的每个Token(q/p)\text{Token}(q/p)Token(q/p),相似度为Chamfer(Q,P)=∑q∈Qmax⁡p∈P⟨q,p⟩\displaystyle{}\text{Chamfer}(Q,P)\text{=}\sum_{q \text{∈} Q} \max _{p \text{∈} P}\langle q, p\rangleChamfer(Q,P)=qQpPmaxq,p
  2. 扩展到最邻近:在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{∈} DPD

2️⃣Muvera\text{Muvera}Muvera概述

  1. 核心思想:将所向量压缩为单向量,原有的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:2RdRdFDEFdoc:2RdRdFDE将多向量压缩为固定dFDEd_{\text{FDE}}dFDE单向量编码
    • 相似度计算:用内积⟨Fque(Q),Fdoc(P)⟩\left\langle\mathbf{F}_{\mathrm{que}}(Q), \mathbf{F}_{\text{doc}}(P)\right\rangleFque(Q),Fdoc(P)作为原有Chamfer(Q,P)=∑q∈Qmax⁡p∈P⟨q,p⟩\displaystyle{}\text{Chamfer}(Q,P)\text{=}\sum_{q \text{∈} Q} \max _{p \text{∈} P}\langle q, p\rangleChamfer(Q,P)=qQpPmaxq,p的替代
  2. 工作流程:
    • 预处理:对所有文档进行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\rangleFque(Q),Fdoc(Pi)得到Top-k\text{Top-}kTop-k文档
    • 查询重排:再用完整的∑q∈Qmax⁡p∈P⟨q,p⟩\displaystyle{}\sum_{q \in Q} \max _{p \in P}\langle q, p\rangleqQpPmaxq,p相似度,对Top-k\text{Top-}kTop-k个文档进行重排
  3. 备注的点:
    • 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\rangleFque(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的生成过程

wrgehfngddn

1️⃣文本嵌入:对查询文本和段落文本分别应用嵌入器(如ColBERTv2\text{ColBERTv2}ColBERTv2),得到各自的多向量嵌入

  1. 查询嵌入QQQ{ q1,q2,...,qm}\{q_1,q_2,...,q_m\}{ q1,q2,...,qm},其中qi⊆Rdq_i\text{⊆}\mathbb{R}^{d}qiRd即为固定ddd
  2. 段落嵌入PPP{ p1,p2,...,pn}\{p_1,p_2,...,p_n\}{ p1,p2,...,pn},其中pi⊆Rdp_i\text{⊆}\mathbb{R}^{d}piRd即为固定ddd

2️⃣向量分桶:用SimHash\text{SimHash}SimHash将原有空间分为2ksim2^{k_{\text{sim}}}2ksim个桶,每个桶用长为ksimk_{\text{sim}}ksim的定长二进制向量编码

  1. 法向抽取:从高斯分布中抽取ksim≥1k_{\text{sim}}\text{≥}1ksim1个向量g1,…,gksim∈Rdg_{1},\ldots,g_{k_{\text{sim}}}\text{∈}\mathbb{R}^{d}g1,,gksimRd,作为ksimk_{\text{sim}}ksim个超平面的法向量
  2. 空间划分:φ(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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值