基于主题的关键词提取方法对比研究(中)
- 格式:doc
- 大小:506.50 KB
- 文档页数:9
验分布与似然函数是共轭的。LDA算法中,对于一个随机变量而言,其似然函数为多项式分布,并且其先验分布为Dirichlet分布,那么其后验概率仍为Dirichlet分布。LDA算法中之所以选择Dirichlet因为可以减轻计算量。给一个例子说明Dirichlet分布,假设我们在和一个不老实的人玩掷骰子游戏。按常理我们觉得骰子每一面出现的几率都是1/6,但是掷骰子的人连续掷出6,这让我们觉得骰子被做了手脚,使得这个骰子出现6的几率更高。而我们又不确定这个骰子出现6的概率到底是多少,所以我们猜测有50%的概率是:6出现的概率2/7,其它各面1/7;有25%的概率是:6出现的概率3/8,其它各面1/8;还有25%的概率是:每个面出现的概率都为1/6,也就是那个人没有作弊,走运而已。用图表表示如下表3.1:
表 3.1 骰子游戏概率
可能性筛子面 1 2 3 4 5 6
0.5 概率1/7 1/7 1/7 1/7 1/7 2/7
0.25 概率1/8 1/8 1/8 1/8 1/8 3/8
0.25 概率1/6 1/6 1/6 1/6 1/6 1/6
我们所猜测的值,如果设为X的话,则表示X的最自然的分布便是Dirichlet分布。设随机变量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)则表示了该概率组合出现的概率,也就是概率的概率。这里需要注意的输入参数α,它表示了各个基本事件的权重。
图 3.2 Dirichlet分布受到 参数的影响
Dirichlet分布受参数α的控制,由图3.2中可以看出当α=[1,1,1]时,分布较为平均;当α=[0.1,0.1,0.1]时,分布集中于边缘;当α=[10,10,10],分布集中于中心区域中一个较小的范围;当α=[2,5,15],分布集中于偏离中心的一个小范围内。对于Dirichlet分布而言,α的分量大小控制分布的集中程度,α分量差异程度控制着分布的位置。
3.2 潜在语义分析(LSA)
潜在语义分析(Latent Semantic Analysis)或者潜在语义索引(Latent Semantic Index),是1988年S.T. Dumais[27]等人提出了一种新的信息检索代数模型,是用于知识获取和展示的计算理论和方法,它使用统计计算的方法对大量的文本集进行分析,从而提取出词与词之间潜在的语义结构,并用这种潜在的语义结构,来表示词和文本,达到消除词之间的相关性和简化文本向量实现降维的目的。
LSA是基于线性代数理论进行语义分析的一种理论方法,它的核心思想是认为文档中词与词之间存在着某种隐含的语义关系(称之为语义空间),这种语义空间在文档中的上下文结构中,通过统计分析方法可以得到。在语义空间中同义词被定义为,具有相同或类似含义的词语间有一个相同的语义空间,而对于那种一词多义的词语而言,则根据用法的不同会存在不同的语义空间结构中。通过挖掘这种隐含语义结构,有利于进一步消除文档中同义、多义现象在文档表达过程中造成的影响。解决语义混乱问题的一个关键步骤就是如何将文档和词映射到同一语义空间中进行分析研究。在这里主要用到一个方法即奇异值分解[28](Singular Value Decomposition,SVD)。SVD分解的重要意义在于将文档从稀疏的高维词汇空间映射到一个低维的向量空间[29]。
LSA 在信息滤波、文档索引、视频检索、文本分类与聚类、图像检索、信息抽取等有着很广泛的应用。
3.2.1 潜在语义分析模型介绍
LSA算法是信息检索中潜在语义分析中比较经典的算法,假设文档集合为D={d1,d2,d3,…d N},词汇集合为W={ w1,w2,w3,…w M },那么我们可以将数据集合表示称为一个M×N共生矩阵,也就是词项—文档矩阵的概念,即由M个词项和N篇文档组成的一个M×N的权重矩阵C,矩阵的每行代表一个词项,每列代表一篇文档。这种表示的优点包括:可以将查询和文档转换成同一空间下的向量,可以基于余弦相似度进行评分计算,能够对不同的词项赋予不同的权重,除了文档检索之外还可以推广到诸如聚类等其他领域,等等。但是,向量空间表示方法没有能力处理自然语言中的两个经典问题:一义多词(synonymy)和一词多义(polysemy)问题。一义多词指的是不同的词(比如car 和automobile)具有相同的含义。向量空间表示方法不能捕捉诸如car 和
automobile这类同义词之间的关系,而是将它们分别表示成独立的一维。因此,如果我们计算查询向量q(如car)和文档dr(同时包含有car和automobile的文档)的相似度时,就会低估了用户所期望的相似度。而一词多义指的是某个词项(如match)具有多个含义,因此在计算相似度时,就会高估了用户所期望的相似度。一个很自然的问题就是,能否利用词项的共现情况(比如,match是和fire还是score在某篇文档中共现),来获得词项的隐性语义关联从而减轻这些问题的影响?
即使对一个中等规模的文档集来说,词项—文档矩阵C也可能有成千上万个行和列,它的秩的数目大概也是这么个数量级。在LSA中,我们使用SVD分解来构造C 的一个低秩逼近矩阵C k,其中k远小于矩阵C原始的秩。这样,我们就可以将词项—文档矩阵中每行和每列(分别对应每个词项和每篇文档)映射到一个k维空间,k个主特征向量(对应k个最大的特征值)可以定义该空间。需要注意的是,不管k取值如何,矩阵C k仍然是一个M×N的矩阵。接下来,和原始空间一样,我们利用新的k 维空间的LSA表示来计算向量的相似度。可以通过k q k
=∑-1U T q这个式子来变换到LSI空间。下面简单介绍一下这个过映射过程的实现。
SVD 可以用于解决矩阵低秩逼近问题,接着我们将其应用到词项—文档矩阵的逼近问题上来。为此,我们要进行如下三步操作:
(1)给定C,按照公式构造SVD分解,因此 C = UΣV T;
(2)把Σ中对角线上r-k个最小奇异值置为0,从而得到Σk;
(3)计算C k = UΣk V T作为C的逼近。
由于Σk最多包含k个非零元素,所以C k的秩不高于k。然后,我们回顾一下上面例子的的直观性结果,即小特征值对于矩阵乘法的影响也小。因此,将这些小特征值替换成0将不会对最后的乘积有实质性影响,也就是说该乘积接近C。Ck到C的逼近性,如果在原始空间中查询和文档相近,那么在新的k维空间中它们仍然比较接近。但是这本身并不是十分有趣,特别是当原始的稀疏矩阵转换成低维空间中的密集矩阵新空间下的计算开销会高于原始空间。
一般来说,可以将求 C 的低秩逼近看成是一个约束优化问题,在C k的秩最多为k 的条件下,从C出发寻找词项和文档的一个表示C k,当将词项-档表示到k 维空间时,SVD 应该将共现上相似的词项合在一起。这个直觉也意味着,检索的质量不仅不太会受降维的影响,而且实际上有可能会提高。
整个LSA模型也可以表示成下图3.3。