更快的LDA实施

问题描述 投票:0回答:1

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

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

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

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

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

python numpy lda
1个回答
0
投票

你可能想看一下微软的LightLDA。他们开发了一种能够分发的更高效的采样器。 underlying paper声称他们的方法快得多。

如果你想坚持使用python,你可以在这里找到一个端口:https://github.com/nzw0301/lightLDA

© www.soinside.com 2019 - 2024. All rights reserved.