原始LSH算法详解_第1页
原始LSH算法详解_第2页
原始LSH算法详解_第3页
原始LSH算法详解_第4页
原始LSH算法详解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Similarity Search in High Dimension via HashingLSH 算法:1、算法思想:将高维空间中的元素视为点并赋以坐标值,坐标值为正整数。通过一族哈希函数,将空间所有点映射到n个哈希表7中,n=|、厂i|,即每个哈希函数fc J对应一个哈希表,每个哈希表都存放着 空间所有的点。对于给定的查询子q,分别计算f (q)、f (q)、12f (q),f U i=l,2,n。以所有f (q)落入的哈希表7中niii的桶中所有点作为候选集,比较其与 q 之间的距离,选出距离最 近的K个点(K-NNS)。2、算法步骤(1)预处理:对于任意一点p c P,P为d维空间。

2、设p = x , x ,,x ,将1 2 d空间P映射到d维Hamming空间兀/,映射方法如下:p T pc P ,p二Unary (x ) Unary (x ) Unary (x )c 1c 2c d其中Unary (x )表示x个1紧跟C-x个0,C表示空间P中任意c iii点 p 坐标的最大值。这种映射是保距的,即v p,qc P, d (p,q) = d (p,q)。其中d表1 H 1示定义在空间P上l准则下的欧几里得距离,d表示定义在九/1H空间下的Hamming距离。因此原问题 找岀空间P中与查询子 q距离最近的K个点转化为在九/空间中的f -NNS问题。在 算法实现中,并没有显

3、式将p转化为P,而是用别的计算方法利 用了这种转化,使算法易于描述并且实现的时空效率高。下面定 义哈希函数的过程中,p代表了原始点的向量形式(即P ),即不 会区分p与P。(2)定义哈希函数族:定义I二1,2,,d,定义正整数l,取l个I的子集, 分别记为I, I,I。定义p|I为向量p在坐标集I上的投 1 2 l影,即以坐标集I中每个坐标为位置索引,取向量p对应位置的 比特值并将结果串联起来。比如I二1,5,7,8, p =110010001110(对应原始点 p二2,1,3,d=3,C=4),则 p|I=1100。记g (p) =p|I, j我们将空间P中的所有点利用哈希函数族g (P)都

4、存入哈希表的 j哈希桶中。哈希族的形式如下图所示:T1g () =11i1g (p )1lig (P )12 ig (P)1kJTg () = 11g (p )g (P ) g (P )22 22li22 i2 k2iTg () = 1 Ig (P )g (P ) g (P )3333li32 i3勺*Tg () = 11g (P )g(P )g (P )iIIllil2 ilkli表1表中有1个哈希表,第i个哈希表有k个哈希桶,即第i个哈希表i将空间P中的点映射到了 k个不同位置。因此表中共有 k个哈 iii=1希桶。因为哈希桶的数量可能会很大,因此采用第二层哈希,利用标准 哈希函数将所有的

5、哈希桶映射到一个大小为M的哈希表中。记该 哈希表中的哈希桶最大容量为B,在算法中采取的冲突解决方法 是:当一个哈希桶内点的个数超过B时,则新分配一个大小为B 的桶并将该新桶连接到原来的桶中,而在实现的过程中,采取了 更简单的方法:当一个哈希桶中点的个数超过B时,则不能再有 点插入,当有新点分配到该桶中时,该点会被分配到其他未满的 哈希桶中。新的哈希表如下表所示:BBB B123MB 中逻辑上存储的是表 1 中的哈希桶,物理上存储的是表 1 的哈 i希桶中存储的空间 P 中的点。(3)查询操作:对于给定的查询子q,计算g (q) , g (q),g (q),取1 2 l出g (q)对应哈希桶中所

6、有的点(即满足g (q) = g (p)的点p的集i i i合)作为候选集。最后在候选集中选出K个距离查询子q最近的K 个点。4)小问题集合I的子集1,1,1,对于j=l,2,,1,1由从集合1,2,12ljd随机的均匀的可放回的选取k个元素组成。最好的k要使距离 近的元素映射到同一个桶中,距离远的元素映射到不同的桶中。前面提到,实际实现中不必显式的将d维空间P中的点p映射到d维Hamming空间的向量p,而是使用其他的方法隐式的进行。方法是这样的:记d维空间P中的点p映射到d维Hamming空间的向量为P,坐标集I匸1,2,,d ,p|I的含义如前所述。定义I|i,其中ie 1,2,d, I

