LDA主题模型

(一)LDA主题模型问题

问题1:一篇文章,生成乐观主题、悲观主题的概率假设独立同分布(服从伯努利分布),生成n个主题。

设生成乐观主题的概率为θ。

1.伯努利分布Bernoulli distribution

概率密度函数x \sim Ber(\theta) = f(x|\theta )= \theta^x (1-\theta)^{(1-x)},x=\{0,1\}

2.二项式分布Binomial Distribution:多重伯努利分布

x \sim Bin(n,\theta)=f(x|n,\theta)=C_{n}^x \theta^x (1-\theta)^{(n-x)},0\leq x\leq n

3.Gamma函数

\Gamma (x)=\int_{0}^{+\infty} t^{x-1}e^{-t}dt

性质:\Gamma (x+1)=x\Gamma (x)

证:\Gamma (x+1)=\int_{0}^{+\infty} t^xe^{-t}dt=\int_{0}^{+\infty} t^x(-e^{-t})’dt\\=[t^x(-e^{-t})]_{0}^{+\infty} - \int_{0}^{+\infty} (-e^{-t})(t^x)’dt\\=0+\int_{0}^{+\infty} e^{-t}xt^{x-1}dt\\=x\int_{0}^{+\infty} t^{x-1}e^{-t}dt\\ =x\Gamma (x)

分部积分:

4.beta分布

假设θ不是常量,而是服从beta分布(分布的分布)

\theta \sim Beta(\alpha,\beta)=f(\theta|\alpha ,\beta )=\frac{1}{B(\alpha ,\beta )} \theta^{\alpha -1}(1-\theta)^{\beta -1},B(\alpha ,\beta )=\frac{\Gamma (\alpha )\Gamma (\beta )}{\Gamma (\alpha +\beta )},\theta\in [0,1]

举例:θ取值0.3时,beta函数可计算出它的概率,即分布的分布。

5.二项式分布与beta分布的关系

θ服从beta分布(先验分布),然后再基于伯努利分布采样到某个主题xi,重复n次采样,最后计算后验分布f(θ;x)。结合贝叶斯理论:

\begin{align*}& f(θ|X)\\ &=\frac{f(X|\theta )f(\theta )}{f(X)}\\ &\propto f(X|\theta )f(\theta ) \\ &= C_{n}^x \theta ^x(1-\theta)^{n-x}\cdot \frac{\Gamma (\alpha+\beta)}{\Gamma (\alpha)\Gamma (\beta)} \theta^{\alpha-1}(1-\theta)^{\beta-1}\\&=C_{n}^x \frac{\Gamma (\alpha+\beta)}{\Gamma (\alpha)\Gamma (\beta)}\theta^{x+\alpha-1}(1-\theta)^{n-x+\beta-1}\\\ & \propto \theta^{x+\alpha-1}(1-\theta)^{n-x+\beta-1}\\ & \propto \frac{\Gamma (n+\alpha+\beta)}{\Gamma (x+\alpha)\Gamma (n-x+\beta)}\theta^{x+\alpha-1}(1-\theta)^{n-x+\beta-1}\\ & =Beta(x+\alpha,n-x+\beta)\end{align*}

得知:后验分布f(θ;x)和先验分布都属于相同形式的分布。

在贝叶斯统计中,如果后验分布与先验分布属于同类(分布形式相同),则先验分布与后验分布被称为共轭分布

共轭的好处:计算多批新样本数据下的后验分布后,使之直接成为“先验”,不需要重新整体计算,只需要考虑新样本数据。

其它应用:点击率的贝叶斯平滑

问题2:一篇文章,生成K个主题的概率假设独立同分布(服从伯努利分布),生成n个主题。

设生成主题ki的概率为pi,P为生成{xi个主题ki;i=1,2,..,k}的联合概率。

6.多项式分布

x \sim Multi(n,\theta_1,\theta_2,...,\theta_k)=P(x_1,x_2,..,x_k|n,\theta_1,\theta_2,...,\theta_k)=\frac{n!}{x_1!x_2!...x_k!}  \theta_1^{x_1} \theta_2^{x_2}...\theta_k^{x_k},n=\sum\nolimits_{1}^k x_k

