使用潜在Dirichlet分配的主题预测


17

我在一组文档上使用了LDA,并发现了一些主题。我的代码的输出是两个包含概率的矩阵。一个doc-topic概率,另一个word-topic概率。但是我实际上不知道如何使用这些结果来预测新文档的主题。我正在使用Gibbs采样。有人知道吗?谢谢


1
“预测新文档的主题”是什么意思?您是否要查找此文档是从哪个主题生成的?您是否要查找文档主题的混合体?您是否要通过单词来源的主题来标记新文档中的每个单词?
SheldonCooper

您是否要查找此文档是从哪个主题生成的?您是否要为文档找到主题的混合体?-实际上我想回答这两个问题...但是我的语料库很大,因此每次新文档时我都无法重新训练所有模型检查
侯赛因

Answers:


21

我会尝试“折叠”。这是指获取一个新文档,将其添加到语料库,然后仅对该新文档中的单词运行Gibbs采样,同时使旧文档的主题分配保持不变。这通常会快速收敛(可能是5-10-20次迭代),并且您不需要采样旧的语料库,因此它也运行很快。最后,您将为新文档中的每个单词分配主题。这将使您可以分配该文档中的主题。

在您的Gibbs采样器中,您可能具有类似于以下代码的内容:

// This will initialize the matrices of counts, N_tw (topic-word matrix) and N_dt (document-topic matrix)
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Assign current token to a random topic, updating the count matrices
    end
end

// This will do the Gibbs sampling
for doc = 1 to N_Documents
    for token = 1 to N_Tokens_In_Document
       Compute probability of current token being assigned to each topic
       Sample a topic from this distribution
       Assign the token to the new topic, updating the count matrices
    end
end

折入是相同的,只是您从现有矩阵开始,将新文档的标记添加到其中,并仅对新标记进行采样。即:

Start with the N_tw and N_dt matrices from the previous step

// This will update the count matrices for folding-in
for token = 1 to N_Tokens_In_New_Document
   Assign current token to a random topic, updating the count matrices
end

// This will do the folding-in by Gibbs sampling
for token = 1 to N_Tokens_In_New_Document
   Compute probability of current token being assigned to each topic
   Sample a topic from this distribution
   Assign the token to the new topic, updating the count matrices
end

pw一世w一世ĴwĴ

ĴpwĴ一世

谢谢你的回答。我读了一些有关“折叠”的东西,但仍然有些困惑。您是说我应该保持旧文档的主题分配不变,这意味着单词主题分配应该重新计算吗?您是否可以给我更详细的步骤?或向我推荐可以真正帮助我阐明这种“折叠”过程的论文或链接。我的第一个选择是“折叠”。如果不成功,我将采用您建议的第二种方法(不确定将其折叠起来的效果如何)。谢谢。
侯赛因

@SheldonCooper:如果我对您的理解是正确的,那么我怀疑这是怎么做的:您所做的就像是通过给优化算法提供更多步骤来衡量新测试样本上SVM的性能一样当前的解决方案,包括测试样本,然后在该样本上进行评估...但是:在机器学习中,您可能永远不会在训练集上进行测试...并且通过将测试样本包含到模型中,您可以做到:训练样本...
Fabian Werner

@FabianWerner我相信该解决方案不会从原始培训中更新单词主题矩阵。它只是从训练有素的单词主题矩阵开始重新运行Gibbs采样器,并创建一个新的文档主题矩阵。无论如何,您是否知道OP要求的另一种方式(肯定是几年前)?我在看同样的问题。
thecity2

@ thecity2尽管我对这个问题有一段时间的想法,但我必须遗憾地说我还没有解决方案。如果找到一个,请告诉我!!!
Fabian Werner

@FabianWerner您没有针对此问题的培训和测试设备-您的评论与此处无关。就像聚类一样,这是无监督的学习。
–emem
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.