主题模型
LSA
PLSA
LDA
HDP-LDA
lda2vec
引用
近期文章更新预告
主题模型
所有主题模型都基于相同的假设:
- 每个文档包含多个主题
- 每个主题包含多个单词
![103abdf0a770c1f9d9aa290abe3820a0.png](https://i-blog.csdnimg.cn/blog_migrate/d3142bd950c7658ece980f1cceb5a97e.png)
LSA
![5bd591d5cbeb8c50ea610b41e1077fe4.jpeg](https://i-blog.csdnimg.cn/blog_migrate/2e4a67e72d349c17956d6e02a0d97cc1.jpeg)
将文章X单词矩阵进行SVD分解,分解为文章(句子)X主题、主题X主题、主题X单词单个矩阵,其中文章(句子)X主题作为文章(句子)向量。
PLSA
![a25c8197fd7211c712615c337c2d2dbe.jpeg](https://i-blog.csdnimg.cn/blog_migrate/48a1f72aa90d1300dae18331f84f9e4e.jpeg)
![b3682b390ad28f5e20465fae0a0ca126.jpeg](https://i-blog.csdnimg.cn/blog_migrate/541b09b33f8eeac1e558129ea689910a.jpeg)
d和 w 是已经观测到的变量,而 z 是未知的变量(主题),和LSA的矩阵分解是对应的。
最大的矩形里装有N篇文档,每一篇文档 d 自身有个概率,从文档 d 到主题 z 概率分布,随后从主题到词概率分布,由此构成了 w 和 z 的联合概率分布,由此PLSA的参数量为 。
用EM算法求解模型
LDA
PLSA假设分布为固定参数,容易产生过拟合,LDA在起基础上,加入狄利克雷分布,相当于加入先验知识。训练样本量足够大,pLSA的效果可以等同LDA。
![c00b88506be542c32d5b6c552ec9a421.jpeg](https://i-blog.csdnimg.cn/blog_migrate/04286778409ae4fe606cce3979bdceb0.jpeg)
狄利克雷分布:分布的分布,Beta分布的多元推广为狄利克雷分布,Beta分布是伯努利分布,二项分布的共轭先验(先验分布是beta分布,后验分也是beta分布)。
Beta分布常用于AB测试当中,例如已知某页面点击率正常范围在0.2~0.35,点击率符合伯努利分布,点击率分布的分布符合Beta分布
![]()
- α和β是dirichlet的参数,对于M篇文档都一样,用来控制每篇文档的两个概率分布
- θ对于每一篇文档都一样,用来表征文档的主题分布
- z是每个词的隐含主题,w是文档里的词
- α和β是文集(corpus)级别的参数,所以在M篇文档外边
- θ是文档级别的参数,在N个词盘子的外边
- z和w是一一对应的,每个词对应一个隐含主题
下图大等边三角形内所有点到顶点对边距离和为1,代表生成三个单词的概率
小等边三角形内所有点到顶点对边距离代表生成三个主题的概率
小三角形中每个带叉的点都是一个PLSA模型,生成文档时,先根据叉点选择一个主题,再根据主题选择词
而LDA不再像PLSA是随机的点,而是小三角形中的曲线(一系列的点),即服从一定的分布,分布曲线由 决定
![d03b4f36ddf1be375212094851ffa3f0.jpeg](https://i-blog.csdnimg.cn/blog_migrate/76cbf7a69ed5b2dbab86aef217f9ae6d.jpeg)
HDP-LDA
在LDA中,主题的个数是一个预先指定的超参数。通常可通过验证集和训练集得到最佳超参数。即当训练集评价指标下降,但验证集开始上升时,到达最优点。但有时最优个数会超大,此时可选择评价指标下降速度变慢的点。具体的评价指标(困惑度)如下:
文档集合D,其中M为文档的总数, 为文档d中单词所组成的词袋向量, 为模型所预测的文档d的生成概率, 为文档d中单词的总数。
另外一种方法是在LDA基础之上融入分层狄利克雷过程(Hierarchical Dirichlet Process,HDP),构成一种非参数主题模型HDP-LDA。不需要提前预制主题个数,但模型参数求解更复杂。
HDP构造过程
类似于一个中国餐馆(一个文档),每个餐桌代表一个类别,从第一个顾客(一个单词)进来选桌子开始到最后一个结束,即可得出类别数。
n为已经选择好类别的单词的个数,为第 j 个类别的单词数,下一个单词被分到已存在类别的概率: ,新类别的概率: 。可知 越大,选择已存在类别概率越小,最终类别数越多;第 j 个类别的单词数越多,下个单词分到该类别可能性越大。
lda2vec
其实就是:word2vec + lda,lda的训练也变成了深度学习的方式,初始文档主题分布矩阵,在输出层文档主题的输出加上word2vec输出。
![7a3210416abf91ecb5550977666acf86.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7614163d6503e2f0e0bdf1599c5d63f9.jpeg)
引用
- https://multithreaded.stitchfix.com/blog/2016/05/27/lda2vec/#topic=38&lambda=1&term=
- https://jmlr.org/papers/volume3/blei03a/blei03a.pdf
- 统计自然语言处理
近期文章更新预告
接下来将更新以下内容,你的关注与打赏是创作的最大动力:
- 句子向量
句子表征 前世今生 (今生篇)
- 问答系统
FAQ综述
KBQA综述
多轮问答综述
- 深度学习基础基础知识
理解损失函数
理解激活函数
- 推荐系统
W&D工程化其他文章未涉及的建议
- 知识图谱
表征学习
- 语言模型
Bert推理加速
关注微信公众号【无数据不智能】,下期更精彩