【learning PGM in R】第七章 概率混合模型——7.5 潜在狄利克雷分配LDA

首先说明,机器学习领域有很多缩写相同,但所指代的单词不同的词语,如LR,既是Linear Regression(线性回归),又可指Logistic Regression(逻辑回归)。LDA也是,既可以指Latent Dirichlet Allocation,也可指Linear Disciminant Analysis(线性判别式分析),初学者不要搞混。(我也是初学者来着)

书中对隐迪利克雷分配的介绍相较于MLAPP好理解一些。本文也会结合《统计学习方法》中的内容加以补充,只想看概率图模型的请直接跳转到5.3。

5.1 狄利克雷分布Dirichlet Distribution

由于书中直接开始讲隐狄利克雷分配,于是笔者好奇心重去查了些狄利克雷分布的相关内容(笔者基础差),整理到另一篇文章里了,需要的下面是链接:

链接: 【Basis】狄利克雷分布-CSDN博客

5.2 LDA模型定义

隐狄利克雷分配是文本(document)集合的生成模型。模型假设文本由一个又一个话题(topic)组成,话题又由一个又一个单词组成。反过来说,每个单词在每个话题中占的比例不同,每个话题在每个文本占的比例也不同。

5.2.1 LDA模型的假设

①单词和话题的分布都是多项式分布,其先验分布都是狄利克雷分布。

②文本的生成过程:先有单词和话题的先验分布(狄利克雷分布)生成单词和话题的多项分布,由单词的多项分布生成一个话题序列,然后再由话题的多项分布生成单词序列,也就是文本。

③隐变量:在整个生成过程中,只有文本我们是知道的。各个话题的单词分布、文本的话题分布、话题序列的参数我们都不知道,即为隐变量。

其中假设①需要说明一下,这里用到了共轭分布的性质。简单来说就是如果多项分布的先验分布是狄利克雷分布,那么其后验分布也是狄利克雷分布,具体过程请看7.5.1狄利克雷分布。

5.2.2 LDA模型的变量

根据上面的内容,我们知道模型包含文本、话题、单词三种数据。下面确定我们的数学表达符号(for precise notation)。

文本: D = { d 1 , d 2 , . . . , d m } m = 1 M D=\left \{ d_{1} ,d_{2} ,...,d_{m} \right \} _{m=1}^{M} D={d1,d2,...,dm}m=1M d m d_{m} dm指第 m m m个文本,一共有 M M M个文本。 d m = { d m 1 , d m 2 , . . . , d m N } n = 1 N d_{m}=\left \{ d_{m1},d_{m2},...,d_{mN} \right \}_{n=1}^{N} dm={dm1,dm2,...,dmN}n=1N d m n d_{mn} dmn指第 m m m个文本里的第 n n n个单词,共有 N m N_{m} Nm个单词。所以 D D D实际上是一个 M × N m M\times N_{m} M×Nm的矩阵数组。

话题: Z = { z 1 , z 2 , . . . , z k } k = 1 K Z=\left \{ z_{1} ,z_{2} ,...,z_{k} \right \} _{k=1}^{K} Z={z1,z2,...,zk}k=1K z k z_{k} zk指第 k k k个话题,一共有 K K K个话题。

单词: W = { w 1 , w 2 , . . . , w v } v = 1 V W=\left \{ w_{1} ,w_{2} ,...,w_{v} \right \} _{v=1}^{V} W={w1,w2,...,wv}v=1V w v w_{v} wv指第 v v v个单词,一共有 V V V个单词。

5.3.3 LDA模型中的变量分布

首先解释一下超参数(hyperparameter)。作为先验分布的狄利克雷分布的参数称为超参数,一般由我们事先给定。在没有先验知识的情况下,超参数向量的所有分量均为1。

话题分布
文本 d m d_{m} dm中的话题分布 p ( z ∣ d m ) p\left (z|d_{m} \right ) p(zdm),参数为 θ = { θ 1 , θ 2 , . . . , θ M } m = 1 M \theta=\left \{ \theta _{1},\theta _{2},...,\theta _{M} \right \}_{m=1}^{M} θ={θ1,θ2,...,θM}m=1M θ m = { θ m 1 , θ m 2 , . . . , θ m k } k = 1 K \theta _{m}=\left \{ \theta _{m1},\theta _{m2},...,\theta_{mk} \right \}_{k=1}^{K} θm={θm1,θm2,...,θmk}k=1K ,所以 θ \theta θ实际上是一个 M × K M\times K M×K的参数矩阵。
先验分布超参数为 α = { α 1 , α 2 , . . . , α k } k = 1 K \alpha=\left \{ \alpha _{1},\alpha _{2},...,\alpha _{k} \right \}_{k=1}^{K} α={α1,α2,...,αk}k=1K

