热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

文本表示模型(1):主题模型LSA、pLSA、LDA

目录文本表示模型主题模型LSApLSALDA文本表示模型文本表示模型可分为以下几种:基于one-hot,tf-idf,textrank等的bag-of-words


目录

  • 文本表示模型
    • 主题模型
      • LSA
      • pLSA
      • LDA


文本表示模型

文本表示模型可分为以下几种:


  • 基于one-hot, tf-idf, textrank等的bag-of-words;
  • 基于计数的,主题模型,如LSA, pLSA, LDA
  • 基于预测的,静态词嵌入,如Word2Vec, FastText, Glove
  • 基于大规模预训练的,动态词嵌入,如BERT, ELMo, GPT, T5

本文讲解第二种“主题模型”。


主题模型

主题模型的目标是在大量的文档中自动发现隐含的主题信息


LSA

LSA(Latent Semantic Analysis,潜在语义分析)

首先构建doc-word共现矩阵,矩阵元素为词的tf-idf值(常见词不一定和主题相关,所以tf-idf比词频适用)。

为了找到潜在的语义(主题),LSA利用奇异值分解SVD,把高维的doc-word共现矩阵映射(降维)到低维的潜在语义空间,得到映射后的文档向量和词向量,并且具有相似主题分布的文档(或词)向量接近。


如上图所示,SVD将doc-word共现矩阵 A 分解为U、S、V三个矩阵的乘积


  • U∈R(m⨉t)U∈ℝ^{(m⨉t)}UR(mt)是潜在语义空间中的doc-topic矩阵,行表示按t个主题表达的文档向量;
  • VT∈R(n⨉t)V^T∈ℝ^{(n⨉t)}VTR(nt)是潜在语义空间中的topic-word矩阵,列代表按t个主题表达的词向量;
  • U和V是列向量彼此正交的正交矩阵;
  • S 是一个对角矩阵,奇异值在对角线上降序排列,可视为该维度的重要性;
  • t 是一个超参数,根据待查找的主题数量进行选择和调整。

有了LSA文档向量和词向量,可计算不同文档的相似度、不同词的相似度、词(或query)与文档的相似度

缺点:


  • 缺乏严谨的数理统计基础
  • SVD分解慢。如果矩阵大小是N,SVD的计算复杂度达到O(N^3),不过可以使用Truncated SVD等更快的方法。

pLSA

pLSA(probabilistic Latent Semantic Analysis,概率潜在语义分析)

将LSA的思想带入到概率统计模型中,不再使用SVD,是一种生成式概率图模型(可以写成若干条件概率连乘),用EM算法学习模型参数。



如上图,给定文档 d,主题 z 以 P(z|d) 的概率出现在该文档中;给定主题 z,单词 w 以 P(w|z) 的概率从主题 z 中被选取。在这个模型中,d 和 w 是已经观测到的变量,而 z 是未知的变量(代表潜在的主题)。其中 P(z|d) 和 P(w|z) 是pLSA模型需要求解的参数。

注:pLSA 模型和 LSA 模型之间存在一个直接的平行对应关系:

缺点:


  • 无法得知新文档的 P(d)
  • pLSA 的参数量随文档数量线性增长,容易过拟合

LDA

LDA(Latent Drichlet Allocation,潜在狄利克雷分配)

LDA 是 pLSA 的贝叶斯版本,在 pLSA 的基础上,引入了参数的狄利克雷先验分布。


  • pLSA采用的是频率学派思想:把 P(z|d) 和 P(w|z) 这两个待估计的参数,看作固定的未知常数,可以求解出来(通过样本计算最大似然估计)。
  • LDA采用的是贝叶斯学派思想:把 P(z|d) 和 P(w|z) 这两个待估计的参数,看作服从一定分布的随机变量(这个分布符合狄利克雷先验概率分布),可通过样本修正先验分布,获得后验分布;
  • 狄利克雷是一种「分布的分布」。它回答了:「给定某种分布,我看到的实际概率分布可能是什么样子?」

