zoukankan      html  css  js  c++  java
  • Latent Dirichlet allocation【转】

    Latent Dirichlet allocation

    From Wikipedia, the free encyclopedia
     

    In statisticslatent Dirichlet allocation (LDA) is a generative model that allows sets of observations to be explained by unobserved groups that explain why some parts of the data are similar. For example, if observations are words collected into documents, it posits that each document is a mixture of a small number of topics and that each word's creation is attributable to one of the document's topics. LDA is an example of a topic model and was first presented as a graphical model for topic discovery by David BleiAndrew Ng, and Michael Jordan in 2002.[1]

    Contents

      [hide

    [edit]Topics in LDA

    In LDA, each document may be viewed as a mixture of various topics. This is similar to probabilistic latent semantic analysis (pLSA), except that in LDA the topic distribution is assumed to have a Dirichlet prior. In practice, this results in more reasonable mixtures of topics in a document. It has been noted, however, that the pLSA model is equivalent to the LDA model under a uniform Dirichlet prior distribution.[2]

    For example, an LDA model might have topics that can be classified as CAT and DOG. However, the classification is arbitrary because the topic that encompasses these words cannot be named. Furthermore, a topic has probabilities of generating various words, such as milkmeow, and kitten, which can be classified and interpreted by the viewer as "CAT". Naturally, cat itself will have high probability given this topic. The DOG topic likewise has probabilities of generating each word: puppybark, and bone might have high probability. Words without special relevance, such as the (see function word), will have roughly even probability between classes (or can be placed into a separate category).

    A document is given the topics. This is a standard bag of words model assumption, and makes the individual words exchangeable.

    [edit]Model

    Plate notation representing the LDA model.

    With plate notation, the dependencies among the many variables can be captured concisely. The boxes are “plates” representing replicates. The outer plate represents documents, while the inner plate represents the repeated choice of topics and words within a document. M denotes the number of documents, N the number of words in a document. Thus:

    α is the parameter of the Dirichlet prior on the per-document topic distributions.
    β is the parameter of the Dirichlet prior on the per-topic word distribution.
    θi is the topic distribution for document i,
    φk is the word distribution for topic k,
    zij is the topic for the jth word in document i, and
    wij is the specific word.
    Plate notation for smoothed LDA

    The wij are the only observable variables, and the other variables are latent variables. Mostly, the basic LDA model will be extended to a smoothed version to gain better result. The plate notation is shown in the right, where K denotes the number of topics considered in the model and:

    ϕ is a K*V (V is the dimension of the vocabulary) Markov matrix each row of which denotes the word distribution of a topic.

    The generative process behind is that documents are represented as random mixtures over latent topics, where each topic is characterized by a distribution over words. LDA assumes the following generative process for each document i in a corpus D :

    1. Choose  \theta_i \, \sim \, \mathrm{Dir}(\alpha) , where  i \in \{ 1,\dots,M \}

    2. Choose  \phi_k \, \sim \, \mathrm{Dir}(\beta) , where  k \in \{ 1,\dots,K \}

    3. For each of the words wij, where  j \in \{ 1,\dots,N_i \}

    (a) Choose a topic z_{i,j} \,\sim\, \mathrm{Multinomial}(\theta_i).
    (b) Choose a word w_{i,j} \,\sim\, \mathrm{Multinomial}( \phi_{z_{i,j}}) .

    (Note that the Multinomial distribution here refers to the Multinomial with only one trial. It is formally equivalent to the categorical distribution.)

    The lengths Ni are treated as independent of all the other data generating variables (q and z). The subscript is often dropped, as in the plate diagrams shown here.

    [edit]Inference

    Learning the various distributions (the set of topics, their associated word probabilities, the topic of each word, and the particular topic mixture of each document) is a problem of Bayesian inference. The original paper used a variational Bayes approximation of the posterior distribution[1]; alternative inference techniques use Gibbs sampling[3] and expectation propagation[4].

    Following is the derivation of the equations for collapsed Gibbs sampling, which means φs and θs will be integrated out. For simplicity, in this derivation the documents are all assumed to have the same length N. The derivation is equally valid if the document lengths vary.

    According to the model, the total probability of the model is:

     P(\boldsymbol{W}, \boldsymbol{Z}, \boldsymbol{\theta},
\boldsymbol{\varphi};\alpha,\beta) = \prod_{i=1}^K
P(\varphi_i;\beta) \prod_{j=1}^M P(\theta_j;\alpha) \prod_{t=1}^N
P(Z_{j,t}|\theta_j)P(W_{j,t}|\varphi_{Z_{j,t}}) ,

    where the bold-font variables denote the vector version of the variables. First of all, \boldsymbol{\varphi} and \boldsymbol{\theta} need to be integrated out.

    
\begin{align}
& P(\boldsymbol{Z}, \boldsymbol{W};\alpha,\beta)  =  \int_{\boldsymbol{\theta}} \int_{\boldsymbol{\varphi}} P(\boldsymbol{W}, \boldsymbol{Z}, \boldsymbol{\theta}, \boldsymbol{\varphi};\alpha,\beta) \, d\boldsymbol{\varphi} \, d\boldsymbol{\theta} \\
 = & \int_{\boldsymbol{\varphi}} \prod_{i=1}^K P(\varphi_i;\beta) \prod_{j=1}^M \prod_{t=1}^N P(W_{j,t}|\varphi_{Z_{j,t}}) \, d\boldsymbol{\varphi} \int_{\boldsymbol{\theta}} \prod_{j=1}^M P(\theta_j;\alpha) \prod_{t=1}^N P(Z_{j,t}|\theta_j) \, d\boldsymbol{\theta}.
\end{align}

    Note that all the θs are independent to each other and the same to all the φs. So we can treat each θ and each φ separately. We now focus only on the θ part.

    
\int_{\boldsymbol{\theta}} \prod_{j=1}^M P(\theta_j;\alpha) \prod_{t=1}^N P(Z_{j,t}|\theta_j) d\boldsymbol{\theta} = \prod_{j=1}^M \int_{\theta_j} P(\theta_j;\alpha) \prod_{t=1}^N
P(Z_{j,t}|\theta_j) \, d\theta_j .

    We can further focus on only one θ as the following:

     \int_{\theta_j} P(\theta_j;\alpha) \prod_{t=1}^N
P(Z_{j,t}|\theta_j) \, d\theta_j .

    Actually, it is the hidden part of the model for the jth document. Now we replace the probabilities in the above equation by the true distribution expression to write out the explicit equation.

    
\begin{align}
& \int_{\theta_j} P(\theta_j;\alpha) \prod_{t=1}^N P(Z_{j,t}|\theta_j) \, d\theta_j \\
 = & \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)} \prod_{i=1}^K \theta_{j,i}^{\alpha_i - 1} \prod_{t=1}^N P(Z_{j,t}|\theta_j) \, d\theta_j.
