LDA生成模型学习

LDA模型

在LDA模型中,一篇文档生成的方式如下:

  • 按照先验概率选择一篇文档i
  • 从狄利克雷分布α中取样生成文档 m 的主题分布θm
  • 从主题的多项式分布中取样生成文档 m 第 n 个词的主题Zm,n
  • 从狄利克雷分布β中取样生成主题 Zm,n 对应的词语分布φk
  • 从词语的多项式分布 φk 中采样最终生成词语Wm,n

其中α,β是先验分布dirichlet分布的超参,保持不变。
主题个数K可以通过困惑度计算进行调优。
在这里插入图片描述
其中:
文档m产生主题θ的概率,主题θ产生单词w的概率都不再是某两个确定的值,而是随机变量,是从dirichlet先验中“随机”抽取出主题分布。
除了生成的单词W,其他都是隐变量或参数。

Dirichlet

Dirichlet分布是一种概率分布,用于建模多维离散随机变量的概率分布。它是多项式分布的共轭先验分布,常用于描述多类别数据的分布情况。
概率分布公式:
在这里插入图片描述

  • 其中,对于参数 α ,在LDA模型中常被视为一个超参数,控制着生成模型中未知参数的分布,影响模型的结果和效果。根据 Dirichlet 分布的性质,α越大,对应的主题分布或单词分布越平滑,相反,α越小,分布的区分度也越高。
  • (p_1, p_2, …, p_K) 是一个多维向量,表示K个类别的概率分布。α = (α_1, α_2, …, α_K) 是一个与x维度相同的向量,称为参数向量。
  • B(α) 是多维贝塔函数(multivariate beta function),用于归一化Dirichlet分布,使其总和为1。
    B ( α ) = ∏ k = 1 K Γ ( α k ) / Γ ( ∑ k = 1 K α k ) B(α) = ∏_{k=1}^K Γ(α_k) / Γ(∑_{k=1}^K α_k) B(α)=k=1KΓ(αk)(k=1Kαk)

生成主题分布θm的过程

在这个例子中,假设我们有3个主题:体育、科技和政治。我们使用狄利克雷分布来生成每篇文章的主题分布。

初始化参数:

K = 3(主题数量)
α = [1, 1, 1](狄利克雷分布的参数)
生成主题分布:
对于每篇文章m,我们根据狄利克雷分布参数α来生成其主题分布θm。
假设我们生成了如下的主题分布

θm1 = [0.4, 0.3, 0.3](文章1的主题分布)
θm2 = [0.2, 0.7, 0.1](文章2的主题分布)
θm3 = [0.6, 0.2, 0.2](文章3的主题分布)

这些主题分布表示了每篇文章中体育、科技和政治主题的概率分布。

生成文档:
对于每篇文章m,我们根据其主题分布θm生成文章的单词。

假设我们生成了如下的文档:

文章1包含了单词序列:[篮球, 运动员, 科技, 足球]
文章2包含了单词序列:[科技, 人工智能, 政治, 技术]
文章3包含了单词序列:[足球, 政治, 运动员, 手机]
在每个单词位置上,我们根据主题分布θm采样生成对应的单词。例如,在文章1中,我们先从θm1的主题分布中采样得到主题“体育”,然后根据主题“体育”的单词分布生成单词“篮球”;再次从θm1中采样得到主题“科技”,然后生成单词“运动员”;依此类推。

生成主题Zm,n的过程

假设文档m的主题分布θm如下:
θ m = [ 0.3 , 0.5 , 0.2 ] θm = [0.3, 0.5, 0.2] θm=[0.3,0.5,0.2]
表示这个文档中,30%的词包含主题1,50%的词包含主题2,20%的词包含主题3。
现在我们要生成这个文档的第n个词的主题Zm,n:
根据θm,主题1的采样概率是0.3,主题2是0.5,主题3是0.2
然后我们生成一个0到1之间的随机数,例如0.65
进行累积概率计算:
主题1累积概率是0.3,小于0.65
主题2累积概率是0.3+0.5=0.8,大于0.65
所以第n个词的主题Zm,n被采样为主题2

一些疑问:

  • 从狄利克雷分布Dir(α)中抽取一个概率值θmk,并将其赋给θm的第k个分量。这个过程是纯随机吗
    不是完全的随机,它受到狄利克雷分布的参数α的影响。狄利克雷分布是一个多维概率分布,其值域是一个多维的概率空间。参数α可以看作是在该概率空间中的一个位置,它控制了分布的形状和密度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值