ReactiveBayes / ReactiveBayes/RxInferExamples.jl
Implement Latent Dirichlet Allocation (LDA) Example
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 28
- Forks
- 14
- Avg merge
- 23h 47m
- Merged PRs (30d)
- 10
Description
I'd like to propose adding a Latent Dirichlet Allocation (LDA) example to the codebase. Looking at the current functionality, it seems we already have all the necessary building blocks in place - specifically the DirichletCollection and MultinomialPolya nodes!
LDA would make an excellent addition to our examples for several reasons:
- It's a fundamental topic model widely used in text analysis and machine learning
- It would demonstrate RxInfer's capability with hierarchical Bayesian models
- It exercises multiple probability distributions in combination
- The results are intuitive and visually presentable
The generative model is straightforward:
- Topic-word distributions:
φₖ ~ Dirichlet(β) - Document-topic distributions:
θₗ ~ Dirichlet(α) - Topic assignments:
zₗₙ ~ Multinomial(θₗ) - Words:
wₗₙ ~ Multinomial(φzₗₙ)
This seems like a relatively easy yet powerful example to implement that would showcase RxInfer.jl's strengths. It could also serve as a benchmark against other probabilistic programming frameworks.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing DirichletCollection and MultinomialPolya nodes, then inspect how examples are organized in the repository. Add an LDA example covering the proposed generative model and present intuitive, visualizable results; any benchmark expectations are not specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100