论文《Neighbor-Sensitive Hashing》读后感(一)

KNN问题

近似的KNN(k近邻)使用二进制散列函数技术,是克服执行精确的KNN查询的高昂成本的最常用的方法之一。本文引进了邻居敏感哈希,通过使用哈希码中更多的二进制位来区分邻近数据项,在k的值较小的情况下,大大提高了算法的准确性和时间效率。

主要思想

作者认为,“在汉明空间内增加类似的产品之间的距离”,这种看似违反直觉的想法是远远更有效地解决k近邻问题。因为在大多数的情况下,KNN问题中的参数k都不会有太大的取值,因此NSH算法适用于k值较小的情况,即可适用于绝大多数情况。

本算法提出了一个特殊的转换函数——NST,它满足以下的三个性质:

1. 连续性;

2. 单调递增;

3. 它使得邻近数据项之间的距离变大。

本算法通过这样的转换函数,得到一系列特殊的哈希码。在这些哈希码中,更多的二进制位被用来区分邻近的数据项,而选择性的忽视了远端数据项的差异。

通过这样的方法,可以显著优化当K值较小时的算法准确度。

本算法中的哈希码和其他算法的区别,具体如下图所示:

前人提出的方法的目标是要分配哈希码,使得每对数据项之间的汉明距离尽可能接近其原始距离的线性函数。本文的方法改变了这种形式,就像上图(C)中的实线所示;当一对数据项之间的原始距离小,我们设定一个较大的斜率,并让曲线在超过某一点时趋于平稳。这意味着在NSH技术分离别的k近邻项目的概率较高。

 

基本算法的描述

NSH的首要目标是生成合适的NST转换函数。

首先,如果我们考虑一个数据项V作为一个m维列向量d

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值