Patent Publication Number: US-8527534-B2

Title: Bootstrap and adapt a document search engine

Description:
BACKGROUND 
     The retrieval accuracy of a search engine can be greatly improved when the engine is constantly updated with cues harvested from the usage data. However, the quality of the usage data is highly dependent upon the search engine that is used to collect such data. Therefore it is desired to have a “bootstrap” engine with reasonable quality when venturing into a new domain. 
     A typical approach to ensure good bootstrap quality is to train the engine with exemplars. The exemplars oftentimes have to be collected and labeled by humans, a process that is time consuming and expensive especially when a large quantity is oftentimes necessary to have a well trained engine. The exemplars can become stale, especially for domains on the web where hot trends and new contents emerge with rapid pace. 
     SUMMARY 
     The following presents a simplified summary in order to provide a basic understanding of some novel embodiments described herein. This summary is not an extensive overview, and it is not intended to identify key/critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later. 
     The architecture includes a modeling technique based on language modeling techniques to estimate a probability of a document matching the user need as expressed in the query. The modeling technique is based on the data mining results that various portions of a document (e.g., body, title, URL, anchor text, user queries) use different styles of human languages. Thus, the results based on a language can be adapted individually to match the language of query. Since the approach is based on adaptation, the framework also provides a natural means to progressively revise the model as user data are collected. 
     The architecture employs an adaptation approach for a language model, rather than the machine learning methods that attempt to generalize from exemplars to cover unseen cases. Additionally, different styles of languages in a document can be recognized and adapted individually. Background language models are also employed that offer a graceful fallback approach in case the document has incomplete fields of data, and can utilize topical or semantic hierarchy of the knowledge domain. 
     To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of the various ways in which the principles disclosed herein can be practiced and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a computer-implemented information retrieval system in accordance with the disclosed architecture. 
         FIG. 2  illustrates an alternative embodiment of an information retrieval system. 
         FIG. 3  illustrates a computer-implemented information retrieval method in accordance with the disclosed architecture. 
         FIG. 4  illustrates further aspects of the method of  FIG. 3 . 
         FIG. 5  illustrates an alternative information retrieval method. 
         FIG. 6  illustrates further aspects of the method of  FIG. 5 . 
         FIG. 7  illustrates a block diagram of a computing system that executes information retrieval using adaptive language models in accordance with the disclosed architecture. 
     
    
    
     DETAILED DESCRIPTION 
     The disclosed architecture is a language modeling approach to document retrieval in which each document is characterized by a mixture model with components that correspond to the various streams (multimedia, metadata) associated with the document. However, issues for such a mixture model approach arise as all the same streams are not always present for the multiple documents, and do not share the same lexicon, thereby complicating the ability to properly combine the statistics from the mixture components. As a solution, an “open-vocabulary” smoothing technique is disclosed so that all the component language models of a document and across documents have the same cardinality, and hence, the scores can simply be linearly combined. 
     Documents can be crawled from document sources such as from the Internet, enterprise datastores, and/or client machines, for example. For each retrieval unit (document), identification is made of the associated multi-media descriptions for that retrieval unit. Generally, a retrieval unit can be anything to which a uniform resource identifier (URI) is assigned. Although the description below uses web documents as retrieval units, it is to be appreciated that the disclosed architecture can be generalized to resources other than documents, as well. The term multi-media description or streams is intended to encompass text streams, audio streams, video stream, image streams, etc. For example, when dealing with audio books, speech recognition can be performed. If a radio clip of an audio channel, there can be closed captioning information as well as the audio track information for speech recognition. Image analysis can be performed for images, and frames of video streams. 
     Thus, analysis is performed for each retrieval unit to gather all of the associated descriptions and then identify the different descriptions styles. For example, in the case of the retrieval unit being a web documents, anchor text can be analyzed, and how users refer to this document. Anchor text is often composed in a different linguistic style than the document title or document body. 
     For an enterprise search, for example, there can be metadata for each retrieval unit that is automatically generated by the client application or server application. The application can tag the author if generated from an email thread, as well as provide email thread identifiers, etc. Thus, there is set of rich metadata that can be associated with a document even though not literally inside the document. Spreadsheet programs may provide even more metadata. 
     Based on the many streams of data that can be obtained from a document, and the metadata associated with the document, the language models can be developed. Each stream has one or more characteristics. A model is developed for each characteristic. For example, for a web document, there can be developed a language model for the document body, a language model for the title, and a language model for the anchor text and yet another language model for the query. 
     When performing searches on the Internet or other similar networks, each document is oftentimes associated with the web search engine that users utilize to retrieve the document. Thus, another source of stream is a query stream. Using all the developed models, linear interpolation can be performed on the adaptive framework. Contrariwise, in conventional systems, users are asked to submit queries, a list of retrieval candidates is presented and “judges” label candidates deemed relevant. The label data is used as a training set to train the parameters for the mixture model. 
     The disclosed architecture obviates this manual process and introduces an automated judging process that estimates the probability of a document matching the user need as expressed in the query. The modeling technique is based on the data mining results that various portions of a document (e.g. body, title, URI, and anchor text that others use to refer to these documents) use different style of human languages and therefore can be adapted individually to match the language of query. Since this approach is based on adaptation, the framework also provides a natural means to progressively revise the model as user data are collected. 
     Although described in the context of web documents, it is to be understood that the disclosed solution can be applied to other documents as well, such as documents stored in enterprise systems, and associated with client-based applications. 
     A straightforward generalization for a language model is to view the document as being described by multiple text streams. A quantitative analysis on the documents indexed by a commercial web search engine indicates that all these text streams seem to be written in respective language styles and have varying degrees of mismatch with the query. This provides motivation to model the associated linguistic characteristics separately. Empirical studies on applying the language models for different task domains indicate that mixing textual sources with different language styles can significantly degrade the quality of language models. 
     When a probability space is divided into disjoint partitions, the probability P of an event can be evaluated as the sum of the conditional probability of the event occurring in each partition, weighted by the prior of that partition. Applying this principle to the document modeling, let document D i  denote the i th  stream of D and P D     i   , and w D     i    is the document weight, the corresponding multi-mixture component language model for the stream can be the following: 
     
       
         
           
             
               
                 
                   
                     P 
                     D 
                   
                   = 
                   
                     
                       
                         ∑ 
                         i 
                       
                       ⁢ 
                       
                         
                           P 
                           ⁡ 
                           
                             ( 
                             
                               
                                 D 
                                 i 
                               
                               | 
                               D 
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           P 
                           
                             D 
                             i 
                           
                         
                       
                     
                     = 
                     
                       
                         ∑ 
                         i 
                       
                       ⁢ 
                       
                         
                           w 
                           
                             D 
                             i 
                           
                         
                         ⁢ 
                         
                           P 
                           
                             D 
                             i 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     Beneath the linear interpolation form of (1) are questions related to the conditions under which the component language models can be combined properly. Since the foundation of mixture modeling is derived from the probability space partitioning, all the mixture components can be modeling the same underlying probability space. It is known that language models having different sets of vocabulary should be viewed as modeling different domains. Unfortunately, as a consequence, the associated scores cannot be directly compared, let alone combined into a mixture distribution. Although the description uses the linear interpolation, or the “sum of products form” of (1) as the basis for embodiments, it is to be understood that the component language models can be combined in the logarithmically linear (log-linear) fashion or in the form of “product of sums”. 
     When applying language models for information retrieval (IR), for example, it is necessary to ensure that all document language models have the same vocabulary so that the document language models do not selectively treat different portions of the query as out-of-vocabulary (OOV) terms. A common approach to smooth the document language models with a shared background model effectively makes all documents use the same vocabulary of the background model, yet OOVs are common. For IR using mixture language models, OOVs of one mixture component are not necessarily the OOVs for others, thereby making the task of properly computing the combined probability of the query a difficult proposition. 
     The disclosed architecture addresses this problem by employing an “open-vocabulary” language model approach. At the core of the open-vocabulary language model is a formidable challenge to assess the probability mass for OOVs. Language models that can yield non-trivial probabilities for OOVs can be viewed as modeling a language with infinite vocabulary. All open-vocabulary language models thus at least have the same cardinality for associated vocabulary, and the probabilistic scores are on a more solid ground to be comparable and combined. 
     The architecture includes an analytically tractable and fully automated technique that alleviates the problems arising from empirical parameter tunings. This automated approach is applied to both the smoothing of the mixture component language model P D     i    and the estimation of the mixture weights in the above component language model in (1). Additionally, described herein is the detailed mathematical derivation that shows how the smoothing parameters can be obtained by computing how an N-gram is predicted by (N−1)-gram. In particular, the OOV probability mass, which is equivalent to unigram discount, can therefore be estimated by inspecting how the unigram is predicted by the zero-gram. Methods to compute mixture coefficients are also described. 
     Reference is now made to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be evident, however, that the novel embodiments can be practiced without these specific details. In other instances, well known structures and devices are shown in block diagram form in order to facilitate a description thereof. The intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the claimed subject matter. 
       FIG. 1  illustrates a computer-implemented information retrieval system  100  in accordance with the disclosed architecture. The system  100  includes a query component  102  that receives and processes a query  104  to retrieve a document  106  having different language styles as data streams  108 . A model component  110  creates multiple language models  112  for the corresponding data streams  108 . The language models  112  characterize the data streams  108  for document ranking. An estimation component  114  estimates mixture weights for the language models  112 . The mixture weights  116  are computed as a measure of adaptability that the document  106  matches the language expressed in the query  104 . The data streams  108  include multi-media streams for corresponding language styles of the document  106  and a query stream. The estimation component  114  is fully automatable for operation at index time. 
       FIG. 2  illustrates an alternative embodiment of an information retrieval system  200 . The system  200  includes the components and entities of the system  100  of  FIG. 1 , as well as a recognition component  202  that recognizes the data streams for characterization by the language models  112  and a smoothing component  204  that applies smoothing to the language models  112  to generate similar cardinality among the language models  112  for linear combining. The smoothing component  204  applies class-based background language models so that each document language model has an equivalent number of mixture components. The smoothing component  204  employs language model adaptation by interpolation. 
     The probability of a document D that is served to the user with query Q, is P(Q|D)P(D). The likelihood function can be scaled using P(Q|D)P(D)=sum_c P(Q|D, C)P(D|C)P(C), where C represents a class of document. Organizing documents into classes will not lose information, yet the act of classifying has desirable properties from the perspective of engineering. For example, by approximation, P(Q|D, C)=P(Q|C), which implies evaluation of the query against a smaller number of classes, and only further evaluate documents within the promising classes at runtime. Additionally, it is often expected of the search engine to return results of enough diversity if there are multiple interpretations of a query. By classifying documents into classes the diversity issue can be more effectively controlled. A class-based language model as background is more specific and gives improved scores in implementation of the language model adaptation technique. 
     With respect to web language style analysis, the observation that the query language is different in styles from document body and may be closer to titles is intuitive. The language usages in the document text body, the title, the anchor text, as well as the queries against a commercial search engine for web documents provide the basic setting for this description. To quantify the language usages in these streams, a statistical N-gram language model is created for each stream and the complexity of the language studied using information theoretic measurements such as entropy or cross-entropy. Formally, the cross-entropy between model P A  and P B  is defined as, 
     
       
         
           
             
               H 
               ⁡ 
               
                 ( 
                 
                   
                     P 
                     A 
                   
                   || 
                   
                     P 
                     B 
                   
                 
                 ) 
               
             
             = 
             
               - 
               
                 
                   ∑ 
                   t 
                 
                 ⁢ 
                 
                   
                     
                       P 
                       A 
                     
                     ⁡ 
                     
                       ( 
                       t 
                       ) 
                     
                   
                   ⁢ 
                   log 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       P 
                       B 
                     
                     ⁡ 
                     
                       ( 
                       t 
                       ) 
                     
                   
                 
               
             
           
         
       
     
     Since the logarithmic function is convex, it can be shown that the cross-entropy is smallest when the two models are identical. The cross-entropy function can therefore be viewed as a measurement that quantifies how different the two models are. The entropy of a model P A  is H (P A )=H (P A ∥P A ). To avoid the confusion on the base of the logarithm, the entropy is converted into the corresponding linear scale perplexity measurement, namely,
 
 PPL ( P   A   ∥P   B )= e   H(P     A     ∥P     B     )  
 
     It has been estimated in studies that the trigram perplexity of general English has an upper bound of two-hundred forty-seven words per position based on a one million word corpus of American English of varying topics and genres. In contrast, the web snapshot has a vocabulary size that is at least 1.2 billion for the document body, sixty million, one-hundred fifty million, and two-hundred fifty-two million for the title, anchor text and the user query streams, respectively. Of interest is to investigate how these language sources can be used to model user queries using the cross-entropy between the query language model and other models. It can be shown that the query language falls within the previously estimated upper bound for perplexity of two-hundred forty-seven for general English. 
     The cross-stream perplexities give hints on the efficacy of using various streams to model the query language. The document body has shown consistently the largest mismatch with the queries, while anchor text may be the best choice among the three to model the queries with powerful enough language models (i.e., N&gt;1). Starting at bigram, both title and anchor text models have a smaller perplexity than the unigram model of query itself. The document title may be a more effective source than the body to build a language model for IR. 
     Up to trigram, the heightened modeling power with an increasing N uniformly improves the perplexities of all streams for queries, although this increased capability can also enhance the style mismatch that eventually leads to the perplexity increase at higher N. For the document body and title, the payoff of using more powerful language modes seems to taper off at bigram, whereas trigram may still be worthwhile for the anchor text. 
     The perplexity measure is not the ultimate metric for applications that model with lower perplexities do not necessarily lead to improved performance. However, the perplexity analysis is still informative in that higher perplexity models can seldom outperform the lower perplexity ones. 
     The disclosed architecture adopts a more analytically tractable approach to open-vocabulary discount than conventional approaches (e.g., Good-Turing formula) by employing the commonly known constantly adaptive language model (CALM) algorithm. The adaptation framework in CALM can be explained in an alternative manner using the widely known vector space paradigm. As the original CALM was developed for N-gram, the description applies to the unigram (N=1). 
     With respect to adaptation as vector interpolation, note that a language model can be thought of as a vector from an underlying functional space in which all the admissible language models for a given lexicon V form a simplex of the space, namely,
 
Λ={ P:V→[ 0,1],Σ vεV   P ( v )=1}.
 
     For example, any language model for a trivial binary lexicon can be represented by a point within the line segment enclosed by (1, 0) and (0, 1) on a two dimensional Euclidean space. Let P B  denote the background language model and P O  the statistics of a set of newly observed data to which to adapt the background language model. The goal of adaptation is to find a target P T εΛ, P T =P g +ΔP, such that P T  and P O  are reasonably close, and ΔP, the modification on the background language model, is minimized. Since the resultant model P T  has to reside on the simplex, one cannot simply use the Euclidean norm to compute distances and determine the adapted language model without constraints. 
     However, it can be verified that such a constraint can be met by choosing the adjustment vector ΔP along the direction of the difference vector of P O −P B , namely, ΔP=α O (P O −P B ), where α O  is the adaptation coefficient. It is desirable to pick a non-negative α O  so as to point the adjustment towards the right direction, and to choose α O &lt;1 so as to avoid overshoot. Accordingly,
 
 P   T   =P   B +α O ( P   O   −P   B )=α O   P   O +(1−α O ) P   B   (2)
 
LM adaptation can therefore be achieved by linear interpolation, assuming the same mathematical form as smoothing.
 
     A contribution of CALM is to derive how the adaptation coefficient can be calculated mathematically when the underlying LM is based on N-gram assuming a multinomial distribution. The probability mass 1−α O  can be interpreted as the prior probability of P B  being the correct model and the closed form formulation of which can be obtained using Stirling&#39;s approximation. As described below, the adaptation coefficient for a given set of observations O can be computed as, 
                     log   ⁡     (     1   -     α   O       )       =         ∑     t   ∈   O       ⁢         n   ⁡     (   t   )         L   O       ⁢   log   ⁢         P   B     ⁡     (   t   )           n   ⁡     (   t   )       /     L   O             =     -     KL   ⁡     (       P   O     ||     P   B       )                   (   3   )               
where L O  and n(t) denote the document length and the term frequency of the term t, respectively. In short, the adaptation coefficient has a closed form relationship to the Kullback-Leibler (KL) divergence between the background model and the ML (maximum likelihood) estimation of the language model of the document P O (t)=n(t)/L O . It can be verified that, if P B (t) agrees with n(t)/L O  for all terms—the adaptation coefficient α O  is zero. The more the background model disagrees with the observation, the more negative the right hand side of the above equation will become, which leads α O  to approach one.
 
     With respect to the open vocabulary language model through N-gram discount, the CALM interpolation formula of (3) above indicates that in the target LM P T , only α O  portion of the probability comes from the observation. In other words, the observation is “discounted” because a probability mass of 1−α O  in the target language model is set aside for sources external to the observation. Formula (3) above can then be used to compute the discount factor of an N-gram by choosing the corresponding (N−1)-gram as the background. For N&gt;1, (3) coincides with the formulation of the well-known Stolcke heuristics that has been widely used in the N-gram pruning: N-grams that can be reasonably predicted by (N−1)-gram can be pruned out of the model. That idea is extended down to N=1, where the observation P O  and the background P B  are the unigram and zero-gram language models, respectively. Conventionally, the zero-gram language model refers to the least informative language model that treats every token as OOV, namely, its probability mass is exclusively allocated for OOV. However, it is to be understood that other choices for the background model are also possible and viable. Given an observation with a vocabulary size|V O |, a zero-gram language model equally distributes its probability mass among the vocabulary, P B (t)=1/|V O |, turning formula (3) above into, 
     
       
         
           
             
               
                 
                   
                     log 
                     ⁡ 
                     
                       ( 
                       
                         1 
                         - 
                         
                           α 
                           O 
                         
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           
                             L 
                             O 
                           
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                           
                             1 
                             ⁢ 
                             
                                
                               
                                 V 
                                 O 
                               
                                
                             
                           
                           
                             
                               n 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             / 
                             
                               L 
                               O 
                             
                           
                         
                       
                     
                     = 
                     
                       
                         H 
                         ⁡ 
                         
                           ( 
                           
                             P 
                             O 
                           
                           ) 
                         
                       
                       - 
                       
                         log 
                         ⁢ 
                         
                            
                           
                             V 
                             O 
                           
                            
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     As above, H(P O ) here denotes the (empirical) entropy of the observation LM P O . Formula (4) can be further converted from the logarithmic into the linear scale and express the discount factor in terms of perplexity and vocabulary size:
 
 pUnk= 1−α O   =PPL ( P   O )/| V   O |  (5)
 
     The interpretation of this outcome is intuitive. As well understood, perplexity is the expected number of alternatives when a language model is used to generate a token each time. The ratio of the perplexity to the vocabulary size characterizes how equivocal the language model is. The result of formula (5) above suggests that the higher the ratio, the less certain the language model is, and hence, the larger the discount should be. At the extreme case when the perplexity equals the vocabulary size, the language model is basically generating tokens in the random pattern as the zero-gram, and hence, the discount factor becomes one. 
     The disclosed architecture composes the smoothed stream component language model P D     i    with (2) above, using an open-vocabulary language model trained from the stream collection as the background model. More specifically, for each document D and each stream i a closed-vocabulary maximum likelihood model is created as the observation P O,D     i   . The vocabulary for the stream V O,C     i    and the closed-vocabulary stream collection model is thus obtained as, 
     
       
         
           
             
               P 
               
                 O 
                 , 
                 
                   C 
                   i 
                 
               
             
             = 
             
               
                 ∑ 
                 D 
               
               ⁢ 
               
                 
                   P 
                   ⁡ 
                   
                     ( 
                     D 
                     ) 
                   
                 
                 ⁢ 
                 
                   P 
                   
                     O 
                     , 
                     
                       D 
                       i 
                     
                   
                 
               
             
           
         
       
     
     The discount factor is computed with formula (3) and is used to attenuate the in-vocabulary probability as,
 
 P   T,C     i   ( t )=α O,C     i     P   O,C     i   ( t ), tεV   O,C     i    
 
     The P T,C     i    is the open-vocabulary stream collection model. Finally, the stream collection model is used as the background to obtain the smoothed document stream model through linear interpolation,
 
 P   D     i   =α D     i     P   O,D     i   +(1−α D     i   ) P   T,C     i     (6)
 
     Here, the smoothing with the stream collection model ensures each document language model has the same number of mixture components even though the document does not have some stream observations. This smoothing alleviates the dilemma that some streams are sporadic and sparse for many web documents. 
     Although the interpolation coefficient α D     i    in (6) can, in practice, be kept as a free parameter to be empirically tuned, other alternatives that are tuning-free for the IR system can be obtained. For instance, the coefficient can be determined in a query-document dependent fashion at the query time where the coefficient for each document is chosen to maximize the query likelihood. Such a method effectively adapts the document language model to each query, and is practical when the individual score of how well a document matches the query is computed in a parallel computing environment. 
     Note that the interpolation coefficient in (6) can also be computed using (3) in a document dependent, yet query independent, fashion. Several observations can be made from this approach. First, the adaptation coefficient of (3) is document dependent as desired. CALM achieves the document dependent estimation of α D     i    without having to make a strong assumption that the family of the prior distribution is conjugate to the multinomial distribution. The estimation is fully automatable in that it does not utilize a free parameter that can vary and has to be empirically determined from application to application. CALM can therefore be implemented at the index time not only in a batch mode but also in an online fashion that model adaptation takes place as soon as the document enters the collection (e.g., crawled from the web). Secondly, since CALM uses a linear interpolation method. Third, the computation of (3) is light weight. Its complexity grows only linearly with the unique terms in the observation. 
     With respect to a mixture language model, the mixture weights for the component language models play a role in the multi-style language model approach. The CALM adaptation formula can be applied to compute the weights of the multi-component mixture (1) by first re-arranging the distribution as a two-component mixture: 
     
       
         
           
             
               
                 
                   
                     P 
                     D 
                   
                   = 
                   
                     
                       
                         w 
                         0 
                       
                       ⁢ 
                       
                         P 
                         
                           D 
                           0 
                         
                       
                     
                     + 
                     
                       
                         ( 
                         
                           1 
                           - 
                           
                             w 
                             0 
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             &gt; 
                             0 
                           
                         
                         ⁢ 
                         
                           
                             w 
                             i 
                             ′ 
                           
                           ⁢ 
                           
                             P 
                             
                               D 
                               i 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     As (3) can be applied to obtain w 0 , the process can be recursively repeated to obtain other coefficients. Since a goal of the document language model is to evaluate queries, it is desirable that the model be close to the query language. Accordingly, it is appropriate to choose the query stream as D 0  in formula (7) so that the CALM formula functions as adapting other mixture components to the query. This method leads to document-dependent mixture weights, leaves no parameter to tune, and is enticing in terms of engineering web-scale IR because the mixture coefficients can be pre-computed when the documents are being indexed. 
     The query dependent portion of the ranking function is the query likelihood P D (Q) in formula (I). The objective of choosing the optimal mixture weights is to maximize this likelihood. As shown in (6), each mixture component itself is a two-component mixture that has parameters to be determined. The re-estimation formula under an expectation maximization (EM) algorithm can be obtained as, 
     
       
         
           
             
               
                 
                   
                     
                       
                         w 
                         ⋒ 
                       
                       i 
                     
                     = 
                     
                       
                         1 
                         
                            
                           Q 
                            
                         
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             q 
                             ∈ 
                             Q 
                           
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               w 
                               i 
                             
                             ⁢ 
                             
                               
                                 
                                   P 
                                   
                                     D 
                                     i 
                                   
                                 
                                 ⁡ 
                                 
                                   ( 
                                   q 
                                   ) 
                                 
                               
                               / 
                               
                                 
                                   ∑ 
                                   i 
                                 
                                 ⁢ 
                                 
                                   
                                     w 
                                     i 
                                   
                                   ⁢ 
                                   
                                     
                                       P 
                                       
                                         D 
                                         i 
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       q 
                                       ) 
                                     
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     and 
                     , 
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       α 
                       ^ 
                     
                     
                       D 
                       i 
                     
                   
                   = 
                   
                     
                       1 
                       
                          
                         Q 
                          
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           q 
                           ∈ 
                           Q 
                         
                       
                       ⁢ 
                       
                         
                           
                             α 
                             
                               D 
                               i 
                             
                           
                           ⁢ 
                           
                             
                               P 
                               
                                 O 
                                 , 
                                 
                                   D 
                                   i 
                                 
                               
                             
                             ⁡ 
                             
                               ( 
                               q 
                               ) 
                             
                           
                         
                         
                           
                             P 
                             
                               D 
                               i 
                             
                           
                           ⁡ 
                           
                             ( 
                             q 
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     The linear interpolation of (2) indicates the adapted distribution P T  is a mixture of the ML estimation of the observation data P O  and the background model P B . Note that the probability of an event E is the mixture sum of the event taking place under various conditions C i  weighted by the respective priors P(C i ): 
     
       
         
           
             
               P 
               ⁡ 
               
                 ( 
                 E 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 i 
               
               ⁢ 
               
                 
                   P 
                   ⁡ 
                   
                     ( 
                     
                       E 
                       | 
                       
                         C 
                         i 
                       
                     
                     ) 
                   
                 
                 ⁢ 
                 
                   P 
                   ⁡ 
                   
                     ( 
                     
                       C 
                       i 
                     
                     ) 
                   
                 
               
             
           
         
       
     
     The document language model is described as the following: given a query Q, a minimum risk retrieval system ranks the document D based on product of the likelihood of the query under the document language model, P D (Q), and the prior of the document P(D):
 
 s ( D,Q )= P   D ( Q ) P ( D )
 
     The mixture coefficient from above can be viewed as the prior probability of the respective mixture component being the “real” distribution in describing the probabilistic events whose statistical property is characterized by P T . In the case of adaptation, the probability of the background being the real distribution can be estimated by computing how effective the background model predicts the observation, where token t occurs n(t) times among a total of L O  tokens, namely,
 
 L   O =Σ tεO   n ( t )
 
     With the assumption that the background model P B  is a multinomial distribution, the probability of the observation evaluated against P B  is 
                 P   B     ⁡     (   O   )       =           L   O     !         ∏     t   ∈   O       ⁢       n   ⁡     (   t   )       !         ⁢       ∏     t   ∈   O       ⁢           ⁢         P   B     ⁡     (   t   )         n   ⁡     (   t   )                   
Equivalently,
 
     
       
         
           
             
               log 
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   P 
                   B 
                 
                 ⁡ 
                 
                   ( 
                   O 
                   ) 
                 
               
             
             = 
             
               
                 log 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     L 
                     O 
                   
                   ! 
                 
               
               - 
               
                 
                   ∑ 
                   
                     t 
                     ∈ 
                     O 
                   
                 
                 ⁢ 
                 
                   log 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       n 
                       ⁡ 
                       
                         ( 
                         t 
                         ) 
                       
                     
                     ! 
                   
                 
               
               + 
               
                 
                   ∑ 
                   
                     t 
                     ∈ 
                     O 
                   
                 
                 ⁢ 
                 
                   
                     n 
                     ⁡ 
                     
                       ( 
                       t 
                       ) 
                     
                   
                   ⁢ 
                   log 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       P 
                       B 
                     
                     ⁡ 
                     
                       ( 
                       t 
                       ) 
                     
                   
                 
               
             
           
         
       
     
     The factorial terms in the above equation can be approximated by the well-known Stirling formula as, 
     
       
         
           
             
               log 
               ⁢ 
               
                   
               
               ⁢ 
               
                 n 
                 ! 
               
             
             ≈ 
             
               
                 n 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 log 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 n 
               
               - 
               n 
             
           
         
       
       
         
           
             Accordingly 
             , 
             
               
 
             
             ⁢ 
             
               
                 
                   
                     
                       log 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           P 
                           B 
                         
                         ⁡ 
                         
                           ( 
                           O 
                           ) 
                         
                       
                     
                     ≈ 
                       
                     ⁢ 
                     
                       
                         
                           L 
                           O 
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           L 
                           O 
                         
                       
                       - 
                       
                         L 
                         O 
                       
                       - 
                       
                         
                           ∑ 
                           
                             t 
                             ∈ 
                             O 
                           
                         
                         ⁢ 
                         
                           [ 
                           
                             
                               
                                 n 
                                 ⁡ 
                                 
                                   ( 
                                   t 
                                   ) 
                                 
                               
                               ⁢ 
                               log 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 n 
                                 ⁡ 
                                 
                                   ( 
                                   t 
                                   ) 
                                 
                               
                             
                             - 
                             
                               n 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                           ] 
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             t 
                             ∈ 
                             O 
                           
                         
                         ⁢ 
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           ⁢ 
                           log 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               P 
                               B 
                             
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   
                     = 
                       
                     ⁢ 
                     
                       
                         
                           L 
                           O 
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           L 
                           O 
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             t 
                             ∈ 
                             O 
                           
                         
                         ⁢ 
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           ⁢ 
                           log 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               
                                 P 
                                 B 
                               
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             
                               n 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   
                     = 
                       
                     ⁢ 
                     
                       
                         ∑ 
                         
                           t 
                           ∈ 
                           O 
                         
                       
                       ⁢ 
                       
                         
                           n 
                           ⁡ 
                           
                             ( 
                             t 
                             ) 
                           
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             
                               P 
                               B 
                             
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           
                             
                               n 
                               ⁡ 
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             / 
                             
                               L 
                               O 
                             
                           
                         
                       
                     
                   
                 
               
             
           
         
       
     
     Note that the mixture weight is the per-token probability, whereas P B  (O) above is evaluated over a total of L O  tokens. With the statistical independent assumptions of the tokens in the language model,
 
log  P   B ( O )=log(1−α O ) L     O     =L   O  log(1−α O )
 
which leads to (3).
 
     Included herein is a set of flow charts representative of exemplary methodologies for performing novel aspects of the disclosed architecture. While, for purposes of simplicity of explanation, the one or more methodologies shown herein, for example, in the form of a flow chart or flow diagram, are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation. 
       FIG. 3  illustrates a computer-implemented information retrieval method in accordance with the disclosed architecture. At  300 , retrieval units are searched based on a query. At  302 , data streams associated with a retrieval unit are identified. At  304 , the data streams are modeled as separate corresponding language models. At  306 , the language models are adapted individually to match language of the query. At  308 , retrieval units are returned that match the language of the query. 
       FIG. 4  illustrates further aspects of the method of  FIG. 3 . At  400 , a data steam that includes multimedia content is recognized. At  402 , each data stream is modeled as an open vocabulary language model. At  404 , the language models are adapted by linear interpolation. At  406 , the language models are adapted by estimating mixture weights used to combine the language models. At  408 , a retrieval unit is characterized as a mixture model of different language models associated with the retrieval unit. At  410 , the language models are smoothed to obtain equivalent cardinality based on predictability of an N-gram relative to an (N−1)-gram. 
       FIG. 5  illustrates an alternative information retrieval method. At  500 , data streams of a document associated with a query are identified. At  502 , the data streams are modeled as separate corresponding open vocabulary language models. At  504 , mixture weights are estimated for combining the individual language models into a mixed language model. At  506 , the mixed language model is created based on linear interpolation of the mixture weights. 
       FIG. 6  illustrates further aspects of the method of  FIG. 5 . At  600 , the data streams are recognized using appropriate recognizers for data stream language type. At  602 , a class-based language model is employed as a background model for language model adaptation. At  604 , query dependent mixture weights are chosen to optimize query likelihood in a ranking function that ranks the document. At  606 , expectation maximization is applied as part of linear interpolation to dynamically compute query document matching scores without tuning free parameters. 
     As used in this application, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of software and tangible hardware, software, or software in execution. For example, a component can be, but is not limited to, tangible components such as a processor, chip memory, mass storage devices (e.g., optical drives, solid state drives, and/or magnetic storage media drives), and computers, and software components such as a process running on a processor, an object, an executable, module, a thread of execution, and/or a program. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. The word “exemplary” may be used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. 
     Referring now to  FIG. 7 , there is illustrated a block diagram of a computing system  700  that executes information retrieval using adaptive language models in accordance with the disclosed architecture. In order to provide additional context for various aspects thereof,  FIG. 7  and the following description are intended to provide a brief, general description of the suitable computing system  700  in which the various aspects can be implemented. While the description above is in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that a novel embodiment also can be implemented in combination with other program modules and/or as a combination of hardware and software. 
     The computing system  700  for implementing various aspects includes the computer  702  having processing unit(s)  704 , a computer-readable storage such as a system memory  706 , and a system bus  708 . The processing unit(s)  704  can be any of various commercially available processors such as single-processor, multi-processor, single-core units and multi-core units. Moreover, those skilled in the art will appreciate that the novel methods can be practiced with other computer system configurations, including minicomputers, mainframe computers, as well as personal computers (e.g., desktop, laptop, etc.), hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices. 
     The system memory  706  can include computer-readable storage (physical storage media) such as a volatile (VOL) memory  710  (e.g., random access memory (RAM)) and non-volatile memory (NON-VOL)  712  (e.g., ROM, EPROM, EEPROM, etc.). A basic input/output system (BIOS) can be stored in the non-volatile memory  712 , and includes the basic routines that facilitate the communication of data and signals between components within the computer  702 , such as during startup. The volatile memory  710  can also include a high-speed RAM such as static RAM for caching data. 
     The system bus  708  provides an interface for system components including, but not limited to, the system memory  706  to the processing unit(s)  704 . The system bus  708  can be any of several types of bus structure that can further interconnect to a memory bus (with or without a memory controller), and a peripheral bus (e.g., PCI, PCIe, AGP, LPC, etc.), using any of a variety of commercially available bus architectures. 
     The computer  702  further includes machine readable storage subsystem(s)  714  and storage interface(s)  716  for interfacing the storage subsystem(s)  714  to the system bus  708  and other desired computer components. The storage subsystem(s)  714  (physical storage media) can include non-transitory media such as one or more of a hard disk drive (HDD), a magnetic floppy disk drive (FDD), and/or optical disk storage drive (e.g., a CD-ROM drive DVD drive), for example. The storage interface(s)  716  can include interface technologies such as EIDE, ATA, SATA, and IEEE 1394, for example. 
     One or more programs and data can be stored in the memory subsystem  706 , a machine readable and removable memory subsystem  718  (e.g., flash drive form factor technology), and/or the storage subsystem(s)  714  (e.g., optical, magnetic, solid state), including an operating system  720 , one or more application programs  722 , other program modules  724 , and program data  726 . 
     The one or more application programs  722 , other program modules  724 , and program data  726  can include the entities and components of the system  100  of  FIG. 1 , the entities and components of the system  200  of  FIG. 2 , and the methods represented by the flowcharts of  FIGS. 3-6 , for example. 
     Generally, programs include routines, methods, data structures, other software components, etc., that perform particular tasks or implement particular abstract data types. All or portions of the operating system  720 , applications  722 , modules  724 , and/or data  726  can also be cached in memory such as the volatile memory  710 , for example. It is to be appreciated that the disclosed architecture can be implemented with various commercially available operating systems or combinations of operating systems (e.g., as virtual machines). 
     The storage subsystem(s)  714  and memory subsystems ( 706  and  718 ) serve as computer readable media for volatile and non-volatile storage of data, data structures, computer-executable instructions, and so forth. The instructions can exist on non-transitory media. Such instructions, when executed by a computer or other machine, can cause the computer or other machine to perform one or more acts of a method. The instructions to perform the acts can be stored on one medium, or could be stored across multiple media, so that the instructions appear collectively on the one or more computer-readable storage media, regardless of whether all of the instructions are on the same media. 
     Computer readable media can be any available media that can be accessed by the computer  702  and includes volatile and non-volatile internal and/or external media that is removable or non-removable. For the computer  702 , the media accommodate the storage of data in any suitable digital format. It should be appreciated by those skilled in the art that other types of computer readable media can be employed such as zip drives, magnetic tape, flash memory cards, flash drives, cartridges, and the like, for storing computer executable instructions for performing the novel methods of the disclosed architecture. 
     A user can interact with the computer  702 , programs, and data using external user input devices  728  such as a keyboard and a mouse. Other external user input devices  728  can include a microphone, an IR (infrared) remote control, a joystick, a game pad, camera recognition systems, a stylus pen, touch screen, gesture systems (e.g., eye movement, head movement, etc.), and/or the like. The user can interact with the computer  702 , programs, and data using onboard user input devices  730  such a touchpad, microphone, keyboard, etc., where the computer  702  is a portable computer, for example. These and other input devices are connected to the processing unit(s)  704  through input/output (I/O) device interface(s)  732  via the system bus  708 , but can be connected by other interfaces such as a parallel port, IEEE 1394 serial port, a game port, a USB port, an IR interface, etc. The I/O device interface(s)  732  also facilitate the use of output peripherals  734  such as printers, audio devices, camera devices, and so on, such as a sound card and/or onboard audio processing capability. 
     One or more graphics interface(s)  736  (also commonly referred to as a graphics processing unit (GPU)) provide graphics and video signals between the computer  702  and external display(s)  738  (e.g., LCD, plasma) and/or onboard displays  740  (e.g., for portable computer). The graphics interface(s)  736  can also be manufactured as part of the computer system board. 
     The computer  702  can operate in a networked environment (e.g., IP-based) using logical connections via a wired/wireless communications subsystem  742  to one or more networks and/or other computers. The other computers can include workstations, servers, routers, personal computers, microprocessor-based entertainment appliances, peer devices or other common network nodes, and typically include many or all of the elements described relative to the computer  702 . The logical connections can include wired/wireless connectivity to a local area network (LAN), a wide area network (WAN), hotspot, and so on. LAN and WAN networking environments are commonplace in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network such as the Internet. 
     When used in a networking environment the computer  702  connects to the network via a wired/wireless communication subsystem  742  (e.g., a network interface adapter, onboard transceiver subsystem, etc.) to communicate with wired/wireless networks, wired/wireless printers, wired/wireless input devices  744 , and so on. The computer  702  can include a modem or other means for establishing communications over the network. In a networked environment, programs and data relative to the computer  702  can be stored in the remote memory/storage device, as is associated with a distributed system. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used. 
     The computer  702  is operable to communicate with wired/wireless devices or entities using the radio technologies such as the IEEE 802.xx family of standards, such as wireless devices operatively disposed in wireless communication (e.g., IEEE 802.11 over-the-air modulation techniques) with, for example, a printer, scanner, desktop and/or portable computer, personal digital assistant (PDA), communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone. This includes at least Wi-Fi (or Wireless Fidelity) for hotspots, WiMax, and Bluetooth™ wireless technologies. Thus, the communications can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices. Wi-Fi networks use radio technologies called IEEE 802.11x (a, b, g, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wire networks (which use IEEE 802.3-related media and functions). 
     The illustrated and described aspects can be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in local and/or remote storage and/or memory system. 
     What has been described above includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.