本文主要参考自:Hashing Techniques: A Survey and Taxonomy
LIANHUA CHI, IBM Research, Melbourne, Australia
XINGQUAN ZHU, Florida Atlantic University, Boca Raton, FL; Fudan University, Shanghai, China
面向数据的主要为了加速查找过程,面向加密的主要为了产生验证签名
其中,本文关注面向数据部分:
一、数据独立哈希:
没有训练过程,没有带标签的数据/信息。哈希函数都是prespecified,可以学习数据分布信息。可分四类:
随机哈希,局部敏感哈希,learning for hashing,结构投影
1.随机哈希
随机预测哈希有一个数据降维机制,可以自动把原始高维数据预测到低维空间。起初[Donald 1999]用随机的随机预测函数,一个随机预测函数需要d*lgk位来表示,d和k分别是原始数据和降维后数据的维度,导致无法存储随机选择函数,后来就开始用固定的随机预测函数,Carter and Wegman [1977]提出普遍方法,从特定函数的一个小集合中随机选哈希函数,如Shakhnarovich [2005],随机函数预测的时间复杂度由于哈希函数簇小且高度独立,可以是常量级的。
主要缺点:太不稳定,不同的哈希函数会导致完全不同的编码,可能两个元素差一位,但哈希码可能被预测成不同的类别。在降维时也丢失了很多特性。随之产生了局部敏感哈希。
2.局部敏感哈希
LSH的一大特点是原始空间相近的两个数据点哈希编码也相似。LSH的随机预测哈希函数是:
w是图像点的一个随机超平面,b是随机截距,每个数据点的标签由超平面w决定,LSH的哈希函数满足
基于这个哈希函数,对于任意两个点x,y,LSH满足
LSH不仅在哈希码中保留了数据特性,也保证相似数据点的碰撞可能性。
不足:效率低,且要保证精度需要很长的编码,low recall。
对于超平面,为了给出最优的编码位数,NPQ基于可适应的可学习的阈值分配,VBQ提供数据驱动的不一致位分配。