当前位置:文档之家› 微博项目资料整理

微博项目资料整理

利用周末的时间,做了微博相关资料的整理,和大家共同分享(附件:有相关的论文可供参考)。

一、微博内容挖掘主要技术支撑:文本挖掘技术相关理论模型topic model。

其中包含两个主要的模型:分别为PLSA模型和LDA模型.1.1 PLSA模型LSA:潜在语义分析PLSA:概率潜在语义分析1. 引子Bag-of-Words 模型是NLP和IR领域中的一个基本假设。

在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语法或者词序的部分。

BOW在传统NLP领域取得了巨大的成功,在计算机视觉领域(Computer Vision)也开始崭露头角,但在实际应用过程中,它却有一些不可避免的缺陷,比如:1.稀疏性(Sparseness): 对于大词典,尤其是包括了生僻字的词典,文档稀疏性不可避免;2.多义词(Polysem): 一词多义在文档中是常见的现象,BOW模型只统计单词出现的次数,而忽略了他们之间的区别;3.同义词(Synonym): 同样的,在不同的文档中,或者在相同的文档中,可以有多个单词表示同一个意思;从同义词和多义词问题我们可以看到,单词也许不是文档的最基本组成元素,在单词与文档之间还有一层隐含的关系,我们称之为主题(Topic)。

我们在写文章时,首先想到的是文章的主题,然后才根据主题选择合适的单词来表达自己的观点。

在BOW模型中引入Topic的因素,成为了大家研究的方向,这就是我们要讲的Latent Semantic Analysis (LSA) 和 probabilitistic Latent Semantic Analysis (pLSA),2. LSA简介已知一个文档数据集及相应的词典,采用BOW模型假设,我们可以将数据集表示为一个的共生矩阵,,其中,表示词典中的第j个单词在第i个文档中出现的次数。

LSA的基本思想就是,将document从稀疏的高维Vocabulary空间映射到一个低维的向量空间,我们称之为隐含语义空间(Latent Semantic Space).如何得到这个低维空间呢,和PCA采用特征值分解的思想类似,作者采用了奇异值分解(Singular Value Decomposition)的方式来求解Latent Semantic Space。

标准的SVD可以写为:其中,和均为正交矩阵,有,是包含所有奇异值的对角矩阵。

LSA降维的方式就是只取中最大的K个奇异值,而其他置为0,得到的近似矩阵,于是得到了共生矩阵的近似:注意到如果我们利用内积来计算文档与文档之间的的相似度,即的自相关矩阵,可以得到:。

于是,我们可以把解释为文档样本在Latent Space上的坐标,而则是两个空间之间的变换矩阵。

下图形象的展示了LSA的过程:由LSA在训练集合上得到的参数,当一个新的文档向量到来时,我们可以利用下式将其原始termspace映射到latent space:LSA的优点1.低维空间表示可以刻画同义词,同义词会对应着相同或相似的主题;2.降维可去除部分噪声,是特征更鲁棒;3.充分利用冗余数据;4.无监督/完全自动化;5.与语言无关;LSA的不足1.没有刻画term出现次数的概率模型;2.无法解决多义词的问题;3.SVD的优化目标基于L-2 norm 或者是 Frobenius Norm的,这相当于隐含了对数据的高斯噪声假设。

而term出现的次数是非负的,这明显不符合Gaussian假设,而更接近Multi-nomial分布;4.对于count vectors 而言,欧式距离表达是不合适的(重建时会产生负数);5.特征向量的方向没有对应的物理解释;6.SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练;7.维数的选择是ad-hoc的;3. pLSA类似于LSA的思想,在pLSA中也引入了一个Latent class,但这次要用概率模型的方式来表达LSA的问题,如下图:在这个probabilitistic模型中,我们引入一个Latent variable ,这对应着一个潜在的语义层。

于是,完整的模型为:代表文档在数据集中出现的概率;代表当确定了语义时,相关的term(word)出现的机会分别是多少;表示一个文档中语义分布的情况。

利用以上这些定义,我们就可以一个生成式模型(generative model),利用它产生新的数据:1.首先根据分布随机抽样选择一个文档;2.选定文档后,根据抽样选择文档表达的语义;3.选定语义后,根据选择文档的用词;这样,我们得到了一个观测对,多次重复这一过程我们就得到了一个类似N的共生矩阵,而潜在的语义在观测值中并没有表现出来。

为了刻画的联合分布,我们可得到以下公式:用图模型来表示以上公式如Figure3中的(a),而(b)是pLSA模型的另外一种等价形式,公式可写作:模型确定好了,已知的数据集N,我们可以利用Maximum Likelihood准则来确定模型的参数,目标函数可写作:此目标函数也可以解释为使与两个分布之间的K-L Divergence最小,即更好的刻画共生矩阵的实际分布。

