Assessment 
Biopsychology 
Comparative 
Cognitive 
Developmental 
Language 
Individual differences 
Personality 
Philosophy 
Social 
Methods 
Statistics 
Clinical 
Educational 
Industrial 
Professional items 
World psychology 
Language: Linguistics · Semiotics · Speech
Semantics 

Language · Linguistics 

[create] Documentation 
Latent semantic analysis (LSA) is a technique in natural language processing, in particular in vectorial semantics, of analyzing relationships between a set of documents and the terms they contain by producing a set of concepts related to the documents and terms. LSA assumes that words that are close in meaning will occur in similar pieces of text. A matrix containing word counts per paragraph (rows represent unique words and columns represent each paragraph) is constructed from a large piece of text and a mathematical technique called singular value decomposition (SVD) is used to reduce the number of columns while preserving the similarity structure among rows. Words are then compared by taking the cosine of the angle between the two vectors formed by any two rows. Values close to 1 represent very similar words while values close to 0 represent very dissimilar words.^{[1]}
LSA was patented in 1988 (US Patent 4,839,853) by Scott Deerwester, Susan Dumais, George Furnas, Richard Harshman, Thomas Landauer, Karen Lochbaum and Lynn Streeter. In the context of its application to information retrieval, it is sometimes called Latent Semantic Indexing (LSI).^{[2]}
Overview Edit
Occurrence matrix Edit
LSA can use a termdocument matrix which describes the occurrences of terms in documents; it is a sparse matrix whose rows correspond to terms and whose columns correspond to documents. A typical example of the weighting of the elements of the matrix is tfidf (term frequency–inverse document frequency): the element of the matrix is proportional to the number of times the terms appear in each document, where rare terms are upweighted to reflect their relative importance.
This matrix is also common to standard semantic models, though it is not necessarily explicitly expressed as a matrix, since the mathematical properties of matrices are not always used.
Rank lowering Edit
After the construction of the occurrence matrix, LSA finds a lowrank approximation^{[3]} to the termdocument matrix. There could be various reasons for these approximations:
 The original termdocument matrix is presumed too large for the computing resources; in this case, the approximated low rank matrix is interpreted as an approximation (a "least and necessary evil").
 The original termdocument matrix is presumed noisy: for example, anecdotal instances of terms are to be eliminated. From this point of view, the approximated matrix is interpreted as a denoisified matrix (a better matrix than the original).
 The original termdocument matrix is presumed overly sparse relative to the "true" termdocument matrix. That is, the original matrix lists only the words actually in each document, whereas we might be interested in all words related to each document—generally a much larger set due to synonymy.
The consequence of the rank lowering is that some dimensions are combined and depend on more than one term:
 {(car), (truck), (flower)} > {(1.3452 * car + 0.2828 * truck), (flower)}
This mitigates the problem of identifying synonymy, as the rank lowering is expected to merge the dimensions associated with terms that have similar meanings. It also mitigates the problem with polysemy, since components of polysemous words that point in the "right" direction are added to the components of words that share a similar meaning. Conversely, components that point in other directions tend to either simply cancel out, or, at worst, to be smaller than components in the directions corresponding to the intended sense.
Derivation Edit
Let $ X $ be a matrix where element $ (i,j) $ describes the occurrence of term $ i $ in document $ j $ (this can be, for example, the frequency). $ X $ will look like this:
 $ \begin{matrix} & \textbf{d}_j \\ & \downarrow \\ \textbf{t}_i^T \rightarrow & \begin{bmatrix} x_{1,1} & \dots & x_{1,n} \\ \vdots & \ddots & \vdots \\ x_{m,1} & \dots & x_{m,n} \\ \end{bmatrix} \end{matrix} $
Now a row in this matrix will be a vector corresponding to a term, giving its relation to each document:
 $ \textbf{t}_i^T = \begin{bmatrix} x_{i,1} & \dots & x_{i,n} \end{bmatrix} $
Likewise, a column in this matrix will be a vector corresponding to a document, giving its relation to each term:
 $ \textbf{d}_j = \begin{bmatrix} x_{1,j} \\ \vdots \\ x_{m,j} \end{bmatrix} $
Now the dot product $ \textbf{t}_i^T \textbf{t}_p $ between two term vectors gives the correlation between the terms over the documents. The matrix product $ X X^T $ contains all these dot products. Element $ (i,p) $ (which is equal to element $ (p,i) $) contains the dot product $ \textbf{t}_i^T \textbf{t}_p $ ($ = \textbf{t}_p^T \textbf{t}_i $). Likewise, the matrix $ X^T X $ contains the dot products between all the document vectors, giving their correlation over the terms: $ \textbf{d}_j^T \textbf{d}_q = \textbf{d}_q^T \textbf{d}_j $.
Now assume that there exists a decomposition of $ X $ such that $ U $ and $ V $ are orthogonal matrices and $ \Sigma $ is a diagonal matrix. This is called a singular value decomposition (SVD):
 $ \begin{matrix} X = U \Sigma V^T \end{matrix} $
