向量量化是一种通过将相似向量映射到更小的代表值集合来降低高维数据复杂性的技术。 简单来说,它将向量分组到聚类中,并用最接近的匹配聚类标识符替换每个向量。 这个过程类似于通过减少调色板来压缩图像:您不是存储数百万种颜色,而是使用有限的集合来近似原始颜色。 例如,在机器学习中,嵌入向量(例如来自神经网络的向量)可以通过将它们分成子向量并将每个子向量分配给“码本”条目(一组预定义的代表值)来进行量化。 这降低了存储和计算成本,同时保留了数据中的基本模式。
向量量化通过简化相似度计算来优化向量搜索。 如果没有量化,将查询向量与大型数据集中的每个向量进行比较需要昂贵的距离计算(例如,欧几里得或余弦相似度)。 量化用近似值替换这些精确比较。 例如,乘积量化 (PQ) 是一种常见方法,它将向量分成子向量,分别量化每个子向量,并存储它们的聚类索引。 在搜索期间,使用预先计算的子向量聚类查找表来计算距离,从而大大缩短了计算时间。 这使得系统能够有效地处理数十亿个向量,就像 Facebook 的 FAISS 或 Spotify 的 Annoy 等数据库中所见的那样,它们依赖于量化来实现快速的近似最近邻搜索。
但是,存在一些权衡。 量化会引入近似误差,这意味着结果可能不完全准确。 开发人员通过调整码本大小或子向量数量等参数来平衡这一点。 例如,每个子向量使用 256 个聚类(8 位编码)可以在精度和速度之间取得实际平衡。 图像检索或推荐系统等应用程序通常优先考虑速度而不是精确结果,这使得量化成为理想选择。 将量化与倒排索引(以缩小搜索空间)等技术相结合可以进一步提高效率。 总之,向量量化通过压缩数据和简化计算来优化搜索,从而为精确匹配不如速度和资源使用重要的实际问题提供可扩展的解决方案。