Unigram Model
Game 9 Unigram Model
- 上帝 只有一个骰子 ,这个骰子有V个面,每个面对应一个词、各个面的概率不一
- 每抛一次骰子,抛的面就对应一个词的产生;如果一篇文档有n个词,上帝就独立地抛n次骰子产生n个词
变量:
p
→
=
(
p
1
,
p
2
,
.
.
.
,
p
V
)
\overset{\rightarrow}{p}=(p_1,p_2,...,p_V)
p→?=(p1?,p2?,...,pV?),样本:语料
W
\mathscr{W}
W
各个面的概率
p
→
=
(
p
1
,
p
2
,
.
.
.
,
p
V
)
\overset{\rightarrow}{p}=(p_1,p_2,...,p_V)
p→?=(p1?,p2?,...,pV?) 抛骰子过程 多项分布
w
~
M
u
l
t
i
(
w
∣
p
→
)
w \sim Multi(w \vert \overset{\rightarrow}{p})
w~Multi(w∣p→?)
对于一篇文档
d
=
w
→
=
(
w
1
,
w
2
,
.
.
.
.
,
w
n
)
d=\overset{\rightarrow}{w}=(w_1,w_2,....,w_n)
d=w→=(w1?,w2?,....,wn?) ,故而该文档产生的概率为:
p
(
w
→
)
=
∏
i
=
1
n
p
(
w
i
)
p(\overset{\rightarrow}{w})=\prod_{i=1}^n{p(w_i)}
p(w→)=i=1∏n?p(wi?)
p
(
w
i
)
p(w_i)
p(wi?) 第i个词
w
i
w_i
wi? 出现一次的概率
语料库中包含m篇文档
W
=
(
w
1
→
,
w
2
→
,
.
.
.
,
w
m
→
)
\mathscr{W}=(\overset{\rightarrow}{w_1},\overset{\rightarrow}{w_2},...,\overset{\rightarrow}{w_m})
W=(w1?→?,w2?→?,...,wm?→?) 对应的语料概率为:
p
(
W
)
=
∏
i
=
1
m
p
(
w
i
→
)
p(\mathscr{W})=\prod_{i=1}^{m}{p(\overset{\rightarrow}{w_i})}
p(W)=i=1∏m?p(wi?→?)
在Unigram Model中,假设文档之间是独立的,文档之间的词也是独立的,词袋模型(Bag of words)
故上述问题可进行简化: 统计整个语料共有V个词, 其中第i词
w
i
w_i
wi? 的词频
n
i
n_i
ni? (
i
∈
(
1
,
V
)
,
∑
i
=
1
V
n
i
=
N
i \in(1,V),\sum_{i=1}^{V}n_i=N
i∈(1,V),∑i=1V?ni?=N ),整个语料库就是一个多项分布模型: 即
n
→
=
(
n
1
,
n
2
,
.
.
.
,
n
k
)
\overset{\rightarrow}{n}=(n_1,n_2,...,n_k)
n→=(n1?,n2?,...,nk?) 恰是一个多项分布:
p
(
n
→
)
=
M
u
l
t
i
(
n
→
∣
p
→
,
N
)
=
(
N
n
→
)
∏
j
=
1
V
p
j
n
j
p(\overset{\rightarrow}{n})=Multi(\overset{\rightarrow}{n} \vert \overset{\rightarrow}{p},N)=\binom{N}{\overset{\rightarrow}{n}}\prod_{j=1}^{V}{p_j^{n_j}}
p(n→)=Multi(n→∣p→?,N)=(n→N?)j=1∏V?pjnj??
p
(
W
)
=
∏
i
=
1
m
p
(
w
i
→
)
=
(
N
n
→
)
∏
j
=
1
V
p
j
n
j
p(\mathscr{W})=\prod_{i=1}^{m}{p(\overset{\rightarrow}{w_i})}=\binom{N}{\overset{\rightarrow}{n}}\prod_{j=1}^{V}{p_j^{n_j}}
p(W)=i=1∏m?p(wi?→?)=(n→N?)j=1∏V?pjnj??
统计学派:
p
i
^
=
n
i
N
\hat{p_i}=\frac {n_i}{N}
pi?^?=Nni??
Problem:贝叶斯学派认为只有一个骰子的设定不合理,即参数也符合一个分布
Game 10 贝叶斯Unigram Model假设
- 上帝有一个装有 无穷多个骰子 的坛子,里面有各式各样的骰子,每个骰子有V个面
- 上帝从坛子中抽取一个骰子出来, 然后用这一个骰子不断地抛,然后产生了语料中的所有词
限制放宽: 多个骰子但只有V个面的骰子,而且只用其中一个骰子
先验:
α
→
\overset{\rightarrow}{\alpha}
α→,Dirichlet更新参数:
ρ
→
\overset{\rightarrow}{\rho}
ρ→?
选中骰子各面抛出的概率服从先验
ρ
→
~
q
(
ρ
→
)
\overset{\rightarrow}{\rho} \sim q(\overset{\rightarrow}{\rho})
ρ→?~q(ρ→?) ,因此语料的分布概率:
p
(
W
)
=
∫
p
(
W
∣
ρ
→
)
q
(
ρ
→
)
d
ρ
→
p(\mathscr{W})=\int p(\mathscr{W} \vert \overset{\rightarrow}{\rho})q(\overset{\rightarrow}{\rho})d\overset{\rightarrow}{\rho}
p(W)=∫p(W∣ρ→?)q(ρ→?)dρ→?
p
(
n
→
)
=
M
u
l
t
i
(
n
→
∣
ρ
→
,
N
)
p(\overset{\rightarrow}{n})=Multi(\overset{\rightarrow}{n} \vert \overset{\rightarrow}{\rho},N)
p(n→)=Multi(n→∣ρ→?,N)
假设此处
ρ
→
~
q
(
ρ
→
)
=
D
i
r
(
α
→
)
\overset{\rightarrow}{\rho} \sim q(\overset{\rightarrow}{\rho})=Dir(\overset{\rightarrow}{\alpha})
ρ→?~q(ρ→?)=Dir(α→) ,其中
α
i
\alpha_i
αi? 为被选中骰子抛出第i面的概率。
D
i
r
(
ρ
→
∣
α
→
)
=
1
Δ
(
α
→
)
∏
k
=
1
V
ρ
k
α
k
?
1
Dir(\overset{\rightarrow}{\rho} \vert \overset{\rightarrow}{\alpha})= \frac {1}{\Delta(\overset{\rightarrow}{\alpha})} \prod_{k=1}^{V}\rho_k^{\alpha_{k}-1}
Dir(ρ→?∣α→)=Δ(α→)1?k=1∏V?ρkαk??1?
Δ
(
α
→
)
=
∫
∏
k
=
1
V
ρ
k
α
k
?
1
d
ρ
→
\Delta(\overset{\rightarrow}{\alpha})=\int{\prod_{k=1}^V{\rho_k^{\alpha_k-1}}}d\overset{\rightarrow}{\rho}
Δ(α→)=∫k=1∏V?ρkαk??1?dρ→?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mb9nc07C-1634396240841)(./img/UnigramModel的概率图模型.png)]
语料词频:
n
→
\overset {\rightarrow}{n}
n→
p
(
ρ
→
∣
W
,
α
→
)
=
D
i
r
(
ρ
→
∣
α
→
+
n
→
)
p(\overset{\rightarrow}{\rho} \vert \mathscr{W}, \overset{\rightarrow}{\alpha})=Dir(\overset{\rightarrow}{\rho} \vert\overset{\rightarrow}{\alpha} + \overset{\rightarrow}{n})
p(ρ→?∣W,α→)=Dir(ρ→?∣α→+n→)
故:
E
(
ρ
→
)
=
(
n
i
+
α
i
∑
j
=
1
V
(
n
j
+
α
j
)
)
i
=
1
V
E(\overset{\rightarrow}{\rho})=(\frac {n_i+\alpha_i}{\sum_{j=1}^V(n_j+\alpha_j)})_{i=1}^V
E(ρ→?)=(∑j=1V?(nj?+αj?)ni?+αi??)i=1V? 语料产生的概率:
p
(
W
∣
α
→
)
=
∫
p
(
W
∣
ρ
→
,
α
→
)
d
ρ
→
=
∫
p
(
W
∣
ρ
→
)
p
(
ρ
→
∣
α
→
)
d
ρ
→
=
∫
∏
k
=
1
V
ρ
k
n
k
D
i
r
(
p
→
∣
α
→
)
d
ρ
→
=
∫
∏
k
=
1
V
ρ
k
n
k
1
Δ
(
α
→
)
∏
j
=
1
V
ρ
j
α
j
?
1
d
ρ
→
=
1
Δ
(
α
→
)
∫
∏
k
=
1
V
ρ
k
n
k
+
α
k
?
1
d
ρ
→
=
Δ
(
α
→
+
n
→
)
Δ
(
α
→
)
\begin{aligned} p(\mathscr{W} \vert \overset{\rightarrow}{\alpha}) &= \int p(\mathscr{W} \vert \overset{\rightarrow}{\rho},\overset{\rightarrow}{\alpha})d\overset{\rightarrow}{\rho}\\ &=\int p(\mathscr{W} \vert \overset{\rightarrow}{\rho}) p(\overset{\rightarrow}{\rho} \vert \overset{\rightarrow}{\alpha}) d\overset{\rightarrow}{\rho}\\ &=\int \prod_{k=1}^V{\rho_k^{n_k}Dir(\overset{\rightarrow}{p}\vert \overset{\rightarrow}{\alpha})}d \overset{\rightarrow}{\rho}\\ &=\int \prod_{k=1}^V{\rho_k^{n_k} \frac 1 {\Delta(\overset{\rightarrow}{\alpha})} \prod_{j=1}^V \rho_j^{\alpha_j-1}}d \overset{\rightarrow}{\rho}\\ &=\frac 1 {\Delta(\overset{\rightarrow}{\alpha})} \int \prod_{k=1}^V{\rho_k^{n_k+\alpha_k-1}} d \overset{\rightarrow}{\rho}\\ &=\frac {\Delta(\overset{\rightarrow}{\alpha}+\overset{\rightarrow}{n})} {\Delta(\overset{\rightarrow}{\alpha})} \end{aligned}
p(W∣α→)?=∫p(W∣ρ→?,α→)dρ→?=∫p(W∣ρ→?)p(ρ→?∣α→)dρ→?=∫k=1∏V?ρknk??Dir(p→?∣α→)dρ→?=∫k=1∏V?ρknk??Δ(α→)1?j=1∏V?ρjαj??1?dρ→?=Δ(α→)1?∫k=1∏V?ρknk?+αk??1?dρ→?=Δ(α→)Δ(α→+n→)??
结合PLSA(Probabilistic Latent Semantic Analysis)模型,一篇文档对应主题分布,一个主题对应词分布
Game 11 PLSA Topic Model
- 上帝有两种类型的骰子,一类是doc-topic骰子,每个doc-topic骰子有K个面每个面对应一个topic编号;另一类是topic-word骰子,每个topic-word骰子有V个面,每个面对应一个词
- 上帝 一共有K个topic-word骰子 ,每个骰子有一个编号,编号1,2,…,K
- 生成每篇文档之前,上帝都会先为这片文章制造 一个特定的doc-topic骰子 ,然后重复一下过程,生成每个文档中的单词
- 投掷这个doc-topic骰子,得到一个topic编号z
- 选择K各topic-word骰子中编号为z的那个,投掷这个骰子,于是得到一个词
该规则下,文档之间是独立的,词之间也是独立地,还是一个词袋模型
K个topic-word骰子,对应的
φ
1
,
φ
2
,
.
.
.
,
φ
K
\varphi_1,\varphi_2,...,\varphi_K
φ1?,φ2?,...,φK? 为每个主题的词概率分布 对于包含M篇文档的语料
C
=
(
d
1
,
d
2
,
.
.
.
,
d
M
)
C=(d_1,d_2,...,d_M)
C=(d1?,d2?,...,dM?) 中每篇文档
d
m
d_m
dm? 都会有一个特定的 doc-topic骰子
θ
m
\theta_m
θm? 为当前文档的主题概率分布
对于文档
d
m
d_m
dm? 下某个词的生成概率:
p
(
w
∣
d
m
)
=
∑
z
=
1
K
p
(
w
∣
z
)
p
(
z
∣
d
m
)
=
∑
z
=
1
K
φ
z
w
θ
m
z
p(w\vert d_m)=\sum_{z=1}^K{p(w\vert z) p(z \vert d_m)}=\sum_{z=1}^K{\varphi_{zw}\theta_{mz}}
p(w∣dm?)=z=1∑K?p(w∣z)p(z∣dm?)=z=1∑K?φzw?θmz?
对于文档
d
m
d_m
dm? 的概率:
p
(
w
∣
d
m
)
=
∏
i
=
1
n
d
m
∑
z
=
1
K
p
(
w
i
∣
z
)
p
(
z
∣
d
m
)
=
∏
i
=
1
n
d
m
∑
z
=
1
K
φ
z
w
i
θ
m
z
p(w \vert d_m)=\prod_{i=1}^{n_{d_m}}\sum_{z=1}^K{p(w_i\vert z) p(z \vert d_m)}=\prod_{i=1}^{n_{d_m}}\sum_{z=1}^K{\varphi_{zw_i}\theta_{mz}}
p(w∣dm?)=i=1∏ndm???z=1∑K?p(wi?∣z)p(z∣dm?)=i=1∏ndm???z=1∑K?φzwi??θmz?
对于语料C的概率:
p
(
C
)
=
∏
m
=
1
M
p
(
w
∣
d
m
)
p(C)=\prod_{m=1}^{M}{p(w\vert d_m)}
p(C)=m=1∏M?p(w∣dm?)
贝叶斯Problem:doc-topic骰子
θ
m
\theta_m
θm? 和 topic-word骰子
φ
k
\varphi_k
φk?都是模型的参数,参数为随机变量也要服从一个先验分布
LDA Topic Model
- 上帝有两个坛子,第一个毯子撞的是doc-topic骰子,第二个坛子装的是topic-word骰子
- 上帝随机的 从第二个坛子中独立地抽取K个topic-word骰子 ,编号为1,2,…,K
- 生成每篇文档之前,上帝都会现 从第一个坛子中随机抽取一个doc-topic骰子 ,然后重复一下过程,生成每个文档中的单词
- 投掷这个doc-topic骰子,得到一个topic编号z
- 选择K各topic-word骰子中编号为z的那个,投掷这个骰子,于是得到一个词
假设语料库中有M篇文档,所有的word和对应的topic如下:
W
=
(
w
1
,
w
2
,
.
.
.
,
w
M
)
Z
=
(
z
1
,
z
2
,
.
.
.
,
z
M
)
W=(w_1,w_2,...,w_M)\\Z=(z_1,z_2,...,z_M)
W=(w1?,w2?,...,wM?)Z=(z1?,z2?,...,zM?)
w
m
w_m
wm? 第m篇文档中的所有词,
z
m
z_m
zm? 第m篇文档对应的所有主题 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pdwo8R8B-1634396240843)(./img/语料生成过程中的word和topic.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2chys0c-1634396240845)(./img/LDA图模型.png)]
α
,
β
\alpha,\beta
α,β 为先验分布,选择Dirichlet分布
概率图:
-
α
→
→
θ
m
→
→
z
m
,
n
\overset{\rightarrow}{\alpha}\rightarrow \overset{\rightarrow}{\theta_m}\rightarrow z_{m,n}
α→→θm?→?→zm,n? :生成第m篇文档时,现从第一个坛子中抽取一个doc-topic骰子
θ
m
→
\overset{\rightarrow}{\theta_m}
θm?→? ,然后投掷该骰子生成该文档第n个词对应的主题编号
z
m
,
n
z_{m,n}
zm,n?
-
β
→
→
φ
k
→
→
w
m
,
n
∣
k
=
z
m
,
n
\overset{\rightarrow}{\beta}\rightarrow \overset{\rightarrow}{\varphi_k}\rightarrow w_{m,n} \vert k=z_{m,n}
β→?→φk?→?→wm,n?∣k=zm,n?: 生成第m篇中的第n个词:在K个topic-word骰子中选取编号为
k
=
z
m
,
n
k=z_{m,n}
k=zm,n? ,投掷生成词
w
m
,
n
w_{m,n}
wm,n?
Dirichlet-Multinomial共轭结构: 生成第m篇文档时所有词对应的主题
α
→
→
θ
m
→
→
z
m
→
\overset{\rightarrow}{\alpha}\rightarrow \overset{\rightarrow}{\theta_m}\rightarrow \overset{\rightarrow}{z_{m}}
α→→θm?→?→zm?→?
p
(
z
m
→
∣
α
→
)
=
Δ
(
α
→
+
n
m
→
)
Δ
(
α
→
)
p(\overset{\rightarrow}{z_{m}}\vert \overset{\rightarrow}{\alpha})=\frac {\Delta(\overset{\rightarrow}{\alpha}+\overset{\rightarrow}{n_m})} {\Delta(\overset{\rightarrow}{\alpha})}
p(zm?→?∣α→)=Δ(α→)Δ(α→+nm?→?)?
n
m
→
=
(
n
m
(
1
)
,
n
m
(
2
)
,
.
.
.
.
.
,
n
m
(
K
)
)
\overset{\rightarrow}{n_m}=(n_m^{(1)},n_m^{(2)},.....,n_m^{(K)})
nm?→?=(nm(1)?,nm(2)?,.....,nm(K)?) 表示第m篇文档中第k个topic产生的词的个数。
θ
m
→
~
D
i
r
(
θ
m
→
∣
n
m
→
,
α
→
)
\overset{\rightarrow}{\theta_m}\sim Dir(\overset{\rightarrow}{\theta_m}\vert \overset{\rightarrow}{n_m},\overset{\rightarrow}{\alpha})
θm?→?~Dir(θm?→?∣nm?→?,α→)
M篇文档生成相互独立,因此共有M个Dirichlet-Multinomial共轭结构.
在当前规则下,每处理完成一篇文档之后,再处理下一篇文档。文档中的每个词的生成都要抛取两次。如果语料中共有N个词,那么上帝需要抛2N次,轮换的进行doc-topic和topic-word骰子。
基于文档之间,词之间的独立性。 实际上,我们可以前N次只抛doc-topic骰子得到语料中所有词的topic,然后基于topic再抛N次topic-word模型生成N个词
LDA Topic Model 2 (等价)
- 上帝有两个坛子,第一个毯子撞的是doc-topic骰子,第二个坛子装的是topic-word骰子
- 上帝随机的 从第二个坛子中独立地抽取K个topic-word骰子 ,编号为1,2,…,K
- 生成每篇文档之前,上帝都会现 从第一个坛子中随机抽取一个doc-topic骰子 ,然后重复投掷这个doc-topic骰子,为每个词生成一个topic编号
- 按照生成的topic编号,从K个topic-word骰子中选取编号为
z
c
u
r
r
e
n
t
z_{current}
zcurrent? 的那个,投掷这个骰子,于是得到当前词
基于以上规则,先生成所有topic,然后对每个词在在给定topic的条件下生成word。
|