我通过Java API创建了一个DMR主题模型,该模型根据文档的出版年份计算主题分布。
结果分布有点令人困惑,因为有很多负概率。有时候一个完整主题的所有概率都是负值。请看:
Q1: 为什么会有负值?对于给定特征的主题分布,最低可能的概率应该至少是0.0…我想是这样吧?
此外,我构建了一个LDA模型,其中模型对数似然度看起来非常不真实。我用近400万份文档和20个主题训练了模型。Alpha = 1.0;Beta = 0.01;迭代次数1000;
模型对数似然度结果为:-8.895651309362761E8
Q2: 这个值可能是正确的吗?还是我做错了什么?
回答:
感谢使用DMR!LDA假设每个文档的主题分布先验是一个Dirichlet分布。K维Dirichlet的参数是K个非负实数。DMR-LDA根据文档的属性生成特定于文档的先验。
Q1: 这些不是概率,而是回归系数。如果你有一个特征为2014
的文档,主题1的Dirichlet参数值为表达式exp(-4.5 + -0.25)
。这是默认参数加上2014的偏移量,指数化以使其非负。这些值相当于没有额外特征时的默认值约0.01,而对于2014年则为0.008(78%)。
Q2: 这是一个常见的困惑!关键在于这是对数概率。对数函数在1处跨越0,因为任何数的0次方是1。任何小于1的值的对数都是负的。由于所有概率都小于或等于1,所有对数概率都是零或负数。另一个经常让人们惊讶的是对数概率有多大。假设你有一个语言模型,其中每个词标记都是独立的,并且给定词的概率通常约为1/1000。因此,一个词的对数概率大约是-7.0。整个集合的联合概率是标记概率的乘积,因此该联合概率的对数是-7的总和。我猜你的集合大约有1亿个标记?