NLP进阶之(八)LDA主题模型、LSA隐语义模型

本文详细介绍了主题模型,包括SVD奇异值矩阵分解在LSA中的应用,以及LDA的概率模型和Gibbs采样。LDA克服了LSA的不足,如计算耗时和主题解释性差,提供了更好的统计基础和直观解释。
摘要由CSDN通过智能技术生成

1. 回顾主题模型

  • 主题模型是一种生成模型,一篇文章中每个词都是通过“以一定概率选择某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到: p ( w o r d ∣ d o c ) = ∑ t o p i c p ( t o p i c ∣ d o c ) ∗ p ( w o r d ∣ t o p i c ) p(word|doc)=\sum_{topic}p(topic|doc)*p(word|topic) p(worddoc)=topicp(topicdoc)p(wordtopic)
  • 主题模型客服了传统信息检索中文档相似度的计算方法,并能在海量的数据中找出文字间的语义主题。主题模型在自然语言和文本搜索上起到了重要的作用。

1.1 SVD奇异值矩阵分解

  • 重点是将其转换为一个矩阵:
    p ( 词 语 ∣ 文 档 ) = ∑ 主 题 p ( 词 语 ∣ 主 题 ) ∗ p ( 主 题 ∣ 文 档 ) p(词语|文档)=\sum_{主题}p(词语|主题)*p(主题|文档) p()=p()p()
    在这里插入图片描述
    主题模型就是一个SVD矩阵分解,得到一个奇异值矩阵。
    在这里插入图片描述
    对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别快,在很多情况下,前10%甚至前1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个奇异值和对应左右奇异值向量来近似描述矩阵。 A m ∗ n = U m ∗ m ∑ m ∗ n V n ∗ n T ≈ U m ∗ k ∑ k ∗ k V n ∗ k T A_{m*n}=U_{m*m} \sum_{m*n}V_{n*n}^T \approx U_{m*k} \sum_{k*k}V_{n*k}^T Amn=UmmmnVnnTUmkkkVnkT
  • 由于可以使用小矩阵来近似的描述样本信息的这个重要特征,SVD可以常用于PCA降维、推荐系统以及主题模型等场景中。

1.2 LSA (Latent Semantic Analysis, LSA)

潜在语义分析(Latent Semantic Analysis, LSA)是一种常用的简单主题模型。LSA是基于奇异值分解(SVD)方法得到的一种文本主题方式。
A m ∗ n = U m ∗ m ∑ m ∗ n V n ∗ n T A_{m*n} = U_{m*m} \sum_{m*n}V_{n*n}^T Amn=UmmmnVnnT
A m ∗ n ≈ U m ∗ k ∑ k ∗ k V n ∗ k T A_{m*n} \approx U_{m*k} \sum_{k*k}V_{n*k}^T AmnUmkkkVnkT
总结:我们输入的有m个文本,每个文本有n个词。而 A i j A_{ij} Aij对应第 i i i个文本的第 j j j个词的特征值。 k k k是我们假设的主题数,一般要比文本数少。SVD分解后, U i l U_{il} Uil对应的第 i i i个文本和第 l l l个主题的相关度。 V j m V_{jm} Vjm对应第 j j j个词和第 m m m个词义的相关度。 ∑ l m \sum_{lm} lm对应第 l l l个主题和第 m m m个词义的相关度。
在这里插入图片描述
通过SVD矩阵我们可以得到文本、词与主题、语义之间的相关性,但是这个时候计算出来的内容存在负数,我们比较难解释。最终我们可以对LSI得到文本主题矩阵使用余弦相似度计算文本的相似度计算。最终我们得到第一个和第三个文档比较相似,和第二个文档不太相似。(备注:这个时候直接在文本主题矩阵的基础上直接应用聚类算法即可)。
除非数据规模比较小,而且希望快速的粗粒度找出一些主题分布关系,否则我们一般不会是使用LSA主题模型。
优点

  • 原理简单,一次SVD分解即可得到主题模型,同时可以解决词义的问题。
    缺点
  • SVD分解的计算非常耗时,对于高纬度矩阵做SVD分解非常困难;
  • 主题模型数量的选取对于结果影响非常大,很难选择合适的k值;
  • LSA模型不是概率模型,缺乏统计基础,结果难以直观的解释。

1.3 pLSA

pLSA的另一个名称是Probabilistic Latent Semantic Indexing(pLSI),假定在一篇文档d中,主题用c来表示,词用w来表示,则有下列公式:
p ( w , d ) = ∑ c p ( c ) p ( d ∣ c ) p ( w ∣ c ) = p ( d ) ∑ c p ( c ∣ d ) p ( w ∣ c ) p(w,d) = \sum_c p(c)p(d|c)p(w|c)=p(d)\sum_c p(c|d)p(w|c) p(w,d)=cp(c)p(dc)p(wc)=p(d)cp(cd)p(wc)
文档积决定了我的主题:
p ( w ∣ d ) = p ( w , d ) p ( d ) = ∑ c p ( c ∣ d ) p ( w ∣ c ) p(w|d) = \frac{p(w,d)}{p(d)}=\sum_c p(c|d)p(w|c) p(wd)=p(d)p(w,d)=cp(cd)p(wc)
p ( 词 语 ∣ 文 档 ) = ∑ 主 题 p ( 词 语 ∣ 主 题 ) x p ( 主 题 ∣ 文 档 ) p(词语|文档)=\sum_{主题}p(词语|主题)xp(主题|文档) p()=p()xp()
在这里插入图片描述
文档决定主题,主题决定单词,这就是这样的一个结构

2. LDA以及狄拉克雷分布

2.1 概率知识回顾

2.1.1 先验概率、后验概率及似然函数

  • 先验概率:在事情尚未发生之前,对事情发生的概率的估算。利用过去历史资料计算出来得到的先验概率叫做客观先验概率;凭主观经验来判断而得到的先验概率叫做主观先验概率

  • 后验概率:通过调查或其他方式获取新的附加信息,利用贝叶斯公式对先验概率进行修正后,而得到的概率。可以说是通过一个调查问卷的形式进行。

  • 似然函数:给定模型参数 θ \theta θ的条件下,样本数据服从这一概率模型的相似程度。
    p ( θ i ∣ X ) = p ( X ∣ θ i ) p ( θ i ) ∑ j p ( X ∣ θ j ) p ( θ j ) p(\theta_i|X)=\frac{p(X|\theta_i)p(\theta_i)}{\sum_j p(X|\theta_j)p(\theta_j)} p(θiX)=j</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值