7、|i的含义为对应到p的第i个坐标的排好序的I 中的坐标。举例说明,I=1,2,5,& 13, p=2,3,1,4,d=4, C=5, p=11000111001000011110,I|1=1,2,5,I|2=8,I|3=13,I|4= 0 ,因为d=4,所以I有四个映射:I|1, I|2, I|3, I|4。因为C=5, 所以I|1表示I中范围在1-5中的坐标,I|2表示I中范围在6-10 中的坐标,以此类推。显然,P在I |i上的投影是一串1紧跟一串0的形式,比如上面讨论中P在111上的投影是110,在112上的投影是1,这是显然的。因为I中坐标是排好序的,而如果将p中每C个比特为一组划分的

8、话,每一组是一串1加一串0组成的串,I|i 是I中坐标与P第i组中索引的交集,P在I |i上的投影是从P的第 i 组中从左至右的选择索引为交集中元素的比特值,所得投影必定是一串1紧跟一串0组成的串。而p在I上的投影即为将p在I|i(i=l,2,d)上投影的串联起来得到的串。因此,要得到p在I 上的投影,只需得到P在I|i上的投影;要得到P在I|i上的投影, 只需得知P在I |i上的投影中1的个数o ;要想得到1的个数,只i需比较I |i和点p的第i个坐标值x,o =|I|i-C *( i-1) 1的情况,要减去C的 i-1 倍,才能与x的值在同一度量上。举例说明:d=4, C=5, d =20

9、,ip=2,4,3,5, p =11000111101110011111,I=1,2,3,5,7,8,因此 I|1=1,2,3,5, I|2=7,8, I|3=I|4= 0 , p在 I|1, I|2 上的投 影分别为1100,11。观察I|1与x , I|2与x , I|1中小于等于x =21 2 1的个数为2,因此p在111上的投影有两个1, I|2兀素减去C=5后小 于等于=4的个数为2,因此p在112上的投影有两个1。0的个数 为I|i的元素个数减去1的个数。最后得到的结果是,p在I上的 投影p|I=110011。整个过程中,用到的变量有d, C, I,这里的I 对应算法步骤中的1。然

10、后就可以计算I|i,通过比较I|i中元素 j与p的坐标就可以得到p在I|i上的投影,最后串联得到p在I上 的投影。因此没有显式的用到p。主要运算在比较p的坐标与I|i 中的元素,即找到I |i中小于等于p的第i个坐标的所有元素,因 为I|i是排好序的,找到I|i中小于等于p的第i个坐标的临界元 素即可,使用二分法查找,每次查找的时间复杂度为O( log C),2因为i=1,2,d,共需查找d次,故计算每个哈希函数g (p)所用i的时间复杂度为(dlog2C)。LSH算法分析一、符号定义:1、集合S2、S中元素p,q距离记为D(p,q)3、Vp e S,p 的 r 邻域记为 O(p, r)。二、

11、局部敏感的一般化定义:从S映射到U的函数族和称为对距离是(,r2 , pi, p 2 )-敏感的,如果满足以下两个条件:1) if peO(q,r1)1) if peO(q,r1),thenPq(h(q) = h(p) p if pO (q,;),thenPq(h(q) = h(p) 0,重复将LSH算法进行(1/ 5 )次,则至少会有一次将成功的概率提咼到1-5。证明:设条件P1发生的概率为P,条件P2发生的概率为P,以下将证明P和1 2 1P2都比较大。不妨设查询子q的邻域内存在一点P*,反之证明类似。设 k = lo(n/B),则对于P中的任一点P,由局部敏感的定义,式子1/p2Bg(p

12、) = g(q)成立的概率最大是pk二一。对于每个g函数g,将二级哈希中2 nj分配给g的只包含P中点的块(每个块对应一个哈希桶)的数量的期望值设为j2,则分配给所有g的符合条件的块的数量不超过21,因此,由马尔可夫不等jE(X)式:Pr(X a) 41)41) 2由于事先假设的条件是查询子q的邻域内存在一点P*,所以下面讨论式 子g (p*)二g (q)成立的概率P。P是以下面式子为下限的:j j 1 1n/B_log1/n/B=(n / B)=(n / B)-Pn前面已设1 =(b)p,故式子g.(p*)丰gq)的概率小于等于i-p;,故对 于所有j=i,2,,1,都有式子g (p*)丰g (q)成立的概率为 jj(1-p; )1 = (1-(n / B)-p )(n/B)p 1/ e,故至少存在一个 j 使得 g (p*) = g (q)成立的概率(即P )大于1-1/ e。j j 1因此条件 1 和条件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论