Chapter 14 主题模型

本文深入探讨了LDA(Latent Dirichlet Allocation)模型,介绍了LDA在信息提取、文档分类等领域的应用,以及它为解决一词多义和多词一义问题的设计原理。详细阐述了Beta分布、Dirichlet分布及其在LDA中的作用,并通过Gibbs Sampling解释了LDA的主题采样过程。最后,文章提供了实际案例,展示了如何利用LDA分析QQ群聊天记录以发现兴趣话题。
摘要由CSDN通过智能技术生成

1 LDA模型

1.1 LDA的应用方向

信息提取和搜索(语义分析);文档分类、聚类、文章摘要、社区挖掘;基于内容的图像聚类、目标识别(以及其他计算机视觉应用);生物信息数据的应用

1.2 LDA出现的原因

前文提到的“朴素贝叶斯”可以胜任许多文本分类问题,但是无法解决一词多义(花:花朵和花费)多词一义(陛下:天子和皇上)的问题·。因此可以通过增加“主题”的方式,一定程度上解决这些问题。

针对一词多义的情况:在主题模型中一个词可能被映射到多个主题中。

针对多词一义的情况:在主题模型中多个同意思的词可能被映射到某个主题的概率很高。

2 Beta分布-Dirichlet分布

2.1 Beta分布介绍

