I'm interested in using a random projection as a locality sensitive hash. In every example of this I've seen, it is suggested to pick a random hyperplane and produce a binary number corresponding to which side of the hyperplane a data point lies. I want to use locality sensitive hashing with a random projection, but I need to be able to produce more than just two possible indexes.
I'm wondering if I could make an LSH by binning data according to this strategy:
- Initialize a d x k matrix, where d is the input data dimensionality and k is the number of hash indexes we want.
- Project incoming data into k-dimensional space using this matrix.
- Take the argmax of the new k-dimensional vector. In other words, output the dimension that has the largest value.
If not, does anyone know of another technique? Thanks!