7.Dirichlet分布

\vec{\theta} \sim Dir(\alpha_1,\alpha_2,...,\alpha_K) = f(\theta_1,\theta_2,...,\theta_n|\alpha_1,\alpha_2,...,\alpha_K)=\frac{1}{B(\vec \alpha)}\prod_{i=1}^K \theta_i^{\alpha_i-1}

B(\vec \alpha)=\frac{\prod_{i=1}^K\Gamma (\alpha_i) }{\Gamma (\sum_{i=1}^K \alpha_i)} \sum_{i=1}^K \theta_i=1

8.多项式分布与Dirichlet分布的关系

共轭

\begin{align*}&f(\theta|X)\\&=\frac{f(X|\theta)f(\theta)}{f(X)}\\ &\propto f(\theta)f(X|\theta)\\ &=\frac{\Gamma(\sum_{i=1}^K \alpha_i)}{\prod_{i=1}^K \Gamma(\alpha_i)} \prod_{i=1}^K \theta_i^{\alpha_i-1}\cdot   \frac{n!}{\prod_{i=1}^K x_i!}\prod_{i=1}^K \theta_i ^ {x_i}\\ &\propto \prod_{i=1}^K \theta_i^{\alpha_i-1}\cdot  \prod_{i=1}^K \theta_i ^ {x_i}\\& = \prod_{i=1}^K \theta_i^{\alpha_i+x_i-1}\\&\propto \frac{\Gamma(\sum_{i=1}^K (\alpha_i+x_i))}{\prod_{i=1}^K \Gamma(\alpha_i+x_i)} \prod_{i=1}^K \theta_i^{\alpha_i+x_i-1}\\ &= Dir(\vec \alpha+\vec x)\end{align*}

9.Dirichlet分布重要性质

\vec{\theta} \sim Dir(\vec{\alpha})

\begin{align*}&E(\theta_i)\\&=\int_0^1 \theta_i \cdot Dir(\vec \theta_i|\vec{\alpha}) d\theta_i\\&=\int_0^1 \theta_i \cdot  (\frac{\Gamma (\sum_{i=1}^K \alpha_i)}{\prod_{i=1}^K \Gamma(\alpha_i)}\prod_{i=1}^K \theta_i^{\alpha_i-1} )d\theta_i\\&=\frac{\Gamma (\sum_{i=1}^K \alpha_i)}{\prod_{i=1}^K \Gamma(\alpha_i)} \int_0^1 \theta_i \cdot  \prod_{i=1}^K \theta_i^{\alpha_i-1} d\theta_i\end{align*}

Dir(\vec{\theta}|\alpha_1,...,\alpha_{i-1},\alpha_i+1,\alpha_{i+1},...,\alpha_K)=\frac{\Gamma (\sum_{i=1}^K \alpha_i+1)}{(\prod_{i=1}^{i-1} \Gamma(\alpha_i))\cdot (\prod_{i=i+1}^{K} \Gamma(\alpha_i)) \cdot\Gamma (\alpha_i+1)} (\theta_i\prod_{i=1}^K \theta_i^{\alpha_i-1})

\int_0^1 Dir(\vec{\theta}|\alpha_1,...,\alpha_{i-1},\alpha_i+1,\alpha_{i+1},...,\alpha_K)d\vec{\theta}=1

\begin{align*}&E(\theta_i)\\&=\frac{\Gamma (\sum_{i=1}^K \alpha_i)}{\prod_{i=1}^K \Gamma(\alpha_i)} \frac{(\prod_{i=1}^{i-1} \Gamma(\alpha_i))\cdot (\prod_{i=i+1}^{K} \Gamma(\alpha_i)) \cdot\Gamma (\alpha_i+1)}{\Gamma (\sum_{i=1}^K \alpha_i+1)}\\&=\frac{\alpha_i}{\sum_{i=1}^K \alpha_i }\end{align*}