The matrix products giving us the term and document correlations then become
 $ \begin{matrix} X X^T &=& (U \Sigma V^T) (U \Sigma V^T)^T = (U \Sigma V^T) (V^{T^T} \Sigma^T U^T) = U \Sigma V^T V \Sigma^T U^T = U \Sigma \Sigma^T U^T \\ X^T X &=& (U \Sigma V^T)^T (U \Sigma V^T) = (V^{T^T} \Sigma^T U^T) (U \Sigma V^T) = V \Sigma^T U^T U \Sigma V^T = V \Sigma^T \Sigma V^T \end{matrix} $
Since $ \Sigma \Sigma^T $ and $ \Sigma^T \Sigma $ are diagonal we see that $ U $ must contain the eigenvectors of $ X X^T $, while $ V $ must be the eigenvectors of $ X^T X $. Both products have the same nonzero eigenvalues, given by the nonzero entries of $ \Sigma \Sigma^T $, or equally, by the nonzero entries of $ \Sigma^T\Sigma $. Now the decomposition looks like this:
 $ \begin{matrix} & X & & & U & & \Sigma & & V^T \\ & (\textbf{d}_j) & & & & & & & (\hat{\textbf{d}}_j) \\ & \downarrow & & & & & & & \downarrow \\ (\textbf{t}_i^T) \rightarrow & \begin{bmatrix} x_{1,1} & \dots & x_{1,n} \\ \\ \vdots & \ddots & \vdots \\ \\ x_{m,1} & \dots & x_{m,n} \\ \end{bmatrix} & = & (\hat{\textbf{t}}_i^T) \rightarrow & \begin{bmatrix} \begin{bmatrix} \, \\ \, \\ \textbf{u}_1 \\ \, \\ \,\end{bmatrix} \dots \begin{bmatrix} \, \\ \, \\ \textbf{u}_l \\ \, \\ \, \end{bmatrix} \end{bmatrix} & \cdot & \begin{bmatrix} \sigma_1 & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & \sigma_l \\ \end{bmatrix} & \cdot & \begin{bmatrix} \begin{bmatrix} & & \textbf{v}_1 & & \end{bmatrix} \\ \vdots \\ \begin{bmatrix} & & \textbf{v}_l & & \end{bmatrix} \end{bmatrix} \end{matrix} $
The values $ \sigma_1, \dots, \sigma_l $ are called the singular values, and $ u_1, \dots, u_l $ and $ v_1, \dots, v_l $ the left and right singular vectors. Notice the only part of $ U $ that contributes to $ \textbf{t}_i $ is the $ i\textrm{'th} $ row. Let this row vector be called $ \hat \textrm{t}_i $. Likewise, the only part of $ V^T $ that contributes to $ \textbf{d}_j $ is the $ j\textrm{'th} $ column, $ \hat \textrm{d}_j $. These are not the eigenvectors, but depend on all the eigenvectors.
It turns out that when you select the $ k $ largest singular values, and their corresponding singular vectors from $ U $ and $ V $, you get the rank $ k $ approximation to X with the smallest error (Frobenius norm). This approximation has a minimal error. But more importantly we can now treat the term and document vectors as a "semantic space". The vector $ \hat \textbf{t}_i $ then has $ k $ entries mapping it to a lower dimensional space dimensions. These new dimensions do not relate to any comprehensible concepts. They are a lower dimensional approximation of the higher dimensional space. Likewise, the vector $ \hat \textbf{d}_j $ is an approximation in this lower dimensional space. We write this approximation as
 $ X_k = U_k \Sigma_k V_k^T $
You can now do the following:
 See how related documents $ j $ and $ q $ are in the low dimensional space by comparing the vectors $ \Sigma_k \hat \textbf{d}_j $ and $ \Sigma_k \hat \textbf{d}_q $ (typically by cosine similarity).
 Comparing terms $ i $ and $ p $ by comparing the vectors $ \hat \textbf{t}_i^T \Sigma_k $ and $ \hat \textbf{t}_p^T \Sigma_k $.
 Documents and term vector representations can be clustered using traditional clustering algorithms like kmeans using similarity measures like cosine.
 Given a query, view this as a mini document, and compare it to your documents in the low dimensional space.
