exact nn search in hamming space

      今天,大概看完了M. Norouzi即将发表在PAMI上的文章, fast exact search in hamming sapce with multi-index hashing. 看了一整天了,太累了,写点东西总结一下吧。

       之所以要看这篇文章,因为正在筹划的一篇论文跟在hamming space上的nn search有关联。没想到一搜救搜到这篇文章,而对于Norouzi,我并不陌生。毕竟过年前的时候还在看他的ck-means。对于他的文章,还是比较有印象。Norouzi的文章,读起来还是比较舒服的。文章的思路比较简单,但是,可以看出作者具有比较深厚的数学功底。

废话少说。MIH(multi-index hashing)是作者之前的文章的后续工作。Norouzi在ICML11发表了一篇文章,提出了MLH(Minimal Loss Hashing)。这是一种基于hashing的方法,将高维向量映射到hamming space,而hamming距离仍然可以保持高维向量间的欧氏距离。这是当前CV领域比较流行的一种方式。这样做的好处是将几百维甚至更高维数的向量压缩成64-bit或128-bit的比特串。这样可以大大降低nn search的时间。但是,目前CV领域一般在压缩后的二进制编码上进行线性扫描。MIH针对压缩后的二进制编码建立索引结构,可以快速地进行exact nn search。

作者的思路其实很简单,当然也很巧妙。将维度划分成m个不相交的子集,分别为每个子集建立hashing结构。这样做是有大大的好处的。首先,在较低维度里进行nn search,显然更加便利。其次,是利用抽屉原理,可以保证在进行r-nn search时,每个hashing结构上只需进行r/m-nn search。本来维度小,现在半径也小了,自然就快了。每个hashing结构很简单,是将每个二进制直接看做hashing编码或地址编码。

思路很简单,大概一两页就说完了。作者也分析了均与分布下的性能分析,给出了时间和空间复杂度,尤其是每个hashing结构的比特串长度,大大增加了方法的可用性。这一点确实是值得好好学习的。它的一个结论很有意思,就是性能最佳的比特串长度为log n, n是数据集的大小。

实验结果还是很有说服力的,它的存储复杂度虽然比线序扫描大,但跟数据集尺寸仍然是线性关系,因此,具有良好的scalability。比起linear scan,加速比在2~3个数量级在1B的数据集上。这样的结果是相当具有吸引力的。

这篇文章的借鉴意义就在于,除了使用降维方法外,仍然有一个下界方式存在,使得可以进行精确的查询。这样的处理方式或许可以直接应用在高维空间里。此外,这里面的方法所使用的hashing方法感觉太直接了,有可能会浪费存储空间,而且在IO环境下不具有可移植性。因此,会不会有一种方式可以在IO环境下有效。这就需要保证,快速访问候选数据块,并且具有下界保证。如何确定访问顺序和下界的紧凑性会是新的挑战。

因为本人比较关注IO环境下的算法,所以,可能会在这个方面做一些探索。

Part I Metric Searching in a Nutshell Overview 3 1. FOUNDATIONS OF METRIC SPACE SEARCHING 5 1 The Distance Searching Problem 6 2 The Metric Space 8 3 Distance Measures 9 3.1 Minkowski Distances 10 3.2 Quadratic Form Distance 11 3.3 Edit Distance 12 3.4 Tree Edit Distance 13 3.5 Jaccard’s Coefficient 13 3.6 Hausdorff Distance 14 3.7 Time Complexity 14 4 Similarity Queries 15 4.1 Range Query 15 4.2 Nearest Neighbor Query 16 4.3 Reverse Nearest Neighbor Query 17 4.4 Similarity Join 17 4.5 Combinations of Queries 18 4.6 Complex Similarity Queries 18 5 Basic Partitioning Principles 20 5.1 Ball Partitioning 20 5.2 Generalized Hyperplane Partitioning 21 5.3 Excluded Middle Partitioning 21 5.4 Extensions 21 6 Principles of Similarity Query Execution 22 6.1 Basic Strategies 22 6.2 Incremental Similarity Search 25 7 Policies for Avoiding Distance Computations 26 7.1 Explanatory Example 27 7.2 Object-Pivot Distance Constraint 28 7.3 Range-Pivot Distance Constraint 30 7.4 Pivot-Pivot Distance Constraint 31 7.5 Double-Pivot Distance Constraint 33 7.6 Pivot Filtering 34 8 Metric Space Transformations 35 8.1 Metric Hierarchies 36 8.1.1 Lower-Bounding Functions 36 8.2 User-Defined Metric Functions 38 8.2.1 Searching Using Lower-Bounding Functions 38 8.3 Embedding Metric Space 39 8.3.1 Embedding Examples 39 8.3.2 Reducing Dimensionality 40 9 Approximate Similarity Search 41 9.1 Principles 41 9.2 Generic Algorithms 44 9.3 Measures of Performance 46 9.3.1 Improvement in Efficiency 46 9.3.2 Precision and Recall 46 9.3.3 Relative Error on Distances 48 9.3.4 Position Error 49 10 Advanced Issues 50 10.1 Statistics on Metric Datasets 51 10.1.1 Distribution and Density Functions 51 10.1.2 Distance Distribution and Density 52 10.1.3 Homogeneity of Viewpoints 54 10.2 Proximity of Ball Regions 55 10.3 Performance Prediction 58 Contents ix 10.4 Tree Quality Measures 60 10.5 Choosing Reference Points 63 2. SURVEY OF EXISTING APPROACHES 67 1 Ball Partitioning Methods 67 1.1 Burkhard-Keller Tree 68 1.2 Fixed Queries Tree 69 1.3 Fixed Queries Array 70 1.4 Vantage Point Tree 72 1.4.1 Multi-Way Vantage Point Tree 74 1.5 Excluded Middle Vantage Point Forest 75 2 Generalized Hyperplane Partitioning Approaches 76 2.1 Bisector Tree 76 2.2 Generalized Hyperplane Tree 77 3 Exploiting Pre-Computed Distances 78 3.1 AESA 78 3.2 Linear AESA 79 3.3 Other Methods 80 4 Hybrid Indexing Approaches 81 4.1 Multi Vantage Point Tree 81 4.2 Geometric Near-neighbor Access Tree 82 4.3 Spatial Approximation Tree 85 4.4 M-tree 87 4.5 Similarity Hashing 88 5 Approximate Similarity Search 89 5.1 Exploiting Space Transformations 89 5.2 Approximate Nearest Neighbors with BBD Trees 90 5.3 Angle Property Technique 92 5.4 Clustering for Indexing 94 5.5 Vector Quantization Index 95 5.6 Buoy Indexing 97 5.7 Hierarchical Decomposition of Metric Spaces 97 5.7.1 Relative Error Approximation 98 5.7.2 Good Fraction Approximation 98 5.7.3 Small Chance Improvement Approximation 98 5.7.4 Proximity-Based Approximation 99 5.7.5 PAC Nearest Neighbor Search 99 x SIMILARITY SEARCH Part II Metric Searching in Large Collections of Data Overview 103 3. CENTRALIZED INDEX STRUCTURES 105 1 M-tree Family 105 1.1 The M-tree 105 1.2 Bulk-Loading Algorithm of M-tree 109 1.3 Multi-Way Insertion Algorithm 112 1.4 The Slim Tree 113 1.4.1 Slim-Down Algorithm 114 1.4.2 Generalized Slim-Down Algorithm 116 1.5 Pivoting M-tree 118 1.6 The M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值