E(\vec \theta)=(\frac{\alpha_1}{\sum_{i=1}^K \alpha_i },\frac{\alpha_2}{\sum_{i=1}^K \alpha_i },...,\frac{\alpha_K}{\sum_{i=1}^K \alpha_i })

10.小结问题

一篇文章通过多项式分布采样生成n个主题,而多项式分布的参数服从Dirichlet分布。

问题3:一篇文章通过多项式分布采样生成n个主题,而多项式分布的参数服从Dirichlet分布。然而主题是隐含变量。观察变量是词,而词是由主题通过另一个多项式分布采样生成的,其参数服从另一个Dirichlet分布。

问题4:再问题3的基础上,给定一个M个文章的语料。

M+K组Dirichlet-multi共轭

问题5:如何求解我们想要的每一篇文档的主题分布和每一个主题中词的分布呢?

第一种方法是基于Gibbs采样算法求解,第二种方法是基于变分推断EM算法求解。

(二)Gibbs采样

2.1 蒙特卡罗方法

积分\theta=\int_a^b f(x)dx,如果f(x)原函数比较难求解,可以考虑蒙特卡罗方法来模拟求解近似值。

p(x)是x的概率分布,g(x)=\frac{f(x)}{p(x)},则

\begin{align*}&\theta=\int_a^b f(x)dx\\&=\int_a^b \frac{f(x)}{p(x)}p(x)dx\\&=\int_a^b g(x)p(x)dx\\&=E[g(x)]_a^b\\&=\lim_{n\to +\infty} \sum_{i=1}^n g(x_i)\\ &\propto \frac{1}{n} \sum_{i=1}^n \frac{ f(x_i)}{p(x_i)},x_i\in [a,b]\end{align*}

2.2 接受拒绝采样

对于概率分布不是常见的分布,一个可行的办法是采用接受-拒绝采样来得到该分布的样本。

概率分布不是常见的分布

接受-拒绝采样:给定一个常见分布q(x),进行采样,然后按照一定的方法拒绝某些样本,以达到接近目标分布p(x)的目的。

其中p(x)\leq Mq(x),即0 \leq \frac{p(x)}{Mq(x)}  \leq 1

接受拒绝采样过程:

遍历样本x \sim q(x)

       产生u \sim Uniform[0,1]

       如果u\leq \frac{p(x)}{Mq(x)},则接受样本;否则拒绝

所有接受的样本x_+服从p(x)分布。

证明:等价证明P(x|accept)=p(x_+)

P(x|accept)=\frac {P(x,accept)}{P(accept)}=\frac {P(x,accept)}{\int_X P(x,accept)dx}=\frac {P(accept|x)P(x)}{\int_X P(x,accept)dx}=\frac {P(accept|x)q(x)}{\int_X P(x,accept)dx}\\=\frac {\int_{u=0}^1 P(accept,u|x)q(x) du}{\int_X P(x,accept)dx}= \frac {\int_{u=0}^1 P(accept|x,u)P(u)q(x) du}{\int_X P(x,accept)dx}\\= \frac {\int_{0}^{\frac {p(x_+)}{Mq(x_+)}} P(accept|x_+,u)P(u)q(x_+) du + \int_{\frac {p(x_-)}{Mq(x_-)}}^{1} P(accept|x_-,u)P(u)q(x_-) du}{\int_X P(x,accept)dx}\\ =\frac {\int_{0}^{\frac {p(x_+)}{Mq(x_+)}} 1\cdot P(u)q(x_+) du + 0}{\int_X P(x,accept)dx}=\frac {q(x_+)\int_{0}^{\frac {p(x_+)}{Mq(x)}} P(u)du}{\int_X P(x,accept)dx}=\frac {q(x_+)\frac {p(x_+)}{Mq(x_+)}}{\int_X P(x,accept)dx}\\=\frac {\frac {p(x_+)}{M}}{\int_X P(x,accept)dx}=\frac {\frac {p(x_+)}{M}}{\int_X \frac {p(x_+)}{M} dx}\\=p(x_+)

其中P(accept|x_+,u)=1代表满足条件u\leq \frac{p(x)}{Mq(x)},要接受样本。

