为了确定研究的内容,便读了综述《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:减少距离计算的次数,分为多表查找和单表查找
数据结构是哈希表,由哈希桶组成,每个哈希桶都有一个哈希码作为索引
目标:最大化相邻数据的碰撞概率,同时最小化距离远的数据的碰撞概率
hash code ranking:穷尽搜索,得到所有数据库成员以及查询点的哈希码,然后进行比较
总结:哈希表查找主要适用于LSH,实际上并不常用,实际上用的方法是非穷尽搜索
3、Learning to Hash
3.1哈希函数
线性哈希函数:
核函数:
非参数函数:
3.2相似度
输入空间的相似性度量:欧氏距离,高斯函数,余弦相似度,语义相似度等
哈希编码空间的相似性度量:哈明相似度
在量化方法中,欧氏距离总是会被用到
3.3损失函数
设计损失函数的基本准则是:保持相似性的顺序
3.4优化
优化哈希函数的参数有两个挑战:第一个是包含sgn函数,导致了一个混合的二进制到整数的优化问题
第二个是时间复杂度很高,当处理规模很大的数据时
3.5分类
根据形成目标函数时所采用的保持相似度的方式来分类
4.Pairwise Similarity Preserving
分类:
Similarity-distance product minimization (SDPM)
Similarity-similarity product maximization (SSPM)
Distance-distance product maximization (DDPM)
Distance-similarity product minimization (DSPM)
Similarity-similarity difference minimization (SSDM)
Distance-distance difference minimization (DDDM)
Normalized similarity-similarity divergence minimization (NSSDM)
4.1 Similarity-Distance Product Minimization
约束条件介绍:
code balance condition:映射到每个哈希码的数据的数量是相同的。
bit balance and bit uncorrelation:用于近似code balance condition
bit balance:每一位有50%的机会为1或者-1
bit uncorrelation:不同位之间是不相关的
bit balance另一种处理方法:
Linear discriminant analysis(LDA) hashing
minimal loss hashing
三种代表算法的区别:
1、输入空间的相似度定义方式(光谱哈希是利用欧氏距离计算的连续的正值,而LDA哈希和minimal loss哈希是利用1和-1分别来表示相似的点对和不相似的点对。)
2、哈希空间的距离(minimal loss哈希和其它两种算法不太一样)
4.2 Similarity-Similarity Product Maximization
代表算法:半监督哈希
4.3 Distance-Distance Product Maximization
代表算法:Topology preserving hashing(SDPM+DDPM)
4.4 Distance-Distance Difference Minimization
代表算法:Binary reconstructive embedding
4.5 Similarity-Similarity Difference Minimization
代表算法:Supervised hashing with kernels
哈希函数:核哈希函数
4.6 Normalized Similarity-Similarity Divergence Minimization
代表算法:Spec hashing