假设我们有一个适度增长的文档语料库,即每天都会将一些新文档添加到此文档语料库中。对于这些新添加的文档,我可以通过使用LDA的推理部分来推断主题分布。我不必再为所有文档执行LDA的整个主题估计+推理过程,只是为了获得这些新文档的主题分布。但是,在一段时间内,我可能需要再次执行整个主题生成过程,因为自上次执行LDA以来新添加的文档数量可能会在文档语料库中添加全新的单词。
现在,我的问题是 - 如何确定两个主题生成执行之间足够好的间隔?关于我们应该多长时间执行整个文档语料库的LDA,是否有任何一般性建议?
如果我将此间隔保持很短,那么我可能会丢失稳定的主题分布,并且主题分布将不断变化。如果我将时间间隔保持太久,我可能会失去新主题和新主题结构。
答案 0 :(得分:3)
我只是在这里大声思考......一个非常简单的想法是从一堆新添加的文档(例如一天的时间段)中抽取一部分文档。
您可以从采样集中的每个文档中提取关键字,并将每个关键字作为对从添加这些新文档之前存在的集合版本构建的索引的查询执行。
然后,您可以测量为响应每个查询而检索到的前K个文档的平均余弦相似度(并根据采样的查询集对每个查询进行平均)。如果此平均相似度小于预定义阈值,则可能表明新文档与现有文档不相似。因此,在整个集合中重新运行LDA可能是个好主意。