注:pLSA 相当于把 LDA 的先验分布转为均匀分布,然后对参数求最大后验估计(在先验是均匀分布的前提下,这也等价于求参数的最大似然估计),而这也正反映出了一个较为合理的先验对于建模是非常重要的。


P(w,Z,B,Θ∣α,η)=∏t=1Tp(Θt∣α)∏i=1Kp(βk∣η)(∏n=1NP(wt,n∣zt,n,βk)P(zt,n∣Θt))P(w,Z,\Beta,\Theta|\alpha,\eta)=\prod_{t=1}^Tp(\Theta_t|\alpha)\prod_{i=1}^Kp(\beta_k|\eta)(\prod_{n=1}^NP(w_{t,n} | z_{t,n}, \beta_k) P(z_{t,n|\Theta_t}))P(w,Z,B,Θα,η)=t=1Tp(Θtα)i=1Kp(βkη)(n=1NP(wt,nzt,n,βk)P(zt,nΘt))

上图中的 α 和 η 是狄利克雷分布的超参数,通过极大似然学习,分别决定了主题分布 Θ\ThetaΘ 和词分布 β\betaβ 。主题分布 Θ\ThetaΘ 是一个维度为文档数 × 主题数的矩阵,矩阵元素 θi,j\theta_{i,j}θi,j 是主题 j 在文档 i 中的比例;词分布 β\betaβ 是一个维度为主题数 × 词数的矩阵,矩阵元素 βi,j\beta_{i,j}βi,j 是词 j 在主题 k 中的频次。在这个模型中,只有文档分布 w 是观测变量。文档分布 www 是一个维度为文档数 × 词数的矩阵,矩阵元素 wi,jw_{i,j}wi,j 是词 j 在文档 i 中出现的频次。

求解主题分布和词分布,用Gibbs Sampling。首先随机初始化,多次遍历每个词,用其他所有词来预测它,逐渐收敛,获得近似解。


使用 LDA,可以从文档语料库中提取人类可解释的主题,其中每个主题都以与之关联度最高的词语作为特征。例如,主题 2 可以用诸如「石油、天然气、钻井、管道、楔石、能量」等术语来表示。此外,在给定一个新文档的条件下,我们可以获得表示其主题混合的向量,例如,5% 的主题 1,70% 的主题 2,10%的主题 3 等。通常来说,这些向量对下游应用非常有用。


Reference:


  • 《深度学习进阶-NLP》,p63-94
  • 《百面机器学习》p133-138
  • 《西瓜书》p337-339
  • 一文读懂如何用LSA、PSLA、LDA和lda2vec进行主题建模
  • 浅谈话题模型:LSA、PLSA、LDA
  • topic model (LSA、PLSA、LDA)

推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 软件测试工程师,需要达到什么水平才能顺利拿到 20k+ 无压力?
    前言最近看到很多应届生晒offer,稍有名气点的公司给出的价格都是一年30多W或者月薪20几k,相比之下工作几年的自己薪资确实很寒酸.根据我自己找工作经历,二线城市一般小公司招聘 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • Two Sigma人均22万英镑~
    近期原创文章: ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • vlfilecopy(findfile(vllist>string(10811110311146103105102)))(vll的简单介绍
    本文目录一览:1、一段lisp代码求解释2、运 ... [详细]
  • SLAM优秀开源工程最全汇总
    https:zhuanlan.zhihu.comp145750808 1、CartographerCartographer是一个系统,可跨多个平台和传感器配置以2D和3D形式提供实 ... [详细]
  • 【BERT】BERT的嵌入层是如何实现的?看完你就明白了
    作者:__编译:ronghuaiyang导读非常简单直白的语言解释了BERT中的嵌入层的组成以及实现的方式。介绍在本文中,我将解释BERT ... [详细]
author-avatar
手浪用户2602936705
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有