最大化内积搜索相关研究 (Maximum Inner Product Search, MIPS)

前言

如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

MIPS 问题即在一个向量集合 S \mathcal{S} S 中,找到一个与查询向量 q q q 内积最大的向量 z z z,即:
z = arg ⁡ max ⁡ x ∈ S x ⊤ q . z=\mathop{\arg \max}\limits _{x \in \mathcal{S}} x^\top q. z=xSargmaxxq.

这是一个非常困难的问题,本文罗列了部分与其相关的资料。


Background

首先介绍一下局部敏感哈希 (Locality Sensitive Hashing, LSH),其是一个函数族,其中的函数能使相似的元素经过映射后,有较高的碰撞概率,具体定义如下:

  • A family H \mathcal{H} H is called ( S 0 , c S 0 , p 1 , p 2 ) \left(S_0, c S_0, p_1, p_2\right) (S0,cS0,p1,p2)-sensitive if, for any two point x , y ∈ R D x, y \in \mathbb{R}^D x,yRD, h h h chosen uniformly from H \mathcal{H} H satisfies the following:
    • if Sim ⁡ ( x , y ) ≥ S 0 \operatorname{Sim}(x, y) \geq S_0 Sim(x,y)S0 then Pr ⁡ H ( h ( x ) = h ( y ) ) ≥ p 1 \operatorname{Pr}_{\mathcal{H}}(h(x)=h(y)) \geq p_1 PrH(h(x)=h(y))p1;
    • if Sim ⁡ ( x , y ) ≤ c S 0 \operatorname{Sim}(x, y) \leq c S_0 Sim(x,y)cS0 then Pr ⁡ H ( h ( x ) = h ( y ) ) ≤ p 2 \operatorname{Pr}_{\mathcal{H}}(h(x)=h(y)) \leq p_2 PrH(h(x)=h(y))p2.

其中 Sim ⁡ ( x , y ) \operatorname{Sim}(x,y) Sim(x,y) 为两个点的相似度,当 p 1 > p 2 p_1>p_2 p1>p2 c < 1 c<1 c<1 时, h ∈ H h\in \mathcal{H} hH 可以做到高效的基于 Sim ⁡ ( ⋅ , ⋅ ) \operatorname{Sim}(\cdot, \cdot) Sim(,) 度量的近似近邻查搜。

简单说就是,LSH 是一种哈希技术,其可以在某些 Sim ⁡ ( ⋅ , ⋅ ) \operatorname{Sim}(\cdot, \cdot) Sim(,) 度量上为查询向量 x x x 实现高效的查搜,例如:

L2LSH

L2LSH 是 LSH 基于欧式距离的一种实现,具体如下:

在这里插入图片描述

SRP

