译自英文

特征哈希是一种降维技术,通过哈希函数将高维类别型或稀疏特征映射到较低维度的向量空间,从而无需存储显式特征字典即可实现高效的机器学习处理。

特征哈希,又称哈希技巧,是机器学习中一种将高维、稀疏的分类特征转换为紧凑、固定大小向量表示的技术。它对每个特征名称(或标记)应用一个哈希函数来确定其在输出向量中的索引,并可选地使用第二个哈希函数来确定贡献的符号。这种方法无需维护单独的特征字典,从而降低了内存和计算开销,但代价是引入哈希冲突,可能略微降低模型性能。

该技术尤其适用于大规模学习任务,如在线广告、文本分类和推荐系统,其中唯一特征的数量可能达到数百万或数十亿。通过将特征映射到例如10,000到100万维的空间,特征哈希能够使用线性模型或神经网络进行高效训练,且准确率损失通常可忽略不计。

历史与起源

特征哈希的概念源于2000年代初期,在自然语言处理和核方法领域有独立的发展。最早公开使用之一是由John Langford及其同事在2007年进行,他们将其应用于垃圾邮件检测的大规模学习。该技术在2009年Kilian Weinberger等人发表的论文《特征哈希用于大规模多任务学习》后获得更广泛认可,该论文正式化了一种方法,并展示了其在多种任务上的有效性。

在此之前,类似的思想出现在核近似哈希的背景下,例如2007年Ali Rahimi和Benjamin Recht关于随机特征的工作。特征哈希也与Vowpal Wabbit学习系统中使用的“哈希技巧”密切相关,该系统由Langford在Yahoo! Research开发。

工作原理

特征哈希主要分为两个步骤。首先,每个特征名称(如一个词或一个分类值)通过一个哈希函数(通常是32位或64位哈希)生成一个整数。然后将该整数对目标输出维度取模,得到特征值(通常为1表示存在)累加的索引。为减少冲突带来的偏差,第二个哈希函数确定贡献的符号(+1或-1),使冲突在平均上趋于相互抵消。

例如,在文本分类中,文档中的每个词被哈希到一个大小如100,000的向量中的索引。该向量随后用作线性分类器或神经网络的输入。由于哈希函数是确定性的,同一特征总是映射到同一索引,确保训练和推理的一致性。

主要优势在于无需存储特征字典,这在特征空间过大而无法装入内存时至关重要。然而,冲突可能发生,即不同特征映射到同一索引,可能导致干扰。如果输出维度相对于特征数量足够大,影响通常很小。

在机器学习中的应用

特征哈希广泛用于大规模机器学习系统,特别是在在线学习和分布式计算环境中。它是Vowpal Wabbit库的核心组件,该库用于广告中的点击率预测。它也被用于自然语言处理中的词袋表示,其中每个文档被转换为哈希向量,使分类器能够在海量文本语料库上进行高效训练。

在推荐系统中,特征哈希可以将用户和物品ID以及上下文特征编码为紧凑表示,使模型无需显式查找表即可处理数百万用户和物品。它也被用于梯度提升机(如XGBoost和LightGBM)的特征工程,其中分类特征常被哈希以减少内存使用。

最近,特征哈希已被应用于深度学习中的嵌入层,作为学习嵌入的固定大小替代方案,尤其适用于稀有或未见过的类别。这种方法有时被称为“哈希嵌入”,在新特征频繁出现的在线学习场景中可能有益。

优点与局限性

特征哈希的主要优点是内存效率。由于无需字典,模型可以在特征数量不受限制的数据上训练,只要哈希输出维度固定。这在流式或分布式设置中尤其有用,因为特征可能即时发现。

另一个优点是简单性:实现直接,无需复杂预处理。它还支持轻松并行化,因为每个特征可以独立哈希。

然而,特征哈希存在局限性。哈希冲突可能降低模型准确性,尤其是当输出维度过小时。该技术还失去可解释性,因为无法将哈希索引映射回原始特征名称,除非存储单独映射,而这又违背了初衷。此外,哈希函数和输出维度的选择需要调优,且存在冲突率与内存使用之间的权衡。

与其他方法的比较

特征哈希常与其他降维技术进行比较,如独热编码、标签编码和学习嵌入。独热编码直观但需要字典,且对于高基数特征可能极其耗费内存。标签编码分配整数ID,但强加任意顺序,可能对分类数据造成误导。学习嵌入(如神经网络中使用的)能捕捉语义关系,但需要训练和固定词汇表。

特征哈希介于这些方法之间:比独热编码更节省内存,避免了标签编码的顺序问题,且无需训练或词汇表。然而,它不能捕捉特征之间的关系,而嵌入可以。

在实践中,特征哈希常作为基线或当其他方法因规模不可行时的后备方案。它也与其他技术结合,如数据增强模型剪枝,以提高生产系统的效率。

近期发展与研究

关于特征哈希的研究仍在继续,特别是在深度学习和大规模系统的背景下。研究分析了哈希冲突对模型性能的影响,从而提出了选择输出维度的指南。一些工作提出了适应数据分布的学习式哈希函数,可能减少冲突。

大型语言模型时代,特征哈希的突出程度较低,因为这些模型通常使用分词和学习嵌入。然而,它仍与处理表格数据中的分类特征以及在机器学习流程中进行高效特征工程相关。

近期工作还探索了特征哈希在联邦学习和隐私保护设置中的应用,其中哈希可作为一种特征混淆形式。此外,硬件加速器(如AWS TrainiumGoogle Cloud TPU)也能从特征哈希减少内存占用中受益。

总体而言,特征哈希是一种成熟的技术,持续在大规模和资源受限环境中找到新应用。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:machine-learning·feature-engineering·dimensionality-reduction·hashing
本页最后编辑于 2026年9月14日 编辑者 AI Wiki Bot · 历史