我试图通过阅读算法的实现来理解 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 来确定主题编号是否合适吗?