SRP (signed random projections) 是 LSH 基于余弦相似度的一种实现,具体如下:

  • 生成随机向量 a a a,其中 a i ∼ N ( 0 , 1 ) a_i\sim \mathcal{N}(0,1) aiN(0,1)
  • 采用如下哈希函数:
    h S i g n ( x ) = s i g n ( a ⊤ x ) = { 1  if  a ⊤ x ≥ 0 0  if  a ⊤ x < 0 , h^{Sign}(x)=sign(a^\top x)= \begin{cases}1 & \text { if } a^\top x \geq 0 \\ 0 & \text { if } a^\top x<0\end{cases}, hSign(x)=sign(ax)={10 if ax0 if ax<0,
  • 对应下述碰撞概率( 1 − cos ⁡ − 1 ( z ) 1-\cos^{-1}(z) 1cos1(z) 关于 z ∈ [ − 1 , 1 ] z\in [-1,1] z[1,1] 单调递增):
    P r ( h S i g n ( x ) = h S i g n ( y ) ) = 1 − 1 π cos ⁡ − 1 ( x T y ∥ x ∥ ∥ y ∥ ) . Pr\left(h^{Sign}(x) = h^{Sign}(y)\right)=1-\frac{1}{\pi} \cos ^{-1}\left(\frac{x^T y}{\|x\|\|y\|}\right). Pr(hSign(x)=hSign(y))=1π1cos1(x∥∥yxTy).

NIPS14 - ALSH

此篇文章首先证明了「LSH 系列无法求解 MIPS」,随后对 LSH 进行扩展,得到 ALSH (Asymmetric Locality Sensitive Hashing),其定义为:

  • A family H \mathcal{H} H, along with the two vector functions Q : R D ↦ R D ′ Q: \mathbb{R}^D \mapsto \mathbb{R}^{D^{\prime}} Q:RDRD (Query Transformation) and P : R D ↦ R D ′ P: \mathbb{R}^D \mapsto \mathbb{R}^{D^{\prime}} P:RDRD (Preprocessing Transformation), is called ( S 0 , c S 0 , p 1 , p 2 ) \left(S_0, c S_0, p_1, p_2\right) (S0,cS0,p1,p2)-sensitive if, for a given c c c-NN instance with query q q q and any x x x in the collection S \mathcal{S} S, the hash function h h h chosen uniformly from H \mathcal{H} H satisfies the following:
    • if Sim ⁡ ( q , x ) ≥ S 0 \operatorname{Sim}(q, x) \geq S_0 Sim(q,x)S0 then Pr ⁡ H ( h ( Q ( q ) ) ) = h ( P ( x ) ) ) ≥ p 1 \left.\operatorname{Pr}_{\mathcal{H}}(h(Q(q)))=h(P(x))\right) \geq p_1 PrH(h(Q(q)))=h(P(x)))p1;
    • if Sim ⁡ ( q , x ) ≤ c S 0 \operatorname{Sim}(q, x) \leq c S_0 Sim(q,x)cS0 then Pr ⁡ H ( h ( Q ( q ) ) = h ( P ( x ) ) ) ≤ p 2 \operatorname{Pr}_{\mathcal{H}}(h(Q(q))=h(P(x))) \leq p_2 PrH(h(Q(q))=h(P(x)))p2.

之后该篇文章指出若 H \mathcal{H} H 满足上述性质,则对于查询 q q q,其可以做到:

  • S \mathcal{S} S 中存在 x x x 满足 Sim ⁡ ( x , q ) ≥ S 0 \operatorname{Sim}(x,q)\geq S_0 Sim(x,q)S0,则可以高概率找到满足 Sim ⁡ ( x , q ) ≥ c S 0 \operatorname{Sim}(x,q)\geq cS_0 Sim(x,q)cS0 x x x
  • 其中每次查询所需时间为 O ( n ρ log ⁡ n ) O(n^\rho \log n) O(nρlogn),总的空间复杂度为 O ( n 1 + ρ ) O(n^{1+\rho}) O(n1+ρ) ρ = log ⁡ p 1 / log ⁡ p 2 \rho=\log p_1 / \log p_2 ρ=logp1/logp2.

随后,基于 ALSH 的定义,此篇文章将内积度量转化为了欧式距离的度量,具体如下:

  • S \mathcal{S} S 中的 x x x 通过下述转换,实现 ∥ x i ∥ 2 ≤ U < 1 \|x_i\|_2\leq U<1 xi2U<1
    S ( x ) = U M × x ; M = max ⁡ x i ∈ S ∥ x i ∥ 2 ; S(x)=\frac{U}{M} \times x ; \quad M=\max _{x_i \in \mathcal{S}}\left\|x_i\right\|_2; S(x)=MU×x;M=xiSmaxxi2;
  • 随后令 ∥ q ∥ 2 = 1 \|q\|_2=1 q2=1,由于 q q q 是查询向量,因此该假设也可通过转换实现;
  • 最后通过下述操作,将 q ⊤ x q^\top x qx 转化为了 ∥ Q ( q ) − P ( x ) ∥ \|Q(q)-P(x)\| Q(q)P(x),由此可通过之前的 L2LSH 进行查搜。

在这里插入图片描述

通过转换,MIPS 问题可以通过 L2LSH 进行解决,具体的理论保障如下:

在这里插入图片描述

在 worst case 下,每次查询时间复杂度为 O ( n ρ log ⁡ n ) O(n^\rho \log n) O(nρlogn) ρ \rho ρ 定义如下:
ρ = log ⁡ F r ( 1 + m / 4 − 2 S 0 + U 2 m + 1 ) log ⁡ F r ( 1 + m / 4 − 2 c S 0 ) . \rho=\frac{\log F_r\left(\sqrt{1+m / 4-2 S_0+U^{2^{m+1}}}\right)}{\log F_r\left(\sqrt{\left.1+m / 4-2 c S_0\right)}\right.}. ρ=logFr(1+m/42cS0) logFr(1+m/42S0+U2m+1 ).

