Patent Publication Number: US-8533195-B2

Title: Regularized latent semantic indexing for topic modeling

Description:
BACKGROUND 
     Topic modeling is useful for knowledge discovery, relevance ranking in search, and document classification. Recent years have seen significant progress on topic modeling technologies in machine learning, information retrieval, natural language processing, and other related fields. Given a collection of text documents, a topic model represents the relationship between terms and documents through latent topics. A topic is defined as a probability distribution of terms or a cluster of weighted terms. A document is then viewed as a bag of terms generated from a mixture of latent topics. 
     Studies on topic modeling fall into two categories: probabilistic approaches and non-probabilistic (matrix factorization) approaches. In the probabilistic approaches, a topic is defined as a probability distribution over terms and documents are defined as data generated from mixtures of topics. To generate a document, one chooses a distribution over topics. Then, for each term in that document, one chooses a topic according to the topic distribution, and draws a term from the topic according to its term distribution. For example, Probabilistic Latent Semantic Indexing (PLSI) and Latent Dirichlet Allocation (LDA) are two widely-used generative models. (See, T. Hoffman, Probabilistic Latent Semantic Indexing, SIGIR, pages 50-57, 1999; and D. Blei, A. Y. Ng, and M. I. Jordan, Latent Dirichlet Allocation, JMLR, 3:993-1022, 2003.) In non-probabilistic approaches, a term-document matrix is projected into a K-dimensional topic space in which each axis corresponds to a topic. In the topic space, each document is represented as a linear combination of the K topics. Latent Semantic Indexing (LSI) is a representative non-probabilistic model. (See, S. Deerwester, S. T. Dumais, G. W. Furnas, T. K. Landauer, and R. Harshman, Indexing By Latent Semantic Analysis,  J AM SOC INFORM SCI,  41:391-407, 1990.) LSI decomposes the term-document matrix with single value decomposition (SVD) under the assumption that topics are orthogonal. See also Non-negative Matrix Factorization (NMF) methods (e.g., D. D. Lee and H. S. Seung, Learning The Parts Of Objects With Nonnegative Matrix Factorization,  Nature,  401:391-407, 1999; and D. D. Lee and H. S. Seung, Algorithms For Non-Negative Matrix Factorization,  NIPS  13, pages 556-562. 2001) and Sparse Coding methods (e.g., H. Lee, A. Battle, R. Raina, and A. Y. Ng, Efficient Sparse Coding Algorithms,  NIPS , pages 801-808. 2007; and B. A. Olshausen and D. J. Fieldt, Sparse Coding With An Overcomplete Basis Set: A Strategy Employed By V1,  VISION RES,  37:3311-3325, 1997). 
     One of the main challenges in topic modeling is scaling to millions or even billions of documents while maintaining a representative vocabulary of terms, which is necessary in many applications such as web search. A typical approach is to approximate the learning processes of an existing topic model. 
     Probabilistic topic models like LDA and PLSI are not scalable. The scalability challenge for probabilistic topic models like LDA and PLSI mainly comes from the necessity of simultaneously updating the term-topic matrix to meet the probability distribution assumptions. When the number of terms is large, which is inevitable in real applications, this problem becomes particularly severe. For LSI, the scalability challenge is due to the orthogonality assumption in the formulation, and as a result the problem needs to be solved by Singular Value Decomposition (SVD) and thus is hard to be parallelized. 
     Most efforts to improve topic modeling scalability have modified existing learning methods, such as LDA. Newman, et al. proposed Approximate Distributed LDA (AD-LDA), in which each processor performs a local Gibbs sampling iteration followed by a global update. (D. Newman, A. Asuncion, P. Smyth, and M. Welling, Distributed Inference For Latent Dirichlet Allocation,  NIPS,  2008.) Two recent papers implemented AD-LDA as PLDA and modified AD-LDA as PLDA+, using MPI and MapReduce. (See, Y. Wang, H. Bai, M. Stanton, W. Yen Chen, and E. Y. Chang, PLDA: Parallel Latent Dirichlet Allocation For Large-Scale Applications,  AAIM , pages 301-314, 2009; Z. Liu, Y. Zhang, and E. Y. Chang. PLDA+: Parallel Latent Dirichlet Allocation With Data Placement And Pipeline Processing,  TIST,  2010; R. Thakur and R. Rabenseifner, Optimization Of Collective Communication Operations In MPICH,  INT J HIGH PERFORM C,  19:49-66, 2005; and J. Dean, S. Ghemawat, and G. Inc, Mapreduce: Simplified Data Processing On Large Clusters,  OSDI,  2004.). L. AlSumait, D. Barbara, and C. Domeniconi, the authors of On-Line LDA: Adaptive Topic Models For Mining Text Streams With Applications To Topic Detection And Tracking, ICDM, 2008, proposed purely asynchronous distributed LDA algorithms based on Gibbs Sampling or Bayesian inference, called Async-CGB or Async-CVB, respectively. In Async-CGB and Async-CVB, each processor performs a local computation step followed by a step of communicating with other processors. In all the methods, the local processors need to maintain and update a dense term-topic matrix, usually in memory, which becomes a bottleneck for improving the scalability. Similarly, online versions of stochastic LDA have been proposed. (See, L. AlSumait, D. Barbara, and C. Domeniconi, On-Line LDA: Adaptive Topic Models For Mining Text Streams With Applications To Topic Detection And Tracking, ICDM, 2008; and M. D. Hoffman, D. M. Blei, and F. Bach, Online Learning For Latent Dirichlet Allocation, NIPS, 2010.) 
     Sparse methods have recently received a lot of attention in machine learning community. These methods aim to learn sparse representations (simple models) hidden in the input data by using l 1  norm regularization. Sparse Coding algorithms are proposed which can be used for discovering basis functions, to capture meta-level features in the input data. See, for example, H. Lee, A. Battle, R. Raina, and A. Y. Ng, Efficient Sparse Coding Algorithms, NIPS, pages 801-808. 2007; and B. A. Olshausen and D. J. Fieldt, Sparse Coding With An Overcomplete Basis Set: A Strategy Employed By V1, VISION RES, 37:3311-3325, 1997. One justification to the sparse methods is that human brains have similar sparse mechanism for information processing. For example, when Sparse Coding algorithms are applied to natural images, the learned bases resemble the receptive fields of neurons in the visual cortex. (B. A. Olshausen and D. J. Fieldt, Sparse Coding With An Overcomplete Basis Set: A Strategy Employed By V1, VISION RES, 37:3311-3325, 1997.) Previous work on sparse methods mainly focused on image processing. (R. Rubinstein, M. Zibulevsky, and M. Elad, Double Sparsity: Learning Sparse Dictionaries For Sparse Signal Approximation, IEEE T SIGNAL PROCES, pages 1553-1564, 2008.) The use of sparse methods for topic modeling was also proposed very recently by Chen et al. (. Chen, B. Bai, Y. Qi, Q. Lin, and J. Carbonell, Sparse Latent Semantic Analysis, NIPS Workshop, 2010.) Their motivation was not to improve scalability and they made an orthogonality assumption (requiring an SVD). C. Wang and D. M. Blei have proposed to discover sparse topics based on a modified version of LDA. (C. Wang and D. M. Blei, Decoupling Sparsity And Smoothness In The Discrete Hierachical Dirichlet Process, NIPS, 2009.) 
     SUMMARY 
     This disclosure describes a Regularized Latent Semantic Indexing approach to topic modeling of electronic documents. The Regularized Latent Semantic Indexing approach may allow an equation involving an approximation of a term-document matrix to be solved in parallel by multiple calculating units. The equation may include terms that are regularized via either l 1  norm and/or via l 2  norm. The Regularized Latent Semantic Indexing approach may be applied to a set, or a fixed number, of documents such that the set of documents is topic modeled. Alternatively, the Regularized Latent Semantic Indexing approach may be applied to a variable number of documents such that, over time, the variable of number of documents is topic modeled. 
     This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same reference numbers in different figures indicate similar or identical items. 
         FIG. 1  is a schematic diagram of an illustrative environment to for topic modeling through scalable parallelization. 
         FIG. 2  is a schematic diagram of distributed Regularized Latent Semantic Indexing (RLSI). 
         FIG. 3  is a flow diagram of an illustrative process to perform topic modeling. 
         FIG. 4  is a flow diagram of another illustrative process to perform topic modeling. 
         FIG. 5  is a flow diagram of yet another illustrative process to perform topic modeling. 
         FIG. 6  is a block diagram of an illustrative computing device that may be deployed in the environment shown in  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
     Overview 
     Topic modeling can boost the performance of information retrieval, but its real-world application is limited due to scalability issues. Scaling to larger document collections via parallelization is an active area of research, but most solutions require drastic steps such as vastly reducing input vocabulary. 
     Regularized Latent Semantic Indexing (RLSI) is a new method which is designed for parallelization. It is as effective as existing topic models, and scales to larger datasets without reducing input vocabulary. RLSI formalizes topic modeling as a problem of minimizing a quadratic loss function regularized by l 1  and/or l 2  norm. This formulation allows the learning process to be decomposed into multiple sub-optimization problems which can be optimized in parallel, for example via MapReduce. In one embodiment, l 1  norm is applied on topic representations and l 2  norm on document representations, to create a model with compact and readable topics and useful for retrieval. 
     One of the key problems in topic modeling is to improve scalability, to handle millions of documents or even more. As collection size increases, so does vocabulary size, rather than a maximum vocabulary being reached. For example, in an experiment involving 1.6 million web documents, there are more than 7 million unique terms even after pruning the low frequency ones (e.g., term frequency in the whole collection less than 2). This means that both matrices, term-topic (U) and topic-document (V), grow as the number of documents increases. 
     Regularized Latent Semantic Indexing (RLSI) is intrinsically scalable. Topic modeling is formalized as minimization of a quadratic loss function on term-document occurrences regularized by l 1  and/or l 2  norm. Specifically, in RLSI the text collection is represented as a term-document matrix (D), where each entry represents the occurrence (or term frequency-inverse document frequency (tf-idf) score) of a term in a document. The term-document matrix (D) is then approximated by the product of two matrices: a term-topic matrix (U) which represents the latent topics with terms and a topic-document matrix (V) which represents the documents with topics. Finally, a quadratic loss function is defined as the squared Frobenius Norm of the difference between the term-document matrix (D) and the product of term-topic matrix (U) and topic-document matrix (V). Both l 1  norm and l 2  norm may be used for regularization. In one embodiment, l 1  norm is applied to topic representations U and l 2  norm is applied to document representations V, which can result in a model with compact and readable topics and useful for retrieval. While RLSI makes use of the same quadratic loss function as LSI, RLSI differs from LSI in that it uses regularization rather than orthogonality to constrain the solutions. In contrast to LSI, which is not scalable, RLSI is scalable. 
     In one embodiment, the learning process of RLSI iteratively updates the term-topic matrix (U) given the fixed topic-document matrix (V), and updates the topic-document matrix (V) given the fixed term-topic matrix (U). The formulation of RLSI makes it possible to decompose the learning problem into multiple sub-optimization problems and conduct learning in parallel. Specifically, for both the term-topic matrix (U) and the topic-document matrix, the update in each iteration is decomposed into many sub-optimization problems. These may be run in parallel, which is a reason that RLSI can scale up. 
     In one embodiment, RLSI is implemented employing MapReduce. A MapReduce system maps the sub-optimization problems over multiple processors and then merges (reduces) the results from the processors. During this process, documents and terms are distributed and processed automatically. 
     Regularization is a technique in machine learning to prevent over-fitting. Typical examples of regularization in machine learning include the use of l 1  and l 2  norms. Regularization via l 1  norm uses the sum of absolute values of parameters and thus has the effect of causing many parameters to be zero and selecting a sparse model as solution. Regularization via l 2  norm, on the other hand, uses the sum of squares of parameters and thus can make a smooth regularization and effectively deal with over-fitting. 
     The processes and systems described herein may be implemented in a number of ways. Example implementations are provided below with reference to the following figures 
     Illustrative Environment 
       FIG. 1  is a schematic diagram of an illustrative environment  100  for topic modeling of documents through scalable parallelization. The environment  100  may include at least one RLSI system, individually referenced as  102   a - 102   c  and collectively referenced as  102 , and a communication link  104 . The RLSI system  102  is communicatively coupled to a document source  106  via the communication link  104 . The communication link  104  may be a wireless or wired, including optical fiber, communication link that provides communication paths. 
     Document source  106  may include a static or quasi-static document database  108 , a document database  110 , and document servers network  112 . The document servers network  112  may conform to internet protocols and may include wide area networks (WANs), the World Wide Web being an exemplary WAN, and local area networks (LANs). The document servers network  112  includes a plurality of document servers  114 , which are communicatively coupled together. In one embodiment, the document servers  114  are web servers that store and provide documents  116  such as webpages. The number of documents stored in the servers  114  may vary over time as additional documents  120  are uploaded and old/expired documents  122  are removed. 
     The static or quasi-static document database  108  has a plurality (N) of documents  118  stored therein. The number (N) of documents  118  stored in the static or quasi-static document database  108  may be generally fixed or change infrequently over time. For example, additional documents  120  may be added to the static or quasi-static document database  108  on a weekly, or monthly, or even longer than a monthly, basis and similarly, expired documents  122  may be removed from the static or quasi-static document database  108  on a weekly, or monthly, or even longer than a monthly, basis. 
     The document database  110  also has a plurality of documents  124  stored therein. The number (N(t)) of documents  124  stored in the document database  120  may vary over time. For example, additional documents  120  may be added to the document database  110  on a daily, or hourly, or even less than hourly, basis, and similarly, expired documents  122  may be removed from the document database  110  on a daily, or hourly, or even less than hourly, basis. 
     The RLSI system  102  retrieves documents  116 ,  118 ,  124  from the document source  106  and topic models the retrieved documents  116 ,  118 ,  124 . 
     In one embodiment, the RLSI system  102   a  includes multiple computing devices  126  coupled together by a network  128 . The multiple computing devices  126  may be servers, main frame computers, personal computers, etc. The multiple computing devices  126  work in parallel to topic model the retrieved documents  116 ,  118 ,  124 . One or more of the computing devices  126  may be a multi-processor computing device. Further, one or more processors of the computing devices  126 , including multi-processor computing devices, may be a multi-core processor. 
     The RLSI system  102   b  includes at least one multi-processor computing device  130  having multiple processors  132 . The multiple processors  132  work in parallel to topic model the retrieved documents  116 ,  118 ,  124 . One or more of the processors  132  of the multi-processor computing device  130  may be a multi-core processor 
     The RLSI system  102   c  includes at least one computing device  134  having at least one multi-core processor  136 . The multi-core processor  136  includes multiple processing cores, which work in parallel to topic model the retrieved documents  116 ,  118 ,  124 . 
     For the purposes of this disclosure, a calculating unit is defined as including, at least one of, a processing core of a multi-core processor, a processor of a multi-processor computing device, and a computing device. 
     RLSI Overview 
     Documents  116 ,  118 ,  124  retrieved from the document source  106  may be described as a set of documents D with size N, containing terms from a vocabulary V with size M. A document is simply represented as an M-dimensional vector d, where the m th  entry denotes the score of the m th  term, for example, a Boolean value indicating occurrence, term frequency-inverse document frequency (tf-idf) or joint probability of the term and document. The N documents in D are then represented in an M×N term-document matrix D=[d 1 , . . . , d N ], in which each row of the term-document matrix D corresponds to a term and each column of the term-document matrix D corresponds to a document. 
     Columns of a matrix such as, for example, the term-document matrix D, may be referred to herein as column-vectors of the matrix, and similarly, rows of a matrix may be referred to herein as row-vectors of the matrix. 
     A topic is defined over terms in the vocabulary and is also represented as an M-dimensional vector u, where the m th  entry denotes the weight of the m th  term in the topic. Intuitively, the terms with larger weights are more indicative to the topic. Suppose that there are K topics in the collection. The K topics can be summarized into an M×K term-topic matrix U=[u 1 , . . . , u K ], in which each column corresponds to a topic. 
     Topic modeling means discovering the latent topics in the document collection as well as modeling the documents by representing them as mixtures of the topics. More precisely, given topics u 1 , . . . , u K , document d n  is succinctly represented as 
                   d   n     ≈       ∑     k   =   1     K     ⁢       v   kn     ⁢     u   k           =     U   ⁢           ⁢     v   n         ,         
