LSH 近似最近邻查找

一、什么是近似最近邻查找

NN与ANN NN,Nearest Neighbor Search,最近邻查找问题

KNN,K-Nearest Neighbor,k最近邻,查找离目标数据最近的前k个数据项

ANN,Approximate Nearest Neighbor,近似最近邻检索,在牺牲可接受范围内的精度的情况下提高检索效率

最近邻检索是线性复杂度的,当处理大规模数据时可以采用ANN方法

LSH,局部敏感哈希是ANN的一种

二、什么是Hash

主要的索引技术:

基于树的索引技术(二叉树,B-Tree,B+Tree)

基于哈希的索引技术

基于词的倒排索引

海量数据的检索方式,Hash是重要的索引技术

 三、LSH算法

针对海量 and 高维数据如何进行查找:

如果数据是低维 and 小数据 => 通过线性的方式查找

数据不仅海量,而且高维 => 需要降维,采用索引方式查找 LSH,Locality-Sensitive Hashing,局部敏感哈希

需要查找与某个数据1个或多个相似的数据

最近邻查找方法(ANN,Approximate Nearest Neighbor)

 

 

 LSH:

通过Hash Function,每个Bucket会落入一些原始数据,属于同一个桶内的数据有很大可能是相邻的(也存在不相邻的数据被hash到了同一个桶内)

将原始数据集合分成了多个子集合,每个子集合中的数据大概率是相邻的,而且子集合中的元素个数较少。

方便进行近邻查找 => 在一个很小的集合里查找相邻元素

四、 MinHash算法

文档相似度计算:

k-shingle,也称为k-gram,文档中任意长度为k的字符串。将每篇文档可以表示成文档中出现一次或者多次的k-shingle的集合

比如document="abcdabd",当2-shingle组成的集合为 {ab,bc,cd,da,bd}

如果两个文档相似,那么他们会有很多的shingles也是相同的

文本越长,K取值越大。K的经验值参考,短文本K=5,长文本K=10

 

 五、MinHash+LSH:

除了要解决Ci和Cj两两之间相似度的计算问题,

当数据量大的时候,两两之间相似度计算次数为 当数据量N很大(>100万),计算量非常大 => 将可能相似的用户以较大概率分到同一个桶内,这样每一个用户的“相似用户候选集”就会少很多,大大降低计算复杂度

LSH是相似度的近似求解方式 在MinHash基础上,将Signature向量分成多段(band)

 

 

 

 

the code from net,share with you: 获取图像库里所有图片文件的名称 Blue hills.jpg Lena.jpg myhand1.jpg myhand2.jpg Sunset.jpg Test2.jpg Test3.JPG Water lilies.jpg Winter.jpg 获取图像特征 0 36 82 115 132 164 200 142 129 119 54 1 198 141 101 64 43 65 124 200 197 186 2 104 40 25 34 81 88 56 108 131 199 3 142 56 43 61 117 121 107 160 120 200 4 46 67 80 104 200 193 90 66 59 43 5 121 110 141 149 200 195 171 144 123 116 6 99 125 116 88 68 82 99 141 200 104 7 200 178 175 151 154 183 156 159 164 177 8 131 161 192 199 181 182 186 174 147 129 获取随机点位 将整数转换为01 特征值MD5压缩处理 1 733c7ccfc61b08a62633fc2356b90478 2 bdc6c147ad15bcf1bd91e343ec15d4f8 3 70a0d1a5d191e0bd3ceb65003ce4e386 4 1d8d003fe0d417eb1d3413773e58f4de 5 b04a5fd1301bf66c192a23e155236dd5 6 0d7afe69ff25e61710e7f63d5a7779ca 7 0b534a69d1eb5edfd7fef486b9270fc7 8 373b04655e21dee1372e374916a7774f 9 68b400bf74bc815844f58e19ead1ceb7 1 733c7ccfc61b08a62633fc2356b90478 2 bdc6c147ad15bcf1bd91e343ec15d4f8 3 70a0d1a5d191e0bd3ceb65003ce4e386 4 1d8d003fe0d417eb1d3413773e58f4de 5 b04a5fd1301bf66c192a23e155236dd5 6 0d7afe69ff25e61710e7f63d5a7779ca 7 0b534a69d1eb5edfd7fef486b9270fc7 8 373b04655e21dee1372e374916a7774f 9 68b400bf74bc815844f58e19ead1ceb7 1 733c7ccfc61b08a62633fc2356b90478 2 bdc6c147ad15bcf1bd91e343ec15d4f8 3 70a0d1a5d191e0bd3ceb65003ce4e386 4 1d8d003fe0d417eb1d3413773e58f4de 5 b04a5fd1301bf66c192a23e155236dd5 6 0d7afe69ff25e61710e7f63d5a7779ca 7 0b534a69d1eb5edfd7fef486b9270fc7 8 373b04655e21dee1372e374916a7774f 9 68b400bf74bc815844f58e19ead1ceb7 1 733c7ccfc61b08a62633fc2356b90478 2 bdc6c147ad15bcf1bd91e343ec15d4f8 3 70a0d1a5d191e0bd3ceb65003ce4e386 4 1d8d003fe0d417eb1d3413773e58f4de 5 b04a5fd1301bf66c192a23e155236dd5 6 0d7afe69ff25e61710e7f63d5a7779ca 7 0b534a69d1eb5edfd7fef486b9270fc7 8 373b04655e21dee1372e374916a7774f 9 68b400bf74bc815844f58e19ead1ceb7 1 733c7ccfc61b08a62633fc2356b90478 2 bdc6c147ad15bcf1bd91e343ec15d4f8 3 70a0d1a5d191e0bd3ceb65003ce4e386 4 1d8d003fe0d417eb1d3413773e58f4de 5 b04a5fd1301bf66c192a23e155236dd5 6 0d7afe69ff25e61710e7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值