吉布斯采样
Posted yao1996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吉布斯采样相关的知识,希望对你有一定的参考价值。
以LDA模型为例:
1、对一个token计算K个主题的所有概率,并随机得到一个主题。
[p(z_{dn}=k|t_{dn}=w,Z_{-dn},C_{-dn})propto frac{C_{wk}^{-dn}+eta}{C_k^{-dn}+Veta}(C_{dk}^{-dn}+alpha)]
2、多项式采样:给定K维概率向量p(非归一化),其中每一个元素$p_k=frac{C_{wk}^{-dn}+eta}{C_k^{-dn}+Veta}(C_{dk}^{-dn}+alpha)$
1)LSearch(Linear search on p):计算归一化常数$c_K=sum_kp_k$,生成随机数$u=uniform(c_K)$,在区间$[0,c_K)$。线性搜索$z=minlbrace k:(sum_{sle k}p_s)>u brace$
2)BSearch(Binary search on c = cumsum(p)):生成随机数$u=uniform(c_K)$。二元搜索$z=minlbrace k:c_k>u brace$
3)使用Alias table
4)使用F+ tree
3、吉布斯采样器:根据降低采样复杂度所使用的优化方法的不同分为两类
1)Sparsity-Aware (SA) Samplers:利用$C_w$或$C_d$的稀疏性来降低采样复杂度(将条件概率分解成两部分$C_{dk}frac{C_{wk}+eta}{C_k+Veta}$和$alphafrac{C_{wk}+eta}{C_k+Veta}$,如果$C_{dk}$稀疏,则采样器跳过$C_{dk}$为0的,因此降低复杂度;或者分解成$C_{wk}frac{C_{dk}+alpha}{C_k+Veta}$和$etafrac{C_{dk}+alpha}{C_k+Veta}$,如果$C_{wk}$稀疏,则采样器跳过$C_{wk}$为0的)(下面两种算法的区别在于采样所使用的数据结构不同)
(1.1)AliasLDA:使用Alias table
(1.2)F+LDA:使用F+ tree
2)Metropolis-Hastings (MH) Samplers:使用MH算法来达到O(1)的采样复杂度(从分布$q^{doc}propto C_{dk}+alpha$和分布$q^{word}propto frac{C_{wk}+eta}{C_k+Veta}$中采样)(根据采样器对于内存数据结构的访问顺序的不同分为两类)
(2.1)LightLDA
(2.2)WarpLDA
以上是关于吉布斯采样的主要内容,如果未能解决你的问题,请参考以下文章