学习Topic Model(主题模型)--Latent Dirichlet Allocation(LDA) 的一些摘要

2023-10-27

主题模型是文本挖掘领域非常流行的方法,在文档分类、聚类中都 有大量的应用。实际上,LDA的训练过程很简单,只需要简单的计算就可以得到结果。

Blei (2003)原始的LDA论文中使用的是变分法推导,用EM算法求解。方法比较难以理解,并且EM算法可能求解到的是局部最优解。由于现在基本都是用Gibbs Sampling的方法求解,我也主要阅读的是Gibbs方面的论文。  

为了看懂LDA的论文,我们必须先明白两个分布:多项式分布和Dirichlet分布。

多项式分布:一般的多项式分布是把分布看着是组合的形式,见公式

而在LDA相关论文,我们把主题产生词的分布看成是排列的方式,因此没有n!/x1!……xk! 这部分。

Dirichlet分布:文档产生主题的分布,主题产生词的分布,都是dirichlet分布。

共轭分布的概念:分布的分布就是共轭分布。dirichlet分布是多项式分布的共轭分布。

为了理解Dirichlet,请看一个关于骰子的例子【参考http://wenku.baidu.com/view/0492cdc4bb4cf7ec4afed0a7.html】:假设我们在和一个不老实的人玩掷骰子游戏。按常理我们觉得骰子每一面出现的几率都是1/6,但是掷骰子的人连续掷出6,这让我们觉得骰子被做了手脚,而这个骰子出现6的几率更高。而我们又不确定这个骰子出现6的概率到底是多少,所以我们猜测有50%的概率是:6出现的概率2/7,其它各面1/7;有25%的概率是:6出现的概率3/8,其它各面1/8;还有25%的概率是:每个面出现的概率都为1/6,也就是那个人没有作弊,走运而已。用图表表示如下: 



我们所猜测的值,如果设为X的话,则表示X的最自然的分布便是Dirichlet distribution。设随机变量X服从Dirichlet分布,简写为Dir(α),即X~Dir(α)。Α是一个向量,表示的是某个事件出现的次数。比如对于上例,骰子的可能输出为{1,2,3,4,5,6},假设我们分别观察到了5次1~5,10次6,那么α = {5,5,5,5,5,10}。X则表示上例中的各种概率组合,比如{1/7,1/7,1/7, 1/7,1/7,2/7};{1/8, 1/8, 1/8, 1/8, 1/8, 3/8};{1/6, 1/6, 1/6, 1/6, 1/6, 1/6},那么P(X)则表示了该概率组合出现的概率,也就是概率的概率。 以下是公式:




明白这两个分布之后,理解LDA的核心思想就简单了:

这里有两个多项式分布,第一每个文档的主题分布是多项式分布;每个主题下词的分布也是多项式分布。而每个多项式分布的概率满足Dirichlet分布。

这里的多项式分布是把主题或者词看着排列,即有序的。


真正计算求解我们需要明白Gibbs Sampling。对于Gibbs采样,我们还需要知道马尔可夫特性,即采样只与t-1个时刻有关系。

Gibbs采样的流程:

迭代T次,每迭代 一次,针对k个维度,每次更新一个维度。


注意右边分子的上标(t+1)和(t)表示时间点,Zi前面的维度都已经更新,所以是t+1,而Zi后面的维度还没有更更新,因此是t。


LDA计算的公式: 


注意这里是 T(音tao)函数化解得来的。


疑惑:为什么计算P(zi|  W,alpha,belta)的时候,要用一个概率来选择究竟用那个主题?



参考文献:

  1. 《GIBBS SAMPLING FOR THE UNINITIATED》Philip Resnik
  1. 《Gibbs Sampling Algorithms for some Bayesian Network Models》 XU Shuo
  1. 《Distributed Gibbs Sampling of Latent Topic Models: The Gritty Details》 Wany Yi
  1. 《Latent dirichlet allocation note》Zhou Li (smzlkimi@gmail.com)
  1. 《Latent Dirichlet Allocation》Blei
原文地址:http://blog.csdn.net/poson/article/details/8195908

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习Topic Model(主题模型)--Latent Dirichlet Allocation(LDA) 的一些摘要 的相关文章

随机推荐

  • VMware Centos7 安装Mysql、Node、NVM、Nginx等

    接着开始在VMware中搭建我们的大前端环境 这里我已经在我本机安装好VMware虚拟机了 Windows10 安装 VMware虚拟机并安装Centos7操作系统 一 安装Mysql 1 Mysql介绍 为啥选择Mysql而不选择Orac
  • 常量和变量(含命名规则:)

    常量 运行过程中值不会被改变又叫做字面量 常量可以是任何的基本数据类型 可分为整型数字 浮点数字 字符 字符串和布尔值 语法 宏常量 define 常量名 常量值 const 数据类型 常量名 常量值 变量 运行过程中值会被改变的量 其余同
  • mysql编程界面_MySQL图形界面客户端

    图形界面客户端 使用图形界面客户端操作数据库更直观 方便 下面三个客户端都能操作MySQL 各有各自的优点 1 Navicat Premium 下载安装包下载 关注公众号 轻松学编程 然后回复 navicat 获取 新建连接 建立MySQL
  • STM32读取和显示温湿度

    介绍 本教程全部涉及使用DHT11和STM32单片机进行湿度和温度监控 DHT11是一种湿度和温度传感器 用于测量特定环境或密闭空间中的大气温度和湿度 传感器可以测量0 C至50 C的温度 精度为1 C 它可以测量20 至90 的湿度 精度
  • 从XSS Playload 学习浏览器解码

    首先在学习之前 我们需要先知道一点 服务器在解析编码的时候 首先解析的是html实体编码 第二是URL编码 最后解析的就是编码 HTML实体编码 一个HTML解析器作为一个状态机 他从输入流中获取字符并且按照转换规则转换到另一种状态 在解析
  • 2021-09-30

    sql server 查询数据库中包含某字段的所有的表 select object name id objName Name as colName from syscolumns where name like DeptID and id
  • 龙书-第一章

    龙书 编译原理 恶补一下 但是又要显得有点成果 这样比较有成就感 所以记录一下 大概整个会按照书本的顺序来 主要记录一些觉得有必要的东西 文章目录 龙书 编译原理 1 1 语言处理器 1 2 一个编译器的结构 1 3 程序设计语言的发展历程
  • 数据挖掘学习(一):特征工程

    文章目录 概述 一 特征选择 1 选择合适的特征 1 1 过滤法选择特征 1 2 包装法选择特征 1 3 嵌入法选择特征 2 寻找高级特征 二 特征表达 2 1 缺失值处理 2 2 特殊的特征处理 2 3 离散特征的连续化处理 2 4 离散
  • 合并相同记录字段数据

    生成测试数据create table t id int psid int name varchar 80 insert into t select 1 1 name1 insert into t select 2 1 name2 inser
  • 解决d3dcompiler_42.dll错误找不到等问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 42 dll文件进行安装
  • C++之单例模式

    文章目录 什么是单例模式 单例模式中的饿汉模式 单利模式中的懒汉模式 什么是单例模式 保证一个类只有一个实例 并提供一个访问它的全局访问点 该实例被所有程序模块共享 单例模式中的饿汉模式 饿汉模式 单例定义的时候就进行实力化 空间换时间的做
  • Android 实现聊天窗口输入框弹起

    实现效果 往下滑会加载历史数据 1 在清单文件中设置
  • php 手写一个完美的守护进程

    php 守护进程原理与实践 前事提要 基本概念 基本特点 在Linux中 大概有三种方式实现脚本后台化 创建守护进程要求 1 设置文件创建屏蔽字 umask 0 2 调用fork 父进程退出 exit 3 子进程调用setsid 函数来创建
  • Linux·网络编程套接字(一)

    目录 预备知识 理解源IP地址和目的IP地址 理解源MAC地址和目的MAC地址 理解源端口号和目的端口号 PORT VS PID 认识TCP协议和UDP协议 网络字节序 socket编程接口 socket常见API sockaddr结构 简
  • SQL Server 数据库中复制一张表数据到另一张表的详细步骤与代码示例

    系列文章目录 文章目录 系列文章目录 前言 一 使用 INSERT INTO 语句 1 准备目标表 2 使用 INSERT INTO 语句 二 使用 SELECT INTO 语句 1 创建目标表 总结 前言 在 SQL Server 数据库
  • labelme标注的多分类数据集转化为YOLO数据集

    1 如何使用脚本 此脚本支持多分类的目标检测数据 1 修改dir json为自己生成的coco数据集文件夹目录 2 修改dir txt为要放进去Yolo格式标签的文件夹目录 3 直接运行代码 import os import json la
  • Qt 对话框的使用

    对话框在Qt GUI应用程序中有着广泛的用途 对话框有模态 非模态两种情况 对于参数选择的对话框 一般用模态对话框 对于显示或查看某些内容的对话框 一般用非模态对话框 对话框类QDialog 官方文档 http qt project org
  • JAVA实验:发牌程序

    编写程序 项目名和类名均为PokerGame 实现功能如下 1 共有m幅扑克牌 每幅扑克牌不包括大王和小王共52张牌 2 可能有n个人参与扑克游戏 2 lt n lt 52 3 程序运行时输入扑克牌幅数m和人数n 然后所有牌分别依次分发给n
  • 标准方差是方差无偏估计的证明——编辑版

    1 问题描述 假设有一批独立同分布的样本 x i i 1 2
  • 学习Topic Model(主题模型)--Latent Dirichlet Allocation(LDA) 的一些摘要

    主题模型是文本挖掘领域非常流行的方法 在文档分类 聚类中都 有大量的应用 实际上 LDA的训练过程很简单 只需要简单的计算就可以得到结果 Blei 2003 原始的LDA论文中使用的是变分法推导 用EM算法求解 方法比较难以理解 并且EM算