局部敏感哈希 Shingling/minhash/LSH

局部敏感哈希(Locality-Sensitive Hashing, LSH)是一种算法技术,主要用于高维数据的相似性搜索和近似最近邻查询。LSH 的核心思想是通过构建一组哈希函数,确保相似的输入数据经过哈希变换后具有较高的概率会被映射到同一个哈希桶中。LSH 在解决高维数据空间中有效相似性搜索的问题上具有重要应用,尤其是在图像、音频、文档和生物信息等需要快速查询相似项的领域。

Shingling

实际上就是一种OneHot的生成方法,下图展示的非常明白,其中shingle set实际上就是2-gram set,把这个2-gram set经过shuffle得到vocab,上面"Flying fish flew by the space station"中出现过的2-gram就这样被映射成了下图最右侧的one-hot
在这里插入图片描述

minhash

就是字面的意思得到最小的hash值。刚才已经得到了一个one hot向量,下图这个one hot向量长度为6,然后把[1,2,3,4,5,6]进行了4次shuffle,分别得到下图中蓝色、红色、绿色、黑色的四个随机排列。这四轮中下标为1的值里面最小的就是对应的signature。举个例子,min{4,3,2}=2,所以蓝色的signature就是2,其中4,3,2就是shingled sparse vector为1对应的值
在这里插入图片描述

LSH

把刚才得到的signature分段,每一段叫做一个band。如果两个向量的其中一个或多个band相同,那么这两个向量就可能相似度较高;相同的band数越多,其相似度高的可能性越大。所以LSH的做法就是对各个用户的signature向量在每一个band上分别进行哈希分桶,在任意一个band上被分到同一个桶内的用户就互为candidate相似用户,这样只需要计算所有candidate用户的相似度就可以找到每个用户的相似用户群了。下图中是分了3个band,第3个band中存在bucket match,那么相似度就较高。
在这里插入图片描述

LSH分桶优化

在这里插入图片描述

参考文档

  1. https://www.pinecone.io/learn/series/faiss/locality-sensitive-hashing/
  2. https://zhuanlan.zhihu.com/p/46164294
局部敏感哈希LSH)是一种用于在海量的高维数据集中查找相似数据的技术。LSH通过将数据映射到哈希空间,使得原始数据相似的点在哈希空间中也有较高的概率相似。这样可以通过在哈希空间中比较相似度来快速找到与查询数据点近似最相邻的某些数据点。 LSH的主要思想是通过引入哈希函数族来实现局部敏感性。哈希函数族是一组将高维数据映射到低维空间的函数。LSH的查找过程包括以下几个步骤: 1. 提取特征:首先对各个数据点进行特征提取,将其表示为特征向量或者特征矩阵。 2. 哈希映射:利用LSH哈希函数族将特征向量映射到低维哈希空间。在哈希空间中,相似的数据点有较高的概率会映射到相同的哈希桶中。 3. 查询相似点:给定一个查询数据点,将其映射到哈希空间中,并在相邻的哈希桶中查找与查询数据点相似的数据点。可以通过比较哈希值的相似性来确定相似度。 需要注意的是,LSH并不能保证一定能够查找到与查询数据点最相似的数据,但是可以通过调整参数和选择适当的哈希函数族来提高查找相似点的概率。 LSH是一种有效的数据近似查找方法,可以在高维数据集中快速找到与查询数据点相似的数据点,适用于很多领域的数据相似性搜索问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [LSH(Locality Sensitive Hashing)局部敏感Hash](https://blog.csdn.net/c630843901/article/details/123194113)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Locality Sensitive Hashing ( LSH局部敏感哈希 ) 详解](https://blog.csdn.net/HappinessSourceL/article/details/86494866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值