单词分布
话题 z k z_{k} zk中的单词分布 p ( w ∣ z k ) p\left (w|z_{k} \right ) p(wzk),参数为 φ = { φ 1 , φ 2 , . . . , φ K } k = 1 K \varphi=\left \{ \varphi _{1},\varphi _{2},...,\varphi _{K} \right \}_{k=1}^{K} φ={φ1,φ2,...,φK}k=1K φ k = { φ k 1 , φ k 2 , . . . , φ k v } v = 1 V \varphi _{k}=\left \{ \varphi _{k1},\varphi _{k2},...,\varphi _{kv} \right \}_{v=1}^{V} φk={φk1,φk2,...,φkv}v=1V ,所以 φ \varphi φ实际上是一个 K × V K\times V K×V的参数矩阵。
先验分布超参数为 β = { β 1 , β 2 , . . . , β v } v = 1 V \beta=\left \{ \beta _{1},\beta _{2},...,\beta _{v} \right \}_{v=1}^{V} β={β1,β2,...,βv}v=1V

5.2.4 LDA模型的生成过程

已知文本集合 D D D,话题集合 Z Z Z,单词集合 W W W,单词分布先验分布超参数 α \alpha α,话题分布先验分布超参数 β \beta β

步骤1:生成话题的单词分布
φ ∼ D i r ( β ) \varphi\sim Dir(\beta) φDir(β),随机生成 K K K φ k \varphi_{k} φk,作为 K K K个单词多项式分布的参数。 p ( w ∣ z k ) ∼ M u l t ( φ k ) p\left (w|z_{k} \right )\sim Mult(\varphi_{k}) p(wzk)Mult(φk)

步骤2:生成文本的话题分布
θ ∼ D i r ( α ) \theta\sim Dir(\alpha) θDir(α),随机生成 M M M θ m \theta_{m} θm,作为 M M M个话题多项式分布的参数。 p ( z ∣ d m ) ∼ M u l t ( θ m ) p\left (z|d_{m} \right )\sim Mult(\theta_{m}) p(zdm)Mult(θm)

步骤3:生成文本
从第一个文本第一个单词开始,每一步生成一个话题,一个单词。共随机生成 M M M个文本,每个文本 N m N_{m} Nm个单词。

步骤3-1: 根据 M u l t ( θ m ) Mult(\theta_{m}) Mult(θm)生成一个话题 z m n z_{mn} zmn
步骤3-2: 根据 M u l t ( φ z m n ) Mult(\varphi_{z_{mn}}) Mult(φzmn)生成一个单词 w m n w_{mn} wmn

5.3 LDA的概率图模型

5.3.1 表示 represent

图中结点(一般算法中多称结点而非节点)表示随机变量,空心结点表示隐变量,实心结点表示观测变量。有向边表示概率依存关系,矩形表示重复,板块内数字表示重复次数。

图片名称
图3-1 LDA的概率图模型

5.3.2 解释 illustration

K框框:

结点 β \beta β指向结点 φ k \varphi_{k} φk,矩阵下标为 K K K:从满足超参数为 β \beta β的狄利克雷分布随机生成参数 φ k \varphi_{k} φk,重复 K K K次,得到话题的单词分布 K × V K\times V K×V的参数矩阵。
M框框:

结点 α \alpha α指向结点 θ m \theta_{m} θm,矩阵下标为 M M M:从满足超参数为 α \alpha α的狄利克雷分布随机生成参数 θ m \theta_{m} θm,重复 M M M次,得到文本的话题分布 M × K M\times K M×K的参数矩阵。

N m N_{m} Nm框框:

①结点 θ m \theta_{m} θm指向结点 z m n z_{mn} zmn:从满足参数为 θ m \theta_{m} θm的第 m m m个话题(多项式)分布随机生成话题 z m n z_{mn} zmn

②结点 θ m \theta_{m} θm和结点 φ k \varphi_{k} φk指向 z m n z_{mn} zmn:找到 z m n z_{mn} zmn对应的话题的单词分布,满足参数为 φ k = z m n \varphi_{k=z_{mn}} φk=zmn。从该分布中随机生成单词 w m n w_{mn} wmn