EM求解在似然值的表达式中存在对数内部的加运算,所以球pLSA最大似然解的问题没有闭式解,我们只能求助于EM算法,下面我们从最简单的启发式的角度推导出pLSA的求解过程。

既然似然值无法直接求解最大值,那么我们转而优化其下界,并通过迭代不断的将此下界提高,那么最终得到的解即为近似最大解,当然,此过程中寻求的下界要求尽量紧确。

利用琴生不等式和概率小于1的性质,我们可以得到如下推导:这样,我们就把拿到了外面来,接下来我们就可以对直接求解了。

注意这个最大化问题的约束条件是:利用拉格朗日法,我们可以得到优化目标:对此目标函数求导,我们可以得到EM算法中的M-step:而EM算法中的E-step也就是求已知时隐含变量的后验概率:观察可以得到,E-step与M-step互相依赖,可以证明每一步都使得下界的期望值提高,通过不断的迭代求解即可最后求得原问题的近似最大似然解。

pLSA与LSA的关系由Figure4可以看到pLSA与LSA之间的对应关系。

其中刻画了Latent Space也即topic space的信息;刻画了topic space与term space之间的关系,对应着LSA中的正交基;在文档分类是,这两部分也就是我们在模型训练结束需要保存的信息,当一个新的文档的到来时,我们可以再次利用EM算法得到新的文档与主题的对应关系,并由此得到文档在topic空间上的表示。

pLSA的优势1.定义了概率模型,而且每个变量以及相应的概率分布和条件概率分布都有明确的物理解释;2.相比于LSA隐含了高斯分布假设,pLSA隐含的Multi-nomial分布假设更符合文本特性;3.pLSA的优化目标是是KL-divergence最小,而不是依赖于最小均方误差等准则;4.可以利用各种model selection和complexity control准则来确定topic的维数;pLSA的不足1.概率模型不够完备:在document层面上没有提供合适的概率模型,使得pLSA并不是完备的生成式模型,而必须在确定document i的情况下才能对模型进行随机抽样;2.随着document和term 个数的增加,pLSA模型也线性增加,变得越来越庞大;3.当一个新的document来到时,没有一个好的方式得到$p(d_i)$;4.EM算法需要反复的迭代,需要很大计算量;1.2 LDA模型LDA是比PLSA更“高级”的一种topic model。

“高级”在哪里呢?--它是一个Bayes Hierarchy Model。

Topic model的一个通式为P(w|d) = sigma{ p(w|z)*p(z|d) }其中云里雾里的topic,说白了就是一个一元语言模型,没有任何特殊的地方。

对应上面的公式,就是 p(w|z)。

而topic model,一般指的是两种分布:第一种就是topic~word的分布,就是p(w|z)。

第二种是p(z|d),这个是doc~topic分布。

有了这两种分布后,这个文档集合就有了一种立体化的感觉,闭上眼睛,仔细地想:doc|----------------------------------------| | ... |topic_1 topic_2 topic_m而topic_i|----------------------------------------| | ... |word_1 word_2 word_n一个三层的文档表示空间跃然纸上。

而最上层,就是人们常说的“降维”,其实是把文档投影到了“topic”空间。

doc~topic~word这个Bayes Chain,就可以涵盖LDA的一个最基本的思想。

而PLSA其实也是这个链,那它和LDA有什么区别呢?最大的区别就在于,doc~topic这一级,PLSA把这一级的所有变量都看作模型的参数,即有多少文档那么就有多少模型的参数;而LDA引入了一个超参数,对doc~topic这一个层级进行model。

这样无论文档有多少,那么最外层模型显露出来的[对于doc~topic]就只有一个超参数。

那么加什么先验呢?最基本的PLSA和LDA在刻画doc~topic和topic~word都利用了一个模型,就是multinomial model。

为了计算的方便及先验的有意义,共轭先验是首选。

multinomial distribution的共轭分布是Dirichlet distribution,很nice的一个分布。

这也是Latent Dirichlet Allocation中Dirichlet的由来。

Dirichlet prior是一个巨牛的先验:Bayes prior smoothing的先验也是Dirichlet,因为在一元语言模型中,也采用了multinomial来刻画。

而且在PLSA中引入的先验也是Dirichlet。

那么它到底有什么好处呢?让大家这么对它着迷。

计算简单性是大家都知道的,现在说一点它的奇妙的implict idea:拿Bayes prior smoothing说:P(w|d) = {c(w,d)+mu*p(w|c)} / {|d| + mu}而最大似然的估计是P_ml(w|d) = c(w,d) / |d|平滑后的分母为c(w,d)+mu*p(w|c){原来为c(w,d)}平滑后的分子为|d| + mu {原来为|d|}所以奇妙的地方就在不同的地方:好像文档多了mu个词,在这个mu新词中,有mu*p(w|c)这么多的w这就是pseudo count的思想。

相关主题