潜在狄利克雷分配(LDA)(latent Dirichlet allocation)

本文介绍了多项分布、狄利克雷分布及其在贝叶斯学习中的应用,特别是狄利克雷分布作为多项分布的共轭先验。接着详细阐述了LDA模型的基本思想,强调了它作为生成模型如何利用狄利克雷分布来建模话题和文本的分布。LDA与PLSA的区别在于LDA使用了狄利克雷先验,能有效防止过拟合。
摘要由CSDN通过智能技术生成

我们先理解下多项分布、狄利克雷分布、共轭先验的知识,再讲LDA的基本思想,最后简单说一下LDA和PLSA之间的区别。关于LDA的学习过程,比较复杂,就不讲了。

多项分布:

假设重复进行 n 次独立随机试验,每次实验可能出现的结果有 k 种,第 i 种结果出现的次数为 n_{i},第 i 种 结果出现的概率为 p_{i} 。如果用随机变量 X=(X_{1},X_{2},\cdots ,X_{k})  表示实验所有可能出现结果的次数,其中 X_{i} 表示第 i 种结果出现的次数,那么随机变量 X 服从多项分布。具体的数学定义如下:

多元离散随机变量 X=(X_{1},X_{2},\cdots ,X_{k}) 的概率质量函数为 :

P(X_{1}=n_{1},X_{2}=n_{2},\cdots ,X_{k}=n_{k})=\frac{n!}{n_{1}!n_{2}!\cdots n_{k}!} p_{1}^{n_{1}}p_{2}^{n_{2}}\cdots p_{k}^{n_{k}}

其中p=(p_{1},p_{2},\cdots ,p_{k}) , p_{i}>=0,i=1,2,\cdots ,k\sum_{i=1}^{k}p_{i}=1\sum_{i=1}^{k}n_{i}=n

则称随机变量 X 服从参数为 (n,p) 的多项分布,计做X\sim Mult(n,p)

多项分布有两个特例,一个是二项分布,一个是类别分布。

二项分布

二项分布:当实验可能出现的结果种数 k 为 2 时,多项分布变成二项分布。

二项分布的数学定义如下:

X 为离散随机变量,取值为 m ,其概率质量函数为:

P(X=m)=\frac{n!}{m!(n-m)!}p^{m}(1-p)^{n-m} , m=0,1,2,\cdots n

其中 n 和 p 是参数。

n 为 1 时,二项分布变成伯努利分布或 0-1 分布。

类别分布

类别分布:当实验的次数 n 为1 时,多项分布变成类别分布。

当 k 为 2 时,类别分布变成伯努利分布或 0-1 分布。

狄利克雷分布

狄利克雷分布是一种多元连续随机变量的概率分布。在贝叶斯学习中,狄利克雷分布常作为多项分布的先验分布使用。狄利克雷分布的数学定义如下:

若多元连续随机变量 \theta =(\theta _{1},\theta _{2},\cdots ,\theta _{k}) 的概率密度函数为:

p(\theta |\alpha )=\frac{\Gamma (\sum_{i=1}^{k}\alpha _{i})}{\prod_{i=1}^{k}\Gamma (\alpha _{i})}\prod_{i=1}^{k}\theta _{i}^{\alpha _{i}-1}

其中 \sum_{i=1}^{k}\theta _{i}=1,\theta _{i}>=0\alpha =(\alpha _{1},\alpha _{2},\cdots ,\alpha _{k}),\alpha _{i}>0,i=1,2,\cdots ,k

则称随机变量 \theta 服从参数为 \alpha 的狄利克雷分布分布,记做 \theta \sim Dir(\alpha ) 。

式中 \Gamma (s) 是伽马函数,定义为:

\Gamma (s)=\int_{0}^{\infty }x^{s-1}e^{-x}dx ,s>0

具有性质:

\Gamma (s+1)=s\Gamma (s)

当 s 是自然数时,有

\Gamma (s+1)=s!

贝塔分布

当狄利克雷分布中的 k 为2 时,是贝塔分布。

贝塔分布是指如下概率分布,X 为连续随机变量,取值范围为 [0,1] ,其概率密度函数为:

