Navigation
  • Home
  • Recent
  • Most Active
  • Popular
  • Blog
  • Credits
  • RSS
  •   Interaction
  • Register
  • Statistics
  •   Help
  • Suggestions
  • Contact Us
  • How to Edit
  • Help



  • [Edit]


    Latent semantic analysis (LSA) is a technique in natural language processing, in particular in vectorial semantics, patented in 1988 * 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).

        Latent semantic analysis
            Occurrence matrix
            Applications
            Rank lowering
            Derivation

            Implementation
            Limitations of LSA
            See also

    top

    Occurrence matrix
    LSA uses a term-document matrix which describes the occurrences of terms in documents; it is a sparse matrix whose rows correspond to documents and whose columns correspond to terms, typically stemmed words that appear in the documents. A typical example of the weighting of the elements of the matrix is tf-idf (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 common to standard semantic models as well (though it is not necessarily explicitly expressed as a matrix, since the mathematical properties of matrix are not always used).

    top

    Applications
    Your original matrix gives the relationship between terms and documents. Latent semantic analysis transforms this into a relationship between the terms and concepts, and a relation between the documents and the same concepts. The terms and documents are now indirectly related through the concepts.

    Your new concept space typically lets you do the following:
      Given a query of terms, translate it into the concept space, and find matching documents (information retrieval).

    Synonymy and polysemy are two fundamental problems in natural language processing:
      In synonymy, different writers use different words to describe the same idea. Thus, a person issuing a query in a search engine may use a different word than appears in a document, and may not retrieve the document.
      In polysemy, the same word can have multiple meanings, so a searcher can get unwanted documents with the alternate meanings

    top

    Rank lowering
    After the construction of the occurrence matrix LSA finds a low-rank approximation to the term-document matrix. The reasons for the approximations can have various explanations:

      The original term-document matrix is presumed too large for the computing resources; in this point of view, the approximated matrix is interpreted as an approximation (a "least and necessary evil")
      The original term-document matrix is presumed noisy: for instance, anecdotal instances of terms are to be eliminated. From this point of view, the approximated matrix is interpreted as a de-noisified matrix (a better matrix than the original).
      The original term-document matrix is presumed overly sparse relative to the "true" term-document 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 get "merged":

    -->


    This mitigates synonymy, as the rank lowering is expected to merge the dimensions associated with terms that have similar meanings. It also mitigates polysemy, since components of polysemous words that point in the "right" direction are added to the components of words that share this sense. 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.

    top

    Derivation
    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:


    egin
    & extbf_j \
    & downarrow \
    extbf_i^T
    ightarrow &
    egin
    x_ & dots & x_ \
    vdots & ddots & vdots \
    x_ & dots & x_ \
    end
    end


    Now a row in this matrix will be a vector corresponding to a term, giving its relation to each document:

    extbf_i^T = egin x_ & dots & x_ end

    Likewise, a column in this matrix will be a vector corresponding to a document, giving its relation to each term:

    extbf_j = egin x_ \ vdots \ x_ end

    Now the dot product extbf_i^T extbf_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 extbf_i^T extbf_p ( = extbf_p^T extbf_i). Likewise, the matrix X^T X contains the dot products between all the document vectors, giving their correlation over the terms: extbf_j^T extbf_q = extbf_q^T extbf_j.

    Now assume that there exists a decomposition of X such that U and V are orthonormal matrices and Sigma is a diagonal matrix. This is called a singular value decomposition(SVD):


    X = U Sigma V^T


    The matrix products giving us the term and document correlations then become


    egin
    X X^T &=& (U Sigma V^T) (U Sigma V^T)^T = (U Sigma V^T) (V^ 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^ Sigma^T U^T) (U Sigma V^T) = V Sigma U^T U Sigma V^T = V Sigma^T Sigma V^T
    end


    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 non-zero eigenvalues, given by the non-zero entries of Sigma Sigma^T, or equally, by the non-zero entries of Sigma^TSigma. Now the decomposition looks like this:


    egin
    & X & & & U & & Sigma & & V^T \
    & ( extbf_j) & & & & & & & (hat extbf_j) \
    & downarrow & & & & & & & downarrow \
    ( extbf_i^T)
    ightarrow
    &
    egin
    x_ & dots & x_ \
    \
    vdots & ddots & vdots \
    \
    x_ & dots & x_ \
    end
    &

    top


    &
    (hat extbf_i^T)
    ightarrow
    &
    egin
    egin , \ , \ extbf_1 \ , \ ,end
    dots
    egin , \ , \ extbf_l \ , \ , end
    end
    &
    cdot
    &
    egin
    sigma_1 & dots & 0 \
    vdots & ddots & vdots \
    0 & dots & sigma_l \
    end
    &
    cdot
    &
    egin
    egin & & extbf_1 & & end \
    vdots \
    egin & & extbf_l & & end
    end
    end


    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 how the only part of U that contributes to extbf_i is the i extrm row.
    Let this row vector be called hat extrm_i.
    Likewise, the only part of V^T that contributes to extbf_i is the j extrm column, hat extrm_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). The amazing thing about this approximation, is that not only does it have a minimal error, but it translates the term and document vectors into a concept space. The vector hat extbf_i then has k entries, each giving the occurrence of term i in one of the k concepts. Likewise, the vector hat extbf_j gives the relation between document j and each concept. 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 concept space by comparing the vectors hat extbf_j and hat extbf_q (typically by cosine similarity). This gives you a clustering of the documents.
      Comparing terms i and p by comparing the vectors hat extbf_j and hat extbf_p, giving you a clustering of the terms in the concept space.
      Given a query, view this as a mini document, and compare it to your documents in the concept space.

    To do the latter, you must first translate your query into the concept space. It is then intuitive that you must use the same transformation that you use on your documents:

    extbf_j = U_k Sigma_k hat extbf_j

    hat extbf_j = Sigma_k^ U_k^T extbf_j

    This means that if you have a query vector q, you must do the translation hat extbf = Sigma_k^ U_k^T extbf before you compare it with the document vectors in the concept space. You can do the same for pseudo term vectors:

    extbf_i^T = hat extbf_i^T Sigma_k V_k^T

    hat extbf_i^T = extbf_i^T V_k^ Sigma_k^ = extbf_i^T V_k Sigma_k^

    hat extbf_i = Sigma_k^ V_k^T extbf_i

    top

    Implementation

    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 network-like approach which does not require the large, full-rank matrix to be held in memory *.

    top

    Limitations of LSA
    LSA features a number of drawbacks:

      The resulting dimensions might be difficult to interpret. For instance, in
    -->

    the (1.3452
      car + 0.2828
        truck) component could be interpreted as "vehicle". However, it is very likely that cases close to
    -->

    will occur. This leads to results which can be justified on the mathematical level, but have no interpretable meaning in natural language.



    top

    See also
     
    Search more:
     

       
    Source Privacy License Download Contact Us Atlas
    Scientus.org Dictionary (Yet Another Wiki) RC : 1.39
    This article is licensed under the GNU Free Documentation License [copyleft]. It uses material from the Wikipedia article "Latent semantic analysis". link