Finding near neighbors through cluster pruning


Finding near(est) neighbors is a classic, difficult problem in data management and retrieval, with applications in text and image search,in finding similar objects and matching patterns. Here we study <i>cluster pruning</i>, an extremely simple randomized technique. During preprocessing we randomly choose a subset of data points to be <i>leaders</i> the remaining data points are partitioned by which leader is the closest. For query processing, we find the leader(s) closest to the query point. We then seek the nearest neighbors for the query point among only the points in the clusters of the closest leader(s). Recursion may be used in both preprocessing and in search. Such schemes seek approximate nearest neighbors that are "almost as good" as the nearest neighbors. How good are these approximations and how much do they save in computation. Our contributions are: (1) we quantify metrics that allow us to study the tradeoff between processing and the quality of the approximate nearest neighbors; (2) we give rigorous theoretical analysis of our schemes, under natural generative processes (generalizing Gaussian mixtures) for the data points; (3) experiments on both synthetic data from such generative processes, as well as on from a document corpus, confirming that we save orders of magnitude in query processing cost at modest compromises in the quality of retrieved points. In particular, we show that p-spheres, a state-of-the-art solution, is outperformed by our simple scheme whether the data points are stored in main or in external memo.

DOI: 10.1145/1265530.1265545

Extracted Key Phrases

6 Figures and Tables

Cite this paper

@inproceedings{Chierichetti2007FindingNN, title={Finding near neighbors through cluster pruning}, author={Flavio Chierichetti and Alessandro Panconesi and Prabhakar Raghavan and Mauro Sozio and Alessandro Tiberi and Eli Upfal}, booktitle={PODS}, year={2007} }