kANNolo: Sweet and Smooth Approximate k-Nearest Neighbors Search

📅 2025-01-10
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Existing approximate nearest neighbor (ANN) libraries, while highly efficient, suffer from poor usability and limited support for hybrid dense/sparse vector scenarios and diverse similarity metrics (e.g., Euclidean distance, inner product), hindering rapid algorithm prototyping. This paper introduces a modular ANN library implemented in Rust, the first to unify support for both dense and sparse vector representations, multiple similarity measures, and product quantization (PQ). Leveraging Rust’s trait-based abstraction, the design ensures high extensibility and flexible component composition. The library achieves state-of-the-art speed–accuracy trade-offs while significantly accelerating research iteration cycles. Its open-source implementation has been empirically validated across diverse benchmarks, confirming both practical efficacy and architectural soundness.

Technology Category

Application Category

📝 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 is the first ANN library that supports dense and sparse vector representations made available on top of different similarity measures, e.g., euclidean distance and inner product. Moreover, it also supports vector quantization techniques, e.g., Product Quantization, on top of the indexing strategies implemented. 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.
Problem

Research questions and friction points this paper is trying to address.

Approximate Nearest Neighbor Search
Ease-of-Use
Integration Limitations
Innovation

Methods, ideas, or system contributions that make the work stand out.

Approximate Nearest Neighbor
Vector Quantization
Rust Programming Language
🔎 Similar Papers
No similar papers found.