LDA 模型中更新的 alpha 意味着什么?

数据挖掘 超参数 主题模型 低密度脂蛋白
2022-02-27 02:30:48

我试图通过阅读算法的实现来理解 LDA 模型。

许多实现在训练迭代期间使用如下代码更新 alpha:

psi_sum1 = 0.0e0;
psi_sum2 = 0.0e0;

for (int d = 0; d < doc_size; d++)
{
    psi_sum1 += digamma(float(n_dk[d][k]) + alpha_old[k]) - digamma(alpha[k]);
    psi_sum2 += digamma(float(doc_words[d]) + alpha_sum) - digamma(alpha_sum);
}

alpha[k] = alpha_old[k] * psi_sum1 / psi_sum2;

例如,对于 10 个主题,初始 alpha 可以是[1, 1, ..., 1](长度 = 10),训练后,alpha 更新为[0.29, 0.30, ..., 0.28](长度 = 10)。

这个更新的阿尔法是什么意思?

我可以使用更新的 alpha 来确定主题编号是否合适吗?

1个回答

alpha 是一个超参数,它控制任何给定文档的主题混合。把它关掉,文档可能会有更少的主题混合。打开它,文档可能会有更多的混合主题。

我可以使用更新的 alpha 来确定主题编号是否合适吗?

调整它取决于您的问题陈述,这可以在领域知识的帮助下解决。