LSH Algorithm and
Implementation (E2LSH) Locality-Sensitive Hashing (LSH)
is an algorithm for solving the approximate or exact
Near Neighbor Search in high dimensional spaces. This webpage
links to the newest LSH algorithms in Euclidean and
Hamming spaces, as well as
the E2LSHpackage, an implementation of an
early practical LSH algorithm.
Check out also the
2015--2016 FALCONN package,
which is a package based on newer ideas (namely the NIPS'15 paper
below).
Algorithm description:
Newest, data-dependent LSH algorithms (2015):
These algorithms achieve performance better than the classic LSH algorithms by
using data-dependent hashing. They improve over classic LSH
algorithms for both Hamming and Euclidean space. These algorithms are
not dynamic however, in contrast to the classic LSH algorithms, which
use data-independent hashing and hence allow updates to the pointset.
See also the book
introduction for a smooth introduction to NN problem and LSH.
Original LSH algorithm (1999):the best algorithm for the Hamming space remains
previous version of the algorithm for the
Hamming distance is described in [GIM'99]
paper.
Implementations of LSH:
older version of LSH is available as the E2LSH package (alpha-version). The code is based on the algorithm
described in the
book chapter (2006) from above. You can download the manual for the code. The code has been developed by Alex Andoni in 2004-2005.
There is a newer version (based on the NIPS'15 paper),
called FALCONN, which is
designed and implemented by Ilya Razenshteyn and Ludwig Schmidt (2015-2016).
This research was supported in part by NSF CAREER Grant #0133849 "Approximate
Algorithms for High-dimensional Geometric Problems".