\end{align}

    Let n_{j,r}^i be the number of word tokens in the jth document with the same word symbol (the rth word in the vocabulary) assigned to the ith topic. So, n_{j,r}^i is three dimensional. If any of the three dimensions is not limited to a specific value, we use a parenthesized point (\cdot) to denote. For example, n_{j,(\cdot)}^i denotes the number of word tokens in the jthdocument assigned to the ith topic. Thus, the right most part of the above equation can be rewritten as:

     \prod_{t=1}^N P(Z_{j,t}|\theta_j)  =  \prod_{i=1}^K
\theta_{j,i}^{n_{j,(\cdot)}^i} .

    So the θj integration formula can be changed to:

    
\begin{align}
& \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)} \prod_{i=1}^K \theta_{j,i}^{\alpha_i - 1} \prod_{i=1}^K \theta_{j,i}^{n_{j,(\cdot)}^i} \, d\theta_j \\
 = & \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)} \prod_{i=1}^K \theta_{j,i}^{n_{j,(\cdot)}^i+\alpha_i - 1} \, d\theta_j.
\end{align}

    Clearly, the equation inside the integration has the same form as the Dirichlet distribution. According to the Dirichlet distribution,

     \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K
n_{j,(\cdot)}^i+\alpha_i \bigr)}{\prod_{i=1}^K
\Gamma(n_{j,(\cdot)}^i+\alpha_i)} \prod_{i=1}^K
\theta_{j,i}^{n_{j,(\cdot)}^i+\alpha_i - 1} \, d\theta_j =1 .

    Thus,

    
