LSH(局部敏感度哈希)

LSH(局部敏感度哈希)

1 intuition

在很多应用领域中,我们面对和需要处理的数据往往是海量并且具有很高的维度,怎样快速地从海量的高维数据集合中找到与某个数据最相似(距离最近)的一个数据或多个数据成为了一个难点。

例如推荐系统的用户协同过滤中,我们拥有4亿活跃用户,每个用户可以用一个高维向量表示,如果计算用户的两两相似度,需要花费很长的时间;在商品协同过滤中,单JD泰国就拥有超过2500万个商品,每个商品可以用一个高维向量表示(商品名称的embedding+一些数值型属性),如果要计算所有商品的两两相似度,复杂度也是O(n^2)。

在之前的文章讲KNN算法的时候,计算每个点的两两相似度太过耗时,我们也用kd-tree来降低这个时间。https://blog.youkuaiyun.com/weixin_41332009/article/details/112341309

所以,需要类似索引的技术来加快查找过程。

传统的哈希是希望数据通过哈希后尽量使数据不冲突(collision),而LSH却是依赖冲突,希望相似的文档经过哈希后冲突在一起。

我们希望原先相似的两个数据能够被hash到相同的桶内,这样我们在该数据集合中进行近邻查找就变得容易了:我们只需要将查询数据进行哈希映射得到其桶号,然后取出该桶号对应桶内的所有数据,再进行两两匹配即可查找到与查询数据相邻的数据。
 

2 定义

h为哈希函数,O_1, O_2 表示两个具有多维属性的数据对象,d(O_1,O_2)表示对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值