基于特征选择的局部敏感哈希位选择算法

文章正文
发布时间:2024-12-14 02:24

b6c5e44feb653b70d2c793b4803ad7a0.png

点击上方蓝字关注我们

c0297b2f591a629e15a932321fc22afa.png

基于特征选择的局部敏感哈希位选择算法

周文桦, 刘华文, 李恩慧

浙江师范大学数学与计算机科学学院,浙江 金华 321001

摘要作为主流的信息检索方法,局部敏感哈希往往需要生成较长的哈希码才能达到检索要求。然而,长哈希码需要消耗巨大的存储空间且携带大量的冗余哈希位。为了解决此问题,采用特征工程中10种简单高效的选择算法从长局部敏感哈希码中选择信息量丰富的哈希位,去除冗余、无效的哈希位。这10种选择算法使用不同的方式来刻画每一个哈希位的性能或两个哈希位之间的相关性,如方差、汉明距离等。通过去除长哈希码中性能较差或具有高相关性的哈希位进行哈希位的选择。将选择后的哈希码与原哈希码的性能进行比较。在4个常用数据集上的实验结果表明,去除冗余哈希位后的哈希码与原哈希码的性能几乎相同,且其哈希位的去除比率能达到30%~70%。

关键词 近似近邻搜索 ; 哈希学习 ; 哈希位选择 ; 特征选择 ; 降维

e96de9d9b9f0773f693b3af1d1d14ec2.png

论文引用格式:

周文桦, 刘华文, 李恩慧. 基于特征选择的局部敏感哈希位选择算法[J]. 大数据, 2021, 7(6): 67-77.

ZHOU W H, LIU H W, LI E H. Algorithm of locality sensitive hashing bit selection based on feature selection[J]. Big Data Research, 2021, 7(6): 67-77.

c9361c0219136cf7630629b71d0d6b7c.png


1 引言

随着互联网技术的高速发展,需要处理的数据的量爆炸式增长。在海量数据中检索出所需的数据变得越来越困难。最近邻搜索(nearest neighbor search,NNS)在海量数据中寻找与查询数据最相似的近邻数据,在信息检索、数据挖掘、机器视觉等领域起到了至关重要的作用。若数据集中含有N个数据,则检索准确近邻数据的时间复杂度为O(N)。当数据库规模非常庞大时,计算成本迅速增加,因此通常使用近似最近邻(approximate nearest neighbor search,ANN)搜索作为替代方案来解决最近邻搜索问题。因为在很多应用领域中,无须找到最近邻的数据,只要找到相似的数据即可。在过去的研究中,基于树结构(如KD tree、K-means tree)的算法在近邻问题上得到广泛应用。其主要思想是对数据空间进行划分,从而提高检索速度。但基于树结构的算法仅适用于低维数据,当遇到高维数据时,其性能快速下降。基于哈希的搜索算法在数据规模与数据维度很大时仍具有高效的检索性能,且其时间、空间复杂度较低,因此该算法成为主流的检索算法之一。

在基于哈希的检索方法中,局部敏感哈希(locality-sensitive hashing,LSH)算法是有代表性的算法之一。LSH会随机生成一组哈希函数,每一个哈希函数生成一个对应二值哈希位,将由多个哈希位组成的编码称为哈希码。LSH将原空间中的数据点映射成哈希码,使得相似度越高的数据具有相同哈希码的概率越高,而相似度越低的数据具有相同哈希码的概率越低。LSH的缺点是只有哈希码长度较长时,才能够达到理想的检索效果。但当哈希码的长度较长(如1 024位)时,计算的时间复杂度和数据所需的存储空间也随之增加。因此如何生成简短、性能优越的哈希码成为哈希学习中的主要问题。

为了生成紧凑且信息量丰富的哈希码,近年来提出了各种类型的哈希算法,如无监督哈希学习、有监督哈希学习、半监督哈希学习、深度哈希学习等。上述哈希算法通过优化不同模型的目标函数来生成相应哈希码,如最小化排序损失、量化误差、重构误差等。但上述算法在处理不同的数据集和查询数据时,需要不断地调整模型结构和参数才能满足检索要求。

为了避免频繁地调整不同场景下的模型结构和参数,哈希位选择算法被提出。该算法直接从现有的哈希位池中选取信息量最大的哈希码。在现有的研究工作中,很少有关于哈希位选择的研究。参考文献将哈希位选择问题转化为图的二次规划问题,从而提取哈希码。然而,该图的二次规划为NP困难问题,只能得出其局部最优解;而且其时间复杂度较高,至少为O(N2),并不适用于处理大规模数据。

特征选择也被称为特征子集选择,主要思想是从现有的M个特征中选取N个特征使得算法最优。特征选择能够有效减少数据的维度,降低存储成本,同时能够提高算法的效率。现有的特征选择算法主要分为3类:一是过滤法,根据特征的发散性或相关性对各个特征进行评分,通过设定阈值或排序方式选取特征;二是包裹法,每次选择若干特征并输入设定的目标函数,选出目标函数下的最优特征子集;三是嵌入法,使用与机器学习相关的算法对模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。

本文的目的并不在于设计一个新的哈希算法,而是基于特征选择的思想,将每一个哈希位视为一个特征,从现有哈希算法生成的哈希位池中高效地提取出信息量最大的哈希位。本文使用了10种简单且高效的基于特征选择的方法来进行哈希位选择。为了探索特征选择算法在哈希位选择上的作用,本文主要从以下两个角度进行探究:一是通过10种选择算法去除20%的冗余哈希位,观察精准率和召回率等性能指标的变化;二是在保持精准率和召回率等性能指标与原长度哈希位基本一致的前提下,探究每种选择算法能去除的最大冗余哈希位比率。

2 相关工作 2.1 局部敏感哈希

局部敏感哈希由于其原理简单、计算成本低而被广泛应用于各个领域,如大规模数据检索、异常检测、近邻问题等。

局部敏感哈希将数据向量投影到随机超平面上,再进行二值化处理生成对应的二值码(哈希位),使数据在欧氏空间中的相似性在汉明空间中得以保存。设数据集

6d436cc093b705ab3d6a74f471d2145c.png

, 为LSH中的函数族, F中的每一项为随机生成。则数据的哈希位定义如下:

dc2d65dc9f2c61a4ebb6578581e5021b.png

数据点x与L个哈希函数f经过式(1)投 影 后 生 成 长 度 为 L 的 二 值向量。整个数据集表示为二进制编码B。

首页
评论
分享
Top