1. 引言
在现代数据科学中,高维数据集变得越来越普遍,这些数据集涵盖了农业、生物学、金融和智慧城市等领域。这些应用需要从数据集中提取有价值的信息,而相似性搜索是这些任务中的关键组成部分。相似性搜索的目的是在数据集中找到与查询数据最相似的数据点。
2. 背景
现有的相似性搜索技术可以分为三类:
- 树结构:将数据分割成多层嵌套的子空间进行搜索。
- 哈希结构:利用哈希表将数据映射到不同的桶中。
- 图结构:构建邻近图,将数据点表示为顶点,通过边连接相似的顶点。
这些方法各有优缺点,但图结构方法在无保证的近似搜索中表现最佳。然而,图结构的构建在大数据集上非常耗时且佔用大量内存。
2.3 图结构相似性搜索
图结构方法是目前最流行的无保证近似相似性搜索技术。这些方法通常构建一个邻近图结构 𝐺(V, E),其中 V 是顶点集,每个顶点代表数据集中的一个点,E 是边集,连接相似的顶点。当查询 𝑉𝑄 ∈ R𝑑 时,搜索通常从一组初始进入点或种子开始,使用最佳优先搜索贪婪算法访问邻近顶点,当找不到更好的候选者时,返回 𝑘 个近似邻居。
2.3.1 基本邻近图
- Delaunay Graph (DG):保证找到最近邻,但在高维数据中不实用,因为图会变得几乎完全连接。
- Gabriel Graph (GG):保证两个顶点之间的边仅在其直径为两顶点距离的圆不包含其他顶点时存在。
- Relative Neighbor Graph (RNG):仅保留相对接近的顶点间的边。
- Minimum Spanning Tree (MST):连通无环图,其边的总权重最小。
- k-Nearest Neighbor Graph (k-NNG):每个顶点连接到其k个最近邻(精确或近似)。
2.3.2 基本搜索算法
图结构相似性搜索方法通常使用光束搜索算法进行最近邻搜索,这是一种最佳优先搜索的变体。光束搜索在搜索过程中仅保留 L 个有希望的候选者,L 参数称为光束宽度,用于调整效率/准确性权衡。
2.3.3 先进的方法
研究社群一直致力于改进基于图的近似 k-NN 搜索方法的可扩展性。现代方法在索引和查询回答方面比早期方法快一个数量级。KGRAPH 和 NNdescent 透过改进随机初始图来降低构建成本。HNSW 採用分层结构来构建 NSW 图,通过 RNG 过程精炼以减少顶点的出度。
3. ELPIS 方法
3.1 方法概述
ELPIS 提出了一种新的基于图的索引方法,结合了树结构和图结构的优点,以实现高效的索引构建和近似搜索。
3.2 索引构建
- 分割数据:首先使用 Hercules 技术将数据集分割成多个簇。
- 构建图结构:在每个簇上并行构建图结构,使用 EAPCA 聚类方法将相似的高维向量存储在同一叶子节点中。
3.3 查询回答
- 初步搜索:遍历 Hercules 树以找到初步的最近邻,选择候选簇。
- 并行搜索:对选定的候选簇中的图结构进行并行搜索,返回最终的 k 个最近邻。
4. 实验与结果
4.1 索引构建性能
- 时间:ELPIS 的索引构建时间比竞争对手快 2-5 倍。
- 内存:内存佔用比竞争对手少 40%。
4.2 查询回答性能
- 效率:查询时间比最先进的方法快 1-2 倍。
- 准确性:大多数情况下,ELPIS 都能达到 0.99 的高召回率。
下图展示了 ELPIS 和其他方法在多个数据集上的查询性能:
这些图表表明,在所有数据集上,ELPIS 方法在保持高召回率的同时,能够显着缩短查询时间,性能优于其他方法,展示了其在相似性搜索中的高效性和优越性。
下图比较了 ELPIS、HERCULES 和 QALSH 这三种方法在具有保证的情况下的查询性能:
这张图表明,在 Sift 和 Deep 这两个数据集上,ELPIS 方法在保持高召回率的同时,能够显着缩短查询时间,性能优于 HERCULES 和 QALSH 方法,展示了其在相似性搜索中的高效性和优越性。
5. 结论
ELPIS 提出了一种创新的相似性搜索方法,通过结合树结构和图结构的优点,实现了高效且准确的相似性搜索。实验结果证明,ELPIS 在索引构建和查询回答方面显着优于现有方法,为大规模数据科学应用提供了强有力的技术支持。
6. 个人看法
ELPIS 的创新在于将图嵌入技术与树结构技术结合,实现了高效的相似性搜索,这对于处理大规模高维数据集具有重要意义。未来的研究可以进一步优化 ELPIS 的索引构建算法,并探索在分佈式系统中的应用,以提高其在更大规模数据集上的性能。
论文地址:https://dl.acm.org/doi/10.14778/3583140.3583166