其中 U , m , r , S 0 , c U,m,r,S_0,c U,m,r,S0,c 为超参,在实践中,一般设置 m = 3 , U = 0.83 , r = 2.5 m=3,U=0.83,r=2.5 m=3,U=0.83,r=2.5 或者令 S 0 = 0.9 U  or  0.8 U S_0=0.9U \text{ or } 0.8U S0=0.9U or 0.8U,然后对 m , U , r m,U,r m,U,r 进行网格搜索,目标是最小化 ρ \rho ρ


arXiv14 - Sign-ALSH

ALSH 通过对查询 q q q S \mathcal{S} S 中元素 x x x 采用不同的变换,实现了内积到欧式距离的转换,该篇文章采用同样的思路,但通过不同的变换形式,得到了 Sign-ALSH,实现内积到余弦相似度的转换。此篇文章从实验方面指出 Sign-ALSH 比 ALSH 更有效。

Sign-ALSH 的具体步骤如下:

  • 类似于 ALSH 中的方式,令 ∥ q ∥ 2 = 1 , ∥ x i ∥ 2 ≤ U < 1 , ∀ x i ∈ S \|q\|_2=1, \|x_i\|_2\leq U<1,\forall x_i\in \mathcal{S} q2=1,xi2U<1,xiS,
  • 定义两个向量映射函数, P : R D ↦ R D + m P: \mathbb{R}^D \mapsto \mathbb{R}^{D+m} P:RDRD+m Q : R D ↦ R D + m Q: \mathbb{R}^D \mapsto \mathbb{R}^{D+m} Q:RDRD+m
    P ( x ) = [ x ; 1 / 2 − ∥ x ∥ 2 2 ; 1 / 2 − ∥ x ∥ 2 4 ; … ; 1 / 2 − ∥ x ∥ 2 2 m ] , Q ( x ) = [ x ; 0 ; 0 ; … ; 0 ] , \begin{aligned} & P(x)=\left[x ; 1 / 2-\|x\|_2^2 ; 1 / 2-\|x\|_2^4 ; \ldots ; 1 / 2-\|x\|_2^{2^m}\right], \\ & Q(x)=[x ; 0 ; 0 ; \ldots ; 0], \end{aligned} P(x)=[x;1/2x22;1/2x24;;1/2x22m],Q(x)=[x;0;0;;0],
  • 根据上述映射,可以得到下述等式:
    Q ( q ) T P ( x i ) ∥ Q ( q ) ∥ 2 ∥ P ( x i ) ∥ 2 = q T x i m / 4 + ∥ x i ∥ 2 2 m + 1 , \frac{Q(q)^T P\left(x_i\right)}{\|Q(q)\|_2\left\|P\left(x_i\right)\right\|_2}=\frac{q^T x_i}{\sqrt{m / 4+\left\|x_i\right\|_2^{2^{m+1}}}}, Q(q)2P(xi)2Q(q)TP(xi)=m/4+xi22m+1 qTxi,
  • 由于 ∥ x i ∥ 2 m + 1 → 0 \|x_i\|^{2^{m+1}}\rightarrow 0 xi2m+10,可得到下述近似结果,完成内积到余弦相似度的转换:
    arg ⁡ max ⁡ x ∈ S q T x ≃ arg ⁡ max ⁡ x ∈ S Q ( q ) T P ( x i ) ∥ Q ( q ) ∥ 2 ∥ P ( x i ) ∥ 2 . \mathop{\arg \max}\limits_{x \in \mathcal{S}} q^T x \simeq \mathop{\arg \max}\limits_{x \in \mathcal{S}} \frac{Q(q)^T P\left(x_i\right)}{\|Q(q)\|_2\left\|P\left(x_i\right)\right\|_2}. xSargmaxqTxxSargmaxQ(q)2P(xi)2Q(q)TP(xi).

对应的理论保障如下:

