对于稀疏数据,训练 LDA(Latent Dirichlet allocation)和预测新文档的更快方法是什么?
With sparse data,what is the faster way to train LDA( Latent Dirichlet allocation ) and predict for a new document?
关于训练 LDA :
当我们尝试实现LDA时,我们需要构建一个词-文档矩阵,但是这个矩阵是稀疏数据,因为我们的token字典非常大(几百万个词),而一个文档只有一小部分token (~ 1000 - 10000 words),所以在words-documents矩阵中,它有很多0值,训练模型需要更长的时间。那么我们怎样才能做得更快呢?
关于预测一个新文档 :
经过训练,现在我们有了一个新的 LDA 模型,所以我们可以用它来预测新文档的主题。但是在向我们的模型提供新文档之前,我们需要将其转换为单词向量,其向量长度将是我们的字典长度(几百万个单词)。所以,它会有很多零值,事实上,我们的成本时间增加了矢量长度。
那么documents-words matrix是实现LDA的有效方式吗?我们可以有其他更好的方法吗?我的项目需要一些推荐,所以请帮助
对于稀疏数据,您当然应该使用稀疏向量而不是密集向量。
您只保留非零值,而不是存储所有零。
典型的数据模型(参见替代方案的文献)是简单地使用元组列表 (i,v),其中 i 是列索引,v 是非零值。
关于训练 LDA :
当我们尝试实现LDA时,我们需要构建一个词-文档矩阵,但是这个矩阵是稀疏数据,因为我们的token字典非常大(几百万个词),而一个文档只有一小部分token (~ 1000 - 10000 words),所以在words-documents矩阵中,它有很多0值,训练模型需要更长的时间。那么我们怎样才能做得更快呢?
关于预测一个新文档 :
经过训练,现在我们有了一个新的 LDA 模型,所以我们可以用它来预测新文档的主题。但是在向我们的模型提供新文档之前,我们需要将其转换为单词向量,其向量长度将是我们的字典长度(几百万个单词)。所以,它会有很多零值,事实上,我们的成本时间增加了矢量长度。
那么documents-words matrix是实现LDA的有效方式吗?我们可以有其他更好的方法吗?我的项目需要一些推荐,所以请帮助
对于稀疏数据,您当然应该使用稀疏向量而不是密集向量。
您只保留非零值,而不是存储所有零。
典型的数据模型(参见替代方案的文献)是简单地使用元组列表 (i,v),其中 i 是列索引,v 是非零值。