where ν kn  denotes the weight of the k th  topic u k  in document d n . The larger value of ν kn , the more important role topic u k  plays in the document. Let V=[v 1 , . . . , v N ] be the topic-document matrix, where column v n  stands for the representation of document d n  in the latent topic space. Table 1 below provides a summary of notation.
 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Table of notations. 
               
            
           
           
               
               
               
            
               
                   
                 Notation 
                 Meaning 
               
               
                   
                   
               
               
                   
                 M 
                 Number of terms in vocabulary 
               
               
                   
                 N 
                 Number of documents in collection 
               
               
                   
                 K 
                 Number of topics 
               
               
                   
                 D ∈ R M×N   
                 Term-document matrix [d 1 , . . . , d N ] 
               
               
                   
                 d n   
                 The n th  document 
               
               
                   
                 d mn   
                 Weight of the m th  term in document d n   
               
               
                   
                 U ∈ R M×K   
                 Term-topic matrix [u 1 , . . . , u K ] 
               
               
                   
                 u k   
                 The k th  topic 
               
               
                   
                 u mk   
                 Weight of the m th  term in topic u k   
               
               
                   
                 V ∈ R K×N   
                 Topic-document matrix [v 1 , . . . , v N ] 
               
               
                   
                 v n   
                 Representation of d n  in the topic space 
               
               
                   
                 ν kn   
                 Weight of the k th  topic in v n   
               
               
                   
                   
               
            
           
         
       
     
     Different topic modeling techniques choose different schemas to model matrices U and V and impose different constraints on them. For example, in the generative topic models such as PLSI and LDA, u 1 , . . . , u K  are probability distributions so that 
                 ∑     m   =   1     M     ⁢     u   mk       =   1         
