Abstract:
A method is used to data mine input vectors. A data source receives input vectors. A sketch feature generator converts the input vectors into corresponding sketch feature vectors, where each sketch feature vectors has a number of dimensions that is less than a number of dimensions of the corresponding input vector. A similarity comparator compares each sketch feature vectors against a set of parameters. A decision loop determines results of similarities based upon comparison of each sketch feature vectors against the set of parameters.

Description:
CROSS-REFERENCE TO PRIOR APPLICATION 
       [0001]    Priority is claimed to U.S. Provisional Patent Application Ser. No. 62/109,694, filed on Jan. 30, 2015, the entire disclosure of which is hereby incorporated by reference herein. 
     
    
     FIELD 
       [0002]    The present invention relates to a scalable system and method for weighted similarity estimation in massive datasets revealed in a streaming fashion. 
       BACKGROUND 
       [0003]    Detecting similar objects is a core component in numerous computer science applications. Concrete examples include, but are not limited to, the detection of similar documents in large corpora for plagiarism detection, clustering similar emails according to keywords for spam detection, detecting defective genes that appear to contribute as combinations to certain diseases, collaborative filtering in recommender systems where users are grouped according to similar interests, etc. 
         [0004]    There are different similarity measure definitions that have been applied. See &lt;&lt;http://reference.wolfram.com/language/guide/DistanceAndSimilarityMeasures.html&gt;&gt; (accessed Jan. 29, 2015) for an overview. Some of the similarity measure definitions like Hamming distance, Jaccard similarity, Dice similarity, etc, assume binary data as input. For many problems however, this assumption is not justified and one needs to handle weighted features. Arguably, the three most widely used similarity measures for weighted data are Euclidean distance, cosine similarity and Pearson correlation. 
         [0005]    For certain applications like recommender systems and genetic data mining, the established similarity measures are cosine similarity and Pearson correlation. See Michael D. Ekstrand, John T. Riedl and Joseph A Konstan, Collaborative Filtering Recommender Systems, Foundations and Trends in Human-Computer Interaction, Vol. 4, No. 2 (2010) as an example. 
         [0006]    Formally, cosine between two objects x and y is defined as 
         [0000]    
       
         
           
             
               cos 
                
               
                 ( 
                 
                   x 
                   , 
                   y 
                 
                 ) 
               
             
             = 
             
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   n 
                 
                  
                 
                   
                     x 
                     i 
                   
                    
                   
                     y 
                     i 
                   
                 
               
               
                 
                    
                   x 
                    
                 
                  
                 
                    
                   y 
                    
                 
               
             
           
         
       
     
         [0007]    where x i  denotes the i-th feature of object x and ∥x∥=√{square root over (Σ l=1   n x l   2 )} is the 2-norm of the vector a. 
         [0008]    Pearson correlation is defined as 
         [0000]    
       
         
           
             
               ρ 
                
               
                 ( 
                 
                   x 
                   , 
                   y 
                 
                 ) 
               
             
             = 
             
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   n 
                 
                  
                 
                   
                     ( 
                     
                       
                         x 
                         i 
                       
                       - 
                       
                         x 
                         ~ 
                       
                     
                     ) 
                   
                    
                   
                     ( 
                     
                       
                         y 
                         i 
                       
                       - 
                       
                         y 
                         ~ 
                       
                     
                     ) 
                   
                 
               
               
                 
                    
                   
                     x 
                     _ 
                   
                    
                 
                  
                 
                    
                   
                     y 
                     _ 
                   
                    
                 
               
             
           
         
       
     
         [0009]    where x x =(Σ i=1   n x i )/n and ∥ x ∥=√{square root over (Σ l=1   n (x l −x) 2 )} 
         [0010]    The problem to compute the similarity between two objects by the above definitions is trivial if it is possible to store the objects in main memory. However, for massive datasets with high-dimensional objects, it is often the case that it is not possible to store all of the objects in main memory. Therefore, one aims to efficiently compute compact sketches or summaries of the objects that will lead to considerable space savings. 
         [0011]    In the following, it is assumed that objects are described by vectors and the terms object and vector are used interchangeably. It is also assumed that an input vector is provided as a stream of (index, value) pairs with no particular order. 
         [0012]    Previous approaches for similarity estimation include min-wise independent permutations (see Andrei Z. Broder, Moses Charikar, Alan M. Frieze, Michael Mitzenmacher, Min-Wise Independent Permutations (1998)) for Jaccard similarity and a random hyperplane algorithm (see Moses Charikar, Similarity Estimation Techniques from Rounding Algorithms (2002)) for the estimation of the angle between vectors revealed in a streaming fashion. The former applies only to binary data, and the latter suffers from higher processing time per element which makes it impractical for high speed data streams. Count-Sketch has also been applied to inner product estimation (see Graham Cormode, Minos Garofalakis, Sketching Streams Through the Net: Distributed Approximate Query Tracking, VLDB (2005), pp. 13-24) which is closely related cosine similarity estimation. Count-Sketch is also described in Moses Charikar, Kevin Chen, Martin Farach-Colton, Finding Frequent Items in Data Streams, Theor. Comput. Sci. 312(1) 3-15 (2004). To the best of the inventors&#39; knowledge, no sketching technique has been proposed to Pearson correlation estimation. 
       SUMMARY 
       [0013]    In an embodiment, the present invention provides a method for data mining. A data source receives input vectors. A sketch feature generator converts the input vectors into corresponding sketch feature vectors, where each sketch feature vectors has a number of dimensions that is less than a number of dimensions of a corresponding one of the input vectors. A similarity comparator compares each sketch feature vectors against a set of parameters. A decision loop determines results of similarities based upon comparison of each of the sketch feature vectors against the set of parameters. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The present invention will be described in even greater detail below based on the exemplary figures. The invention is not limited to the exemplary embodiments. All features described and/or illustrated herein can be used alone or combined in different combinations in embodiments of the invention. The features and advantages of various embodiments of the present invention will become apparent by reading the following detailed description with reference to the attached drawings which illustrate the following: 
           [0015]      FIG. 1  shows the overall structure of a sketching algorithm according to an embodiment of the present invention. 
           [0016]      FIG. 2  shows an example of updating a hash table according to an embodiment of the present invention. 
           [0017]      FIG. 3  schematically shows a system for similarity estimation according to an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0018]    Aspects of the present invention provide a new system and method for sketching the input vectors revealed in a high-speed streaming fashion. The system according to an embodiment, compared to current state-of-the-art systems, provides significantly improved data processing, reducing significantly the processing time required per element, stores a compact representation of the input vectors and also estimates the 2-norm of each vector. Furthermore, significant space savings of 80% or more can also be advantageously achieved. Moreover, the accuracy of the results of the estimations are significantly improved as compared to the state-of-the-art, which have a number of disadvantages. 
         [0019]    In an embodiment of the present invention, Count-Sketches are combined in a novel manner for the estimation of both the inner product of two vectors and the 2-norm of a vector. Having these three estimates makes it possible to compute an estimation of cosine similarity. In the following, it is first described how the system works for cosine similarity estimation and then described how the system is extended, in an embodiment, to Pearson correlation estimation. 
         [0020]      FIG. 1  shows the overall structure of a sketching algorithm according to an embodiment of the present invention. In a sketch generator  100 , a plurality of n-dimension vectors (X, Y, Z, U) are received as input  110 , and a plurality of k-dimension vectors (s(X), s(Y), s(Z), s(U)) are generated as output sketches  120  by the sketch generator  100  applying sketching algorithm. 
         [0021]    For cosine similarity, a single hash table H x  is provided for each vector x. In each hash table H x  up to k entries can be stored. Let s: [n]-&gt;{−1, 1}. For a new entry update (i, x i ), the hash table is updated as H x [j]+=s(i)x i  where j=h(i) for a suitably defined hash function h: [n]-&gt;[k]. See  FIG. 2  for a simple example with n=15 and k=9. A counter norm is maintained and updated as norm+=x i *x i . Clearly, after processing all x i  it holds ∥x∥=√{square root over (norm)}. 
         [0022]    The inner product of two vectors is estimated as Z=Σ j=1   k H x [j]·H y [j]. It can be shown that E[Z]=xy, i.e., an unbiased estimator of xy is obtained. For a suitable choice of the hash function h and large enough k, it is possible to bound the variance and obtain a precise estimation of xy. Intuitively, the larger hash table used, the better the estimates which were obtained. 
         [0023]    Therefore, an estimate of cosine similarity between vectors x, y is provided. The sketch of vector x can be used in order to estimate the inner product with all other vectors in the database. 
         [0024]    For Pearson correlation, the approach for cosine similarity estimation is extended as follows. Ideally, if the value x=(Σ l=1   n x l )/n is known in advance, it would be possible to simply apply the already-described algorithm. Instead, additionally a variable that computes=Σ i=1   n x i /n is maintained. Also, for each cell H x [j], the total contribution is computed from the function s, i.e., signs_l=Σ i=1   n l(h(t)=f))s(t), where l is an indicator variable that evaluates which of x&#39;s indices are hashed to H x [j]. After processing the stream, updates are made for each Hx[j]+=(−signs_j)*avg. One can formally prove that this yields an identical result if the vector (x1−{tilde over (x)}, x2−{tilde over (x)}, . . . , xn−{tilde over (x)}) is sketched. Since Σ i=1   n (x i −{tilde over (x)}) 2 =Σ i=1   n x i   2 −2{tilde over (x)}Σ i=1   n x i +nx 2 , it is possible to obtain an approximation of Pearson correlation in the very same way as for cosine similarity. 
         [0025]    As an example of one concrete application of one embodiment of the method, consider the problem of mining similar features that describe users and advertisements in a large scale stream. In this setting, users and advertisements are described by profiles. For example, user profiles include information like age, gender, location, browsing history etc. Ads are described by features like language, keywords, text analysis of the landing page. The goal is to detect similarities between features like ‘male’ and ‘cars’ that say that male users are more likely to be interested in ads about cars. 
         [0026]    In state-of-the-art recommender systems, an item i, e.g., a book, movie, news article, is recommended to a user u if another user v has rated positively item i and u and v have shown similar preferences in the past. Here, similar preferences are defined by the ratings users give to items. For example, if two users have highly rated the same set of books, then their cosine and Pearson similarity will be close to 1. In large-scale recommender systems, such as those used by online shops or video systems, ratings are produced in a streaming fashion without any particular order, for example users sporadically rating the videos they watch or the objects they buy. Furthermore, in typically large-scale real world deployments, it is infeasible to store and process information for all ratings of users. Therefore, one is interested in storing only a sketch of the ratings for each user, and applying the methods according to the embodiments detailed herein to evaluate the similarity of the user to others. Unlike the methods presented herein, current state-of-the-art work achieves sketching only for Jaccard similarity and only considers which items users have rated, not how they were rated. 
         [0027]    In genetic data mining, one is interested in detecting pairs of defect SNPs (Single Nucleotide Polymorphism) that are positively or negatively correlated with a certain disease, e.g. diabetes type-2 (c.f., Panagiotis Achlioptas, Bernhard Schölkopf, Karsten M. Borgwardt: Two-Locus Association Mapping in Subquadratic Time KDD (2011), pp. 726-734). The input consists of cases and controls, i.e., people who have the disease and people who don&#39;t. Naïve approaches require the generation of all pairs of SNPs, which is intractable as there are millions of different SNPs. Therefore, embodiments of the streaming approach presented herein can be advantageously applied to evaluate the correlation between SNPs and diseases. 
         [0028]      FIG. 3  schematically shows an exemplary system according to an embodiment of the invention. The system can be made up of a computer or computational processing unit, a server or a network of computers and/or servers, which apply the sketching algorithm to preferably streaming data from a data source  310 , which is, for example, stored on or available via a network. 
         [0029]    According to an embodiment, the data mining function with sketch generation is implemented via a method. The method includes receiving, by a data source  310 , various data, such as in the form of vectors (X, Y, Z, . . . , U). The sketch feature generator  320  performs the sketching as illustrated in the embodiments above, where the output sketch vectors have lower number of dimensions than the number of dimensions in corresponding input vector of the data source  310 . The similarity comparator  330  performs similarity comparison and/or matching on the sketched features. The decision loop  340  generates results of similarities based on the similarity comparison and/or matching, continuously and/or as data becomes available. 
         [0030]    According to an embodiment, a system  300  includes a data source  310 , a sketch feature generator  320 , a similarity comparator  330 , and a decision loop  340 . The data source  310  is configured to receive various data, such as in the form of vectors (X, Y, Z, . . . , U). The sketch feature generator  320  is configured to perform the sketching as illustrated in the embodiments above, where the output sketch vectors have lower number of dimensions than the number of dimensions in corresponding input vector of the data source  310 . The similarity comparator  330  is configured to perform similarity comparison and/or matching on the sketched features. The decision loop  340  is configured to generate results of similarities based on the similarity comparison and/or matching, continuously and/or as data becomes available. 
         [0031]    According to an embodiment, the data source  310  may be implemented via a database stored on a server, or a real time data collection device. The sketch feature generator  320 , the similarity comparator  330 , and the decision loop  340  may be each implemented via a computer or computational processing unit executing software stored on non-transitory computer readable medium, or via a firmware or a hardware circuitry configured to perform the algorithm functions as described herein. Additionally, the data source  310 , the sketch feature generator  320 , the similarity comparator  330 , and the decision loop  340  may be implemented together as a single unit or a single device, integrated on a single semiconductor die or a single chip with multiple semiconductor dies. 
         [0032]    According to an embodiment, the sketch feature generator  320  is configured to convert the plurality of input vectors into a corresponding plurality of normal vectors. 
         [0033]    According to an embodiment, the corresponding plurality of normal vectors include a plurality of 2-norm vectors. 
         [0034]    According to an embodiment, the data source  310  is configured to receive the plurality of input vectors as a stream of the input vectors in real time. 
         [0035]    According to an embodiment, the sketch feature generator  320  converts the stream of the input vectors into the corresponding plurality of sketch feature vectors in an order corresponding to an order of the stream of the input vectors. 
         [0036]    According to an embodiment, the system  300  further includes a memory configured to store the corresponding plurality of sketch feature vectors that are converted by the sketch feature generator  320  from the plurality of input vectors. 
         [0037]    According to an embodiment, the memory is configured to store a corresponding plurality of normal vectors that are converted by the sketch feature generator  320  from the plurality of input vectors. 
         [0038]    Similarity matching is performed on the sketch features and a decision loop is performed to evaluate similarities and provide a decision based on the similarities and the application. The application input or data depends on the application. Applications are also differentiated by the decision loop. For example, a recommender system may use as input product rating from users, and evaluate the similarity between users purchases in order to recommend new products to users. 
         [0039]    Embodiments of the present invention advantageously provide for the following: 
         [0000]    1) A novel sketching technique for summarizing vectors that allows the efficient estimation of cosine similarity and Pearson correlation between vectors.
 