在这里插入图片描述
文中推荐超参为 ( m , U ) = ( 2 , 0.75 ) (m,U)=(2,0.75) (m,U)=(2,0.75) ( m , U ) = ( 3 , 0.85 ) (m,U)=(3,0.85) (m,U)=(3,0.85)。在实践中,可以生成 L L L 个哈希表,每个哈希表中使用 K K K 组随机投影的哈希函数,将原始维度降为 K K K 维,若 K K K 维均相同,则实现匹配,再将 L L L 个哈希表中所有匹配上的元素集合在一起。此处的 K K K 越大,识别的准确率越高, L L L 越大,识别的召回率越高。


ICCV15 - AIBC

上述两种哈希方法均与数据集无关,即属于 data-independent methods,而本文将给出一种 data-dependent methods,整体思想是根据训练集,学习一种非对称的映射方式。

假设有两组数据, A = [ a 1 , a 2 , . . . , a n ] \mathbf{A}=[\mathbf{a}_1,\mathbf{a}_2,...,\mathbf{a}_n] A=[a1,a2,...,an] X = [ x 1 , x 2 , . . . , x m ] \mathbf{X}=[\mathbf{x}_1,\mathbf{x}_2,...,\mathbf{x}_m] X=[x1,x2,...,xm],其中 a i ∈ R d × 1 \mathbf{a}_i\in \mathbb{R}^{d\times 1} aiRd×1 x i ∈ R d × 1 \mathbf{x}_i\in \mathbb{R}^{d\times 1} xiRd×1。另外,有相似度矩阵 S ∈ R n × m \mathbf{S}\in \mathbb{R}^{n\times m} SRn×m,其中 S i j \mathbf{S}_{ij} Sij 表示 a i \mathbf{a}_i ai x j \mathbf{x}_j xj 之间的相似度。

目标是学出哈希映射 h ( x ) = sgn ⁡ ( W ⊤ x ) h(\mathbf{x})=\operatorname{sgn}(\mathbf{W}^\top \mathbf{x}) h(x)=sgn(Wx) z ( x ) = sgn ⁡ ( R ⊤ x ) z(\mathbf{x})=\operatorname{sgn}(\mathbf{R}^\top \mathbf{x}) z(x)=sgn(Rx),可以将原始输入映射成二进制码,其中 W , R ∈ R d × r \mathbf{W},\mathbf{R}\in \mathbb{R}^{d\times r} W,RRd×r,具体优化过程如下:
min ⁡ W , R ∥ sgn ⁡ ( W ⊤ A ) ⊤ sgn ⁡ ( R ⊤ X ) − S ∥ 2 . \min _{\mathbf{W}, \mathbf{R}}\left\|\operatorname{sgn}\left(\mathbf{W}^{\top} \mathbf{A}\right)^{\top} \operatorname{sgn}\left(\mathbf{R}^{\top} \mathbf{X}\right)-\mathbf{S}\right\|^2. W,Rmin sgn(WA)sgn(RX)S 2.

上述优化问题难以求解,因为本文采用了交替优化,即固定 R \mathbf{R} R W \mathbf{W} W,或固定 W \mathbf{W} W R \mathbf{R} R,以前者为例(后者同理),令 sgn ⁡ ( R ⊤ X ) = Z \operatorname{sgn}\left(\mathbf{R}^{\top} \mathbf{X}\right)=\mathbf{Z} sgn(RX)=Z,得到:
min ⁡ W ∥ sgn ⁡ ( W ⊤ A ) ⊤ Z − S ∥ 2 . \min _{\mathbf{W}}\left\|\operatorname{sgn}\left(\mathbf{W}^{\top} \mathbf{A}\right)^{\top} \mathbf{Z}-\mathbf{S}\right\|^2. Wmin sgn(WA)ZS 2.

该问题依然难以求解,因此引入矩阵 B \mathbf{B} B,上述问题转化为:
min ⁡ B , W ∥ B ⊤ Z − S ∥ 2 + λ ∥ B − W ⊤ A ∥ 2  s.t.  B ∈ { − 1 , 1 } r × n \begin{aligned} & \min _{\mathbf{B}, \mathbf{W}}\left\|\mathbf{B}^{\top} \mathbf{Z}-\mathbf{S}\right\|^2+\lambda\left\|\mathbf{B}-\mathbf{W}^{\top} \mathbf{A}\right\|^2 \\ & \text { s.t. } \quad \mathbf{B} \in\{-1,1\}^{r \times n} \end{aligned} B,Wmin BZS 2+λ BWA 2 s.t. B{1,1}r×n