Beta分布的概率密度为:f(x)=\left\{\begin{matrix} \frac{1}{B(\alpha ,\beta )x^{\alpha -1}(1-x)^{\beta -1}},x\in [0,1]\\ 0,others \end{matrix}\right.,其中系数B为:B(\alpha ,\beta )=\int_{0}^{1}x^{\alpha -1}(1-x)^{\beta -1}dx=\frac{\Gamma (\alpha )\Gamma (\beta )}{\Gamma (\alpha +\beta )}

PS:\Gamma函数的介绍

\Gamma函数是阶乘在实数上的推广:\Gamma (x)=\int_{0}^{+\infty }t^{x-1}e^{-t}dt=(x-1)!

由此:\Gamma(x)=(x-1)\Gamma (x-1)\Rightarrow \frac{\Gamma (x)}{\Gamma (x-1)}=x-1

2.2 Beta分布的期望

E(x)=\int_{0}^{1}x\cdot \frac{1}{B(\alpha ,\beta )}x^{\alpha -1}(1-x)^{\beta -1}dx= \frac{1}{B(\alpha ,\beta )}\int_{0}^{1}x^{(\alpha+1)-1 }(1-x)^{\beta -1}dx=\frac{B(\alpha +1,\beta )}{B(\alpha ,\beta )}=\frac{\Gamma (\alpha +\beta )}{\Gamma (\alpha )\Gamma (\beta )}/\frac{\Gamma (\alpha +\beta +1)}{\Gamma (\alpha +1)\Gamma (\beta )}=\frac{\alpha }{\alpha +\beta }

2.3 共轭先验分布相关介绍

由于x为给定样本,P(x)有时被称为“证据”,仅仅是归一化因子,如果不关心P(\theta |x)的具体值,只考察\theta取何值时后验概率P(\theta |x)最大,所以省去分母:

P(\theta |x)=\frac{P(x |\theta )P(\theta )}{P(x)}\propto P(x |\theta )P(\theta )

在贝叶斯概率理论中,如果后验概率P(\theta |x)和先验概率P(\theta )满足同样的分布律(即两者概率相等),那么先验分布和后验分布叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。

  • 二项分布和先验问题:投掷一个非均匀硬币,可以使用参数为\theta的伯努利模型,\theta为硬币正面的概率,那么结果x的分布形式为:P(x|\theta )=C_{n}^{k}\cdot \theta ^{k}\cdot (1-\theta )^{n-k};两点分布/二项分布的共轭先验是Beta分布,它具有两个参数\alpha,\beta,其分布形式为P(\theta |\alpha ,\beta )=\left\{\begin{matrix} \frac{1}{B(\alpha ,\beta )}\theta ^{\alpha -1}(1-\theta )^{\beta -1},\theta \in [0,1]\\ 0,others \end{matrix}\right.
  • 先验概率和后验概率的关系:

先验概率——P(x|\theta )=C_{n}^{k}\cdot \theta ^{k}\cdot (1-\theta )^{n-k}

Beta分布——P(\theta |\alpha ,\beta )=\frac{1}{B(\alpha ,\beta )}\theta ^{\alpha -1}(1-\theta )^{\beta -1}

后验概率——P(\theta |x)=\frac{P(x|\theta )\cdot P(\theta )}{P(x)} \propto P(x|\theta )\cdot P(\theta )=(C_{n}^{k}\theta ^{k}(1-\theta )^{n-k})\cdot(\frac{1}{B(\alpha ,\beta )}\theta ^{\alpha -1}(1-\theta )^{\beta -1})=\frac{C_{n}^{k}}{B(\alpha ,\beta )}\theta ^{(k+\alpha )-1}(1-\theta )^{(n-k+\beta )-1}\propto \frac{1}{B(k+\alpha ,n-k+\beta )}\theta ^{(k+\alpha )-1}(1-\theta )^{(n-k+\beta )-1}

后验概率是参数为(K+\alpha,n-k+\beta )的Beta分布,即:伯努利分布/二项分布的共轭先验是Beta分布。

分析:参数\alpha ,\beta是决定参数\theta的参数,即超参数;我们可以看到参数\theta的指数是由\alpha ,\beta ,k,n-k共同决定的;这个指数在投硬币实验中的实践意义——投币过程中,正面朝上的次数,\alpha\beta先验的给出了在没有任何实验前提下,硬币朝上的概率分配,因此\alpha\beta可被称为“伪计数”。

2.4 共轭先验的直接推广

从Beta分布推广至Dirichlet分布:

f(\overrightarrow{p}|\overrightarrow{\alpha })=\left\{\begin{matrix} \frac{1}{\Delta (\overrightarrow{\alpha })}\prod_{k=1}^{K}P_{k}^{\alpha _{k}-1},P_{k}\in [0,1]\\ 0,others \end{matrix}\right.

简记为:Dir(\overrightarrow{p}|\overrightarrow{\alpha })=\frac{1}{\Delta (\overrightarrow{\alpha })}\prod_{k=1}^{K}P_{k}^{\alpha _{k}-1},其中:\Delta (\overrightarrow{\alpha })=\frac{\prod_{k=1}^{K}\Gamma (\alpha _{k})}{\Gamma (\sum_{k=1}^{K}\alpha _{k})}

由Beta分布的期望可推广至Dirichlet分布的期望为:E(p_{i})=\frac{\alpha _{i}}{\sum_{k=1}^{K}\alpha _{k}}

3 Dirichlet分布分析

3.1 Dirichlet分布

公式:Dir(\overrightarrow{p}|\overrightarrow{\alpha })=\frac{1}{\Delta (\overrightarrow{\alpha })}\prod_{k=1}^{K}P_{k}^{\alpha _{k}-1}

\alpha是参数变量,共有K个;

定义在x_{1},x_{2},...,x_{K-1}维上:x_{1}+x_{2}+...+x_{K}=1x_{1},x_{2},...,x_{K-1}>0且定义在(K-1)维的单纯形上,其他区域的概率密度为0。

3.2 对称Dirichlet分布

 参数分析:

4 LDA的解释

4.1 说明

共有m篇文章,一共涉及了K个主题;

每篇文章(长度为N_{m})都有各自的主题分布,主题分布是多项分布,该多项分布的参数服从Dirichlet分布,该分布的参数是\alpha

每个主题都有各自的词分布,词分布为多项分布,该多项分布的参数服从Dirichlet分布,该分布的参数是\beta

对于某篇文章中的第n个词,首先从该文章的主题分布中采样一个主题,然后在这个主题对应的词分布中采样一个词。不断重复这个随机生成过程,直到m篇文章全部完成上述过程。

 图中字母的解释:

K——主题个数

M——文档总数

N_{m}——第m个文档的单词总数

\beta——每个Topic下词的多项分布的Dirichlet先验参数,事先给出

\alpha——每个文档Topic的多项分布的Dirichlet先验参数,事先给出

zmn——第m个文档中第n个词的主题

wmn——m个文档中的第n个词

\theta——隐含变量,表示第m个文档下的Topic分布,k维(k维)

\varphi——隐含变量,表示第k个Topic下词的分布,v维(v为词典中term总数)

由图写出联合分布:

4.2 Gibbs Sampling

初始时,随机给文本中的每个词分配主题z^{(0)},然后统计每个主题z下出现词t的数量以及每个文档m下出现主题z的数量,每一轮排除当前词的主题分布。根据其他所有词的主题分布估计当前词分配各个主题的概率。直到每个文档的主题分布和每个主题的词分布收敛为止。

p(z_{i}=k|\overrightarrow{z_{j}},\overrightarrow{w})\propto \frac{n_{k,j}^{t}+\beta _{t}}{\sum_{t=1}^{v}n_{k,j}^{t}+\beta _{t}}(n_{m, j}^{k}+\alpha _{k}),其中z_{j}表示除了z_{i}词以外属于该主题的其他词。

\beta _{t}近似于0时:
表示某个词z_{i}属于k主题的概率与当前其它属于k主题的词z_{j}的个数除以这些词的总数成正比,类似频率。

 4.2 主题个数的确定

4.3 概率分布的困惑度/复杂度Perplexity

4.4  困惑度/复杂度Perplexity与主题模型

 ps:一个网页i的重要度可以使用指向网页i的其他网页j的重要度加权得到。

D(P_{i})=(1-d)+d\cdot \sum_{j\epsilon In(P_{i}) }\frac{1}{|Out(P_{j})|}\cdot D(P_{j})

其中:

D(P_{i})——网页i的重要性

d——阻尼系数

In(P_{i})——指向网页i的网页集合

Out(P_{j})——网页j指向的网页集合

当网页换成句子时,仅需考虑将“链接”加权:

D(S_{i})=(1-d)+d\cdot \sum_{j\epsilon In(S_{i})}\frac{similar(S_{j},S_{i})}{\sum_{k\epsilon Out(S_{j})similar(S_{j},S_{k})}}\cdot D(S_{j})

 5 LDA总结

  • LDA可以很好得解决一词多义和多词一义的问题。
  • LDA用于短文档的效果是不明显的。
  • LDA可以和其他算法相结合。首先使用LDA将长度为N_{i}的文档降维到K维(主题的数目),同时给出每个主题的概率(主题分布),从而可以使用if-idf继续分析或者直接作为文档的特征进入聚类或者标签传播算法——用于社区发现等问题。

6 实践

背景:计算聊天记录中每个QQ号以及众人感兴趣的话题。

步骤:

(1)获取QQ群聊天记录:txt文本格式。

(2)整理成“QQ号/时间/留言”的规则形式

  • 正则表达式
  • 清洗特定词,例如:表情、@XX
  • 使用停止词库
  • 获得csv表格数据

 

(3)合并相同QQ号的留言

(4)LDA模型计算主题

(5)计算每个QQ号以及众人感兴趣的话题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值