WrapLDA是LDA的经典实现之一,WarpLDA中采用Metropolis Hastings (MH) 的方法进行话题采样。而LDA*中采用F+LDA作为话题的采样器
利用MH的方法能够将每次采样的操作降低到O(1)复杂度。但是由于MH采用了近似的方法,WarpLDA需要更多的采样操作,即更多的迭代次数才能收敛,这在分布式环境下意味着更多的网络通信开销。
感谢@Chris19920210 的贡献
WarpLDA的运行方法和参数和LDA*相同
I输入数据分为多行,每行是一个文档,每个文档由文档id和一系列的词id构成,文档id和词id之间由'\t'符合 相隔,词id之间由空格隔开
doc_id '\t' wid_0 wid_1 ... wid_n
- 数据参数
- angel.train.data.path: 输入数据路径
- angel.save.model.path: 模型保存路径
- 算法参数
- ml.epoch.num: 算法迭代次数
- ml.lda.word.num:词个数
- ml.lda.topic.num:话题个数
- ml.worker.thread.num:worker内部并行度
- ml.lda.alpha: alpha
- ml.lda.beta: beta
- save.doc.topic: 是否存储文档-话题矩阵
- save.word.topic: 是否存储词-话题矩阵
- Lele Yu, Bin Cui, Ce Zhang, Yingxia Shao. LDA*: A Robust and Large-scale Topic Modeling System. VLDB, 2017
- Jianfei Chen, Kaiwei Li, Jun Zhu, Wenguan Chen. WarpLDA: a Cache Efficient O(1) Algorithm for Latent Dirichlet Allocation