2) Handling of massive data streams in real time.
 
3) Possible use cases are finding users with similar preferences for building large scale recommender systems and analyzing user-advertisement interaction in a streaming setting.
 
         [0040]    In an embodiment, the method comprises: 
         [0000]    1) Compactly representing objects as feature vectors;
 
2) Collecting the feature vectors;
 
3) Creating feature sketches to summarize the stream; and
 
4) Evaluating the similarity between feature vectors.
 
         [0041]    Examples of concrete, specific and particularized applications include: 
         [0000]    1) Recommender systems;
 
2) Genetic data mining; and
 
3) User-advertisement matching in a streaming setting.
 
         [0042]    For example, an embodiment of the present invention can work in the sales prediction setting. The product HML by NEC CORP. automatically extracts various factors affecting sales of items, such as the days of the, weather, temperature, popularity trend, etc. in order to predict sales and optimize ordering. This and similar information can then be used to evaluate similarities, for example among product types, to provide a more robust system and allow for further decisions, predictions and recommendations than before. 
         [0043]    For the applications listed above, embodiments of the present invention significantly outperform state-of-the-art systems, which either only apply to binary data and/or have larger processing time per element. The present solution is especially advantageous if the absolute values of the features adhere to a skewed distribution as opposed to a normal distribution or, in other words, where the vector elements do not have the same expected value. 
         [0044]    While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims. In particular, the present invention covers further embodiments with any combination of features from different embodiments described above and below. Additionally, statements made herein characterizing the invention refer to an embodiment of the invention and not necessarily all embodiments. 
         [0045]    The terms used in the claims should be construed to have the broadest reasonable interpretation consistent with the foregoing description. For example, the use of the article “a” or “the” in introducing an element should not be interpreted as being exclusive of a plurality of elements. Likewise, the recitation of “or” should be interpreted as being inclusive, such that the recitation of “A or B” is not exclusive of “A and B,” unless it is clear from the context or the foregoing description that only one of A and B is intended. Further, the recitation of “at least one of A, B and C” should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise. Moreover, the recitation of “A, B and/or C” or “at least one of A, B or C” should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C.