WarpLDA

WrapLDA是LDA的经典实现之一,WarpLDA中采用Metropolis Hastings (MH) 的方法进行话题采样。而LDA*中采用F+LDA作为话题的采样器

1. 算法介绍

利用MH的方法能够将每次采样的操作降低到O(1)复杂度。但是由于MH采用了近似的方法,WarpLDA需要更多的采样操作,即更多的迭代次数才能收敛,这在分布式环境下意味着更多的网络通信开销。

感谢@Chris19920210 的贡献

2. 运行 & 性能

运行命令

WarpLDA的运行方法和参数和LDA*相同

输入格式

I输入数据分为多行,每行是一个文档,每个文档由文档id和一系列的词id构成,文档id和词id之间由’\t’符合相隔,词id之间由空格隔开

  1. 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: 是否存储词-话题矩阵

Reference

  1. Lele Yu, Bin Cui, Ce Zhang, Yingxia Shao. LDA*: A Robust and Large-scale Topic Modeling System. VLDB, 2017
  2. Jianfei Chen, Kaiwei Li, Jun Zhu, Wenguan Chen. WarpLDA: a Cache Efficient O(1) Algorithm forLatent Dirichlet Allocation