Topic Modeling: Beyond Bag-of-Words

From Cohen Courses
Revision as of 02:36, 1 April 2011 by Yandongl (talk | contribs)
Jump to navigationJump to search

This a Paper discussed in Social Media Analysis 10-802 in Spring 2011.

Citation

Hanna M. Wallach: Topic Modeling: Beyond Bag-of-Words. ICML 2006

Online version

download here

Summary

In text analysis community, methods are basically 2-folded: employ n-gram statistics like language-modeling, or recently emerged topic models which using 'bag-of-words', assuming word order doesn't matter. This work tries to incorporate both methods by proposing a hierarchical generative probabilistic model.

Methodology

To develop a bigram language model, marginal and conditional word counts are determined from corpus such as and . Since only limited number of possible combinations are seen in practice, bigram estimator is often smoothed by marginal frequency estimator:

Next is the widely applied LDA model which makes bag-of-words assumption when modeling text. This is computational efficient but not realistic in real world since word order is very important such as in text compression, speech recognition, etc.

Bigram Topic Model

Authors extended LDA model by incorporating a notion of word order. Word is generated by a conditional distribution: not only topic, but previous word.

Now the likelihood becomes:

is number of times word i has been assigned topic k when preceded by word j.

Prior over : same as LDA

Prior over : complicated since now there are more additional context. Author proposed 2 priors:

Prior1: a single hyperparameter vector may be shared between all j,k contexts:

Prior1: T hyperparameter vectors, one for each topic k:

Having defined all distributions, now the generative process becomes:

  • For each topic k and word j
    • Draw from the prior over
  • For each document d in corpus:
    • Draw topic mixture for document d
    • For each position t in document d:
      • Draw a topic ~ Multi()
      • Draw a word from context defined on previous word and Multi()

Inference is based on EM algorithm. I ignored the bulky math here. For details, please refer to the paper

Experiments