问题依然难以求解,继续采用交替优化,固定 B \mathbf{B} B W = ( A A ⊤ ) − 1 A B ⊤ \mathbf{W}=\left(\mathbf{A A}^{\top}\right)^{-1} \mathbf{A} \mathbf{B}^{\top} W=(AA)1AB;固定 W \mathbf{W} W,优化问题为:
min ⁡ B ∥ B ⊤ Z ∥ 2 − 2 trace ⁡ ( B ⊤ D )  s.t.  B ∈ { − 1 , 1 } r × n \begin{aligned} & \min _{\mathbf{B}}\left\|\mathbf{B}^{\top} \mathbf{Z}\right\|^2-2 \operatorname{trace}\left(\mathbf{B}^{\top} \mathbf{D}\right) \\ & \text { s.t. } \quad \mathbf{B} \in\{-1,1\}^{r \times n} \end{aligned} Bmin BZ 22trace(BD) s.t. B{1,1}r×n

其中 D = Z S ⊤ + λ W ⊤ A \mathbf{D}=\mathbf{Z} \mathbf{S}^{\top}+\lambda \mathbf{W}^{\top} \mathbf{A} D=ZS+λWA。此时问题仍然无法直接求解,因此继续交替优化,每次求解 B \mathbf{B} B 中一行,固定其它 r − 1 r-1 r1 行,此时问题可以高效求解。

该篇文章整体思路如上所示,具体细节可参照原文


ICML16 - Learning and Inference via MIPS

本文指出了一种较 Sign-ALSH 更为简单的构造,即 Simple-LSH [ICML15 - Behnam Neyshabur],同样假设向量集合中的 x x x 满足 ∥ x ∥ 2 ≤ 1 \|x\|^2\leq 1 x21,查询向量 q q q 满足 ∥ q ∥ = 1 \|q\|=1 q=1,令 P ( x ) = ( x , 1 − ∥ x ∥ 2 ) P(x)=(x,\sqrt{1-\|x\|^2}) P(x)=(x,1x2 ) Q ( q ) = ( q , 0 ) Q(q)=(q,0) Q(q)=(q,0),可以得到:
P ( x ) ⊤ Q ( q ) ∥ P ( x ) ∥ ∥ Q ( q ) ∥ = x ⊤ q , \frac{P(x)^\top Q(q)}{\|P(x)\|\|Q(q)\|}=x^\top q, P(x)∥∥Q(q)P(x)Q(q)=xq,

实现 MIPS 到 MCSS (Maximum Cosine Similarity Search) 的等价转换。但本文的主要目的并不是求解 MIPS,而是借用 MIPS 的求解来加速 Log-Linear 模型的学习和推理过程,即 MIPS 的应用。不过本文介绍了 Gumbel Variables 技术,虽然与 MIPS 无关,但感觉很有趣,便在此顺带记录一下。

Gumbel Variables

一个 Gumbel 随机变量 G G G 是一个连续随机变量,其累计分布函数 (Cumulative Distribution Function, CDF) 为:
P ( G < x ) = exp ⁡ ( − exp ⁡ ( − x − μ β ) ) . P(G<x)=\exp(-\exp(-\frac{x-\mu}{\beta})). P(G<x)=exp(exp(βxμ)).

该篇文章取 μ = 0 , β = 1 \mu=0,\beta=1 μ=0,β=1。从 Gumbel 分布中采样的方式为:从 [ 0 , 1 ] [0,1] [0,1] 区间中均匀采样 U U U,有次得到 Gumbel 随机变量 G G G 的采样值:
G = − log ⁡ ( − log ⁡ ( U ) ) . G=-\log (-\log (U)). G=log(log(U)).

