主题(话题)模型LSA/PLSA/LDA简述

0. 预定义

  • w 表示词,V 表示词表大小(固定值)。
  • z 表示主题,K 表示主题数量。
  • D = ( d 1 , d 2 , . . . , d M ) (d_1, d_2, ..., d_M) (d1,d2,...,dM)表示语料库,M 表示文档数量。
  • d = ( w 1 , w 2 , . . . , w N ) (w_1,w_2,...,w_N) (w1,w2,...,wN)表示一篇文档,N 为文档中词的数量。
  • 注意话题模型是词袋模型,词之间并没有顺序。
  • 贝叶斯学派思路:先验分布 π ( θ ) \pi(\theta) π(θ) + 样本信息 χ \chi χ → \rightarrow 后验分布 π ( θ ∣ x ) \pi(\theta|x) π(θx)
  • 狄利克雷分布Dirichlet( α → \overrightarrow {\alpha} α )是多项式分布Multi( N , p → N,\overrightarrow{p} N,p )的共轭先验分布。即如下公式:
    D i r i c h l e t ( p → ∣ α → ) + M u l t i n o m i a l ( m → ) = D i r i c h l e t ( p → ∣ α → + m → ) Dirichlet(\overrightarrow {p}|\overrightarrow {\alpha}) + Multinomial(\overrightarrow{m}) = Dirichlet(\overrightarrow {p}|\overrightarrow {\alpha} + \overrightarrow{m}) Dirichlet(p α )+Multinomial(m )=Dirichlet(p α +m )
  • LDA相关数学基础请移步刘老师博客

1. LSA (潜在语义分析,也称潜在语义检索LSI)

  • LSA通过对 词-文档 矩阵进行SVD分解,得到“词-主题”、“主题-主题”、"主题-文档"矩阵,其中SVD的时间复杂度为O(m*n*k),m,n,k分别对应文档数量、词表大小、主题数量。
  • 优点:简单易实现
  • 缺点:SVD计算复杂度高,LSA不是概率模型,缺乏可解释性。k的值不好确定。

2. PLSA (概率潜在语义分析)

  • PLSA利用了贝叶斯模型的思想,文档 d 可以看做是在 k 个主题的概率分布,而每个主题又可以看做是在 V 个词上的概率分布。

  • 每篇文档通过这样两层的概率分布生成,生成文档的过程可以看做掷骰子的过程:

  1. 假设你每写一篇文档会制作一颗K面的“文档-主题”骰子(扔此骰子能得到K个主题中的任意一个),和K个V面的“主题-词项” 骰子。
  2. 比如可令K=3,即制作1个含有3个主题的“文档-主题”骰子,这3个主题可以是:教育、经济、交通。然后令V = 3,制作3个有着3面的“主题-词项”骰子,其中,教育主题骰子的3个面上的词可以是:大学、老师、课程,经济主题骰子的3个面上的词可以是:市场、企业、金融,交通主题骰子的3个面上的词可以是:高铁、汽车、飞机。
  3. 对于每一个词,先扔该“文档-主题”骰子选择主题,得到主题的结果后,使用和主题结果对应的那颗“主题-词项”骰子,扔该骰子选择要写的词。重复这一过程 N 次即生成一篇文档。
  • 文档生成过程可简单概述如下:
  1. 以概率 p ( d i ) p(d_i) p(di)从语料中随机选择一篇文档 d i d_i di
  2. 选定文档后,从主题分布中按照 p ( z k ∣ d i ) p(z_k|d_i) p(zkdi)选择一个主题 z k z_k zk
  3. 选定主题后,从词分布中按照概率 p ( w j ∣ z k ) p(w_j|z_k) p(wjzk)选择一个词 w j w_j wj
  • 词-文档的联合概率分布可以表示如下:
    p ( w j , d i ) = ∑ k = 1 K p ( z k ) p ( d i ∣ z k ) p ( w j ∣ z k ) = p ( d i ) ∑ k = 1 K p ( z k ∣ d i ) p ( w j ∣ z k ) p(w_j, d_i) = \sum_{k=1}^K p(z_k) p(d_i|z_k)p(w_j|z_k) = p(d_i)\sum_{k=1}^K p(z_k|d_i)p(w_j|z_k) p(wj,di)=k=1Kp(zk)p(dizk)p(wjzk)=p(di)k=1Kp(zkdi)p(wjzk)
    其中 z 可视为主题。前一个式子中 d 和 w 均在给定 z 的情况下由条件概率生成,而后一个式子中 z 是在给定 d 的情况下有条件概率生成,也是我们需要的目标式子。
  • 由于 p ( d i ) p(d_i) p(di)可以事先计算得到,所以 θ = ( p ( z k ∣ d i ) , p ( w j ∣ z k ) \theta=(p(z_k|d_i), p(w_j|z_k) θ=(p(zkdi),p(wjzk)就是我们需要求的参数,一般需要最大化似然函数。常用求解方法为EM算法。
  • 优点:弥补了LSA不具备概率(统计学)意义的缺点。
  • 缺点:无法得知新文档的概率 P ( d n ) P(d_n) P(dn),且 P ( z ∣ d ) P(z|d) P(zd)的计算复杂度随着文档规模的增长线性增加。
  • PLSA图模型如下,阴影表示可观测变量,白圈表示隐变量。
    PLSA图模型

3. LDA (潜在狄利克雷分配)

  • LDA在PLSA的基础上,使用两个狄利克雷分布去生成文档对应主题的概率分布、主题对应词的概率分布。具体过程可以描述如下:
  1. 以概率 P ( d i ) P(d_i) P(di)选择一篇文档 d i d_i di
  2. α \alpha α参数的狄利克雷分布生成 d i d_i di的主题分布 θ i \theta_i θi;
  3. 从主题的多项式分布 θ i \theta_i θi取样生成文档第j个词对应的主题 z i j z_{ij} zij
  4. β \beta β参数的狄利克雷分布生成主题 z i j z_{ij} zij对应的词分布 ϕ z i j \phi_{z_{ij}} ϕzij
  5. 从词语的多项式分布 ϕ z i j \phi_{z_{ij}} ϕzij中采样最终生成词语 w i j w_{ij} wij
  • 优点
  1. 无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。
  2. 使用稀疏的狄利克雷分布来建模文档关于主题的概率分布、主题关于词的概率分布,符合人类的先验知识,因为一篇文档的主题往往集中在特定少数几个主题上,同理一个主题的表示也主要集中少数词语上,多数情况是少部分(跟这个话题高度相关的)词出现的频率会很高,而其他的词出现的频率则明显较低。
  • 缺点:不适合建模短文本,因为document-level word co-occurrences 很稀疏。
  • 与PLSA的差异
  1. PLSA给定一个文档,其主题概率分布 P ( z ∣ d i ) P(z|d_i) P(zdi)是唯一确定的,同理给定一个主题,其词概率分布 P ( w ∣ z ) P(w|z) P(wz)是唯一确定的。最终用EM算法(极大似然估计思想)求解出了两个未知但固定的参数的值 P ( w j ∣ z k ) P(w_j|z_k) P(wjzk) P ( z k ∣ d i ) P(z_k|d_i) P(zkdi),是频率派的思想。
  2. LDA中文档的主题概率分布、主题的词概率分布都是由狄利克雷分布随机生成的,是贝叶斯派的思想。LDA求解参数可以变分推断-EM算法和吉布斯采样估计。前者使用最大后验概率MAP估计,后者使用贝叶斯估计。
  • LDA概率图模型如下:
    在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值