2.3 马尔可夫链的平稳状态

马尔可夫链中,已知系统的初始状态和状态转移矩阵,则可推断出系统任意时刻可能所处的状态。

平稳分布:如存在非零状态概率向量X=(x_1,x_2,...,x_n),使得:XP=X,其中P为状态概率矩阵,则称X为该马尔可夫链的一个平稳分布。

性质1:当状态转移矩阵为正规概率矩阵时,平稳分布\vec \pi =(\pi(1),\pi(2),...,\pi(n))唯一。

正规概率矩阵:存在m>0,使得P^{(m)}=\left\{ \begin{array}{} P&m=1\\P^{(m-1) } \cdot P^{(m-1)} & m>1 \end{array} \right.中诸元素皆非负非零。

例如:正例P=[[0,1],[0.4,0.6]],反例P=[[1,0],[0.5,0.5]]

性质2:\lim_{n\to +\infty} P^{(n)} =\left ( \begin{array}{} \pi(1)  & \pi(2) & ... & \pi(n) \\ \pi(1)  & \pi(2) & ... & \pi(n) \\ ...  & ... & ... & ... \\ \pi(1)  & \pi(2) & ... & \pi(n) \end{array} \right)

证明:数学归纳法,假设成立,\lim_{n\to +\infty}P^{(n+1)}=\lim_{n\to +\infty}P^{(n)} \cdot \lim_{n\to +\infty}P^{(n)} = \lim_{n\to +\infty}P^{(n)}

性质3:\lim_{n\to +\infty} P_{ij}^n =\pi(j)

性质4:\pi(i)P(i,j)=\pi(j)P(j,i)

证明:\vec \pi \vec { P_{*,j} }=\pi_j\vec \pi \vec { P_{*,j} }=\sum_{i=1}^n \pi_i P(i,j)=\sum_{i=1}^n \pi_jP(j,i)=\pi_j,故\pi P=\pi

\pi(i)从一维扩展到k维,设2个状态A(x_1,x_2^{(1)},x_3,...,x_k),B(x_1,x_2^{(2)},x_3,...,x_k),C(x_1,x_2^{(2)},x_3^{(2)},...,x_k)

\pi(A)P(A\rightarrow B)=\pi(x_1,x_2^{(1)},x_3,...,x_k)\pi(x_2^{(2)}|x_1,x_3,...,x_k)=\pi(x_1,x_3,...,x_k)\pi(x_2^{(1)}|x_1,x_3,...,x_k)\pi(x_2^{(2)}|x_1,x_3,...,x_k)

\pi(B)P(B\rightarrow A)=\pi(x_1,x_2^{(2)},x_3,...,x_k)\pi(x_2^{(1)}|x_1,x_3,...,x_k)=\pi(x_1,x_3,...,x_k)\pi(x_2^{(2)}|x_1,x_3,...,x_k)\pi(x_2^{(1)}|x_1,x_3,...,x_k)

\pi(A)P(A\rightarrow B)=\pi(B)P(B\rightarrow A)

\pi(B)P(B \rightarrow C)=\pi(C)P(C \rightarrow B)

2.4 Gibbs采样

Gibbs采样算法:

输入:状态向量随机初始化(x_1^{(0)},x_2^{(0)},x_3^{(0)},...,x_K^{(0)}),有个K个状态;状态转移次数(Gibbs采样迭代次数)阈值n;状态概率矩阵P。

for t=0 to n-1:

   for k=1 to K:

      从条件概率分布P(x_k|x_1^{(t+1)},x_2^{(t+1)},...,x_{k-1}^{(t+1)},x_{k+1}^{(t)},...,x_K^{(t)})采样得到x_k^{(t+1)}

(三)基于Gibbs采样的LDA模型

求解条件分布(状态转移概率):

\begin{align*}&p(z_i=k|\vec{z}_{¬i},\vec{w})\\&=p(z_i=k|\vec{z}_{¬i},\vec{w}_{¬i},w_i=t)\\&=p(z_i=k,w_i=t|\vec{z}_{¬i},\vec{w}_{¬i})/p(w_i=t)\\&\propto p(z_i=k,w_i=t|\vec{z}_{¬i},\vec{w}_{¬i})\\& =\int \int p(z_i=k,w_i=t,\vec{\theta}_m,\vec{\phi}_k|\vec{z}_{¬i},\vec{w}_{¬i}) d\vec{\theta}_md\vec{\phi}_k\\&=\int \int p(z_i=k,\vec{\theta}_m|\vec{z}_{¬i},\vec{w}_{¬i})p(w_i=t,\vec{\phi}_k|\vec{z}_{¬i},\vec{w}_{¬i})d\vec{\theta}_md\vec{\phi}_k\\&=\int p(z_i=k|\vec{\theta}_m)p(\vec{\theta}_m|\vec{z}_{¬i},\vec{w}_{¬i})d\vec{\theta}_m \int p(w_i=t|\vec{\phi}_k)p(\vec{\phi}_k|\vec{z}_{¬i},\vec{w}_{¬i})d\vec{\phi}_k\\&=\int Ber(z_i=k;\vec{\theta}_m^{(K)})Dir(\vec{\theta}_m^{(K)};\vec{\alpha}^{(K)}+\vec{n}_{m,¬i}^{(K)})d\vec{\theta}_m\int Ber(w_i=t;\vec{\phi}^{(V)}_k)Dir(\vec{\phi}^{(V)}_k;\vec{\beta}^{(V)}+\vec{n}_{k,¬i}^{(V)})d\vec{\phi}_k\\&=\int \theta_{mk} Dir(\vec{\theta}_m^{(K)};\vec{\alpha}^{(K)}+\vec{n}_{m,¬i}^{(K)})d\vec{\theta}_m \int \phi_{kt}Dir(\vec{\phi}_k^{(V)};\vec{\beta}^{(V)}+\vec{n}_{k,¬i}^{(V)})d\vec{\phi}_k\\&=E(\theta_{mk})\cdot E(\phi_{kt})\\&=\frac{n_{m,¬i}^{(k)}+\alpha_k}{\sum_{k=1}^K (n_{m,¬i}^{(k)}+\alpha_k)} \cdot \frac{n_{k,¬i}^{(t)}+\beta_t}{\sum_{t=1}^V (n_{k,¬i}^{(t)}+\beta_t)} \end{align*}

LDA Train---基于Gibbs采样的LDA算法:

for doc_m in 语料库:

     for word_m^i in doc_m:

          随机赋予word_m^i一个topic的编号

for i=0 to gibbs采样轮数:

     for doc_m in 语料库:

          for word_m^i in doc_m:

               Gibbs采样:计算条件概率分布p(z_i=k|\vec{z}_{¬i},\vec{w}),采样得到该词的新主题

               根据后验分布,更新对应的主题-词的先验分布(Dirichlet分布)

          根据后验分布,更新对应的文章-主题的先验分布(Dirichlet分布)

for doc_m in 语料库:

     该文章下的主题概率分布计算:P(z_k|doc_m)=\frac{n_{m}^{(k)}+\alpha_k}{\sum_{k=1}^K (n_{m}^{(k)}+\alpha_k)}

for topic_k in K个主题:

     该主题下的词概率分布计算:P(w_t|topic_k)=\frac{n_{k}^{(t)}+\beta_t}{\sum_{t=1}^V (n_{k}^{(t)}+\beta_t)}

LDA Inference---基于Gibbs采样的LDA算法:

对于新文档doc,

for i=0 to gibbs采样轮数:

     for word^i in doc:

               Gibbs采样:计算条件概率分布p(z_i=k|\vec{z}_{¬i},\vec{w}),采样得到该词的新主题

               不用更新:主题-词的先验分布(Dirichlet分布)

     根据后验分布,更新文章-主题的先验分布(Dirichlet分布)

计算新文章中每个主题的概率分布:p(z_k|doc)=\frac{n^{(k)}+\alpha_k}{\sum_{k=1}^K (n^{(k)}+\alpha_k)}

结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容