for k=1, . . . , K; In LSI, topics u 1 , . . . , u K  are orthogonal and thus SVD can be applied.
 
     However, Regularized Latent Semantic Indexing (RLSI) learns latent topics as well as representations of documents from the given text collections in the following way. 
     Document d n  is approximated as Uv n  where U is the term-topic matrix (U) and v n  is the representation of d n  in the latent topic space. The goodness of the approximation is measured by the quadratic loss of the difference between d n  and Uv n :∥d n −Uv n ∥ 2   2 . Furthermore, regularization is made on topics and document representations. Specifically in some embodiments, l 1  norm regularization is applied to term-topic matrix U (i.e., topics u 1 , . . . , u k ) and l 2  is applied to the topic-document matrix V (i.e., document representations v 1 , . . . , v N ) to favor a model with compact and readable topics and useful for retrieval. 
     Thus, given a text collection D={d 1 , . . . , d N }, RLSI amounts to solving the following optimization problem shown in Equation (1): 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       
                         U 
                         , 
                         
                           { 
                           
                             v 
                             n 
                           
                           } 
                         
                       
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                             ∑ 
                             
                               n 
                               = 
                               1 
                             
                             N 
                           
                           ⁢ 
                           
                             
                                
                               
                                 
                                   d 
                                   n 
                                 
                                 - 
                                 
                                   Uv 
                                   n 
                                 
                               
                                
                             
                             2 
                             2 
                           
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 k 
                                 = 
                                 1 
                               
                               K 
                             
                             ⁢ 
                             
                               
                                  
                                 
                                   u 
                                   k 
                                 
                                  
                               
                               1 
                             
                           
                         
                         + 
                         
                           
                             λ 
                             2 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 n 
                                 = 
                                 1 
                               
                               N 
                             
                             ⁢ 
                             
                               
                                  
                                 
                                   v 
                                   n 
                                 
                                  
                               
                               2 
                               2 
                             
                           
                         
                       
                       ] 
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     where λ 1 ≧0 is the parameter controlling the regularization on u k : the larger value of λ 1 , the more sparse u k ; and λ 2 ≧0 is the parameter controlling the regularization on v n : the larger value of λ 2 , the larger amount of shrinkage on v n . 
     In general, the regularization on topics and document representations (the second term and the third term) can be either l 1  norm or l 2  norm. When they are l 2  and l 1 , respectively, the process is equivalent to Sparse Coding. When both of them are l 1 , the model is similar to a double sparse model. Note that both Sparse Coding and double sparse model formulate optimization problems in constrained forms instead of regularized forms. The two forms are equivalent. 
     Using the formulation above (i.e. regularization via l 1  norm on topics and l 2  norm on document representations) leads to a model with compact and readable topics and useful for retrieval. Advantages of the above formulation are included below. 
     First, l 1  norm regularization on topics has the effect of making them compact, under the assumption that the essence of a topic can be captured via a small number of terms, which is reasonable in practice. In many applications, small and concise topics are more useful. For example, small topics can be interpreted as sets of synonyms, roughly corresponding to the WordNet synsets used in natural language processing. 
     Second, l 1  norm can make the topics readable, no matter whether it is imposed on topics or document representations. This has advantages in applications such as text summarization and visualization. 
     Third, there are four ways of combining l 1  and l 2  norms. Results of retrieval experiments across multiple test collections described herein, across multiple test collections, show that better ranking performance may be achieved with l 1  norm on topics and l 2  norm on document representations. 
     Last, in both learning and using of topic models, topic sparsity means that topics may be efficiently stored and processed. In some embodiments, existing techniques on sparse matrix computation may be employed, which are efficient and scalable. 
     RLSI Optimization 
     The optimization equation (1) is convex with respect to U when V is fixed and convex with respect to V when U is fixed. However, it is not convex with respect to both of them. Following the practice in Sparse Coding, the function in Equation (1) may be optimized by alternately minimizing it with respect to term-topic matrix U and topic-document matrix V. This procedure is summarized in Algorithm 1, hereinbelow. Note that for simplicity Algorithm 1 describes the case of when l 1  norm is imposed on topics and l 2  norm on document representations. However, other the scope of the disclosure is not limited to this regularization strategy. Other regulation strategies such as, but not limited to, include: (a) imposing l 1  norm on topics and document representations; (b) imposing l 2  norm on topics and document representations; and (c) imposing l 2  norm on topics and l 1  norm on document representations. 
     
       
         
           
               
             
               
                   
               
               
                 Algorithm 1 Regularized Latent Semantic Indexing 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 Require: D ε    M×N   
               
               
                   
                  1: V (0)  ε R K×N  ← random matrix 
               
               
                   
                  2: for t = 1 : T do 
               
               
                   
                  3: U (t)  ← UpdateU(D, V (r−1) ) 
               
               
                   
                  4: V (t)  ← UpdateV(D, U (r) ) 
               
               
                   
                  5: end for 
               
               
                   
                  6: return U (T) , V (T)   
               
               
                   
               
            
           
         
       
     
     In Algorithm 1, the term-document matrix D is dimensioned to be an M×N matrix in which each column represents a document and rows therein represent terms. The topic-document matrix V is dimensioned to be a K×N matrix and initialized with random values. 
     Algorithm 1 is iterative. An updated term-topic matrix U is determined based at least on the term-document matrix D and a current topic-document matrix V, then an updated topic-document matrix V is determined based at least on the term-document matrix D and the updated term-topic matrix U. 
     In some embodiments, steps 3 and 4 of Algorithm 1 may be applied for a set number of iterations. 
     In other embodiments, steps 3 and 4 may be applied for a variable number of iterations. For example, after a number of steps, the topic-document matrix V and/or the term-topic matrix U may have converged (i.e., an update to the topic-document matrix V and an update to the term-topic matrix U may produce changes to the topic-document matrix V and the term-topic matrix U below a threshold amount) and, after convergance, steps 3 and 4 are no longer repeated. Convergence may be determined based at least in part on convergance of one or both of the topic-document matrix V, and/or the term-topic matrix U, the difference between d n  and Uv n :∥d n −Uv n ∥ 2   2 , and/or the minimization of the Equation 1. 
     RLSI Optimization: Update of Matrix U 
     Holding V=[v 1 , . . . , v N ] fixed, the update of U amounts to the following optimization problem shown in Equation (2): 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       U 
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                              
                             
                               D 
                               - 
                               UV 
                             
                              
                           
                           F 
                           2 
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 m 
                                 = 
                                 1 
                               
                               M 
                             
                             ⁢ 
                             
                               
                                 ∑ 
                                 
                                   k 
                                   = 
                                   1 
                                 
                                 K 
                               
                               ⁢ 
                               
                                  
                                 
                                   u 
                                   mk 
                                 
                                  
                               
                             
                           
                         
                       
                       ] 
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     where ∥•∥ F  is the Frobenius norm and u mk  is the (mk) th  entry of U. Let  d   m =(d m1 , . . . , d mN ) T  and ū m =(u m1 , . . . , u mK ) T  be the column vectors whose entries are those of the m th  row of D and U respectively. Thus, Equation (2) can be rewritten as 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       
                         { 
                         
                           
                             u 
                             _ 
                           
                           m 
                         
                         } 
                       
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                             ∑ 
                             
                               m 
                               = 
                               1 
                             
                             M 
                           
                           ⁢ 
                           
                             
                                
                               
                                 
                                   
                                     d 
                                     _ 
                                   
                                   m 
                                 
                                 - 
                                 
                                   
                                     V 
                                     T 
                                   
                                   ⁢ 
                                   
                                     
                                       u 
                                       _ 
                                     
                                     m 
                                   
                                 
                               
                                
                             
                             2 
                             2 
                           
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 m 
                                 = 
                                 1 
                               
                               M 
                             
                             ⁢ 
                             
                               
                                  
                                 
                                   
                                     u 
                                     _ 
                                   
                                   m 
                                 
                                  
                               
                               1 
                             
                           
                         
                       
                       ] 
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   
                     2 
                     ⁢ 
                     a 
                   
                   ) 
                 
               
             
           
         
       
     
     which can be decomposed into M optimization problems that can be solved independently, with each corresponding to one row of U as shown in Equation (3): 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       
                         
                           u 
                           _ 
                         
                         m 
                       
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                              
                             
                               
                                 
                                   d 
                                   _ 
                                 
                                 m 
                               
                               - 
                               
                                 
                                   V 
                                   T 
                                 
                                 ⁢ 
                                 
                                   
                                     u 
                                     _ 
                                   
                                   m 
                                 
                               
                             
                              
                           
                           2 
                           2 
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             
                                
                               
                                 
                                   u 
                                   _ 
                                 
                                 m 
                               
                                
                             
                             1 
                           
                         
                       
                       ] 
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     for m=1, . . . , M. 
     Equation (3) is an l 1 -regularized least squares problem, whose objective function is not differentiable and it is not possible to directly apply gradient-based methods. A number of techniques can be used here, such as interior point method, coordinate descent with soft-thresholding, Lars-Lasso algorithm, and feature-sign search. In some embodiments, coordinate descent with soft-thresholding may be used. 
     Let  v   k =(ν k1 , . . . , ν kN ) T  be the column vector whose entries are those of the k th  row of V, V \k   T  the matrix of V T  with the k th  column removed, and ū m\k  the vector of ū m  with the k th  entry removed, and we can rewrite the objective function in Equation (3) as 
     
       
         
           
             
               
                 
                   
                     L 
                     ⁡ 
                     
                       ( 
                       
                         
                           u 
                           _ 
                         
                         m 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                          
                         
                           
                             
                               d 
                               _ 
                             
                             m 
                           
                           - 
                           
                             
                               V 
                               
                                 \ 
                                 ⁢ 
                                 k 
                               
                               T 
                             
                             ⁢ 
                             
                               
                                 u 
                                 _ 
                               
                               
                                 m 
                                 ⁢ 
                                 \ 
                                 ⁢ 
                                 k 
                               
                             
                           
                           - 
                           
                             
                               u 
                               mk 
                             
                             ⁢ 
                             
                               
                                 v 
                                 _ 
                               
                               k 
                             
                           
                         
                          
                       
                       2 
                       2 
                     
                     + 
                     
                       
                         λ 
                         1 
                       
                       ⁢ 
                       
                         
                            
                           
                             
                               u 
                               _ 
                             
                             
                               m 
                               ⁢ 
                               \ 
                               ⁢ 
                               k 
                             
                           
                            
                         
                         1 
                       
                     
                     + 
                     
                       
                         λ 
                         1 
                       
                       ⁢ 
                       
                          
                         
                           u 
                           mk 
                         
                          
                       
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     
                       
                         u 
                         mk 
                         2 
                       
                       ⁢ 
                       
                         
                            
                           
                             
                               v 
                               _ 
                             
                             k 
                           
                            
                         
                         2 
                         2 
                       
                     
                     - 
                     
                       2 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           
                             u 
                             mk 
                           
                           ⁡ 
                           
                             ( 
                             
                               
                                 
                                   d 
                                   _ 
                                 
                                 m 
                               
                               - 
                               
                                 
                                   V 
                                   
                                     \ 
                                     ⁢ 
                                     k 
                                   
                                   T 
                                 
                                 ⁢ 
                                 
                                   
                                     u 
                                     _ 
                                   
                                   
                                     m 
                                     ⁢ 
                                     \ 
                                     ⁢ 
                                     k 
                                   
                                 
                               
                             
                             ) 
                           
                         
                         T 
                       
                       ⁢ 
                       
                         
                           v 
                           _ 
                         
                         k 
                       
                     
                     + 
                     
                       
                         λ 
                         1 
                       
                       ⁢ 
                       
                          
                         
                           u 
                           mk 
                         
                          
                       
                     
                     + 
                     const 
                   
                 
               
             
             
               
                 
                   
                     = 
                     
                       
                         
                           u 
                           mk 
                           2 
                         
                         ⁢ 
                         
                           s 
                           kk 
                         
                       
                       - 
                       
                         2 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             u 
                             mk 
                           
                           ( 
                           
                             
                               r 
                               mk 
                             
                             - 
                             
                               
                                 ∑ 
                                 
                                   l 
                                   ≠ 
                                   k 
                                 
                               
                               ⁢ 
                               
                                 
                                   s 
                                   kl 
                                 
                                 ⁢ 
                                 
                                   u 
                                   ml 
                                 
                               
                             
                           
                           ) 
                         
                       
                       + 
                       
                         
                           λ 
                           1 
                         
                         ⁢ 
                         
                            
                           
                             u 
                             mk 
                           
                            
                         
                       
                       + 
                       const 
                     
                   
                   , 
                 
               
             
           
         
       
     
     where s ij  and r ij  are the (ij) th  entries of K×K matrix S=VV T  and M×K matrix R=DV T , respectively, and const is a constant with respect to u mk . Then, the minimization over u mk  is preformed while keeping all the u ml  fixed for which l≠k. Furthermore, L(ū m ) is differentiable with respect to u mk  except for the point u mk =0. Forcing the partial derivative to be zero leads to 
     
       
         
           
             
               u 
               mk 
             
             = 
             
               { 
               
                 
                   
                     
                       
                         
                           
                             ( 
                             
                               
                                 r 
                                 mk 
                               
                               - 
                               
                                 
                                   ∑ 
                                   
                                     l 
                                     ≠ 
                                     k 
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     s 
                                     kl 
                                   
                                   ⁢ 
                                   
                                     u 
                                     ml 
                                   
                                 
                               
                             
                             ) 
                           
                           - 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             
                               λ 
                               1 
                             
                           
                         
                         
                           s 
                           kk 
                         
                       
                       , 
                     
                   
                   
                     
                       
                         
                           if 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             u 
                             mk 
                           
                         
                         &gt; 
                         0 
                       
                       , 
                     
                   
                 
                 
                   
                     
                       
                         
                           
                             ( 
                             
                               
                                 r 
                                 mk 
                               
                               - 
                               
                                 
                                   ∑ 
                                   
                                     l 
                                     ≠ 
                                     k 
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     s 
                                     kl 
                                   
                                   ⁢ 
                                   
                                     u 
                                     ml 
                                   
                                 
                               
                             
                             ) 
                           
                           + 
                           
                             
                               1 
                               2 
                             
                             ⁢ 
                             
                               λ 
                               1 
                             
                           
                         
                         
                           s 
                           kk 
                         
                       
                       , 
                     
                   
                   
                     
                       
                         
                           if 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             u 
                             mk 
                           
                         
                         &lt; 
                         0 
                       
                       , 
                     
                   
                 
               
             
           
         
       
     
     which can be approximated by the following update rule: 
     
       
         
           
             
               
                 u 
                 mk 
               
               ← 
               
                 
                   
                     
                       ( 
                       
                         
                            
                           
                             
                               r 
                               mk 
                             
                             - 
                             
                               
                                 ∑ 
                                 
                                   l 
                                   ≠ 
                                   k 
                                 
                               
                               ⁢ 
                               
                                 
                                   s 
                                   kl 
                                 
                                 ⁢ 
                                 
                                   u 
                                   ml 
                                 
                               
                             
                           
                            
                         
                         - 
                         
                           
                             1 
                             2 
                           
                           ⁢ 
                           
                             λ 
                             1 
                           
                         
                       
                       ) 
                     
                     + 
                   
                   ⁢ 
                   
                     sign 
                     ( 
                     
                       
                         r 
                         mk 
                       
                       - 
                       
                         
                           ∑ 
                           
                             l 
                             ≠ 
                             k 
                           
                         
                         ⁢ 
                         
                           
                             s 
                             kl 
                           
                           ⁢ 
                           
                             u 
                             ml 
                           
                         
                       
                     
                     ) 
                   
                 
                 
                   s 
                   kk 
                 
               
             
             , 
           
         
       
     
     where (•) +  denotes the hinge function. The algorithm for updating U is summarized in Algorithm 2. 
                                                 Algorithm 2 UpdateU                              Require: D ∈    M×N , V ∈    K×N             1:   S ← VV T             2:   R ← DV T             3:   for m = 1 : M do           4:    ū m  ← 0           5:    repeat           6:     for k = 1 : K do           7:      w mk  ← r mk  − Σ l≠k  s kl u ml                         8:      
         u   mk     ←           (            w   mk          -       1   2     ⁢     λ   1         )     +     ⁢     sign   ⁡     (     w   mk     )           s   kk           
                       9:     end for           10:    until convergence           11:   end for           12:   return U                        
RLSI Optimization: Update of Matrix V
 
     The update of V with U fixed is a least squares problem with l 2  norm regularization. It can also be decomposed into N optimization problems, with each corresponding to one v n  and can be solved in parallel:
 
min v     n     [∥d   n   −Uv   n ∥ 2   2 +λ 2   ∥v   n ∥ 2   2 ],
 
     for n=1, . . . , N. It is a standard l 2 -regularized least squares problem (also known as Ridge Regression in statistics) and the solution is:
 
 v   n *=( U   T   U+λ   2   I ) −1   U   T   d   n .
 
     Algorithm 3 shows the procedure. (If K is large such that the matrix inversion (U T U+λ 2 I) −1  is hard, gradient descent in the update of v n  may be employed.) 
                             Algorithm 3 UpdateV                                            Require: D ε    M×N , U ε R M×K              1: Σ ← (U T U + λ 2 I) −1              2: Φ ← U T D            3: for n = 1 : N do            4: v n  ← Σφ M , where φ n  is the n th  column of Φ            5: end for            6: return V                    
Distributed RLSI: MapReduce
 
     MapReduce is a computing model that supports distributed computing on large datasets. MapReduce expresses a computing task as a series of Map and Reduce operations and performs the task by executing the operations in a distributed computing environment. In some embodiments, RLSI may be implemented via MapReduce, referred to as Distributed RLSI. 
       FIG. 2  is a schematic representation of Distributed RLSI  200 . At each iteration, U and V are updated using the following MapReduce operations as shown below. 
     At  202 , Map- 1 , where each iteration involves two mappings and Map- 1  is the first of the iteration: Broadcast S=VV T  and map R=DV T  on m (m=1, . . . , M) such that all of the entries in the m th  row of R are shuffled to the same calculating unit  204  in the form of  m,  r ,S , where  r   m  is the column vector whose entries are those of the m th  row of R. 
     At  206 , Reduce- 1 , where each iteration involves two reductions and Reduce- 1  is the first reduction of the iteration: Take  m,  r   m ,S  and emit  m,ū m   , where ū m  is the optimal solution for the m th  optimization problem (Equation (3)). 
     At  208 , recombine the solutions to form the U matrix: U=[ū 1 , . . . , ū M ] T  and store/buffer in storage device  220   a.    
     At  210 , calculate Σ=(U T U+λ 2 I 1 ) −1  and Φ=U T D. 
     At  212 , Map- 2 , broadcast Σ and map Φ=U T D. n (n=1, . . . , N) such that the entries in the n th  column of Φ are shuffled to the same calculating unit  214  in the form of  n,φ n ,Σ , where φ n  is the n th  column of Φ. 
     At  216 , Reduce- 2 , take  n,φ n ,Σ , and emit  n,v n =Σφ n   , where v n  is the optimal solution for the n th  optimization problem (Equation (3)). 
     At  218 , recombine the solutions to form the V matrix: V=[v 1 , . . . , v N ] and store/buffer in storage device  220   b.    
     At  222 , calculate S=VV T  and R=DV T . 
     The process returns to  202 , Map- 1 , for another iteration. In some embodiments, the process may be implemented for a set number of iteration. In other embodiments, the process may be implemented for a variable number of iterations and may be ceased based on a convergence. 
     Note that the data partitioning schemas for R in Map- 1  and for Φ in Map- 2  are different. R is split such that entries in the same row (corresponding to one term) are shuffled to the same calculating unit while Φ is split such that entries in the same column (corresponding to one document) are shuffled to the same calculating unit. 
     There are a number of large scale matrix multiplication operations in operation Map- 1  (DV T  and VV T ) and Map- 2  (U T D and U T U). These matrix multiplication operations can also be conducted on MapReduce infrastructure efficiently. As example, DV T  can be calculated as 
               ∑     n   =   1     N     ⁢       d   n     ⁢     v   n   T             
and thus fully parallelized.
 
RLSI: MPI Platforms
 
     RLSI may also be implemented in Message-Passing Interface (MPI) platforms. In this case, the rows of U and columns of V can be updated on each of the processors. Algorithm 4 provides an overview, and algorithms 5 and 6 provide the details for updating U and V on MPI in each iteration, respectively. 
     
       
         
           
               
             
               
                   
               
               
                 Algorithm 4 Parallel RLSI using MPI 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 Require: D ε   M×N   
               
               
                   
                  1: V (0)  ε R K×N  ← random matrix 
               
               
                   
                  2: for t = 1 : T do 
               
               
                   
                  3: U (t)  ← MPI-UpdateU(D, V (t−1) ) 
               
               
                   
                  4: V (t)  ← MPI-UpdateV(D, U (t) ) 
               
               
                   
                  5: end for 
               
               
                   
                  6: return U (T) , V (T)   
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
             
               
                   
               
               
                   
                 Algorithm 5 MPI-UpdateU 
               
               
                   
               
             
            
               
                   
                 Require: D ∈    M×N , V ∈    K×N   
               
               
                 1: 
                 Calculate S ← VV T  and R ← DV T  in parallel 
               
               
                 2: 
                 Assign rows of R to P processors such that  r   m  is assigned to 
               
               
                   
                 processor └m/P┘ 
               
               
                 3: 
                 for p = 0 : P − 1 do 
               
               
                 4: 
                  Load S on processor p 
               
               
                 5: 
                  Load assigned  r   m  into R p  = [  r   1   p , . . . ,  r   j   p ], where  r   (m%P)   p  =  r   m   
               
               
                 6: 
                  for j = 1 : J do 
               
               
                 7: 
                   ū j  ← 0 
               
               
                 8: 
                   repeat 
               
               
                 9: 
                    for k = 1 : K do 
               
               
                 10: 
                     w jk  ← r jk   p  − Σ l≠k  s kl u jl   
               
               
                   
               
               
                 11: 
                     
         u   jk     ←           (            w   jk          -       1   2     ⁢     λ   1         )     +     ⁢     sign   ⁡     (     w   jk     )           s   kk           
 
               
               
                   
               
               
                 12: 
                    end for 
               
               
                 13: 
                   until convergence 
               
               
                 14: 
                  end for 
               
               
                 15: 
                  U p  = [ū 1   p , . . . , ū j   p ] T   
               
               
                 16: 
                 end for 
               
               
                 17: 
                 Synchronize 
               
               
                 18: 
                 U ← [U 1T , . . . , U PT ] T . 
               
               
                 19: 
                 return U 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
             
               
                   
               
               
                 Algorithm 6 MPI-UpdateV 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 Require: D ε    M×N , U ε    M×K   
               
               
                   
                  1: Calculate Σ ← (U T U + λ 2 I) −1  and Φ ← U T D in parallel 
               
               
                   
                  2: Assign columns of Φ to P processors such that φ n  is assigned 
               
               
                   
                   to processor └n/P┘ 
               
               
                   
                  3: for p = 0 : P − 1 do 
               
               
                   
                  4: Load Σ on processor p 
               
               
                   
                  5: Load assigned φ s &#39;s into Φ p  = [φ 1   p , ... , φ Q   p ], where φ (n%P)   P  = 
               
               
                   
                    φ n . 
               
               
                   
                  6: for q = 1 : Q do 
               
               
                   
                  7:  v q   p  ← Σφ q   p   
               
               
                   
                  8: end for 
               
               
                   
                  9: V p  = [v 1   P , ... , v Q   P ] 
               
               
                   
                 10: end for 
               
               
                   
                 11: Synchronize 
               
               
                   
                 12: V ← [V 1 , ... , V P ]. 
               
               
                   
                 13: return V 
               
               
                   
               
            
           
         
       
     
     In some embodiments, the algorithms may be implemented for a set number of iterations. 
     In other embodiments, the algorithms may be implemented for a variable number of iterations and may be ceased based on a convergence. For example, the algorithms may be ceased based at least in part on convergance of one or both of the topic-document matrix V, and/or the term-topic matrix U. Alternatively, the algorithms may be ceased based on convergance of the difference between d n  and Uv n :∥d n −Uv n ∥ 2   2 . Alternatively, the algorithms may be ceased based on convergance of the minimization of Equation (1). 
     Online Learning for RLSI 
     In some embodiments, RLSI may employed for on-line learning of documents. Given a text collection D={d 1 , . . . , d N }, the RLSI loss function may be written as shown in Equation (4): 
     
       
         
           
             
               
                 
                   
                     
                       min 
                       
                         U 
                         , 
                         
                           { 
                           
                             v 
                             n 
                           
                           } 
                         
                       
                     
                     ⁢ 
                     
                       [ 
                       
                         
                           
                             1 
                             N 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 n 
                                 = 
                                 1 
                               
                               N 
                             
                             ⁢ 
                             
                               [ 
                               
                                 
                                   
                                      
                                     
                                       
                                         d 
                                         n 
                                       
                                       - 
                                       
                                         Uv 
                                         n 
                                       
                                     
                                      
                                   
                                   2 
                                   2 
                                 
                                 + 
                                 
                                   
                                     λ 
                                     2 
                                   
                                   ⁢ 
                                   
                                     
                                        
                                       
                                         v 
                                         n 
                                       
                                        
                                     
                                     2 
                                     2 
                                   
                                 
                               
                               ] 
                             
                           
                         
                         + 
                         
                           
                             λ 
                             1 
                           
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 k 
                                 = 
                                 1 
                               
                               K 
                             
                             ⁢ 
                             
                               
                                  
                                 
                                   u 
                                   k 
                                 
                                  
                               
                               1 
                             
                           
                         
                       
                       ] 
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     where λ 1 ≧0 is the parameter controlling the regularization on u k : the larger value of λ 1 , the more sparse u k ; and λ 2 ≧0 is the parameter controlling the regularization on v n : the larger value of λ 2 , the larger amount of shrinkage on v n . 
     In this implimentation, a training set is composed of independent and identically distributed (i.i.d.) samples of a distribution p(d). Documents are drawn one document d n  at a time, as in stochastic gradient descent. The process alternates between the document projection step and the term-topic matrix update step. The document projection step computes the topic representation of document d n  as 
     
       
         
           
             
               
                 v 
                 n 
               
               = 
               
                 
                   arg 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       min 
                       v 
                     
                     ⁢ 
                     
                       
                          
                         
                           
                             d 
                             n 
                           
                           - 
                           
                             
                               U 
                               
                                 n 
                                 - 
                                 1 
                               
                             
                             ⁢ 
                             v 
                           
                         
                          
                       
                       2 
                       2 
                     
                   
                 
                 + 
                 
                   
                     λ 
                     2 
                   
                   ⁢ 
                   
                     
                        
                       v 
                        
                     
                     2 
                     2 
                   
                 
               
             
             , 
           
         
       
     
     where U n-1  is the term-topic matrix obtained at the previous iteration. The term-topic matrix update step update term-topic matrix: 
     
       
         
           
             
               
                 U 
                 n 
               
               = 
               
                 
                   arg 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       min 
                       U 
                     
                     ⁢ 
                     
                       
                         1 
                         n 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           n 
                         
                         ⁢ 
                         
                           
                              
                             
                               
                                 d 
                                 i 
                               
                               - 
                               
                                 Uv 
                                 i 
                               
                             
                              
                           
                           2 
                           2 
                         
                       
                     
                   
                 
                 + 
                 
                   
                     λ 
                     1 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         1 
                       
                       K 
                     
                     ⁢ 
                     
                       
                          
                         
                           u 
                           k 
                         
                          
                       
                       1 
                     
                   
                 
               
             
             , 
           
         
       
     
     where the v i &#39;s for i&lt;n have been computed during the previous steps. This procedure is summarized in Algorithm 7 and Algorithm 8. 
     
       
         
           
               
             
               
                   
               
               
                 Algorithm 7 Online RLSI 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                   
                 Require: p (d) 
               
               
                   
                 1: U 0  ε    M×K  ← random Matrix 
               
               
                   
                 2: S 0  ⊂    K×K  , 0, R 0  ⊂    M×K  , 0 
               
               
                   
                 3: for n = 1, ... , N do 
               
               
                   
                 4: Draw d n  from p(d) 
               
               
                   
                 5: v n  ← (U n−1   T  U n−1  + λ 2 I) −1  U n−1   T d n   
               
               
                   
                 6: S n  ← S n−1  + v n v n   T   
               
               
                   
                 7: R n  ← R n−1  + d n v n   T   
               
               
                   
                 8: U n  ← UpdateU(S n , R n ,n) 
               
               
                   
                 9: end for 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
             
               
                   
               
               
                   
                 Algorithm 8 UpdateU 
               
               
                   
               
             
            
               
                   
                 Require: S ∈    K×K , R ∈    M×K , n ∈ N +   
               
               
                 1: 
                 for m = 1 : M do 
               
               
                 2: 
                  ū m  ← 0 
               
               
                 3: 
                  repeat 
               
               
                 4: 
                   for k = 1 : K do 
               
               
                 5: 
                    w mk  ← r mk  − Σ l≠k  s kl u ml   
               
               
                   
               
               
                 6: 
                    
         u   mk     ←           (            w   mk          -       1   2     ⁢     n   ·     λ   1           )     +     ⁢     sign   ⁡     (     w   mk     )           s   kk           
 
               
               
                   
               
               
                 7: 
                   end for 
               
               
                 8: 
                  until convergence 
               
               
                 9: 
                 end for 
               
               
                 10: 
                 return U 
               
               
                   
               
            
           
         
       
     
     In some embodiments, the algorithms 7 and 8 may be implemented for a set number of iterations. 
     In other embodiments, the algorithms 7 and 8 may be implemented for a variable number of iterations and may be ceased based on convergence. For example, the algorithms may be ceased based at least in part on convergance of term-topic matrix U. 
     Illustrative Operation 
       FIG. 3  is a flow diagram of an illustrative process  300  to perform RLSI. The process  300  is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the process. Other processes described throughout this disclosure, including the process described with reference to  FIG. 2 , in addition to process  300  and other processes described hereinafter, shall be interpreted accordingly. 
     At  302 , a number (N) of documents  116 ,  118 ,  124  are retrieved from the document source  106  by the RLSI system  102 . The number (N) of documents retrieved from the document source  106  may be some or all of the documents currently stored in the static or quasi-static document database  108 , and/or the document database  110 , and/or the document servers  114 . 
     At  304 , RLSI system  102  defines a vocabulary of size M. 
     At  306 , RLSI system  102  initializes matrices. The RLSI system  102  assigns values to a term-document matrix (D) based at least on the retrieved N documents  116 ,  118 ,  124  and the vocabulary. The RLSI system  102  may initialize a topic-document matrix (V) to random values. 
     At  308 , the RLSI system  102  minimizes an equation having as terms thereof a term-document matrix (D), a term-topic matrix (U), a topic-document matrix (V), a regularization of vectors of the term-topic matrix (U) and a regularization of vectors of the topic-document matrix (V). The RLSI system  102  may minimize the equation iteratively such as, for example, minimizing the equation while holding the topic-document matrix (V) and then minimizing the equation while hold the term-topic matrix (U). 
     At  310 , the RLSI system  102  updates the term-topic matrix (U) and the topic-document matrix (V). 
     At  312 , the RLSI system  102  determines whether the minimization of the equation is complete. The RLSI system  102  may determine that the minimization of the equation is complete based at least on, for example, a number of iterations (e.g., it is complete after n iterations, where n is greater than zero). Similarly, the RLSI system  102  may determine that the minimization of the equation is complete based at least on convergence of the equation and/or convergence of terms in the equation. For example, the equation may be evaluated after each iteration, and when the equation changes by less than a threshold amount between iterations, then the equation is determined to have converged. 
     If the determination at  312  is that the minimization is not complete, the process returns to  308  and re-minimizes the equation (i.e., performs another iteration). 
     On the other hand, if the determination at  312  is that the minimization is complete, the process continues at  314  and stores the term-topic matrix (U) and the topic-document matrix (V). 
       FIG. 4  is a flow diagram of an illustrative process  400  to perform RLSI in accordance with another embodiment. 
     At  402 , an initial number (N 0 ) of documents  116 ,  118 ,  124  are retrieved from the document source  106  by the RLSI system  102 . The initial number (N 0 ) of documents retrieved from the document source  106  may be some or all of the documents currently stored in the static or quasi-static document database  108 , and/or the document database  110 , and/or the document servers  114 . In some embodiments, the initial number (N 0 ) of documents retrieved from the document source  106  may be as few as a single document. 
     At  404 , RLSI system  102  defines a vocabulary of size M, which may change over time. In other words, the size of the vocabulary may increase (or decrease) over time as the RLSI system  102  is trained. The size of the of the vocabulary is typically increased as the number of retrieved documents increases. 
     At  406 , RLSI system  102  initializes matrices. The RLSI system  102  assigns values to a term-document matrix (D) based at least on the retrieved initial N 0  documents  116 ,  118 ,  124  and the vocabulary. The RLSI system  102  may initialize a topic-document matrix (V) to random values. 
     At  408 , the RLSI system  102  minimizes an equation having as terms thereof a term-document matrix (D), a term-topic matrix (U), a topic-document matrix (V), a regularization of vectors of the term-topic matrix (U) and a regularization vectors of the topic-document matrix (V). The RLSI system  102  may minimize the equation iteratively such as, for example, minimizing the equation while holding the topic-document matrix (V) and then minimizing the equation while holding the term-topic matrix (U). 
     At  410 , the RLSI system  102  updates the term-topic matrix (U) and the topic-document matrix (V). 
     At  412 , the RLSI system  102  determines whether the minimization of the equation is complete. The RLSI system  102  may determine that the minimization of the equation is complete based at least on, for example, a number of iterations (e.g., it is complete after n iterations, where n is greater than zero). Similarly, the RLSI system  102  may determine that the minimization of the equation is complete based at least on convergence of the equation and/or convergence of terms in the equation. For example, the equation may be evaluated after each iteration, and when the equation changes by less than a threshold amount between iterations, then the equation is determined to have converged. 
     If the determination at  412  is that the minimization is not complete, the process returns to  408  and re-minimizes the equation (i.e., performs another iteration). 
     On the other hand, if the determination at  412  is that the minimization is complete, the process continues at  414 , where the RLSI system  102  determines whether there are more documents. 
     If there are more documents, then at  416 , the RLSI system  102  retrieves a number (N) of documents  116 ,  118 ,  124  from the document source  106 , where N is greater than or equal to one. The RLSI system  102  may also resize, if necessary, matrices based at least in part on the number (N) of documents retrieved. The process then returns to  408 . 
     If the determination at  414  is that there are no more documents, the process continues at  418  and the RLSI system  102  stores the term-topic matrix (U) and the topic-document matrix (V). 
       FIG. 5  is a flow diagram of an illustrative process  500  to minimize a first equation having as terms thereof a term-document matrix (D), a term-topic matrix (U), a topic-document matrix (V), a regularization of vectors of the term-topic matrix (U) and a regularization vectors of the topic-document matrix (V). 
     At  502 , the RLSI system  102  decomposes the first equation into M independent second equations. 
     At  504 , the RLSI system  102  holds the topic-document matrix (V) fixed while minimizing the M independent second equations. Typically, the M independent second equations are minimized in parallel on separate calculating units. 
     At  506 , the RLSI system  102  updates the term-topic matrix (U). 
     At  508 , the RLSI system  102  decomposes the first equation into N independent third equations. 
     At  510 , the RLSI system  102  holds the term-topic matrix (U) fixed while minimizing the N independent third equations. Typically, the N independent third equations are minimized in parallel on separate calculating units. 
     At  512 , the RLSI system  102  updates the topic-document matrix (V). 
     Illustrative Computing Device 
       FIG. 6  shows an illustrative computing device  600  that may be used to implement the RLSI. It will readily be appreciated that the various embodiments described above may be implemented in other computing devices, systems, and environments. The computing device  600  shown in  FIG. 8  is only one example of a computing device and is not intended to suggest any limitation as to the scope of use or functionality of the computer and network architectures. The computing device  600  is not intended to be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example computing device. 
     In a very basic configuration, the computing device  600  typically includes at least one processing unit  602  and system memory  604 . Depending on the exact configuration and type of computing device, the system memory  604  may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The system memory  604  typically includes an operating system  606 , one or more program modules  608 , and may include program data  610 . The computing device  600  is of a very basic configuration demarcated by a dashed line  614 . 
     The computing device  600  may have additional features or functionality. For example, the computing device  600  may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG. 6  by removable storage  616  and non-removable storage  618 . Computer-readable media may include, at least, two types of computer-readable media, namely computer storage media and communication media. Computer storage media may include volatile and non-volatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. The system memory  604 , the removable storage  616  and the non-removable storage  618  are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store the desired information and which can be accessed by the computing device  600 . Any such computer storage media may be part of the computing device  600 . Moreover, the computer-readable media may include computer-executable instructions that, when executed by the processor(s)  602 , perform various functions and/or operations described herein. 
     In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media does not include communication media. 
     The computing device  600  may also have input device(s)  620  such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s)  622  such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and are not discussed at length here. 
     The computing device  600  may also contain communication connections  624  that allow the device to communicate with other computing devices  626 , such as over a network. These networks may include wired networks as well as wireless networks. The communication connections  624  are one example of communication media. 
     It is appreciated that the illustrated computing device  600  is only one example of a suitable device and is not intended to suggest any limitation as to the scope of use or functionality of the various embodiments described. Other well-known computing devices, systems, environments and/or configurations that may be suitable for use with the embodiments include, but are not limited to personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-base systems, set top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and/or the like. For example, some or all of the components of the computing device  600  may be implemented the RLSI system  102 . 
     CONCLUSION 
     Although the techniques have been described in language specific to structural features and/or methodological acts, it is to be understood that the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing such techniques.