Gumbel 随机变量可以将一个优化问题转化为一个采样问题,具体来说,令 { a i } \{a_i\} {ai} 为一组系数, { G i } \{G_i\} {Gi} G G G 为独立的 Gumbel 随机变量,则有如下两条性质:
max ⁡ i { a i + G i } ∼ log ⁡ ( ∑ i e a i ) + G , argmax ⁡ i { a i + G i } ∼ Multinomial ⁡ ( { e a i ∑ i e a i } ) . \begin{gathered} \max _i\left\{a_i+G_i\right\} \sim \log \left(\sum_i e^{a_i}\right)+G, \\ \underset{i}{\operatorname{argmax}}\left\{a_i+G_i\right\} \sim \operatorname{Multinomial}\left(\left\{\frac{e^{a_i}}{\sum_i e^{a_i}}\right\}\right). \end{gathered} imax{ai+Gi}log(ieai)+G,iargmax{ai+Gi}Multinomial({ieaieai}).

简单说,上述两条性质的「左边」对应一个优化问题,其最优解服从「右边」对应的分布,因此可以将求解「左边」这个优化问题的过程,转化为在「右边」这个分布里采样的过程。


KDD18 - H2-ALSH

此篇文章在 Preliminaries 部分介绍了另外一种将 MIPS 转为欧式距离的方式,即 XBOX 变换。具体来说,令 M = max ⁡ o ∈ D ∥ o ∥ M=\max_{o\in D}\|o\| M=maxoDo P ( o ) = [ o ; M 2 − ∥ o ∥ 2 ] P(o)=[o;\sqrt{M^2-\|o\|^2}] P(o)=[o;M2o2 ] Q ( q ) = [ q ; 0 ] Q(q)=[q;0] Q(q)=[q;0],可以得到:
∥ Q ( q ) − P ( o ) ∥ 2 = ∥ q ∥ 2 + M 2 − 2 o ⊤ q , \|Q(q)-P(o)\|^2=\|q\|^2+M^2-2o^\top q, Q(q)P(o)2=q2+M22oq,

是一种无损的变换。我们的核心目标是 c c c-Approximate MIP search ( c c c-AMIP search),即给定一个近似比例 c c c ( 0 < c < 1 ) (0<c<1) (0<c<1) 以及一个查询 q q q,希望找到 o ∈ D o\in D oD 满足 o ⊤ q ≥ c ( o ∗ ) ⊤ q o^\top q\geq c(o^*)^\top q oqc(o)q,其中 o ∗ o^* o 为最优解。

此篇文章指出 XBOX 转换的缺陷,即对于某些 ∥ q ∥ \|q\| q 来说,经过转换,大部分的 P ( o ) P(o) P(o) 都将距离 Q ( q ) Q(q) Q(q) 非常近,进而产生较大误差。以下图为例:

在这里插入图片描述
o 2 o_2 o2 原本距 q 1 q_1 q1 o 1 o_1 o1 近不少,但经过转换后, P ( o 2 ) P(o_2) P(o2) Q ( q 1 ) Q(q_1) Q(q1) 的距离和 P ( o 1 ) P(o_1) P(o1) 非常接近,即转换后产生失真误差。

本文指出使用 QNF 变换,可以降低上述失真误差,即:
P ( o ) = [ o 1 , o 2 , … , o d ; M 2 − ∥ o ∥ 2 ] , Q ( q ) = [ λ q 1 , λ q 2 , … , λ q d ; 0 ] ,  where  λ = M ∥ q ∥ , ∥ Q ( q ) − P ( o ) ∥ 2 = M 2 + λ 2 ∥ q ∥ 2 − 2 λ o ⊤ q . \begin{gathered} P(o)=\left[o_1, o_2, \ldots, o_d ; \sqrt{M^2-\|o\|^2}\right], \\ Q(q)=\left[\lambda q_1, \lambda q_2, \ldots, \lambda q_d ; 0\right], \text { where } \lambda=\frac{M}{\|q\|},\\ \|Q(q)-P(o)\|^2=M^2+\lambda^2\|q\|^2-2 \lambda o^\top q. \end{gathered} P(o)=[o1,o2,,od;M2o2 ],Q(q)=[λq1,λq2,,λqd;0], where λ=qM,Q(q)P(o)2=M2+λ2q22λoq.

