为了确定研究的内容,便读了综述《A Survey on Learning to Hash》,现将读后笔记整理如下:
1、Introduction
哈希算法主要分为两大类:LSH(不依赖数据的)和Learning to hash(依赖数据的)
关于LSH综述:Hashing for similarity search: A survey.CoRR 2014.
LSH:data-independent,使用随机哈希函数
Learning to hash:data-dependent,从一个特定的数据集学习哈希函数(起源:semantic hashing,spectral hashing)
应用领域:大规模对象检索,图像分类,对象检测等
本篇综述根据“保持相似度的方式”将算法进行分类:
(1)成对相似性保留
(2)多重相似性保留
(3)隐含相似性保留
(4)量化(也是一种成对相似性保留,end-to-end哈希学习策略,直接从对象学习哈希编码,例如图片,在深度学习框架之下)
根据经验观察,量化算法要比其它方法表现更好,和另一篇综述相比(Learning to Hash for indexing big data),本篇综述更加侧重于基于量化的哈希方法。
2、Background
2.1最近邻搜索
近似最近邻搜索:error-constrained近似最近邻搜索 time-constrained近似最近邻搜索
2.2哈希查找
主要思想:将数据库的项和查询点映射到目标项,即哈希码。
哈希函数: 通常,几个哈希函数一起用于计算复合哈希码
两种基本的哈希查找策略:哈希表查找(hash table lookup),哈希码排列(hash code ranking)
hash table lookup:减少距离计算的次数,分为多表查找和单表查找
数据结构是哈希表,由哈希桶组成,每个哈希桶都有一个哈希码作为索引
目标:最大化相邻数据的碰撞概率,同时最小化距离远的数据的碰撞概率