当前位置:   article > 正文

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

latentdirichletallocation参数

我们先理解下多项分布、狄利克雷分布、共轭先验的知识,再讲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的优点是使用先验概率分布,可以防止学习过程中产生的过拟合。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号