1 LDA模型
1.1 LDA的应用方向
信息提取和搜索(语义分析);文档分类、聚类、文章摘要、社区挖掘;基于内容的图像聚类、目标识别(以及其他计算机视觉应用);生物信息数据的应用
1.2 LDA出现的原因
前文提到的“朴素贝叶斯”可以胜任许多文本分类问题,但是无法解决一词多义(花:花朵和花费)和多词一义(陛下:天子和皇上)的问题·。因此可以通过增加“主题”的方式,一定程度上解决这些问题。
针对一词多义的情况:在主题模型中一个词可能被映射到多个主题中。
针对多词一义的情况:在主题模型中多个同意思的词可能被映射到某个主题的概率很高。
2 Beta分布-Dirichlet分布
2.1 Beta分布介绍
Beta分布的概率密度为:,其中系数B为:
PS:函数的介绍
函数是阶乘在实数上的推广:
由此:
2.2 Beta分布的期望
2.3 共轭先验分布相关介绍
由于x为给定样本,有时被称为“证据”,仅仅是归一化因子,如果不关心的具体值,只考察取何值时后验概率最大,所以省去分母:
在贝叶斯概率理论中,如果后验概率和先验概率满足同样的分布律(即两者概率相等),那么先验分布和后验分布叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。
- 二项分布和先验问题:投掷一个非均匀硬币,可以使用参数为的伯努利模型,为硬币正面的概率,那么结果x的分布形式为:;两点分布/二项分布的共轭先验是Beta分布,它具有两个参数,其分布形式为
- 先验概率和后验概率的关系:
先验概率——
Beta分布——
后验概率——
后验概率是参数为的Beta分布,即:伯努利分布/二项分布的共轭先验是Beta分布。
分析:参数是决定参数的参数,即超参数;我们可以看到参数的指数是由共同决定的;这个指数在投硬币实验中的实践意义——投币过程中,正面朝上的次数,和先验的给出了在没有任何实验前提下,硬币朝上的概率分配,因此和可被称为“伪计数”。
2.4 共轭先验的直接推广
从Beta分布推广至Dirichlet分布:
简记为:,其中:
由Beta分布的期望可推广至Dirichlet分布的期望为:
3 Dirichlet分布分析
3.1 Dirichlet分布
公式:
是参数变量,共有K个;
定义在维上:且且定义在(K-1)维的单纯形上,其他区域的概率密度为0。
3.2 对称Dirichlet分布
参数分析:
4 LDA的解释
4.1 说明
共有m篇文章,一共涉及了K个主题;
每篇文章(长度为)都有各自的主题分布,主题分布是多项分布,该多项分布的参数服从Dirichlet分布,该分布的参数是;
每个主题都有各自的词分布,词分布为多项分布,该多项分布的参数服从Dirichlet分布,该分布的参数是;
对于某篇文章中的第n个词,首先从该文章的主题分布中采样一个主题,然后在这个主题对应的词分布中采样一个词。不断重复这个随机生成过程,直到m篇文章全部完成上述过程。
图中字母的解释:
K——主题个数
M——文档总数
——第m个文档的单词总数
——每个Topic下词的多项分布的Dirichlet先验参数,事先给出
——每个文档Topic的多项分布的Dirichlet先验参数,事先给出
zmn——第m个文档中第n个词的主题
wmn——m个文档中的第n个词
——隐含变量,表示第m个文档下的Topic分布,k维(k维)
——隐含变量,表示第k个Topic下词的分布,v维(v为词典中term总数)
由图写出联合分布:
4.2 Gibbs Sampling
初始时,随机给文本中的每个词分配主题,然后统计每个主题下出现词的数量以及每个文档下出现主题的数量,每一轮排除当前词的主题分布。根据其他所有词的主题分布估计当前词分配各个主题的概率。直到每个文档的主题分布和每个主题的词分布收敛为止。
,其中表示除了词以外属于该主题的其他词。
当近似于0时:
表示某个词属于k主题的概率与当前其它属于k主题的词的个数除以这些词的总数成正比,类似频率。
4.2 主题个数的确定
4.3 概率分布的困惑度/复杂度Perplexity
4.4 困惑度/复杂度Perplexity与主题模型
ps:一个网页i的重要度可以使用指向网页i的其他网页j的重要度加权得到。
其中:
——网页i的重要性
d——阻尼系数
——指向网页i的网页集合
——网页j指向的网页集合
当网页换成句子时,仅需考虑将“链接”加权:
5 LDA总结
- LDA可以很好得解决一词多义和多词一义的问题。
- LDA用于短文档的效果是不明显的。
- LDA可以和其他算法相结合。首先使用LDA将长度为的文档降维到K维(主题的数目),同时给出每个主题的概率(主题分布),从而可以使用if-idf继续分析或者直接作为文档的特征进入聚类或者标签传播算法——用于社区发现等问题。
6 实践
背景:计算聊天记录中每个QQ号以及众人感兴趣的话题。
步骤:
(1)获取QQ群聊天记录:txt文本格式。
(2)整理成“QQ号/时间/留言”的规则形式
- 正则表达式
- 清洗特定词,例如:表情、@XX
- 使用停止词库
- 获得csv表格数据
(3)合并相同QQ号的留言
(4)LDA模型计算主题
(5)计算每个QQ号以及众人感兴趣的话题。