pLSA 原理 上|学习笔记

简介: 快速学习 pLSA 原理 上

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践pLSA 原理 上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15529


pLSA 原理 上

 

pLSA 模型——概率表达式

开始有数学的部分,即pLSA模型的一些细节。

Θd: doc-topic分布的参数,T= {tk}: topic-word分布的参数

单个文档概率(假设隐变量Z已知)

image.gif单个文档概率(假设隐变量Z未知)

image.gif优化目标:找到Θd,T让 p(d|Θd,T)最大

Z有Ks种可能取值→Ks项乘积的求和

首先使用两个符号,一个是Θd,D是表示文档,一个文档D,Θd是文档它的doc-topic分布的参数,因为定义了doc-topic分布是一个K选一的零散分布,有个参数是一个KV的向量。tk参数的主题的概率,是ΘdK。

相当于掷骰子,掷骰子相当于六选一,扔出来就知道一个结果,六种情况下的一种,骰子可能很不均匀,得到的概率很不一样,比如可以用六维的向量表示每一面的概率,每次只能选一个。T表示topic-word分布,是W选一,W是词的个数,比如100000个词,每次从topic里选一个词出来,就是从100000个中选一个词,是一个18维的向量,和必须都为一,每一个tk都是一个1维位的向量,描述文档生成的过程是一个一个词生成,每个词如果知道它的主题,就是从T,zi的主题里抽出wi,概率是tzi,wi。还要算zi是某个值的概率。Z是随机变量,Z是很多zi组成,每个zi是随机变量,它可以取1到K的值的某一个,比如取1的时候,概率就是Θd1。当取K时,以及ΘdK的概率,用Θd,wi来表示。对每个词的概率相当于依托这一项。所有词的概率是所有i这些项相乘得到,比如文档里有10000个词,就是10000项的成绩,假设变量Z是已知的,但实际上Z是不知道,所以Z要代表第二个词的主题,比如与wi是对应的,把一个文档里的词编号w1一直编译到w10000,假设文档是10000个词,每个w1对应一个z1,w10000对应一个z10000

现在的情况下z是未知的,算文档T的概率,简单粗暴的办法是把所有可能的Z都穷举一遍,然后把对应的概率加起来。成绩加Z,Z因为很长,可能包含10000个zi,从z1到z10000,求和实际上可以想象成10000个Θ,里面是10000个数相乘,计算上不可行。假设文档长度是S,有K的X次方种可能,取值有K的S方种的可能性,相当于里面有K项来求和,求和实际不是算文档的概率,而是算一个最优的Θd和T,最大化的概率,算最优的概率是最优的参数能够最大化的概率,可以对概率求导,对Θd求导,以及对T求导,找极值点,每个文档概率是K项,求导之后也得到多项,要算导数,算完导数才能做优化去求极值,占多项求和是不可行的。zi不是分布的参数,分布的参数不是包括Θd和T,虽然是因变量,不是关心的内容,但不得不算。S是当前文档的长度。比如S=10000,包含10000个词,可以假设100个主题,即每个词有100个主题,100种选择,属于100个主题里面的某一个。有10000个词就是100的10000次方,Z有这么多种可能,数字是天文数字。是非常难优化的。上面只是单个文档的概率,实际上优化参数是在所有的语调、所有的文档联合的概率,相当于把所有的乘起来,比如有M的文档,就M个项从D1到D概率乘起来

image.gif表达式更复杂一些,在外面再做一个连乘,简化符号就写三个文档,

image.gif一个基本思路是假设里面这项也是求和,而且个求和能分解就简单。比如符号表示连乘,Σ表示连加,假设P是可以按乘积乘法分解,里头一项变换一下,可以按z到z来分解,就是两层的求和,就可以把它按每一个z单独算再加起来。

相关文章
|
缓存 算法 NoSQL
【分布式详解】一致性算法、全局唯一ID、分布式锁、分布式事务、 分布式缓存、分布式任务、分布式会话
分布式系统通过副本控制协议,使得从系统外部读取系统内部各个副本的数据在一定的约束条件下相同,称之为副本一致性(consistency)。副本一致性是针对分布式系统而言的,不是针对某一个副本而言。强一致性(strong consistency):任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。强一致性是程度最高的一致性要求,也是实践中最难以实现的一致性。单调一致性(monotonic consistency):任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。
1348 0
|
前端开发 Python
ElementUI上传组件el-upload自定义http-request上传到Flask服务
ElementUI上传组件el-upload自定义http-request上传到Flask服务
943 0
ElementUI上传组件el-upload自定义http-request上传到Flask服务
|
监控 物联网 Java
打造高可用系统:深入了解心跳检测机制
本文介绍了分布式系统中**心跳检测**的重要机制,用于监测系统节点的健康状态和通信畅通。心跳检测通过定期发送信号,若节点在预定期限内未响应则视为可能失效。处理机制包括重试、报警和自动修复。文章还提到了**周期检测**和**累计失效检测**两种策略,并给出Java代码示例展示心跳检测实现。此外,列举了心跳检测在分布式数据库、微服务和物联网等场景的应用,以及优化策略如动态调整心跳频率和优化超时机制。最后,强调了心跳检测对系统稳定性和高可用性的关键作用。
2195 2
|
运维 安全 Ubuntu
`/var/log/syslog` 和 `/var/log/messages` 日志详解
`/var/log/syslog` 和 `/var/log/messages` 是Linux系统的日志文件,分别在Debian和Red Hat系发行版中记录系统事件和错误。它们包含时间戳、日志级别、PID及消息内容,由`rsyslog`等守护进程管理。常用命令如`tail`和`grep`用于查看和搜索日志。日志级别从低到高包括`debug`到`emerg`,表示不同严重程度的信息。注意保护日志文件的安全,防止未授权访问,并定期使用`logrotate`进行文件轮转以管理磁盘空间。
5182 1
|
数据采集 缓存 搜索推荐
基于MPC5644的XCP 标定系统的设计
基于MPC5644的XCP 标定系统的设计
基于MPC5644的XCP 标定系统的设计
线性回归 特征扩展的原理与python代码的实现
在线性回归中,多项式扩展是种比较常见的技术,可以通过增加特征的数量和多项式项的次数来提高模型的拟合能力。 举个例子,多项式扩展可以将一个包含 n 个特征的样本向量 x 扩展为一个包含 k 个特征的样本向量,其中 k 可以是 n 的任意多项式。例如,如果我们使用二次多项式扩展,可以将样本向量[x1, x2]扩展为一个包含原始特征和交叉项的新特征向量,例如 [x1, x2, x1^2, x2^2, x1*x2]。这些新特征可以捕捉到更丰富的特征组合和非线性关系,从而提高模型的拟合能力。
|
存储 前端开发 数据安全/隐私保护
Python HTML和CSS 2:表格、传统布局以及表单 介绍
Python HTML和CSS 2:表格、传统布局以及表单 介绍
544 0
Python HTML和CSS 2:表格、传统布局以及表单 介绍
|
消息中间件 算法 Java
Java 高级面试知识点汇总!
1、常用设计模式 单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 代理模式:动态代理和静态代理,什么时候使用动态代理。
1740 0
|
Ubuntu 网络安全 数据安全/隐私保护