Given a database of vectors, a cosine threshold query returns all vectors in the database having cosine similarity to a query vector above a given threshold \theta. These queries arise naturally in many applications, such as document retrieval, image search, and mass spectrometry. We consider the efficient evaluation of such queries, providing novel optimality guarantees and exhibiting good performance on real datasets. We take as a starting point Fagin’s well-known Threshold Algorithm (TA), which can be used to answer cosine threshold queries as follows: an inverted index is first built from the database vectors during pre-processing; at query time, the algorithm traverses the index partially to gather a set of candidate vectors to be later verified for \theta-similarity. However, directly applying TA in its raw form misses significant optimization opportunities. Indeed, we first show that one can take advantage of the fact that if the vectors are normalized, we obtain an improved, tight stopping condition for index traversal and we can efficiently compute it incrementally. Then we show that one can take advantage of data skewness to obtain better traversal strategies. In particular, we show a novel traversal strategy that exploits a common data skewness condition which holds in multiple domains including mass spectrometry, documents, and image databases. We show that under the skewness assumption, the new traversal strategy has a strong, near-optimal performance guarantee. The techniques developed in the paper are quite general since they can be applied to a large class of similarity functions beyond cosine.
Joint work with Yuliang Li, Jianguo Wang, Benjamin Pullman, Nuno Bandeira, to appear in ICDT 2019