To do the latter, you must first translate your query into the low dimensional space. It is then intuitive that you must use the same transformation that you use on your documents:
 $ \hat \textbf{d}_j = \Sigma_k^{1} U_k^T \textbf{d}_j $
This means that if you have a query vector $ q $, you must do the translation $ \hat \textbf{q} = \Sigma_k^{1} U_k^T \textbf{q} $ before you compare it with the document vectors in the low dimensional space. You can do the same for pseudo term vectors:
 $ \textbf{t}_i^T = \hat \textbf{t}_i^T \Sigma_k V_k^T $
 $ \hat \textbf{t}_i^T = \textbf{t}_i^T V_k^{T} \Sigma_k^{1} = \textbf{t}_i^T V_k \Sigma_k^{1} $
 $ \hat \textbf{t}_i = \Sigma_k^{1} V_k^T \textbf{t}_i $
Applications Edit
The new low dimensional space typically can be used to:
 Compare the documents in the low dimensional space (data clustering, document classification).
 Find similar documents across languages, after analyzing a base set of translated documents (cross language retrieval).
 Find relations between terms (synonymy and polysemy).
 Given a query of terms, translate it into the low dimensional space, and find matching documents (information retrieval).
 Find the best similarity between small groups of terms, in a semantic way (i.e. in a context of a knowledge corpus), as for example in multi choice questions MCQ answering model.^{[4]}
Synonymy and polysemy are fundamental problems in natural language processing:
 Synonymy is the phenomenon where different words describe the same idea. Thus, a query in a search engine may fail to retrieve a relevant document that does not contain the words which appeared in the query. For example, a search for "doctors" may not return a document containing the word "physicians", even though the words have the same meaning.
 Polysemy is the phenomenon where the same word has multiple meanings. So a search may retrieve irrelevant documents containing the desired words in the wrong meaning. For example, a botanist and a computer scientist looking for the word "tree" probably desire different sets of documents.
Commercial applications Edit
LSA has been used to assist in performing prior art searches for patents.^{[5]}
Applications in human memory Edit
The use of Latent Semantic Analysis has been prevalent in the study of human memory, especially in areas of free recall and memory search. Howard and Kahana found a positive correlation between the semantic similarity of two words (as measured by LSA) and the probability that the words would be recalled one after another in free recall tasks using study lists of random common nouns. They also noted that in these situations, the interresponse time between the similar words was much quicker than between dissimilar words. These findings are referred to as the Semantic Proximity Effect.^{[6]}
Expanding on these semantic proximity effects, in 2006 Zaromb et al. found that when participants made mistakes in recalling studied items, these mistakes tended to be items that were more semantically related to the desired item and found in a previously studied list. These priorlist intrusions, as they have come to be called, seem to compete with items on the current list for recall. Zaromb et al. found that the PLIs had larger cosine values to the justrecalled word in LSA space than the correct item did.^{[7]}
Another model, termed Word Association Spaces (WAS) is also used in memory studies and was developed by Douglas Nelson at the University of South Florida by collecting free association data from a series of experiments and which includes measures of word relatedness for over 72,000 distinct word pairs.^{[8]}
Implementation Edit
The SVD is typically computed using large matrix methods (for example, Lanczos methods) but may also be computed incrementally and with greatly reduced resources via a neural networklike approach, which does not require the large, fullrank matrix to be held in memory.^{[9]} A fast, incremental, lowmemory, largematrix SVD algorithm has recently been developed.^{[10]} MATLAB and Python implementations of these fast algorithms are available. Unlike Gorrell and Webb's (2005) stochastic approximation, Brand's algorithm (2003) provides an exact solution.
Limitations Edit
Some of LSA's drawbacks include:
 The resulting dimensions might be difficult to interpret. For instance, in
 {(car), (truck), (flower)} > {(1.3452 * car + 0.2828 * truck), (flower)}
 the (1.3452 * car + 0.2828 * truck) component could be interpreted as "vehicle". However, it is very likely that cases close to
 {(car), (bottle), (flower)} > {(1.3452 * car + 0.2828 * bottle), (flower)}
 will occur. This leads to results which can be justified on the mathematical level, but have no interpretable meaning in natural language.
 LSA cannot capture polysemy (i.e., multiple meanings of a word). Each occurrence of a word is treated as having the same meaning due to the word being represented as a single point in space. For example, the occurrence of "chair" in a document containing "The Chair of the Board" and in a separate document containing "the chair maker" are considered the same. The behavior results in the vector representation being an average of all the word's different meanings in the corpus, which can make it difficult for comparison. However, the effect is often lessened due to words having a predominant sense throughout a corpus (i.e. not all meanings are equally likely).
 Limitations of bag of words model (BOW), where a text is represented as an unordered collection of words.
 The probabilistic model of LSA does not match observed data: LSA assumes that words and documents form a joint Gaussian model (ergodic hypothesis), while a Poisson distribution has been observed. Thus, a newer alternative is probabilistic latent semantic analysis, based on a multinomial model, which is reported to give better results than standard LSA.^{[11]}
