Patent Publication Number: US-7583845-B2

Title: Associative vector storage system supporting fast similarity search based on self-similarity feature extractions across multiple transformed domains

Description:
FIELD 
     The present disclosure generally relates to an associative vector storage system, and relates in particular to fast similarity search based on self-similarity feature extractions across multiple transformed domains. 
     BACKGROUND 
     The statements in this section merely provide background information related to the present disclosure and may not constitute prior art. 
     It is well known to the experts in the field that it is hard to obtain a sub-linear similarity search-operation over a large vector data set. Research results have been obtained on limited data sets such as time series data and face image data, etc. These results mainly focused on variations of statistical clustering analysis, such as: (a) “static” supporting vector analysis that divides the data set into a smaller number of clusters to facilitate the search operation; (b) “dynamic” tree structures to support a hierarchical search; and (c) perform cosine or wavelet transformation to select dominant coefficients that can be used to approximate the original data. 
     SUMMARY 
     An associative vector storage system has an encoding engine that takes input vectors, and generates transformed coefficients for a tunable number of iterations. Each iteration performs a complete transformation to obtain coefficients, thus performing a process of iterative transformations. The encoding engine selects a subset of coefficients from the coefficients generated by the process of iterative transformations to form an approximation vector with reduced dimension. A data store stores the approximation vectors with a corresponding set of meta data containing information about how the approximation vectors are generated. The meta data includes one or more of the number of iterations, a projection map, quantization, and statistical information associated with each approximation vector. A search engine uses a comparator module to perform similarity search between the approximation vectors and a query vector in a transformed domain. The search engine uses the meta data in a distance calculation of the similarity search. 
     Further areas of applicability will become apparent from the description provided herein. It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. 
    
    
     
       DRAWINGS 
       The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way. 
         FIG. 1  is a block diagram illustrating components of a real-time encoding module for use with a search engine of an associative vector storage system. 
         FIG. 2  is a block diagram illustrating components of a search engine of an associative vector storage system. 
     
    
    
     DETAILED DESCRIPTION 
     The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses. 
     An associative vector storage system exploits a property of self-similarity across multiple transformed domains to achieve fast retrieval and better accuracy for associative queries. The types of associative queries can include finding the best matching set of sample vectors given a set of query vectors using multiple types of distance measurement functions. The system can employ pre-processing of input vectors to achieve faster and more accurate search. 
     Unlike prior work, which focuses on data mining based on “one single” transformed domain, this system exploits data mining on a collection of multiple transformed domain. An associative search engine of the system can be structured to control the generation and access to the coefficients from multiple transformations. With reference to  FIG. 1 , the search engine contains an encoding module  100  that takes an N dimensional input vector V, generates transformed coefficients  102  via transform module  104  (in this case, Haar transform) for a tunable number of iterations, C. For C iterations of transformation, a set of approximation vectors form a transformation matrix, A ij , where 0&lt;i&lt;C+1 and 0&lt;j&lt;N+1. The coefficients from the transformation matrix are then projected using a projection map, P to form an approximation vector of dimension K. P is a bit map matrix with C row, N column. The total number of bit set “1” in the P is K and the remaining bits are set to “0”. The resulting approximation vector is represented as, a i , where 0&lt;i&lt;K+1. Each coefficient in the approximation vector, a i , is, then quantized to a factor of Q less number of bits compared to the original coefficient. The maximal number of iteration, C max  is controlled by a training module which collects statistical information of the approximation vector. The statistical information includes standard deviation, accuracy of distance calculation, and root-mean-square of each coefficient from a selected subset of input vectors. 
     The approximation vector, a i , is stored with an index to meta information associated with how the approximation vector is generated. The meta information including i) Projection matrix, P, ii) iterative control parameter, C, and reduced dimension, K, iii) quantization level Q, and iv) statistical property of the approximation vector, S. 
     The meta information and all the approximation vectors are maintained in the data storage module  110  which can be accessed by the search engine. 
     The meta information is used by an encoding module to create the approximation query vector of the same format of an approximation vector stored in the associative storage system. One unique feature of the proposed system is that it uses both the approximation vector and the meta information, {a i , P, C, K, Q, S} to calculate the distance between the approximation query vector and the approximation data vector stored in the associative storage system. 
     Each iteration performs a complete transformation and records the coefficients  102 . After C iterations, there will be N times C coefficients. The standard deviations  108  are monitored for each iteration and can be used at  106  to decide whether additional iteration can provide convergence of the standard deviation to a threshold value L (L&lt;1), thereby obtaining multiple transformation vector {H C (V)}. 
     This concept has been validated by generation of a test data set using {a[1:32], C=8, K=32, L=0.25]} for similarity search. The projection vector for larger C tends to result in a better data distribution for similarity search for a non-uniformly distributed data set. Providing more information about the vector using independently extracted parameters can further increase the probability of match accuracy. Thus, the search engine can have a structure that supports the creation of different types of indexes based on different meta information obtained from the process of iterative transformations. 
     In some embodiments, the vector engine can support various types of indexing. For example, it can create an index based on the tuple (Quantization(Projection(Haar C (V))); K is the dimension of the vector set V. C is the iteration of transformation to achieve standard deviation value L. Quantization and projection create an approximation vector. A default value of C can be equal to log(K) if L is not specified. The calculation of standard deviation can use the whole vector or the segment of a vector, and the iteration can be stopped if there is no change in the standard deviation. 
     In additional or alternative embodiments, the engine can create an index based on “Convergence Distance” CD=Distance(Projection(Haar M (V))−Projection(Haar C (V)). The selection of M is based on convergence of Haar M (V) and Haar (M+1) (V)&lt;smallest similarity bound. M can be a value much larger than log(dimension(V)). The iteration can be stopped if there is no change in the distance. 
     In additional or alternative embodiments, the engine can create an index based on “Minimal Energy Loss.” The truncation of dimensions introduces an energy loss. The selection of M can be based on the minimal energy loss of Projection(Haar 1 (V)), . . . , Projection(Haar M (V)), Projection(Haar (M+1) (V)). 
     All the above types of indices are based on coefficients from multiple iterations to result in an approximation of the original vector with much less number of bits. The structure of the search engine design can support the combination of all these indexing schemes flexibly. 
     Turning now to  FIG. 2 , the search engine can include various components. For example, the search engine can include a training module  210  that performs global analysis of an iterative convergence property of a target vector data set  208 . This module  210  can analyze the vector data in the set  208  and produce an approximation  212  of the meta information such as number of iterations and projection map, etc., needed to transform the vector data set  208 . Various types of indicators can be used. For example, one can use standard deviation of the vector elements (the whole vector or segment of a vector) to observe the convergence. One can also calculate if there is a convergence “fixed point” for a set of sample vectors (referred to as training set). 
     The search engine can alternatively or additionally include a real-time encoding module  214  that takes each input vector  215  and performs transformation iteratively until a preset criterion is met. The output of the module is a transformed vector set  216  each having a (approximation vector and meta data) pair. The meta data can contain information such as the number of iterations, the projection map, and quantization level of the vector. The criterion can be based on standard deviation of the vector itself at the i-th iteration or the distance to the fixed points of a training vector set after k-th iteration. 
     Additionally or alternatively, the search engine can include a comparison module  218 . This module takes a pair of two input vectors  206 , which can be of the format produced by encoding module  214 . It can make use of the meta data to generate a distance vector  220  by comparing the approximation query vector and approximation data vectors  206  in their corresponding transformed domain. Since the vectors may not be in the same format, this module  218  can use the encoder to perform the transformation, projection, and quantization to produce the distance between the two vectors in different transformation, projection, and quantization format. In a typical simplified case, this module  218  can simply compare two vectors of the same format and produce a distance measure. 
     Alternatively or additionally, the search engine can include a query pool that contains a set of query vectors  204 . This pool can allow an application  200  to insert and maintain a set of active queries that can be used to search an input vector set. Processing multiple query concurrently against the input approximation vector can reduce the number of Input/Output operations. 
     Alternatively or additionally, the search engine can include a temporary result set  222 . The result set  222  can contain candidate results that are most qualified based on the distance measure  220  generated by the comparison module  218 . 
     The search technique expands the analysis of a vector data set from one domain to multiple domains through iterative transformation. By observing the property of transformed vectors at different domains, it is possible to select a most efficient representation at the i-th iteration for projection, quantization, and other types of data compression with smaller impact on the statistical accuracy. Specific advantages for different class of applications include: 
     Uniform quantization: Since after multiple transformations, some vector data set with data skew may become more uniformly distributed, the data set preserves more accuracy after uniform quantization. If ortho-normal transformation is used, L2 distance based similarity measure after multiple iterative transformations are preserved. Then, the uniform quantization can also result in less error in the similarity search operation. 
     Projection: After i-th iteration, the data set that originally skewed in a few dominant coefficients is likely to be mixed with other coefficients and generate coefficients that are correlated between the dominant and non-dominant coefficients. As a result, it is possible to pick an arbitrary data set instead of doing analysis of which coefficient is dominant and achieve similar accuracy. 
     Indexing: Multiple iterations provide a new property that is independent from the original vector sets. Coefficients collected from different iterations can be used to construct one or more indexes across multiple transformed domains. This cross transform domain indexing provides additional information to the intra-domain multi-resolution indexing.