Graph indexes are widely used for high-recall approximate nearest neighbor search (ANNS), but many real-time applications require streaming ANNS. In these real-time applications, continuously arriving embeddings must search the existing graph for candidate neighbors before updating graph edges, which makes repeated index construction a bottleneck for streaming ingestion workloads. We propose Slipstream, a new method that significantly reduces the computational cost of frequent insertions in graph indexes for ANNS. The core idea of Slipstream is exploiting the continuity in vector streams: the newly arrived point starts from promising candidates found during the previous insertion rather than searching from the entry point. More technically, Slipstream evaluates distinct subsets of starting candidates followed by an adaptive controller that narrows or widens the range according to the stream's stability. We further show that Slipstream is beyond heuristic: We derive an abstract model to characterize Slipstream's performance and analyze its theoretical bounds. We have implemented Slipstream in two popular open-source libraries (Faiss, HNSWLib) and compared it with four baseline methods on five streaming vector datasets. Experimental results show that Slipstream achieves up to 30.8$\times$ higher end-to-end throughput than baselines while maintaining at least 0.95 recall@10.
翻译:图索引广泛用于高召回率的近似最近邻搜索(ANNS),但许多实时应用需要流式ANNS。在这些实时应用中,连续到达的嵌入向量必须在更新图边之前搜索现有图以寻找候选邻居,这使得重复的索引构建成为流式数据摄入工作负载的瓶颈。我们提出Slipstream,一种显著降低ANNS图索引中频繁插入计算成本的新方法。Slipstream的核心思想是利用向量流中的连续性:新到达的点从前一次插入中发现的候选点出发搜索,而非从入口点开始搜索。更具体地说,Slipstream评估不同的起始候选子集,并通过自适应控制器根据流稳定性缩小或扩大搜索范围。我们进一步证明Slipstream并非启发式方法:我们推导出一个抽象模型来表征Slipstream的性能并分析其理论界。我们在两个流行的开源库(Faiss、HNSWLib)中实现了Slipstream,并在五个流式向量数据集上与四种基线方法进行了比较。实验结果表明,Slipstream相比基线方法可实现高达30.8倍的端到端吞吐量,同时保持至少0.95的recall@10。