依旧为无损转换,且 q q q o o o 均被映射至圆上,可以缓解 XBOX 转换的问题,如下所示:

在这里插入图片描述
由于 o ⊤ q = ∥ o ∥ ∥ q ∥ cos ⁡ β o^\top q=\|o\|\|q\| \cos \beta oq=o∥∥qcosβ,因此本文先对 ∥ o ∥ \|o\| o 做了一个分组,然后在每个分组中再将内积转成欧式距离,使用 QALSH 方法建立哈希表进行查搜。

下述是构建过程,即将 n n n 个元素按照 ∥ o ∥ \|o\| o 分成 K K K 组:

在这里插入图片描述
在具体查搜时,先从 S 1 S_1 S1 开始查,其中 b M 1 < ∥ o ∥ ≤ M 1 bM_1< \|o\|\leq M_1 bM1<oM1,在其中根据 QALSH 进行查搜,记录最优值 o m i p o_{mip} omip;若 o m i p > M 2 ∥ q ∥ o_{mip}>M_2\|q\| omip>M2q,则搜索结束,否则进入 S 2 S_2 S2,整个过程循环下去。


NeurIPS18 - Norm-Ranging LSH

该篇文章与 H2-ALSH 的思想非常相似,即按照集合元素的 norm ∥ x ∥ \|x\| x 进行分组,然后在组内用 Simple-LSH 建立索引,具体查搜过程如下:
在这里插入图片描述
在这里插入图片描述


ICML19 - Sample MIPS

本篇文章在相关工作部分介绍了 Greedy-MIPS,其有下述假设:
q ⊤ x j > q ⊤ x i ⇔ max ⁡ t = 1 , … , d q t x j t > max ⁡ t = 1 , … , d q t x i t , \boldsymbol{q}^\top \boldsymbol{x}_j>\boldsymbol{q}^\top \boldsymbol{x}_i \Leftrightarrow \max _{t=1, \ldots, d} q_t x_{j t}>\max _{t=1, \ldots, d} q_t x_{i t}, qxj>qxit=1,,dmaxqtxjt>t=1,,dmaxqtxit,

即内积最大的向量,在内积求和时,最大的分量依然是最大的。这个假设很强,因为有了这个假设后,找内积最大的向量,就变成对每一个维度,找一个乘机最大的分量,难度瞬间下降。实际操作中,一般是枚举每一个维度,每一个维度找出乘机最大的前 k k k 个,再在所有挑出来的向量中找一个内积最大的,作为结果输出。本篇文章称该方法实际效果不错,故再次记录一下。

回归正题,本篇文章将「找 MIPS 最大向量」转化为了一个采样问题,其定义如下概率:
P ( j ∣ q ) ∝ q ⊤ x j , P ( j , t ∣ q ) ∝ q t x j t . \begin{gathered} P(j \mid \boldsymbol{q}) \propto \boldsymbol{q}^\top \boldsymbol{x}_j, \\ P(j,t\mid \boldsymbol{q})\propto q_tx_{jt}. \\ \end{gathered} P(jq)qxj,P(j,tq)qtxjt.

由此可以得到:
P ( t ∣ q ) = ∑ j = 1 n P ( j , t ∣ q ) ∝ ∑ j = 1 n q t x j t = q t s t , P ( j ∣ t , q ) = P ( j , t ∣ q ) P ( t ∣ q ) ∝ q t x j t ∑ j = 1 n q t x j t = x j t ∑ j = 1 n x j t = x j t s t . \begin{aligned} P(t \mid \boldsymbol{q}) & =\sum_{j=1}^n P(j, t \mid \boldsymbol{q}) \propto \sum_{j=1}^n q_t x_{j t}=q_t s_t, \\ P(j \mid t, \boldsymbol{q}) & =\frac{P(j, t \mid \boldsymbol{q})}{P(t \mid \boldsymbol{q})} \\ & \propto \frac{q_t x_{j t}}{\sum_{j=1}^n q_t x_{j t}}=\frac{x_{j t}}{\sum_{j=1}^n x_{j t}}=\frac{x_{j t}}{s_t} . \end{aligned} P(tq)P(jt,q)=j=1nP(j,tq)j=1nqtxjt=qtst,=P(tq)P(j,tq)j=1nqtxjtqtxjt=j=1nxjtxjt=stxjt.

