我正在实现LDA,避免使用开箱即用的库.我试过用python / numpy。有100万条记录,词汇量约为2000,只需7分钟就能运行 of sequential。使用具有8个进程的分布式LDA版本,可将其速度提高到~5分钟分布式LDA::每个进程将对总矩阵的子集执行一个顺序的GibbsSampling,一旦完成,相应的输出矩阵将被加起来。
有什么办法能让它更快吗?将另一种语言的实现全部替换在一起?
增加更多的记录~线性增加所需的时间。在我的用例中,我需要运行超过2500万个文档的LDA,这可能意味着1次运行大约144分钟!然后至少运行100次LDA,以确保模型几乎收敛!
发布于 2019-02-17 20:25:33
您可能想看看微软的LightLDA。他们开发了一种更有效的取样器,能够被分发。底层纸声称他们的方法速度快了一个数量级。
如果您想继续使用python,您可以在这里找到一个端口:https://github.com/nzw0301/lightLDA。
https://stackoverflow.com/questions/43152176
复制相似问题