Patent Document ID: 8515964
Application ID: 13189696
Patent Status: 1

Claim One:
1. A method, implemented on a machine having at least one processor, storage, and a communication platform making a connection to a network for information search, comprising the steps of: receiving, by an input content receiver via the communication platform, input data from one or more data sources; analyzing, by an input processor, the input data to obtain an input feature vector characterizing an input vector x of d dimensions comprising signs of features; generating, by an indexing unit, an index of the input data based on the input feature vector; archiving, by an archiving unit, the input data in an inventory database based on a value of the index, wherein the value of the index for the input data is computed based on a fast Johnson-Lindenstrass transformation (FJLT) process comprising the steps of: randomly flipping the signs of the features in the input feature vector to obtain a flipped vector, applying a Hadamard transformation to the flipped vector to obtain a transformed vector, and computing an inner product between the transformed vector and a sparse vector to obtained a base vector; determining the value of the index based on the base vector; and wherein the value of index corresponds to a hash value based on the steps of: obtaining, a multiplication HDx of the input vector x, via a fast Walsh-Hadamard transform (FWHT) Hx obtained based on a Hadamard matrix H as well as a diagonal matrix D comprising elements D ii , where both the Hadamard matrix and the diagonal matrix D is d×d dimension and each element D ii in the diagonal matrix D is a Bernoulli random variable; obtaining, by an M matrix generator, a k by d sub-sampling matrix M comprising elements M ij , where k is smaller than d, such that each element M ij in the sub-sampling matrix M is zero with a probability (1−q) and a random variable drawn with probability q from a normal distribution of N(0, 1/q); computing, by a FJLT hash value generator, a multiplication MHDx; and outputting, by the FJLT hash value generator, the hash value of the input vector x based on MHDx.