Similarity search in the blink of an eye with compressed indices

Cecilia Aguerrebere, Ishwar Bhati, Mark Hildebrand, Mariano Tepper, Ted Willke
4/7/2023
cs.LGcs.IR

No official code found. Best implementation: intel/ScalableVectorSearch (229 stars, Apache-2.0, last commit 2026-04-29).

Abstract

Nowadays, data is represented by vectors. Retrieving those vectors, among millions and billions, that are similar to a given query is a ubiquitous problem, known as similarity search, of relevance for a wide range of applications. Graph-based indices are currently the best performing techniques for billion-scale similarity search. However, their random-access memory pattern presents challenges to realize their full potential. In this work, we present new techniques and systems for creating faster and smaller graph-based indices. To this end, we introduce a novel vector compression method, Locally-adaptive Vector Quantization (LVQ), that uses per-vector scaling and scalar quantization to improve search performance with fast similarity computations and a reduced effective bandwidth, while decreasing memory footprint and barely impacting accuracy. LVQ, when combined with a new high-performance computing system for graph-based similarity search, establishes the new state of the art in terms of performance and memory footprint. For billions of vectors, LVQ outcompetes the second-best alternatives: (1) in the low-memory regime, by up to 20.7x in throughput with up to a 3x memory footprint reduction, and (2) in the high-throughput regime by 5.8x with 1.4x less memory.

View on arXivView PDF

Code Implementations(1)

Apache-2.0
22943C, C++May 19, 20235 months agoApache-2.0
ragsimilarity-searchsvsvector-search

Similar Papers

Cite this paper

@article{aguerrebere2023similarity,
  title  = {Similarity search in the blink of an eye with compressed indices},
  author = {Cecilia Aguerrebere and Ishwar Bhati and Mark Hildebrand and Mariano Tepper and Ted Willke},
  year   = {2023},
  eprint = {2304.04759},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2304.04759v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2304.04759.svg)](https://codeofpaper.com/paper/2304.04759)

Discussion