LDA主题模型学习笔记4:求解模型参数(M-step)

这一步,我们根据E-step得到的 γ,ϕ ,最大化 L(γ,ϕ;α,β) ,得到 α,β .

1,拉格朗日乘数法求解 β

     首先把 L(γ,ϕ;α,β) 简化,只保留与 β 有关的部分。因为 β 是每一行存一个主题的词分布,所以每一行的和是1,存在等式约束 Vj=1βij=1 ,所以是带等式约束的最大化问题,使用拉格朗日乘数法,可得到拉格朗日函数如下:
l1
用拉格朗日函数对 β 求偏导,令偏导为0,可得:
l2
     这里的 ϕdni 指的是对第d个文档的变分参数 ϕni ,也就是第n个单词在第i个主题的词分布中的概率, wjdn 是第d个文档中第n个单词 wn wn 是一个V维向量,其中只有一个元素是1,其他都是0,这个为1的元素对应的索引号就是这个单词在文档集字典中的ID,上标j是指 wn 向量中的每个元素,如果 wjdn=1 那么单词 wn 在文档集字典中的ID就是j。

2,牛顿法求解 α

首先把 L(γ,ϕ;α,β) 简化,只保留与 α 有关的部分:
l3
因为 α 是Dirichlet分布的参数(K维的,K是主题个数),所以它没有约束条件,直接对 α 求偏导:
l4
     可以看到,一阶导数的结果中包含 αj ,这里不能直接令偏导为0解出 α 。所以需要考虑迭代的方法去求解,作者在这里使用牛顿迭代法。牛顿法的理解可以参考这里:http://blog.csdn.net/luoleicn/article/details/6527049
对于K维向量 α ,它的牛顿迭代式如下:
l5
     其中 H(α),g(α) 分别是 α 处的Hessian矩阵和梯度。这里我们可以看到有对Hessian矩阵求逆的操作,这个操作时间复杂度高达 O(n3) ,所以考虑简化这个求逆操作。
Hessian矩阵的元素是:
l6
首先对Hessian矩阵H进行分解:
l7
这样Hessian矩阵的逆就成了如下形式:
l8
对于 α 的第i个分量,Hessian矩阵的逆和梯度的乘积:
l9
其中:
l10
这样可以看到, (H1g)i 只与 hi gi 有关,它们的值各有k个,所以这时的牛顿法是线性的。


本文内容来自LDA原始论文《Latent Dirichlet Allocation》的附录A.2, A.4.

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值