vix.ing · top · new · best · stats · spec

kANNolo: Sweet and Smooth Approximate k-Nearest Neighbors Search

2025/01/10 by Leonardo Delfino, Domenico Erriquez, Delfino, Leonardo +9 · 1 citation
Computer Science · #Advanced Image and Video Retrieval Techniques #FOS: Computer and information sciences #Face and Expression Recognition #Information Retrieval (cs.IR) #Video Surveillance and Tracking Methods

paper · pdf · doi:10.48550/arxiv.2501.06121

openalex publication_date 2025/01/10 · openalex created_date 2025/10/10 · openalex updated_date 2026/08/01

Abstract

Approximate Nearest Neighbors (ANN) search is a crucial task in several applications like recommender systems and information retrieval. Current state-of-the-art ANN libraries, although being performance-oriented, often lack modularity and ease of use. This translates into them not being fully suitable for easy prototyping and testing of research ideas, an important feature to enable. We address these limitations by introducing kANNolo, a novel research-oriented ANN library written in Rust and explicitly designed to combine usability with performance effectively. kANNolo introduces a fully composable architecture for ANN search that supports both dense and sparse vector representations. It enables researchers to seamlessly mix and match different similarity measures, vector quantization techniques (e.g., Product Quantization), and index structures (e.g., HNSW) within a single unified framework. These functionalities are managed through Rust traits, allowing shared behaviors to be handled abstractly. This abstraction ensures flexibility and facilitates an easy integration of new components. In this work, we detail the architecture of kANNolo and demonstrate that its flexibility does not compromise performance. The experimental analysis shows that kANNolo achieves state-of-the-art performance in terms of speed-accuracy trade-off while allowing fast and easy prototyping, thus making kANNolo a valuable tool for advancing ANN research. Source code available on GitHub: https://github.com/TusKANNy/kannolo.

Cited by

Related