【问题标题】:Infer LDA models推断 LDA 模型
【发布时间】:2021-04-23 02:35:32
【问题描述】:

我是 LDA 和主题建模的新手,我想了解推理机制。 我想将 LDA 应用于活动识别。 假设我已经定义了由事件的概率分布组成的 10 个主题。 例如

TOPIC_1 = event1 (0.5), event2 (0.4), event3 (0.0), event4 (0.0) and event5 (0.1).

我想了解一个人一天中哪些主题很活跃。 一个人的一天是由每分钟采样的一系列事件组成的。

我正在做的是查看哪个主题是活跃的:

  1. 在每日序列中选择 1 小时窗口
  2. 计算该小时内发生的事件的分布
  3. 计算与 LDA 找到的每个主题的相似度。

正确吗?您对使用相似度函数有什么建议吗?

【问题讨论】:

  • 坦率地说,我认为这不是 LDA 任务,而是机器学习。我知道有动态主题模型和 Boyd-Graber 等人的概念。跟随政治辩论中主题的变化(看看谁在领导辩论并控制议程),但这都是计算语言学。必须有一些更好的工具来解决您的问题,例如预测模型(?)。
  • 嗯.. 是的,这是一项机器学习任务,但 LDA 和主题建模通常是机器学习的工具..

标签: lda topic-modeling


【解决方案1】:

我们可以通过将每小时视为一个文档来制定活动识别的主题模型。然后,我们可以将词汇表定义为观察到的活动信号计数的离散化向量(即,我们可以使用 k-means 对每个活动测量进行离散化,并计算每小时活动发生的次数)。离散化级别将决定词汇量。这样我们就可以构造词-文档矩阵并应用 tf-idf(详见原文Blei 2003 LDA paper)。

形成术语-文档矩阵后,我们可以使用多种推理算法中的一种来学习主题:变分贝叶斯、EM 算法、Gibbs 采样器等。每种算法都有自己的优势。用于大型语料库的常用推理算法是在线变分贝叶斯(Matt Hoffman 用 python 编写,可作为 scikit-learn 和 gensim 的一部分使用)

在训练活动数据上拟合 LDA 模型后,我们可以通过将数据量化和转换到我们学习的主题空间来计算新测试数据的主题相似度(在 E-step 中完成,在 scikit-learn 中实现为 transform 方法) .一旦我们获得测试数据主题比例,我们可以使用许多相似性度量之一,例如余弦相似度或对称 KL 散度来检索具有相似主题比例的文档)。

关于建模假设的说明:LDA 假设文档是独立的(即每小时活动时间序列是独立的)。此外,单词是可交换的(即离散的活动测量可以在文档中置换)。

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多