在 HNSW(分层可导航小世界)或 IVF(倒排文件)等索引中更改距离度量标准会直接影响索引的构建方式及其运行效率。 这些索引依赖于距离度量标准在构建过程中组织数据,因此切换度量标准几乎总是需要从头开始重建索引。 例如,HNSW 通过根据所选度量标准连接最近邻居的节点来构建图。 如果你从欧几里得 (L2) 切换到余弦距离,那么“最近”的定义会发生变化,从而使现有图结构无效。 同样,IVF 使用针对原始度量标准优化的质心将数据划分为聚类。 新的度量标准会使这些聚类对齐不正确,从而导致搜索精度降低。 大多数库(例如 FAISS)通过要求在构建时指定度量标准来强制执行此操作,并且重建是不可避免的。
索引的性能也与度量标准相关。 具有不同计算成本的度量标准(例如,曼哈顿距离与余弦距离)会影响查询速度。 例如,余弦距离需要在计算点积之前对向量进行归一化,从而增加了 L2 不需要的预处理步骤。 在 HNSW 中,选择不当的度量标准可能会创建一个不太可导航的图,从而增加搜索期间所需的跳数。 对于 IVF,与数据分布不对齐的度量标准(例如,在球形聚类上使用曼哈顿距离)可能会将相关向量分散到多个聚类中,从而迫使搜索检查更多桶。 但是,如果度量标准与数据的固有结构相匹配(例如,文本嵌入的余弦距离),则索引可以使用更少的资源获得更好的召回率。 性能权衡取决于度量标准的数学属性以及它与数据匹配的程度。
实施细节也很重要。 某些框架允许在运行时配置度量标准,但这通常假设兼容的预计算结构。 例如,预归一化的向量可能允许你在余弦距离和点积之间切换而无需重建,但这是一个例外。 在大多数情况下,重建可确保索引的内部逻辑(如图链接或聚类边界)与度量标准的行为对齐。 开发人员应将距离度量标准视为索引配置的核心部分 - 更改它类似于重新定义问题空间。 在初始设置期间使用目标度量标准进行测试对于避免以后进行代价高昂的重建至关重要。 Annoy 或 FAISS 等库明确记录了此约束,强调度量标准更改不是运行时参数,而是基本设计选择。