See also Edit
 Compound term processing
 Explicit semantic analysis
 Latent semantic mapping
 Latent Semantic Structure Indexing
 Principal components analysis
 Probabilistic latent semantic analysis
 Spamdexing
 Topic model
 Vectorial semantics
 CohMetrix
References Edit
 ↑ Susan T. Dumais (2005). Latent Semantic Analysis. Annual Review of Information Science and Technology 38: 188.
 ↑ The Latent Semantic Indexing home page.
 ↑ Markovsky I. (2012) LowRank Approximation: Algorithms, Implementation, Applications, Springer, 2012, ISBN 9781447122265 Template:Pn
 ↑ Alain Lifchitz, Sandra JheanLarose, Guy Denhière (2009). Effect of tuned parameters on an LSA multiple choice questions answering model. Behavior Research Methods 41 (4): 1201–1209.
 ↑ Gerry J. Elman (October 2007). Automated Patent Examination Support  A proposal. Biotechnology Law Report 26 (5): 435.
 ↑ Marc W. Howard and Michael J. Kahana (1999). Contextual Variability and Serial Position Effects in Free Recall.
 ↑ Franklin M. Zaromb et al. (2006). Temporal Associations and PriorList Intrusions in Free Recall.
 ↑ Nelson, Douglas The University of South Florida Word Association, Rhyme and Word Fragment Norms. URL accessed on 5/8/2011.
 ↑ Geneviève Gorrell and Brandyn Webb (2005). "Generalized Hebbian Algorithm for Latent Semantic Analysis" (PDF). Interspeech'2005.
 ↑ Matthew Brand (2006). Fast LowRank Modifications of the Thin Singular Value Decomposition. Linear Algebra and Its Applications 415: 20–30.
 ↑ Thomas Hofmann (1999). "Probabilistic Latent Semantic Analysis" (PDF). Uncertainty in Artificial Intelligence.
 Thomas Landauer, Peter W. Foltz, & Darrell Laham (1998). Introduction to Latent Semantic Analysis. Discourse Processes 25 (2–3): 259–284.
 Scott Deerwester, Susan T. Dumais, George W. Furnas, Thomas K. Landauer, Richard Harshman (1990). Indexing by Latent Semantic Analysis. Journal of the American Society for Information Science 41 (6): 391–407. Original article where the model was first exposed.
 Michael Berry, Susan T. Dumais, Gavin W. O'Brien (1995). Using Linear Algebra for Intelligent Information Retrieval. (PDF). Illustration of the application of LSA to document retrieval.
 Latent Semantic Analysis. InfoVis.
 Fridolin Wild. An Open Source LSA Package for R. CRAN. URL accessed on 20061120.
 Thomas Landauer, Susan T. Dumais. A Solution to Plato's Problem: The Latent Semantic Analysis Theory of Acquisition, Induction, and Representation of Knowledge. URL accessed on 20070702.
External linksEdit
Articles on LSAEdit
 Latent Semantic Analysis, a scholarpedia article on LSA written by Tom Landauer, one of the creators of LSA.
Talks and DemonstrationsEdit
 LSA Overview, talk by Prof. Thomas Hofmann describing LSA, its applications in Information Retrieval, and its connections to probabilistic latent semantic analysis.
 Complete LSA DEMO in C# for Windows. DEMO includes enumeration of text files, filtering stop words, stemming, making documentterm matrix and SVD. Project can be used as template. C# version of SVDLIBC is used.
ImplementationsEdit
Due to its crossdomain applications in Information Retrieval, Natural Language Processing (NLP), Cognitive Science and Computational Linguistics, LSA has been implemented to support many different kinds of applications.
 Sense Clusters, an Information Retrievaloriented perl implementation of LSA
 SSpace Package, a Computational Linguistics and Cognitive Scienceoriented Java implementation of LSA
 Semantic Vectors applies Random Projection, LSA, and Reflective Random Indexing to Lucene termdocument matrices
 Infomap Project, an NLPoriented C implementation of LSA (superseded by semanticvectors project)
 Text to Matrix Generator, A MATLAB Toolbox for generating termdocument matrices from text collections, with support for LSA
 Gensim contains a fast, online Python implementation of LSA for matrices larger than RAM.
This page uses Creative Commons Licensed content from Wikipedia (view authors). 