详细的理论证明,包含了所有细节
文章目录
- 1. MUVERA \textbf{1. MUVERA} 1. MUVERA的全过程
- 2. \textbf{2. } 2. 定理 2.1 \textbf{2.1} 2.1证明的思路
-
- 2.0. \textbf{2.0. } 2.0. 定理 2.1 \textbf{2.1} 2.1的主要内容
- 2.1. \textbf{2.1. } 2.1. 无投影无重复时 FDE \textbf{FDE} FDE相似度的上界
- 2.2. \textbf{2.2. } 2.2. 加上一定维度的投影后原上界近似成立
- 2.3. \textbf{2.3. } 2.3. 已给出无重复 FDE \textbf{FDE} FDE上界👉还需证明什么才能给出无重复 FDE \textbf{FDE} FDE的上下界
- 2.4. \textbf{2.4. } 2.4. 无投影无重复时 FDE \textbf{FDE} FDE相似度的子下界
- 2.5. \textbf{2.5. } 2.5. 加上一定维度的投影后原子下界近似成立
- 3. \textbf{3. } 3. 定理 2.2 \textbf{2.2} 2.2证明的思路
1. MUVERA \textbf{1. MUVERA} 1. MUVERA的全过程
![]()
1️⃣文本嵌入:对查询文本和段落文本分别应用嵌入器(如 ColBERTv2 \text{ColBERTv2} ColBERTv2),得到各自的多向量嵌入
- 查询嵌入 Q Q Q: { q 1 , q 2 , . . . , q m } \{q_1,q_2,...,q_m\} { q1,q2,...,qm},其中 q i ⊆ R d q_i\text{⊆}\mathbb{R}^{d} qi⊆Rd即为固定 d d d维
- 段落嵌入 P P P: { p 1 , p 2 , . . . , p n } \{p_1,p_2,...,p_n\} { p1,p2,...,pn},其中 p i ⊆ R d p_i\text{⊆}\mathbb{R}^{d} pi⊆Rd即为固定 d d d维
2️⃣向量分桶:用 SimHash \text{SimHash} SimHash将原有空间分为 2 k sim 2^{k_{\text{sim}}} 2ksim个桶,每个桶用长为 k sim k_{\text{sim}} ksim的定长二进制向量编码
- 法向抽取:从高斯分布中抽取 k sim ≥ 1 k_{\text{sim}}\text{≥}1 ksim≥1个向量 g 1 , … , g k sim ∈ R d g_{1},\ldots,g_{k_{\text{sim}}}\text{∈}\mathbb{R}^{d} g1,…,gksim∈Rd,作为 k sim k_{\text{sim}} ksim个超平面的法向量
- 空间划分: φ ( x ) = ( 1 ( ⟨ g 1 , x ⟩ > 0 ) , … , 1 ( ⟨ g k sim , 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 ( ⟨ g i , x ⟩ > 0 ) \mathbf{1}\left(\left\langle{}g_{i},x\right\rangle{}\text{>}0\right) 1(⟨gi,x⟩>0):当 ⟨ g i , x ⟩ > 0 \langle{}g_{i},x\rangle{}\text{>}0 ⟨gi,x⟩>0成立(即 x x x投影在超平面 g i g_i gi的正侧)时,将该位设为 1 1 1
- 向量分桶:让所有的 m + n m\text{+}n m+n个嵌入通过 φ ( ⋅ ) \varphi(\cdot) φ(⋅)得到长 k sim k_{\text{sim}} ksim的二进制编码,相同编码者(即桶编码)放入同一桶
3️⃣向量生成:按照如下三种情况,为每个桶 k k k都生成一个子向量 q ⃗ ( k ) , p ⃗ ( k ) ⊆ R d \vec{q}_{(k)},\vec{p}_{(k)}\text{⊆}\mathbb{R}^{d} q(k),p(k)⊆Rd
Case \textbf{Case} Case 桶 k \boldsymbol{k} k的情况 桶 k \boldsymbol{k} k子向量 q ⃗ ( k ) \boldsymbol{\vec{q}_{(k)}} q(k) 桶 k \boldsymbol{k} k子向量 p ⃗ ( k ) \boldsymbol{\vec{p}_{(k)}} p(k) Case-0 \text{Case-0} Case-0 无 p i → { q 1 , q 2 , . . . ∣ } p_i\text{→}\{q_1,q_2,...\mid{}\} pi→{ q1,q2,...∣} q ⃗ ( k ) = ∑ q i \displaystyle{}\vec{q}_{(k)}=\sum{}q_i q(k)=∑qi p ⃗ ( k ) = \displaystyle{}\vec{p}_{(k)}= p(k)=与该桶海明距离最近的 p p p Case-1 \text{Case-1} Case-1 单 p i → { q 1 , q 2 , . . . ∣ p } p_i\text{→}\{q_1,q_2,...\mid{}p\} pi→{ q1,q2,...∣p} q ⃗ ( k ) = ∑ q i \displaystyle{}\vec{q}_{(k)}=\sum{}q_i q(k)=∑qi p ⃗ ( k ) = p \displaystyle{}\vec{p}_{(k)}=p p(k)=p Case-n \text{Case-n} Case-n 多 p i → { q 1 , q 2 , . . . ∣ p 1 , p 2 , . . . } p_i\text{→}\{q_1,q_2,...\mid{}p_1,p_2,...\} pi→{ q1,q2,...∣p1,p2,...} q ⃗ ( k ) = ∑ q i \displaystyle{}\vec{q}_{(k)}=\sum{}q_i q(k)=∑qi p ⃗ ( k ) = 1 # p ∑ p j \displaystyle{}\vec{p}_{(k)}=\cfrac{1}{\#p}\sum{}p_j p(k)=#p1∑pj( p p p的质心) 4️⃣向量压缩:对每个 q ⃗ ( k ) , p ⃗ ( k ) ⊆ R d \vec{q}_{(k)},\vec{p}_{(k)}\text{⊆}\mathbb{R}^{d} q(k),p(k)⊆Rd应用随机线性投影 ψ : R d → R d proj ( d proj ≤ d ) \psi\text{:}\mathbb{R}^{d}\text{→}\mathbb{R}^{d_{\text{proj}}}(d_{\text{proj}}\text{≤}d) ψ:Rd→Rdproj(dproj≤d)
- 投影函数: ψ ( x ) = ( 1 d proj ) S x \boldsymbol{\psi}(x)\text{=}\left(\cfrac{1}{\sqrt{d_{\text{proj}}}}\right)\mathbf{S}x ψ(x)=(dproj1)Sx,其中 S ∈ R d proj × d \mathbf{S}\text{∈}\mathbb{R}^{d_{\text{proj}}\text{×}d} S∈Rdproj×d为随机矩阵
- 当 d proj = d d_{\text{proj}}\text{=}d dproj=d时 S \mathbf{S} S的每个元素 s i j = 1 s_{ij}\text{=}1 sij=1,即 ψ ( x ) = x \boldsymbol{\psi}(x)\text{=}x ψ(x)=x
- 当 d proj < d d_{\text{proj}}\text{<}d dproj<d时 S \mathbf{S} S的每个元素 s i j s_{ij} sij满足离散均匀分布 P r [ s i j = 1 ] = P r [ s i j =– 1 ] = 1 2 \mathbb{Pr}\left[s_{ij}\text{=}1\right]\text{=}\mathbb{Pr}\left[s_{ij}\text{=}–1\right]\text{=}\cfrac{1}{2} Pr[sij=1]=Pr[sij=–1]=21
- 投影操作: { q ⃗ ( k ) , ψ ⊆ R d proj ← ψ ( q ⃗ ( k ) ) q ⃗ ( k ) ⊆ R d p ⃗ ( k ) , ψ ⊆ R d proj ← ψ ( p ⃗ ( k ) ) p ⃗ ( k ) ⊆ R d \begin{cases}\vec{q}_{(k),\psi}\text{⊆}\mathbb{R}^{d_{\text{proj}}}\xleftarrow{\psi\left(\vec{q}_{(k)}\right)}\vec{q}_{(k)}\text{⊆}\mathbb{R}^{d}\\\\\vec{p}_{(k),\psi}\text{⊆}\mathbb{R}^{d_{\text{proj}}}\xleftarrow{\psi\left(\vec{p}_{(k)}\right)}\vec{p}_{(k)}\text{⊆}\mathbb{R}^{d}\end{cases} ⎩ ⎨ ⎧q(k),ψ⊆Rdprojψ(q(k))q(k)⊆Rdp(k),ψ⊆Rdprojψ(p(k))p(k)⊆Rd
- 合并操作:将每个桶的压缩向量依次从左到右合并 → { q ⃗ ψ = ( q ⃗ ( 1 ) , ψ , … , q ⃗ ( B ) , ψ ) ⊆ R d proj 2 k s i m p ⃗ ψ = ( p ⃗ ( 1 ) , ψ , … , p ⃗ ( B ) , ψ ) ⊆ R d proj 2 k s i m \text{→}\begin{cases}\vec{q}_{\psi}\text{=}\left(\vec{q}_{(1),\psi},\ldots,\vec{q}_{(B),\psi}\right)\text{⊆}\mathbb{R}^{d_{\text{proj}}2^{k_{sim}}}\\\\\vec{p}_{\psi}\text{=}\left(\vec{p}_{(1),\psi},\ldots,\vec{p}_{(B),\psi}\right)\text{⊆}\mathbb{R}^{d_{\text{proj}}2^{k_{sim}}}\end{cases} →⎩ ⎨ ⎧qψ=(q(1),ψ,…,q(B),ψ)⊆Rdproj2ksimpψ=(p(1),ψ,…,p(B),ψ)⊆Rdproj2ksim
5️⃣重复生成:重复2️⃣ → \text{→} →4️⃣过程 R reps R_{\text{reps}} Rreps次,每次重复完成后生成 q ⃗ i , ψ , p ⃗ i , ψ \vec{q}_{i,\psi},\vec{p}_{i,\psi} qi,ψ,pi,ψ,拼接所有 q ⃗ i , ψ , p ⃗ i , ψ \vec{q}_{i,\psi},\vec{p}_{i,\psi} qi,ψ,pi,ψ
- Q Q Q最终生成的单向量: F q u e ( Q ) = ( q ⃗ 1 , ψ , … , q ⃗ R reps , ψ ) ⊆ R d proj 2 k s i m R reps \mathbf{F}_{\mathrm{que}}(Q)\text{=}\left(\vec{q}_{1,\psi},\ldots,\vec{q}_{R_{\text{reps}},\psi}\right)\text{⊆}\mathbb{R}^{d_{\text{proj}}2^{k_{sim}}R_{\text{reps}}} Fque(Q)=(q1,ψ,…,qRreps,ψ)⊆Rdproj2ksimRreps
- P P P最终生成的单向量: F d o c ( P ) = ( p ⃗ 1 , ψ , … , p ⃗ R reps , ψ ) ⊆ R d proj 2 k s i m R reps \mathbf{F}_{\mathrm{doc}}(P)\text{=}\left(\vec{p}_{1,\psi},\ldots,\vec{p}_{R_{\text{reps}},\psi}\right)\text{⊆}\mathbb{R}^{d_{\text{proj}}2^{k_{sim}}R_{\text{reps}}} Fdoc(P)=(p1,ψ,…,pRreps,ψ)⊆Rdproj2ksimRreps
6️⃣相似度:和但向量模型一样,就是二者的内积 ⟨ F q u e ( Q ) , F d o c ( P ) ⟩ \left\langle{\mathbf{F}_{\mathrm{que}}(Q),\mathbf{F}_{\mathrm{doc}}(P)}\right\rangle ⟨Fque(Q),Fdoc(P)⟩

最低0.47元/天 解锁文章
552

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