p(x)=\left\{\begin{matrix} \frac{1}{B(s,t)}x^{s-1}(1-x)^{t-1} , 0\leq x\leq 1 \\ 0, other \end{matrix}\right.

其中 s>0 和 t>0 是参数,B(s,t)=\frac{\Gamma (s)\Gamma (t)}{\Gamma (s+t)} 是贝塔函数,定义为:

B(s,t)=\int_{0}^{1}x^{s-1}(1-x)^{t-1}dx

当 s , t 是自然数时:

B(s,t)=\frac{(s-1)!(t-1)!}{(s+t-1)!}

共轭先验

贝叶斯学习中常使用共轭分布,如果后验分布与先验分布属于同类,则先验分布与后验分布称为共轭分布,先验分布称为共轭先验。如果多项分布的先验分布是狄利克雷分布,则其后验分布也为狄利克雷分布,两者构成共轭分布。狄利克雷分布是多项分布的共轭先验。作为先验分布的狄利克雷分布的参数又称为超参数。使用共轭分布的好处是便于从先验分布计算后验分布。

设 W= \{ w_{1},w_{2},\cdots ,w_{k} \} 是由 k 个元素组成的集合。随机变量 X 服从 W 上的多项分布,X\sim Mult(n,\theta ) ,其中 n=\{ n_{1},n_{2},\cdots ,n_{k} \} 和 \theta =\{ \theta _{1},\theta _{2},\cdots ,\theta _{k} \} 是参数。参数 n 为从 W 中重复独立抽取样本的次数,n_{i} 为样本中 w_{i} 出现的次数(i=1,2,\cdots ,k);参数 \theta _{i} 为 w_{i} 出现的概率(i=1,2,\cdots ,k)。

将样本数据表示为 D ,目标是计算在样本数据 D 给定条件下参数 \theta 的后验概率 p(\theta |D) 。

对于给定的样本数据 D,似然函数是:

p(D|\theta )=\theta _{1}^{n_{1}}\theta _{2}^{n_{2}}\cdots \theta _{k}^{n_{k}}=\prod_{i=1}^{k}\theta _{i}^{n_{i}}

假设随机变量 \theta 服从狄利克雷分布 

p(\theta |\alpha )=\frac{\Gamma (\sum_{i=1}^{k}\alpha _{i})}{\prod_{i=1}^{k}\Gamma (\alpha _{i})}\prod_{i=1}^{k}\theta _{i}^{\alpha _{i}-1}=\frac{1}{B(\alpha )}\prod_{i=1}^{k}\theta _{i}^{\alpha _{i}-1}=Dir(\theta |\alpha )\alpha _{i}>0

那么根据贝叶斯规则,在给定样本数据 D 和参数 \alpha 条件下,\theta 的后验概率分布是:

p(\theta |D,\alpha )=\frac{p(D|\theta )p(\theta |\alpha )}{p(D|\alpha )} \\ \\ \\ =\frac{\prod_{i=1}^{k}(\theta _{i}^{n_{i}} \frac{1}{B(\alpha )}\theta _{i}^{\alpha _{i}-1})}{\int \prod_{i=1}^{k}(\theta _{i}^{n_{i}} \frac{1}{B(\alpha )}\theta _{i}^{\alpha _{i}-1})d\theta } \\ \\ \\ =\frac{1}{B(\alpha +n)}\prod_{i=1}^{k}\theta _{i}^{\alpha _{i}+n_{i}-1} \\ \\ \\ =Dir(\theta |\alpha +n)

可以看出,先验分布 p(\theta |\alpha ) 和后验分布 p(\theta |D,\alpha ) 都是狄利克雷分布,两者有不同的参数,所以狄利克雷分布是多项分布的共轭先验。狄利克雷后验分布的参数等于狄利克雷先验分布参数 \alpha =(\alpha _{1},\alpha _{2},\cdots ,\alpha _{k}) 加上多项分布的观测计数 n=(n_{1},n_{2},\cdots ,n_{k}) 。就好像在实验之前,我们心里有一个预估的计数 \alpha =(\alpha _{1},\alpha _{2},\cdots ,\alpha _{k}) , 因此也把 \alpha 叫做先验伪计数。

LDA

LDA基本思想

LDA是生成模型,模型假设话题由单词的多项分布表示,文本由话题的多项分布表示,单词的多项分布和话题的多项分布的先验分布都是狄利克雷分布。文本内容的不同是由于它们的话题多项分布不同。(严格意义来说,这里的多项分布都是类别分布,因为包含很多条文本的语料是一次性展现在我们眼前的,所以这些数据没有重复独立随机试验的基础假设。)

模型定义

1、模型要素

LDA使用三个集合,单词集合、文本集合和话题集合。

单词集合:W=\{ w_{1},\cdots ,w_{v},\cdots ,w_{V}\} ,其中 w_{v} 是第 v 个单词,v=1,2,\cdots ,VV 是单词的个数。

文本集合:D=\{ \mathrm{\mathbf{w}}_{1},\cdots ,\mathrm{\mathbf{w}}_{m},\cdots ,\mathrm{\mathbf{w}}_{M}\} ,其中\mathrm{\mathbf{w}}_{m}是第 m 个文本,m=1,2,\cdots ,MM是文本数量。文本 \mathrm{\mathbf{w}}_{m} 是一个单词序列\mathrm{\mathbf{w}}_{m}=(w_{m1},\cdots ,w_{mn},\cdots ,w_{mN_{m}}) ,其中 w_{mn} 是文本 \mathrm{\mathbf{w}}_{m} 的第 n 个单词,n = 1,2,\cdots ,N_{m}N_{m} 是文本 \mathrm{\mathbf{w}}_{m} 中单词的个数。

话题集合:Z=\{z_{1},\cdots ,z_{k},\cdots ,z_{K}\} ,其中 z_{k} 是第 k 个话题,k=1,2,\cdots ,K ,K 是话题个数。

          每一个话题 z_{k} 由一个单词的条件概率分布 p(w|z_{k}) 决定,w\in W 。分布 p(w|z_{k}) 服从多项分布(严格意义上是类别分布),其参数为 \varphi _{k} ,参数 \varphi _{k} 服从狄利克雷分布(先验分布),其超参数为 \beta 。参数 \varphi _{k} 是一个 V 维的向量 \varphi _{k}=(\varphi _{k1},\varphi _{k2},\cdots ,\varphi _{kV}),其中 \varphi _{kv} 表示话题 z_{k} 生成单词 w_{v} 的概率。所有话题的参数向量构成一个 K\times V 的矩阵 \boldsymbol{\varphi }=\{\varphi _{k}\}_{k=1}^{K} 。超参数 \beta 也是一个  V 维的向量 \beta =(\beta _{1},\beta _{2},\cdots ,\beta _{V}) 。

          每一个文本 \mathrm{\mathbf{w}}_{m} 由一个话题的条件概率分布 p(z|\mathrm{\mathbf{w}}_{m}) 决定,z\in Z 。分布 p(z|\mathrm{\mathbf{w}}_{m})服从多项分布(严格意义上类别分布),其参数为 \theta _{m} ,参数 \theta _{m} 服从狄利克雷分布(先验分布),其超参数为 \alpha 。参数 \theta _{m} 是一个 K 维向量 \theta _{m}=(\theta _{m1},\theta _{m2},\cdots ,\theta _{mK}),其中 \theta _{mk} 表示文本 \mathrm{\mathbf{w}}_{m} 生成话题 z_{k} 的概率。所有文本的参数向量构成一个 M\times K 的矩阵\boldsymbol{\theta} =\{\theta _{m}\}_{m=1}^{M} 。超参数 \alpha 也是一个 K 维的向量\alpha =(\alpha _{1},\alpha _{2},\cdots ,\alpha _{K})

2、生成过程

LDA文本集合的生成过程如下:

给定单词集合 W ,文本集合 D ,话题集合 Z ,狄利克雷分布的超参数 \alpha 和 \beta

(1)生成话题的单词分布

随机生成 K 个话题的单词分布。每个分布的生成具体过程如下:按照狄利克雷分布 Dir(\beta ) 随机生成一个参数向量 \varphi _{k} ,\varphi _{k}\sim Dir(\beta ) ,作为话题 z_{k} 的单词分布 p(w|z_{k})w\in Wk=1,2,\cdots ,K

(2)生成文本的话题分布

随机生成 M 个文本的话题分布。每个分布的生成具体过程如下:按照狄利克雷分布 Dir(\alpha ) 随机生成一个参数向量 \theta _{m} ,\theta _{m}\sim Dir(\alpha ) ,作为文本 \mathrm{\mathbf{w}}_{m} 的话题分布 p(z|\mathrm{\mathbf{w}}_{m})z\in Zm=1,2,\cdots ,M

(3)生成文本的单词序列

随机生成  M 个文本的 N_{m} 个单词。文本 \mathrm{\mathbf{w}}_{m} (m=1,2,\cdots ,M)的单词 w_{mn} (n = 1,2,\cdots ,N_{m})的生成过程如下:

(3-1)首先按照(2)生成的多项分布 Mult(\theta _{m}) 随机生成一个话题 z_{mn} ,z_{mn}\sim Mult(\theta _{m})

(3-2)然后按照(1)生成的多项分布 Mult(\varphi _{z_{mn}}) 随机生成一个单词 w_{mn} ,w_{mn}\sim Mult(\varphi _{z_{mn}})

3、模型学习

模型学习比较复杂,以后整理好了再推导下吧~

LDA和PLSA

LDA是PLSA的扩展,相同点是PLSA 和 LDA 都引入了隐变量,两者都假设话题是单词的多项分布,文本是话题的多项分布。不同点是LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布。LDA的优点是使用先验概率分布,可以防止学习过程中产生的过拟合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值