目录
概览
上一个教程中,我们介绍了标量量化和乘积量化,这两种索引策略有助于减小数据总量大小且不降低搜索范围。为了更好地说明标量量化和乘积量化的工作原理,我们还用 Python 进行了简单实现。
本教程中,我们会利用这些知识,了解当今最常用和主流的算法——Hierarchical Navigable Small Worlds(HNSW)。HNSW 在速度和准确性方面表现非常出色,使其成为非常强大的向量搜索算法。虽然它很受欢迎,理解起来可能也会有些难过。不过不用担心,在接下来的几个部分中,我们将分解 HNSW,并开始我们自己的简单实现。
HNSW 基础知识
回想一下,以前的教程中有四种向量搜索索引类型:哈希索引、树索引、聚类索引和图形索引。HNSW 属于后者,它结合了两个核心概念——跳表(skip list)和小世界网络(Navigable Small World,NSW)。讨论 HNSW 之前,让我们先单独了解这两个概念。
跳表
首先是跳表。回想一下,链接列表是知名的数据结构,每个元素