LDA主题模型

主题模型

  主题模型(topic model)是以非监督学习的方式对文集隐含语义结构(latent semantic structure) 进行聚类(clustering) 的统计模型。

  主题模型主要被用于自然语言处理(Natural language processing)中的语义分析(semantic analysis)和文本挖掘(text mining)问题,例如按主题对文本进行收集、分类和降维;也被用于生物信息学(bioinfomatics)研究

LDA主题模型

LDA全称隐含狄利克雷分布(Latent Dirichlet Allocation, LDA),

  • 是一种主题模型,它可以自动分析每个文档,统计文档中的词语,根据统计的信息判断当前文档包含哪些主题以及各个主题所占比例各为多少。
  • 是一种无监督学习模型:在训练时不需要手工标注的训练集,需要的仅是文档集以及指定主题的数量即可。
  • 是一种贝叶斯模型:先验分布 + 数据(似然)= 后验分布
  • 是一种典型的词袋模型,它认为一篇文档是由一组词组成的集合,词与词之间没有顺序和先后关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。

  假设有 M M M篇文档 { d 1 , . . . , d M } \{d_1,...,d_M\} {d1,...,dM},第 i i i篇文档有 N i N_i Ni个词 { w i 1 , . . . , w i N i } \{w_{i1},...,w_{iN_i}\} {wi1,...,wiNi},所有文档中出现的词构成词汇表 V V V(不重复),同时, V V V表示词汇表中元素个数。现在的目标是找到每一篇文档的主题分布每一个主题中词的分布
Data
  在LDA模型中,假设主题数目为 K K K已知。

  为方便理解,对LDA生成一篇文档的过程作如下描述:

  • 有两种类型的骰子: 一种是doc-topic骰子,每个doc-topic骰子有 K K K个面,每个面对应一个主题编号;一种是topic-word骰子,每个骰子有 V V V个面,每个面对应一个词;
  • 每种骰子,每个面出现的概率不是固定的,假设服从狄利克雷分布;
  • 生成文档 d m d_m dm中的 n n n个单词,
    • 从狄利克雷分布中抽样得到doc-topic骰子各个面的概率分布 θ \theta θ,掷骰子doc-topic获得文档 d m d_m dm n n n个词的主题;(从整个过程执行完的全局来看:重复掷doc-topic骰子 N i N_i Ni次,得到文档中所有词的主题,这样,各个主题中词的个数服从以 θ \theta θ为参数的多项式分布,所以,掷骰子相当于从该多项式分布中采样)
    • 获得第 n n n个单词的主题后相当于拿到一个对应的topic-word骰子,从它的先验分布,狄利克雷分布,中抽样获得各个面的概率分布 ϕ \phi ϕ,掷骰子topic-word获得第 n n n个词。(从整个过程执行完的全局来看:假设文档中与第 n n n个词主题相同的词有 l l l个,需要重复掷骰子 l l l次获得,这样,一篇文档中某一主题的各个词的个数服从参数为 ϕ \phi ϕ的多项式分布,掷骰子相当于从该多项式分布采样)

  具体地:任一文档 d m d_m dm

  • 设文档 d m d_m dm的主题分布为随机变量 Θ m = ( Θ m 1 , . . . , Θ m k ) \Theta_{m}=(\Theta_{m1},...,\Theta_{mk}) Θm=(Θm1,...,Θmk),其中 Θ m i \Theta_{mi} Θmi表示文档 d m d_m dm中包含第 i i i个主题的概率, 1 ≤ i ≤ K 1\leq i\leq K 1iK,假设 Θ m ∼ D i r ( α 1 , . . . , α K ) \Theta_{m}\sim Dir(\alpha_1,...,\alpha_K) ΘmDir(α1,...,αK)
    D i r ( α 1 , . . . , α K ) Dir(\alpha_1,...,\alpha_K) Dir(α1,...,αK)中采样得到一个主题分布 θ m = ( θ m 1 , . . . , θ m K ) \theta_m=(\theta_{m1},...,\theta_{mK}) θm=(θm1,...,θmK)
  • 设文档 d m d_m dm中的第 n n n个单词的主题分布 Z m n = ( Z m n 1 , . . . , Z m n K ) \Zeta_{mn}=(\Zeta_{mn1},...,\Zeta_{mnK}) Zmn=(Zmn1,...,ZmnK),其中, Z m n i \Zeta_{mni} Zmni表示第 n n n个单词的主题是第 i i i个主题的概率,则 Z m n ∣ Θ m = θ m ∼ m u l t i ( θ m 1 , . . . , θ m K ) \Zeta_{mn}|\Theta_{m}=\theta_{m}\sim multi(\theta_{m1},...,\theta_{mK}) ZmnΘm=θmmulti(θm1,...,θmK)
    m u l t i ( θ m 1 , . . . , θ m K ) multi(\theta_{m1},...,\theta_{mK}) multi(θm1,...,θmK)中采样获取第 n n n个单词的主题 z m n z_{mn} zmn,不妨设其为第 k k k个主题。
  • 主题 k k k中词的先验分布 Φ k = ( Φ k 1 , . . . , Φ k V ) \Phi_k=(\Phi_{k1},...,\Phi_{kV}) Φk=(Φk1,...,ΦkV),其中 Φ k j , 1 ≤ j ≤ V \Phi_{kj},1\leq j\leq V Φkj,1jV表示主题 k k k中出现词汇表中第 j j j个词的概率,假设 Φ k ∼ D i r ( β 1 , . . . , β V ) \Phi_k\sim Dir(\beta_1,...,\beta_{V}) ΦkDir(β1,...,βV)
    D i r ( β 1 , . . . , β V ) Dir(\beta_1,...,\beta_{V}) Dir(β1,...,βV)中采样得到主题 k k k的词分布 φ k = ( φ k 1 , . . . , φ k V ) \varphi_k=(\varphi_{k1},...,\varphi_{kV}) φk=(φk1,...,φkV)
  • 设在文档 d m d_m dm中主题为 k k k的单词中,词汇表中各个单词的个数 W m k W_{mk} Wmk服从多项式分布 m u l t i ( φ k 1 , . . . , φ k V ) multi(\varphi_{k1},...,\varphi_{kV}) multi(φk1,...,φkV)
    m u l t i ( φ k 1 , . . . , φ k V ) multi(\varphi_{k1},...,\varphi_{kV}) multi(φk1,...,φkV)中采样获取第 n n n个单词 w m n w_{mn} wmn
    LDA

