E2LSH学习笔记
发布时间:2020-12-14 04:00:42 所属栏目:大数据 来源:网络整理
导读:最近对E2LSH系统得学习了一遍 E2LSH是p-stable LSH的一个开源程序 一、原始LSH 1、概述 ? ?? ?LSH主要用来解决高维空间中点的近似最近邻搜索问题,即Approximate Nearest Neighbor。LSH将原始空间中的点嵌入到Hamming空间中,即原始空间中点的表达形式转换成
最近对E2LSH系统得学习了一遍
E2LSH是p-stable LSH的一个开源程序
一、原始LSH
1、概述
?
2、相关概念
(1)哈希桶(Hash Bucket):哈希表中同一个位置可能存有多个元素,以应对哈希冲突问题。这样,哈希表中的每个位置表示一个哈希桶。
(2)e-NNS问题:对于一个查询子q,返回空间中的一个点p,使得d(q,p) <= (1+e)d(q,P),d(q,p)表示查询子与空间中点p的距离,d(q,P)表示查询子距空间点集P中最近点之间的距离。
(3)局部敏感:称一个函数族H={h:S->U}是(r1,r2,p1,p2)局部敏感的,如果满足下面两个条件(D为空间距离度量,Pr表示概率):
?
?
?
?
3、算法思想
?
?
4、算法步骤(L1准则下的欧几里得空间嵌入Hamming空间中)
?
二、p-stable LSH
????LSH是用局部敏感的方法解决近似最近邻搜索的问题。在原始的LSH方法中,通过将原始空间嵌入到Hamming空间中,将d维空间转换成d'=Cd维的Hamming空间(C是指原始空间中点的坐标的最大值,具体情况参见上一部分中的第4节-算法步骤),使用(r,(1+e)r,1-r/d',1-(1+e)r/d')-敏感哈希函数来解决(r,e)-Neighbor问题。而后来提出的p-stable LSH算法中,不需要将原始空间嵌入到Hamming空间中,可以直接在欧几里得空间下进行局部敏感哈希运算。
1、背景介绍
?
?
2、概念解释
?
?
?
?
3、局部敏感哈希函数
?
?
?
?
?
?以下是对该概率公式正确性的证明:
?
(一)b对映射后点的影响
?
?
?
?
(二)点积对映射后点的影响
?
?
?
?
在上概率公式中,对于给定的r,概率p(c)是关于c的单调递减函数。即,c=||v1-v2||越大,映射后发生冲突的概率就越小,这符合局部敏感哈希函数的要求。因此,所选取的哈希函数族是局部敏感哈希函数族,并且是(r1,p2)-敏感的,其中p1=p(1),p2=p(c),r2/r1=c。c>1时,满足p1>p2,r1<r2。
以上就是对p-stable LSH的讨论,它通过涉入稳定分布和点积的概念,实现了LSH算法在欧几里得空间下的直接应用,而不需要嵌入Hamming空间。p-stable LSH中,度量是欧几里得空间下的lp准则,即向量v1与v2的距离定义为||v1-v2||p,然后通过设定的哈希函数将原始点映射到直线的等长线段上,每条线段便相当于一个哈希桶,与LSH方法类似,距离较近的点映射到同一哈希桶(线段)中的概率大,距离较远的点映射到同一哈希桶中的概率小,正好符合局部敏感的定义。
使用了m个u函数,g=(ua,ub),0<=a<b<=m,
则u可以形成m(m-1)/2个g函数,L=m(m-1)/2
数据库中的点只计算一次距离 skipping repeated points
使用到的一些数据结构 ?h1,hybird chain ??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |