LDA主题模型简介-&&-浅谈gibbs sampling(LDA实验)

上个学期到现在陆陆续续研究了一下主题模型(topic model)这个东东。何谓“主题”呢?望文生义就知道是什么意思了,就是诸如一篇文章、一段话、一个句子所表达的中心思想。不过从统计模型的角度来说, 我们是用一个特定的词频分布来刻画主题的,并认为一篇文章、一段话、一个句子是从一个概率模型中生成的。

D. M. Blei在2003年(准确地说应该是2002年)提出的LDA(Latent Dirichlet Allocation)模型(翻译成中文就是——潜在狄利克雷分配模型)让主题模型火了起来, 今年3月份我居然还发现了一个专门的LDA的R软件包(7月份有更新),可见主题模型方兴未艾呀。主题模型是一种语言模型,是对自然语言进行建模,这个在信息检索中很有用。

LDA主题模型涉及到贝叶斯理论、Dirichlet分布、多项分布、图模型、变分推断、EM算法、Gibbs抽样等知识,不是很好懂,LDA那篇30 页的文章我看了四、五遍才基本弄明白是咋回事。那篇文章其实有点老了,但是很经典,从它衍生出来的文章现在已经有n多n多了。主题模型其实也不只是LDA 了,LDA之前也有主题模型,它是之前的一个突破,它之后也有很多对它进行改进的主题模型。需要注意的是,LDA也是有名的Linear Discriminant Analysis(线性判别分析)的缩写。

LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。由于 Dirichlet分布随机向量各分量间的弱相关性(之所以还有点“相关”,是因为各分量之和必须为1),使得我们假想的潜在主题之间也几乎是不相关的,这与很多实际问题并不相符,从而造成了LDA的又一个遗留问题。

对于语料库中的每篇文档,LDA定义了如下生成过程(generative process):

  1. 对每一篇文档,从主题分布中抽取一个主题;

  2. 从上述被抽到的主题所对应的单词分布中抽取一个单词;

  3. 重复上述过程直至遍历文档中的每一个单词。

更形式化一点说,语料库中的每一篇文档与 T (通过反复试验等方法事先给定)个主题的一个多项分布相对应,将该多项分布记为θ。每个主题又与词汇表(vocabulary)中的 V 个单词的一个多项分布相对应,将这个多项分布记为 ϕ。上述词汇表是由语料库中所有文档中的所有互异单词组成,但实际建模的时候要剔除一些停用词(stopword),还要进行一些词干化(stemming)处理等。 θ ϕ分别有一个带有超参数(hyperparameter) α β的Dirichlet先验分布。对于一篇文档dd中的每一个单词,我们从该文档所对应的多项分布θθ中抽取一个主题 z ,然后我们再从主题zz所对应的多项分布ϕ中抽取一个单词 w 。将这个过程重复Nd次,就产生了文档 d ,这里的Nd是文档 d 的单词总数。这个生成过程可以用如下的图模型表示:

plate notation - graphical model

这个图模型表示法也称作“盘子表示法”(plate notation)。图中的阴影圆圈表示可观测变量(observed variable),非阴影圆圈表示潜在变量(latent variable),箭头表示两变量间的条件依赖性(conditional dependency),方框表示重复抽样,重复次数在方框的右下角。

该模型有两个参数需要推断(infer):一个是“文档-主题”分布θ,另外是 T 个“主题-单词”分布ϕ。通过学习(learn)这两个参数,我们可以知道文档作者感兴趣的主题,以及每篇文档所涵盖的主题比例等。推断方法主要有LDA模型作者提出的变分-EM算法,还有现在常用的Gibbs抽样法。

LDA模型现在已经成为了主题建模中的一个标准。如前所述,LDA模型自从诞生之后有了蓬勃的扩展,特别是在社会网络和社会媒体研究领域最为常见。

转自:范建宁 - LDA主题模型简介


$


先把问题描述一下:
如果我们已知了topic内的每个词的词频,比如下图中topic1 中money 2 次,loan 3次…那么任意给一个文档我们可以对里面每一个词算一个产生这个词的概率即 P(w=wi|t=tj)

如下图,doc1 中的money 百分之百的来自于topic1 。doc2 中的词用topic1 无法全部解释,必须借助topic2 。

但现在问题是,如果我们只有一堆文档,Doc1,Doc2,Doc3,且拍脑袋的大概知道会有2个topic,那么怎么产生着两个topic才能最好的解释这三个文档呢?

生成过程

因此我们要计算一个概率,即文档中的这个词活脱脱的呈现在我们面前的概率P(wi),我们尽可能想办法让这个概率最大。就好像XX厂长成功了,我们要罗织功劳,让XX厂长成功这件事,最可信。

那么这个概率计算的方法如下图,简单来说就是 P(wi) = P(wi|topic) * P(topic|doc)*p(doc),我们省略p(doc)【求解没有意义】于是得到下面公式。

生成过程

现在问题又来了,如果给定一个文档di的一个词wi,他最大可能是来自哪个topic呢?

即 求解P(topic|(di,wi))?

我们知道,P(topic|(wi,di))和P((wi,di)|topic)有关系,那么P((wi,di)|topic)=P(wi|topic)P(doc|topic),即我们要使得P(wi|topic)P(doc|topic) 这两个东东的liklyhood最大。

也就是论文中的CWT和CDT,而下图公式左边 (CWT+β)/(∑CWT+Wβ) 表示的含义就是P(wi|topic),即topic产生wi的能力。后面一个是P(doc|topici)。

生成过程

为了验证有效性,我对论文中的这个例子做了实验,很遗憾没有做到他的结果,但我感觉应该是对的,其中α,大家可以调大调小了试试看,调大了的结果是每个文档接近同一个topic,即让p(wi|topici)发挥的作用小,这样p(di|topici)发挥的作用就大。 其中的β,调大的结果是让p(di|topici)发挥的作用变下,而让p(wi|topici)发挥的作用变大,体现在每个topic更集中在几个词汇上面,或者而每个词汇都尽可能的百分百概率转移到一个topic上。
大家可以看下论文,用我的代码实际感觉下数据的变化。

以下to @老师木 @王威廉 @李沐mu @等高手:
我觉得论文中的结果也很奇怪,如果在更新wi的类标号的时候,比如更新第一个doc的第二词,money,money出现了6次(2黑,4白),如果第一个更新为白,后面怎么可能更新为黑呢?如果不可能,为什么论文作者在64次迭代后,会有一些文档同一个word会打上不同的类标签,比如doc2,的bank,打了4黑1白?

我尝试过update放在每个更新之后,发现也做不到,很神奇,也许论文作者原始文档的term出现顺序不是我写的那样。

代码和论文地址:
https://github.com/pennyliang/MachineLearning-C—code/tree/master/gibbs_sampling

转自:pennyliang-浅谈gibbs sampling(LDA实验)


在该作者(http://blog.csdn.net/yangliuy/article/details/8457329)的基础上添加中文分词,实现中文主题发现。相关的文档请到原版作者查阅。谢谢! 也许是待分析的语料太少,效果好像不是很好。 目前的语料输出结果如下: topic 0 : 等 0.010036719031631947 这样 0.010036719031631947 但 0.010036719031631947 下 0.007588739041239023 很难 0.007588739041239023 一个 0.007588739041239023 于 0.007588739041239023 亿元 0.0051407585851848125 目前 0.0051407585851848125 带动 0.0051407585851848125 上 0.0051407585851848125 提出 0.0051407585851848125 地 0.0051407585851848125 做 0.0051407585851848125 技术 0.0051407585851848125 水平 0.0051407585851848125 不 0.0051407585851848125 作 0.0051407585851848125 其实 0.0051407585851848125 市场 0.0051407585851848125 topic 1 : 在 0.02684444561600685 和 0.023288888856768608 对 0.012622222304344177 进行 0.010844443924725056 为 0.009066666476428509 与 0.009066666476428509 选择 0.009066666476428509 还是 0.009066666476428509 其中 0.0072888885624706745 主要 0.0072888885624706745 而 0.0072888885624706745 只有 0.0072888885624706745 看 0.0072888885624706745 遇到 0.0072888885624706745 3 0.005511111114174128 把 0.005511111114174128 也 0.005511111114174128 注意 0.005511111114174128 时间 0.005511111114174128 一种 0.005511111114174128 topic 2 : 英语 0.012685983441770077 考生 0.012685983441770077 可以 0.011119811795651913 词汇 0.009553641080856323 句子 0.009553641080856323 时 0.007987470366060734 就 0.007987470366060734 考试 0.007987470366060734 阅读 0.007987470366060734 写作 0.007987470366060734 上 0.006421299651265144 才能 0.006421299651265144 很多 0.006421299651265144 理解 0.006421299651265144 一些 0.006421299651265144 复习 0.006421299651265144 基础 0.006421299651265144 翻译 0.006421299651265144 大家 0.006421299651265144 根据 0.006421299651265144 topic 3 : 等 0.01035533007234335 公司 0.008324872702360153 网上 0.008324872702360153 法院 0.008324872702360153 和 0.0062944162636995316 迪 0.0062944162636995316 志 0.0062944162636995316 经营 0.0062944162636995316 易趣网 0.0062944162636995316 进 0.0062944162636995316 在 0.004263959359377623 该 0.004263959359377623 其 0.004263959359377623 拥有 0.004263959359377623 5 0.004263959359377623 记者 0.004263959359377623 巨头 0.004263959359377623 直接 0.004263959359377623 研究所 0.004263959359377623 文渊阁 0.004263959359377623 topic 4 : 来 0.010161090642213821 中国 0.010161090642213821 之后 0.007682775612920523 主要 0.007682775612920523 2005年 0.005204460583627224 生产 0.005204460583627224 发展 0.005204460583627224 消费 0.005204460583627224 企业 0.005204460583627224 能 0.005204460583627224 这是 0.005204460583627224 还得 0.005204460583627224 工业 0.005204460583627224 百强 0.005204460583627224 发布 0.005204460583627224 各项 0.005204460583627224 药 0.005204460583627224 会上 0.005204460583627224 汽车 0.002726146252825856 专用汽车 0.002726146252825856 topic 5 : 表示 0.005761316511780024 信息 0.005761316511780024 人们 0.005761316511780024 认为 0.005761316511780024 接受 0.005761316511780024 时 0.005761316511780024 人 0.005761316511780024 没有 0.005761316511780024 最高 0.005761316511780024 过热 0.0030178327579051256 余 0.0030178327579051256 亩 0.0030178327579051256 工程 0.0030178327579051256 系列 0.0030178327579051256 行业 0.0030178327579051256 必须有 0.0030178327579051256 空间 0.0030178327579051256 则 0.0030178327579051256 二次 0.0030178327579051256 专家 0.0030178327579051256 topic 6 : 实力 0.008062418550252914 已经 0.008062418550252914 不同 0.008062418550252914 资金 0.005461638327687979 大量 0.005461638327687979 比 0.005461638327687979 成为 0.005461638327687979 质量 0.005461638327687979 略有 0.005461638327687979 相当 0.005461638327687979 成功 0.005461638327687979 高度 0.005461638327687979 盘 0.005461638327687979 来看 0.005461638327687979 看到 0.005461638327687979 数据 0.005461638327687979 大 0.005461638327687979 越来越多 0.005461638327687979 楼 0.005461638327687979 投资 0.0028608583379536867 topic 7 : 以 0.009867629036307335 nbsp 0.0074608903378248215 曼 0.0074608903378248215 桢 0.0074608903378248215 7 0.005054151173681021 2 0.005054151173681021 其 0.005054151173681021 300 0.005054151173681021 就是 0.005054151173681021 他 0.005054151173681021 又 0.005054151173681021 半生 0.005054151173681021 缘 0.005054151173681021 香港 0.005054151173681021 她也 0.005054151173681021 世 0.005054151173681021 璐 0.005054151173681021 祝 0.005054151173681021 鸿 0.005054151173681021 文 0.005054151173681021 topic 8 : 在 0.016857441514730453 小 0.012695109471678734 这 0.010613943450152874 袁 0.010613943450152874 电话 0.010613943450152874 上海 0.008532778359949589 东莞 0.008532778359949589 总部 0.006451612804085016 没有 0.006451612804085016 他 0.006451612804085016 大学生 0.006451612804085016 设立 0.006451612804085016 随后 0.006451612804085016 才 0.006451612804085016 广东 0.004370447248220444 不少 0.004370447248220444 依然 0.004370447248220444 回 0.004370447248220444 该公司 0.004370447248220444 15日 0.004370447248220444 topic 9 : 旅游 0.016091953963041306 游客 0.01432360801845789 解析 0.009018567390739918 五一 0.009018567390739918 接待 0.009018567390739918 增长 0.009018567390739918 再次 0.0072502209804952145 黄金周 0.0072502209804952145 南京 0.0072502209804952145 里 0.0072502209804952145 人次 0.0072502209804952145 景点 0.0072502209804952145 也 0.005481874104589224 以上 0.005481874104589224 已经 0.005481874104589224 数据 0.005481874104589224 今年 0.005481874104589224 同期 0.005481874104589224 周边 0.005481874104589224 景区 0.005481874104589224
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值