每一篇文档的主题分布:估计参数 α 1 , . . . , α K \alpha_1,...,\alpha_K α1,...,αK
{ Θ m ∼ D i r ( α 1 , . . . , α K ) Z m n ∣ Θ m = θ m ∼ m u l t i ( θ m 1 , . . . , θ m K ) ⟹ Θ m ∣ Z m n = z m n ∼ D i r ( α 1 + z m n 1 , . . . , α K + z m n K ) \begin{cases} \Theta_{m}\sim Dir(\alpha_1,...,\alpha_K)\\ \Zeta_{mn}|\Theta_{m}=\theta_{m}\sim multi(\theta_{m1},...,\theta_{mK}) \end{cases}\Longrightarrow \Theta_{m}| \Zeta_{mn}=z_{mn}\sim Dir(\alpha_1+z_{mn1},...,\alpha_K+z_{mnK}) {ΘmDir(α1,...,αK)ZmnΘm=θmmulti(θm1,...,θmK)ΘmZmn=zmnDir(α1+zmn1,...,αK+zmnK)

每一个主题中词的分布:估计参数 β 1 , . . . , β V \beta_1,...,\beta_{V} β1,...,βV
{ Φ k ∼ D i r ( β 1 , . . . , β V ) W m k ∣ Φ k = φ k ∼ m u l t i ( β 1 , . . . , β V ) ⟹ Φ k ∣ W m n = f m n ∼ D i r ( β 1 + f m n 1 , . . . , β V + f m n V ) \begin{cases} \Phi_k\sim Dir(\beta_1,...,\beta_{V})\\ W_{mk}|\Phi_k=\varphi_{k}\sim multi(\beta_1,...,\beta_{V}) \end{cases}\Longrightarrow \Phi_k| W_{mn}=f_{mn}\sim Dir(\beta_1+f_{mn1},...,\beta_V+f_{mnV}) {ΦkDir(β1,...,βV)WmkΦk=φkmulti(β1,...,βV)ΦkWmn=fmnDir(β1+fmn1,...,βV+fmnV)

后续:模型求解

参考:
文本主题模型之LDA(一) LDA基础
一文详解LDA主题模型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值