《Fast Exact Search in Hamming Space with Multi-Index Hashing》这篇文章的第一作者是多伦多大学的Mohammad Norouzi,最早发表在CVPR2012,后被PAMI2014收录。中文译名是《基于多下标哈希的汉明空间的快速精确搜索算法》。下文是本人lhaof对文章的部分翻译和解析。
Norouzi考虑在汉明空间的两个相关的搜索问题。给定一个二进制编码串的数据集H。第一个问题是对于一个给定的编码在H内找k个离给定编码最近的编码。这称为汉明空间内的kNN搜索。比如1-NN问题,除了穷举式搜索,没有更好的办法。
第二个问题是对一个查询,在数据库中找距离查询点小于一个固定的汉明距离的所有编码。有时被称为近似查询问题,或者PLEB(point location in equal balls,等球内点定位)问题。一个二进制编码是一个查询码的r邻居,当且仅当它们不同的比特数小于等于r。r邻居搜索问题定义为在H中找到查询g的所有r邻居。
一种解决r邻居搜索问题的方法是用一个哈希表把H中的二进制编码都存起来,然后访问查询g的r距离内的哈希位置内是否有数据点。假设二进制码是q比特的,那么就要查询C(q,0)+C(q,1)+...+C(q,r)共计这么多次,记作L(q,r)。这个关于q和r的函数随r增长得非常快,在实际中并不可行。
多下标哈希(mih)是一种将数据库中的二进制编码分割成m个不相交的子字符串,然后对m个不同的哈希表索引m次,来实现插入的操作。给定一个查询码,若数据库中有一个数据码,它至少有一个子字符串与查询码是相近的,那么这个数据码被称作邻居候选。对于每个邻居候选,用整个的二进制编码串来检测它的合法性,然后移除里面的非r邻居。为了对于大规模的数据集也可行,这些不相交子字符串的选择要使得邻居候