Faster Maximum Inner Product Search in High Dimensions

Abstract

Maximum Inner Product Search (MIPS) is a ubiquitous task in machine learning applications. Given a query vector and $n$ other vectors in $d$ dimensions, the MIPS problem is to find the atom that has the highest inner product with the query vector. Existing MIPS algorithms scale at least as $O(\sqrt{d})$ with respect to $d$, which becomes computationally prohibitive in high-dimensional settings. In this work, we present BanditMIPS, a novel randomized algorithm that provably improves the state-of-the-art complexity from $O(\sqrt{d})$ to $O(1)$ with respect to $d$. We validate the scaling of BanditMIPS and demonstrate that BanditMIPS outperforms prior state-of-the-art MIPS algorithms in sample complexity, wall-clock time, and precision/speedup tradeoff across a variety of experimental settings. Furthermore, we propose a variant of our algorithm, named BanditMIPS-$\alpha$, which improves upon BanditMIPS by employing non-uniform sampling across coordinates. We also demonstrate the usefulness of BanditMIPS in problems for which MIPS is a subroutine, including Matching Pursuit and Fourier analysis. Finally, we demonstrate that BanditMIPS can be used in conjunction with preprocessing techniques to improve its complexity with respect to $n$. All of our experimental results are reproducible via a 1-line script at github.com/ThrunGroup/BanditMIPS.

Cite

Text

Tiwari et al. "Faster Maximum Inner Product Search in High Dimensions." International Conference on Machine Learning, 2024.

Markdown

[Tiwari et al. "Faster Maximum Inner Product Search in High Dimensions." International Conference on Machine Learning, 2024.](https://mlanthology.org/icml/2024/tiwari2024icml-faster/)

BibTeX

@inproceedings{tiwari2024icml-faster,
  title     = {{Faster Maximum Inner Product Search in High Dimensions}},
  author    = {Tiwari, Mo and Kang, Ryan and Lee, Jaeyong and Lee, Donghyun and Piech, Christopher J and Thrun, Sebastian and Shomorony, Ilan and Zhang, Martin Jinye},
  booktitle = {International Conference on Machine Learning},
  year      = {2024},
  pages     = {48344-48361},
  volume    = {235},
  url       = {https://mlanthology.org/icml/2024/tiwari2024icml-faster/}
}