\begin{align}
& \int_{\theta_j} P(\theta_j;\alpha) \prod_{t=1}^N P(Z_{j,t}|\theta_j) \, d\theta_j = \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)} \prod_{i=1}^K \theta_{j,i}^{n_{j,(\cdot)}^i+\alpha_i - 1} \, d\theta_j \\
= & \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)}\frac{\prod_{i=1}^K \Gamma(n_{j,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K n_{j,(\cdot)}^i+\alpha_i \bigr)} \int_{\theta_j} \frac{\Gamma\bigl(\sum_{i=1}^K n_{j,(\cdot)}^i+\alpha_i \bigr)}{\prod_{i=1}^K \Gamma(n_{j,(\cdot)}^i+\alpha_i)} \prod_{i=1}^K \theta_{j,i}^{n_{j,(\cdot)}^i+\alpha_i - 1} \, d\theta_j \\
= & \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i \bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)}\frac{\prod_{i=1}^K \Gamma(n_{j,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K n_{j,(\cdot)}^i+\alpha_i \bigr)}.
\end{align}

    Now we turn our attentions to the \boldsymbol{\varphi} part. Actually, the derivation of the \boldsymbol{\varphi} part is very similar to the \boldsymbol{\theta} part. Here we only list the steps of the derivation:

    
\begin{align}
& \int_{\boldsymbol{\varphi}} \prod_{i=1}^K P(\varphi_i;\beta) \prod_{j=1}^M \prod_{t=1}^N P(W_{j,t}|\varphi_{Z_{j,t}}) \, d\boldsymbol{\varphi} \\
= & \prod_{i=1}^K \int_{\varphi_i} P(\varphi_i;\beta) \prod_{j=1}^M \prod_{t=1}^N P(W_{j,t}|\varphi_{Z_{j,t}}) \, d\varphi_i\\
= & \prod_{i=1}^K \int_{\varphi_i} \frac{\Gamma\bigl(\sum_{r=1}^V \beta_r \bigr)}{\prod_{r=1}^V \Gamma(\beta_r)} \prod_{r=1}^V \varphi_{i,r}^{\beta_r - 1}  \prod_{r=1}^V \varphi_{i,r}^{n_{(\cdot),r}^i} \, d\varphi_i \\
= & \prod_{i=1}^K \int_{\varphi_i} \frac{\Gamma\bigl(\sum_{r=1}^V \beta_r \bigr)}{\prod_{r=1}^V \Gamma(\beta_r)} \prod_{r=1}^V \varphi_{i,r}^{n_{(\cdot),r}^i+\beta_r - 1} \, d\varphi_i \\
= & \prod_{i=1}^K \frac{\Gamma\bigl(\sum_{r=1}^V \beta_r
\bigr)}{\prod_{r=1}^V \Gamma(\beta_r)}\frac{\prod_{r=1}^V
\Gamma(n_{(\cdot),r}^i+\beta_r)}{\Gamma\bigl(\sum_{r=1}^V
n_{(\cdot),r}^i+\beta_r \bigr)} .
\end{align}

    For clarity, here we write down the final equation with both \boldsymbol{\phi} and \boldsymbol{\theta} integrated out:

    
\begin{align}
& P(\boldsymbol{Z}, \boldsymbol{W};\alpha,\beta) \\
= & \prod_{j=1}^M  \frac{\Gamma\bigl(\sum_{i=1}^K \alpha_i
\bigr)}{\prod_{i=1}^K \Gamma(\alpha_i)}\frac{\prod_{i=1}^K
\Gamma(n_{j,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K
n_{j,(\cdot)}^i+\alpha_i \bigr)} \times \prod_{i=1}^K
\frac{\Gamma\bigl(\sum_{r=1}^V \beta_r \bigr)}{\prod_{r=1}^V
\Gamma(\beta_r)}\frac{\prod_{r=1}^V
\Gamma(n_{(\cdot),r}^i+\beta_r)}{\Gamma\bigl(\sum_{r=1}^V
n_{(\cdot),r}^i+\beta_r \bigr)} . 
\end{align}

    The goal of Gibbs Sampling here is to approximate the distribution of P(\boldsymbol{Z}|\boldsymbol{W};\alpha,\beta). Since P(\boldsymbol{W};\alpha,\beta) is invariable for any of Z, Gibbs Sampling equations can be derived from P(\boldsymbol{Z}, \boldsymbol{W};\alpha,\beta) directly. The key point is to derive the following conditional probability:

     P(Z_{(m,n)}|\boldsymbol{Z_{-(m,n)}},
\boldsymbol{W};\alpha,\beta)=\frac{P(Z_{(m,n)},
\boldsymbol{Z_{-(m,n)}},\boldsymbol{W};\alpha,\beta)}
{P(\boldsymbol{Z_{-(m,n)}}, \boldsymbol{W};\alpha,\beta)} ,

    where Z(m,n) denotes the Z hidden variable of the nth word token in the mth document. And further we assume that the word symbol of it is the vth word in the vocabulary. \boldsymbol{Z_{-(m,n)}} denotes all the Zs but Z(m,n). Note that Gibbs Sampling needs only to sample a value for Z(m,n), according to the above probability, we do not need the exact value ofP(Z_{m,n}|\boldsymbol{Z_{-(m,n)}},
\boldsymbol{W};\alpha,\beta) but the ratios among the probabilities that Z(m,n) can take value. So, the above equation can be simplified as:

    
\begin{align}
& P(Z_{(m,n)}=k|\boldsymbol{Z_{-(m,n)}}, \boldsymbol{W};\alpha,\beta) \\
\propto &
P(Z_{(m,n)}=k,\boldsymbol{Z_{-(m,n)}},\boldsymbol{W};\alpha,\beta) \\
= & \left(\frac{\Gamma\left(\sum_{i=1}^K \alpha_i
\right)}{\prod_{i=1}^K \Gamma(\alpha_i)}\right)^M \prod_{j\neq m}
\frac{\prod_{i=1}^K
\Gamma(n_{j,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K
n_{j,(\cdot)}^i+\alpha_i \bigr)} \\
& \times \bigl( \frac{\Gamma\bigl(\sum_{r=1}^V \beta_r
\bigr)}{\prod_{r=1}^V \Gamma(\beta_r)}\bigr)^K \prod_{i=1}^K
\prod_{r\neq v}
\Gamma(n_{(\cdot),r}^i+\beta_r) \\
& \times  \frac{\prod_{i=1}^K
\Gamma(n_{m,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K
n_{m,(\cdot)}^i+\alpha_i \bigr)}  \prod_{i=1}^K \frac{
\Gamma(n_{(\cdot),v}^i+\beta_v)}{\Gamma\bigl(\sum_{r=1}^V
n_{(\cdot),r}^i+\beta_r \bigr)} \\
\propto & \frac{\prod_{i=1}^K
\Gamma(n_{m,(\cdot)}^i+\alpha_i)}{\Gamma\bigl(\sum_{i=1}^K
n_{m,(\cdot)}^i+\alpha_i \bigr)}  \prod_{i=1}^K \frac{
\Gamma(n_{(\cdot),v}^i+\beta_v)}{\Gamma\bigl(\sum_{r=1}^V
n_{(\cdot),r}^i+\beta_r \bigr)}.
\end{align}

    Finally, let n_{j,r}^{i,-(m,n)} be the same meaning as n_{j,r}^i but with the Z(m,n) excluded. The above equation can be further simplified by treating terms not dependent on k as constants:

    
\begin{align}
\propto & \frac{\prod_{i\neq k}
\Gamma(n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i)}{\Gamma\bigl((\sum_{i=1}^K
n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i) +1\bigr)}  \prod_{i\neq k} \frac{
\Gamma(n_{(\cdot),v}^{i,-(m,n)}+\beta_v)}{\Gamma\bigl(\sum_{r=1}^V
n_{(\cdot),r}^{i,-(m,n)}+\beta_r \bigr)}\\
\times & \Gamma(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k + 1) \frac{
\Gamma(n_{(\cdot),v}^{k,-(m,n)}+\beta_v +
1)}{\Gamma\bigl((\sum_{r=1}^V n_{(\cdot),r}^{k,-(m,n)}+\beta_r)+1
\bigr)} \\
\propto & \frac{\Gamma(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k +
1)}{\Gamma\bigl((\sum_{i=1}^K n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i)+1
\bigr)} \frac{ \Gamma(n_{(\cdot),v}^{k,-(m,n)}+\beta_v +
1)}{\Gamma\bigl((\sum_{r=1}^V n_{(\cdot),r}^{k,-(m,n)}+\beta_r)+1
\bigr)}\\
= &
\frac{\Gamma(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k)\bigl(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k\bigr)}
{\Gamma\bigl(\sum_{i=1}^K
n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i\bigr)\bigl(\sum_{i=1}^K
n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i\bigr)} \frac{
\Gamma\bigl(n_{(\cdot),v}^{k,-(m,n)}+\beta_v\bigr)\bigl(n_{(\cdot),v}^{k,-(m,n)}+\beta_v\bigr)}
{\Gamma\bigl(\sum_{r=1}^V n_{(\cdot),r}^{k,-(m,n)}+\beta_r\bigr)
\bigl(\sum_{r=1}^V n_{(\cdot),r}^{k,-(m,n)}+\beta_r)} \\
\propto & \frac{\bigl(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k\bigr)}
{\bigl(\sum_{i=1}^K n_{m,(\cdot)}^{i,-(m,n)}+\alpha_i\bigr)} \frac{
\bigl(n_{(\cdot),v}^{k,-(m,n)}+\beta_v\bigr)} {\bigl(\sum_{r=1}^V
n_{(\cdot),r}^{k,-(m,n)}+\beta_r)}\\
\propto & \bigl(n_{m,(\cdot)}^{k,-(m,n)}+\alpha_k\bigr)\frac{
\bigl(n_{(\cdot),v}^{k,-(m,n)}+\beta_v\bigr)} {\bigl(\sum_{r=1}^V
n_{(\cdot),r}^{k,-(m,n)}+\beta_r)}.
\end{align}

    [edit]Applications, extensions and similar techniques

    Topic modeling is a classic problem in information retrieval. Related models and techniques are, among others, latent semantic indexingindependent component analysis,probabilistic latent semantic indexingnon-negative matrix factorizationGamma-Poisson.

    The LDA model is highly modular and can therefore be easily extended, the main field of interest being the modeling of relations between topics. This is achieved e.g. by using another distribution on the simplex instead of the Dirichlet. The Correlated Topic Model[5] follows this approach, inducing a correlation structure between topics by using the logistic normal distribution instead of the Dirichlet. Another extension is the hierarchical LDA (hLDA)[6], where topics are joined together in a hierarchy by using the nestedChinese restaurant process.

    As noted earlier, PLSA is similar to LDA. The LDA model is essentially the Bayesian version of PLSA model. Bayesian formulation tends to perform better on small datasets because Bayesian methods can avoid overfitting the data. In a very large dataset, the results are probably the same. One difference is that PLSA uses a variable d to represent a document in the training set. So in PLSA, when presented with a document the model hasn't seen before, we fix \Pr(w \mid z)--the probability of words under topics—to be that learned from the training set and use the same EM algorithm to infer \Pr(z \mid d)--the topic distribution under d. Blei argues that this step is cheating because you are essentially refitting the model to the new data.

    [edit]See also

    [edit]Notes

    1. a b Blei, David M.; Ng, Andrew Y.; Jordan, Michael I (January 2003). Lafferty, John. ed. "Latent Dirichlet allocation"Journal of Machine Learning Research 3 (4–5): pp. 993–1022.doi:10.1162/jmlr.2003.3.4-5.993.
    2. ^ Girolami, Mark; Kaban, A. (2003). "On an Equivalence between PLSI and LDA". Proceedings of SIGIR 2003. New York: Association for Computing Machinery. ISBN 1-58113-646-3.
    3. ^ Griffiths, Thomas L.; Steyvers, Mark (April 6 2004). "Finding scientific topics"Proceedings of the National Academy of Sciences 101 (Suppl. 1): 5228–5235. doi:10.1073/pnas.0307752101.PMC 387300PMID 14872004.
    4. ^ Minka, Thomas; Lafferty, John (2002). "Expectation-propagation for the generative aspect model". Proceedings of the 18th Conference on Uncertainty in Artificial Intelligence. San Francisco, CA: Morgan Kaufmann. ISBN 1-55860-897-4.
    5. ^ Blei, David M.; Lafferty, John D. (2006). "Correlated topic models"Advances in Neural Information Processing Systems 18.
    6. ^ Blei, David M.; Jordan, Michael I.; Griffiths, Thomas L.; Tenenbaum; Joshua B (2004). "Hierarchical Topic Models and the Nested Chinese Restaurant Process". Advances in Neural Information Processing Systems 16: Proceedings of the 2003 Conference. MIT Press. ISBN 0-262-20152-6.

    [edit]External links

    转自:http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation

  • 相关阅读:
    解决在QEMU上仿真STM32F429时出现的若干问题
    CentOS 7.1, 7.2 下安装dotnet core
    [尝鲜]妈妈再也不用担心 dotnet core 程序发布了: .NET Core Global Tools
    程序员节应该写博客之.NET下使用HTTP请求的正确姿势
    [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [五] 如何做全站采集?
    [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
    ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core
    解决 docker on windows下网络不通
    Orchestrator中 errant 的判断
    golang 中时间差的计算
  • 原文地址:https://www.cnblogs.com/wintergrass/p/2248323.html
Copyright © 2011-2022 走看看