更快的LDA实施

时间:2017-04-01 02:36:50

标签: python numpy lda

我正在实施LDA,并避免使用现成的库。我试过python / numpy。拥有100万条记录,词汇量大约为2000,仅运行连续的GibbsSampling大约需要7分钟。使用具有8个进程的分布式LDA版本可将其加速至约5分钟 分布式LDA ::每个进程都会在整个矩阵的子集上执行顺序GibbsSampling,一旦完成,相应的输出矩阵就会相加。

有没有办法让它更快?一起用另一种语言替换实现?

添加更多记录〜线性增加所需时间。在我的用例中,我需要运行LDA超过2500万个文档,这可能意味着大约144分钟一次运行!然后至少100次运行LDA以确保模型几乎收敛!!!!

代码:https://pastebin.com/AmEwTuUu

参考:https://github.com/shuyo/iir/tree/master/lda

1 个答案:

答案 0 :(得分:0)

您可能想看看微软的LightLDA。他们开发了一种更高效的采样器,可以分发。 underlying paper声称他们的方法快了近一个数量级。

如果您想使用python,可以在此处找到端口: https://github.com/nzw0301/lightLDA