矩阵下标为 N m N_{m} Nm,重复①②步骤 N m N_{m} Nm次。得到长度为 N m N_{m} Nm的话题序列以及长度为 N m N_{m} Nm的单词序列

5.4 LDA的公式求解

5.4.1 LDA概率公式

根据图3-1, α , β \alpha,\beta α,β是已知的超参数,我们可以写出基础的条件概率公式: p ( w , z , θ , φ ∣ α , β ) = ∏ k = 1 K p ( φ k ∣ β ) ∏ m = 1 M p ( θ m ∣ α ) ∏ n = 1 N m p ( z m n ∣ θ m ) p ( w m n ∣ φ z m n ) p(w,z,\theta,\varphi|\alpha ,\beta)=\prod_{k=1}^{K}p(\varphi _{k}|\beta ) \prod_{m=1}^{M}p(\theta_{m}|\alpha )\prod_{n=1}^{N_{m}}p(z_{mn}|\theta_{m})p(w_{mn}|\varphi_{z_{mn}}) p(w,z,θ,φα,β)=k=1Kp(φkβ)m=1Mp(θmα)n=1Nmp(zmnθm)p(wmnφzmn)
累乘符号上的参数就对应着概率图模型的框框,比较好理解(吧?)。

5.4.2 LDA参数求解

接下来就是求未知的 θ , φ , z \theta, \varphi, z θ,φ,z了,经典方法是对隐变量进行积分,得到文档的边缘分布,然后最大化边缘概率 θ \theta θ φ \varphi φ都是连续型变量, z z z是离散型变量。所以要对 θ \theta θ φ \varphi φ积分,对 z z z求和。
θ \theta θ积分 α \alpha α生成的所有文本,共有 M M M个): ∫ p ( θ m ∣ α ) d θ m \int p(\theta_{m}|\alpha )d \theta_{m} p(θmα)dθm
φ \varphi φ积分 β \beta β生成的所有话题,共有 K K K种): ∫ p ( φ k ∣ β ) d φ k \int p(\varphi _{k}|\beta )d\varphi _{k} p(φkβ)dφk
z z z求和(单词对应的所有话题,共有 K K K种): p ( z m n ∣ θ m , φ z m n ) = ∑ l = 1 K p ( z m n = l ∣ θ m ) p ( w m n ∣ φ z m n = l ) p(z_{mn}|\theta_{m},\varphi_{z_{mn}} )=\sum_{l=1}^{K}p(z_{mn=l}|\theta_{m})p(w_{mn}|\varphi_{z_{mn}=l}) p(zmnθm,φzmn)=l=1Kp(zmn=lθm)p(wmnφzmn=l)
最终,超参数 α , β \alpha,\beta α,β给定条件下所有文本的生成概率为
p ( w ∣ α , β ) = ∏ k = 1 K ∫ p ( φ k ∣ β ) [ ∏ m = 1 M ∫ p ( θ m ∣ α ) ∏ n = 1 N m [ ∑ l = 1 L p ( z m n = l ∣ θ m ) p ( w m n ∣ φ z m n = l ) ] d θ m ] d φ k p(w|\alpha ,\beta)= \prod_{k=1}^{K}\int p(\varphi _{k}|\beta ) \left [\prod_{m=1}^{M}\int p(\theta_{m}|\alpha ) \prod_{n=1}^{N_{m}}\left [ \sum_{l=1}^{L}p(z_{mn=l}|\theta_{m})p(w_{mn}|\varphi_{z_{mn}=l}) \right ] d \theta_{m} \right ]d\varphi _{k} p(wα,β)=k=1Kp(φkβ)[m=1Mp(θmα)n=1Nm[l=1Lp(zmn=lθm)p(wmnφzmn=l)]dθm]dφk
这个公式无法计算,因此需要引入近似推断的方法处理。主要有两种:Gibbs采样和变分推断。后续博主会写一篇文章介绍变分推断(varational inference)。

参考文献

[1]David Bellot. Learning Probabilistic Graphical Models in R. Packt Publishing, 2016

[2]Murphy, K.P… Machine Learning A Probailistic Perspective. The MIT Press, 2012

[3]李航.《统计学习方法》(第二版).清华大学出版社, 2019

ps:文中方程都是KeTex手打的,另外我也是刚开始学的小白,笔记可能会有问题,欢迎指正!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值