Sparse LDA

Sparse LDA

LDA

p(zdi=k|rest)(ndikd+αk)(ndikw+βw)ndik+β¯

其中, w 表示wdi β¯=wβw ndikd 表示文档 d 下主题k出现的次数(除去文档 d 中第i个词), ndikw 表示主题 k 下词w出现的次数(除去文档 d 中第i个词)。

Sparse LDA算法

LDA模型中的 ndikd ndikw 在实际应用中往往非常稀疏,基于这样的一个事实,我们对LDA的采样公式做如下变换:

p(zdi=k|rest)(ndikd+αk)(ndikw+βw)ndik+β¯=ndikw(ndikd+αk)ndik+β¯+ndikdβwndik+β¯+βwαkndik+β¯

对上式求和:
Q=kp(zdi=k|rest)k(ndikd+αk)(ndikw+βw)ndik+β¯=kndikw(ndikd+αk)ndik+β¯+kndikdβwndik+β¯+kβwαkndik+β¯=E+F+G=ke(k)+kf(k)+kg(k)

其中,
c(z=k)=ndikd+αkndik+β¯e(z=k)=ndikwc(k)f(z=k)=ndikdβwndik+β¯g(z=k)=βwαkndik+β¯

其中, E 包含|Nonzero(ndikw)|项,称为“topic word”桶, F 包含|Nonzero(ndikd)|项,称为“document topic”桶, G 包含K项,称为“smooth only”桶。
采样词的主题时,首先计算 Q=E+F+G ,然后生成一个随机变量 UUniform(0,Q) ,根据 U 的值决定在三个桶里哪个进行采样:
- 如果U<E,主题落“topic word”桶内;
- 如果 U<E+F ,主题落在“document topic”桶内;
- 否则主题落在平滑桶里。

对于每次迭代中的一篇文档来说, F 项对于该文档中的每个词都一样,因此只需要计算一遍,而且计算的大小为|Nonzero(ndikd)|,因为 ndikd 是非常稀疏的。对于 G 项来说,可以预先计算出来,只有E项需要针对每个词计算,但是复杂度只有 O(|Nonzero(ndikw)|)

伪代码

image

参考文献

  • Yao, L., Mimno, D., & Mccallum, A. (2009). Efficient methods for topic model inference on streaming document collections. (pp.937-946).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值