机器学习中的哈希学习总结(learning to hash)
1 定义
哈希学习(learning to hash)是通过机器学习机制将数据映射成二进制串的形式,能显著减少数据的存储和通信开销,从而有效提高学习系统的效率。
2 目的
学到数据的二进制哈希码表示,使得哈希码尽可能地保留原空间中的近邻关系,即保相似性。
具体来说,每个数据点会被一个紧凑的二进制串编码,在原空间中相似的两个点应当被映射到哈希码空间中相似的两个点。
图 1是哈希学习的示意图,以图像数据为例,原始图像表示某种经过特征抽取后的高维实数向量,通过从数据中学习到的哈希函数h变换后,每幅图像被映射到一个8位 (bit) 的二进制哈希码,原空间中相似的两幅图像将被映射到相似 (即海明距离较小) 的两个哈希码,而原空间中不相似的两幅图像将被,映射到不相似 (即海明距离较大) 的两个哈希码。
3 重要地位
1)使用哈希码表示数据后,所需要的存储空间会被大幅减小。
2)因为通过哈希学习得到的哈希码位数(维度)一般会比原空间的维度要低,哈希学习也能降低数据维度,从而减轻维度灾难问题。
3)此外,基于哈希学习得到的二进制哈希码可以构建索引机制,实现常数或者次线性级别的快速近邻检索,为上层学习任务的快速实现提供支撑。
4 哈希学习方法
第一步,先对原空间的样本采用度量学习进行降维,得到一个低维空间的实数向量表示。
第二步,对得到的实数向量进行量化 (即离散化) 得到二进制哈希码。
例如,假设样本在原空间中的特征表示为一个5维实数向量(1.1,2.3,1.5,4,3.2),经过某种度量学习 (通常把降维看成度量学习的一种) 处理后得到一个3维的实数向量 (1.8,-2.3,0.6),然后经过符号函数量化后得到的二进制哈希码为 (1,0,1)。
5 学习模型
非监督模型:基于图的模型,不基于图的模型。
监督模型:监督信息为类别标记的模型,监督信息为三元组或者排序信息的模型。
半监督模型
模型整理
Single Model
- LSH: Locality-Sensitive Hashing Scheme Based on p-Stable Distributions, SGG, 2004
Spectral Hashing, NIPS, 2008 - PQ: Product quantization for nearest neighbor search, TPAMI, 2011
- ITQ: Iterative quantization: A procrustean approach to learning binary codes for large-scale image retrieval, CVPR, 2011
- OPQ: Optimized Product Quantization for Approximate Nearest Neighbor Search, CVPR, 2013
- LOPQ: Locally Optimized Product Quantization for Approximate Nearest Neighbor Search, CVPR, 2014
Cross Model
- CMSSH: Data Fusion through Cross-modality Metric Learning using Similarity-Sensitive Hashing, CVPR, 2010
- CVH: Learning Hash Functions for Cross-View Similarity Search, IJCAI, 2011
- MLBE: A Probabilistic Model for Multimodal Hash Function Learning, MLBE, 2012
- LCMH: Linear Cross-Modal Hashing for Efficient Multimedia Search, ACMMM, 2013
- CMFH: Collective Matrix Factorization Hashing for Multimodal Data, CVPR, 2014
- LSSH: Latent Semantic Sparse Hashing for Cross-Modal Similarity Search, SIGIR, 2014
- SCM: Large-Scale Supervised Multimodal Hashing with Semantic Correlation Maximization, AAAI, 2014
- SePH: Semantics-Preserving Hashing for Cross-View Retrieval, CVPR, 2015
- DCH: Discriminant Cross-modal Hashing, ICMR, 2016
- DVSH: Deep Visual-Semantic Hashing for Cross-Modal Retrieval, KDD, 2016
- DCMH: Deep Cross-Modal Hashing, CVPR, 2017
6 参数优化方法
第一类是采用与传统度量学习的优化方法类似的策略,对所有位对应的 (实数) 参数一次性全部优化。
第二类是避免一次性全部优化所有位对应的 (实数) 参数而采用按位优化策略,让优化过程能够自动地弥补量化过程中损失的信息。
7 国内研究进展
在2015年之前,求解该问题基本分两步。第一步是将离散限制去掉,这就变成了连续优化的问题,可以用传统的梯度下降方法去求解,它的缺点是很难得到比较好的局部最优解;第一步去掉离散限制之后得到了连续的结果,第二步通过设定阈值进行二值化操作,比如将大于阈值的转为1,小于阈值的转为0,由此就得到了哈希码。为了减少量化损失,2011年 Yunchao Gong and Svetlana Lazebnik提出了迭代量化(ITQ)的方法,与多类谱聚类和正交Procrustes问题有关,它可以用于无监督数据嵌入(如PCA)和监督嵌入(如典型相关分析(CCA))。这种方法的缺点是对于长哈希码(比如超过100比特),量化偏差会很大,使得学出来的哈希码不是很有效。
2015年后,求解该问题开始转向离散优化,试图在不去掉binary constraint的条件下去解哈希问题。Fumin Shen和Heng Tao Shen等人提出了SDH,这是一个有监督的离散哈希工作。其假设有一个数据X,我们希望学习到它的二进制代码B,同时使其很容易被分类到Y(groundtruth)这个标签矩阵上,希望通过W这个矩阵将B很容易分到正确的类别上。由于SDH方法的损失函数不是通用的,他们于2016年发表文章试图找到一种方法满足loss是任意的,只要是平滑的就可以求解。该方法被证明一定是可以收敛的,并且比SDH更快,可以把该方法应用到有监督和无监督哈希中。
2017年,中国科学院提出了一种深度离散哈希算法(discrete hashing algorithm),该算法认为学习到的二值编码应该也可以用于分类。成对标签信息和分类信息在统一框架下用于学习哈希编码。他们将最后一层的输出直接限制为二进制编码,而这种做法在基于深度学习哈希算法中很少被研究。由于哈希编码的离散性质,他们使用交替优化方法来求解目标函数。实验结果表明,该方法在基准数据集上的表现要好过当时最好的哈希方法。
年份 | 事件 | 相关论文/Reference |
---|---|---|
2011 | Yunchao Gong and Svetlana Lazebnik提出了迭代量化(ITQ)的方法 | Gong, Y.; Lazebnik. S. (2011). Iterative Quantization: A Procerustean Approach to Learning Binary Codes. CVPR. |
2015 | Fumin Shen和Heng Tao Shen等人提出了SDH | Shen, F.; Shen, C.; Liu, W. and Shen, H. T. (2015). Supervised Discrete Hashing,. CVPR. |
2016 | 由于SDH方法的损失函数不是通用的,他们于2016年发表文章试图找到一种方法满足loss是任意的,只要是平滑的就可以求解 | Shen, F.; Zhou, X.; Yang, Y.; Song, J.; Shen, H. T. and Tao, D. (2016). A Fast Optimization Method for General Binary Code Learning. IEEE Transactions on Image Processing. 25(12): 5610-5621. |
2017 | 中国科学院提出了一种深度离散哈希算法(discrete hashing algorithm),该算法认为学习到的二值编码应该也可以用于分类 | Li, Q.; Sun, Z.; He, R.; Tan, T. (2017). Deep Supervised Discrete Hashing. arXiv:1705.10999. |
8 发展趋势与展望
目前大部分哈希学习研究的思路为:
针对某个机器学习场景(比如排序学习场景)或者应用场景,只要以前没有人尝试过用哈希学习的思想来加速学习过程,就可以考虑把哈希学习用进去,然后在一个传统模型(这个传统模型不用哈希学习)解决不了的数据或者应用规模上进行实验验证。
另外,特别值得一提的是,很多分布式机器学习的瓶颈在于节点间的通信开销。因此,将哈希学习引入到分布式机器学习算法,并验证哈希学习在减小通信开销方面的有效性,也是非常有意义的研究方向。
未来发展方向
机器学习技术和「二次幂」这样的旧理论的工作结合起来可以计算机效率和能力的界限。哈希,甚至于数据索引的基本原理不会一夜之间就被机器学习策略替代,但是在算法中引入自主性的想法是强大而令人兴奋的概念。随着我们越来越善用机器学习,以及在提升计算机处理机器学习工作负载的效率上做出的不断的努力,利用这些优势的新想法肯定会找到其主流用途。
参考资料
2014-2015中国计算机科学技术发展报告