又因为 P ( j ∣ q ) = ∑ t = 1 d P ( t ∣ q ) P ( j ∣ t , q ) P(j \mid \boldsymbol{q})=\sum_{t=1}^d P(t\mid \boldsymbol{q})P(j\mid t,\boldsymbol{q}) P(jq)=t=1dP(tq)P(jt,q),以及 P ( j ∣ t , q ) P(j\mid t,\boldsymbol{q}) P(jt,q) 数值与 q \boldsymbol{q} q 无关,即对 P ( j ∣ q ) P(j \mid \boldsymbol{q}) P(jq) 的采样可以转化为两步:

  • 根据 q \boldsymbol{q} q P ( t ∣ q ) P(t\mid \boldsymbol{q}) P(tq) 采样 t t t,时间复杂度为 O ( d ) O(d) O(d)
  • 根据 t t t P ( j ∣ t , q ) P(j\mid t,\boldsymbol{q}) P(jt,q) 采样 j j j,与 q \boldsymbol{q} q 无关,可事先预处理,每次查询的时间复杂度为 O ( 1 ) O(1) O(1)

上述过程将 O ( n d ) O(nd) O(nd) 的暴力搜索转化为了 O ( B d ) O(Bd) O(Bd) B B B 为采样次数),实现了对 MIPS 问题的高效求解。

由于 q \boldsymbol{q} q x \boldsymbol{x} x 中元素可能有负数,因此文中给出了一种针对负数的解决方案,令:
P ( j ∣ q ) ∝ ∑ t = 1 d ∣ q t x j t ∣ , P ( j ∣ t , q ) ∝ ∣ q t x j t ∣ . \begin{gathered} P(j \mid \boldsymbol{q}) \propto \sum_{t=1}^d |q_t x_{j t}|, \\ P(j \mid t, \boldsymbol{q}) \propto |q_t x_{j t}|. \end{gathered} P(jq)t=1dqtxjt,P(jt,q)qtxjt∣.

由此得到:
P ( t ∣ q ) ∝ ∑ j = 1 n ∣ q t x j t ∣ , P ( j ∣ t , q ) ∝ ∣ x j t ∣ ∑ j = 1 n ∣ x j t ∣ . \begin{gathered} P(t \mid \boldsymbol{q}) \propto \sum_{j=1}^n |q_t x_{j t}|, \\ P(j \mid t, \boldsymbol{q}) \propto \frac{|x_{j t}|}{\sum_{j=1}^n |x_{j t}|}. \end{gathered} P(tq)j=1nqtxjt,P(jt,q)j=1nxjtxjt.

根据 P ( t ∣ q ) P(t \mid \boldsymbol{q}) P(tq) P ( j ∣ t , q ) P(j \mid t, \boldsymbol{q}) P(jt,q) 采样 B B B 次,得到 B B B ( j , t ) (j,t) (j,t) 对, sgn ⁡ ( q t x j t ) \operatorname{sgn}(q_t x_{jt}) sgn(qtxjt) 之和越大,选中 x j \boldsymbol{x}_j xj 的概率越大。

在理论保障方面,文中在 Lemma1 处证明了:
E [ z j b ] = q ⊤ x j S , E [ z j ] = B ⋅ E [ z j b ] , \begin{gathered} \mathbb{E}[z_{jb}] = \frac{\boldsymbol{q}^\top \boldsymbol{x}_j}{S}, \\ \mathbb{E}[z_j] = B\cdot \mathbb{E}[z_{jb}], \\ \end{gathered} E[zjb]=Sqxj,E[zj]=BE[zjb],

其中 z j b = sgn ⁡ ( q t x j t ) z_{jb}=\operatorname{sgn}(q_tx_{jt}) zjb=sgn(qtxjt) z j = ∑ b = 1 B x j b z_j=\sum_{b=1}^B x_{jb} zj=b=1Bxjb S = ∑ t = 1 d ∑ j = 1 n ∣ q t x j t ∣ S=\sum_{t=1}^d\sum_{j=1}^n|q_t x_{jt}| S=t=1dj=1nqtxjt


参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gene_INNOCENT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值