1. 引子
Bag-of-Words 模型是NLP和IR领域中的一个基本假设。在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语法或者词序的部分。BOW在传统NLP领域取得了巨大的成功,在计算机视觉领域(Computer Vision)也开始崭露头角,但在实际应用过程中,它却有一些不可避免的缺陷,比如:
从同义词和多义词问题我们可以看到,单词也许不是文档的最基本组成元素,在单词与文档之间还有一层隐含的关系,我们称之为主题(Topic)。我们在写文章时,首先想到的是文章的主题,然后才根据主题选择合适的单词来表达自己的观点。在BOW模型中引入Topic的因素,成为了大家研究的方向,这就是我们要讲的Latent Semantic Analysis (LSA) 和 probabilitistic Latent Semantic Analysis (pLSA),至于更复杂的LDA和众多其他的Topic Models,以后再详细研究。
2. LSA简介
已知一个文档数据集 D={d1,d2,...,dN} 及相应的词典 W={w1,w2,...,wM} ,采用BOW模型假设,我们可以将数据集表示为一个 N∗W 的共生矩阵, N=(n(di,wj))i,j ,其中, n(di,wj) 表示词典中的第j个单词在第i个文档中出现的次数。
LSA的基本思想就是,将document从稀疏的高维Vocabulary空间映射到一个低维的向量空间,我们称之为隐含语义空间(Latent Semantic Space).
如何得到这个低维空间呢,和PCA采用特征值分解的思想类似,作者采用了奇异值分解(Singular Value Decomposition)的方式来求解Latent Semantic Space。标准的SVD可以写为:
N=UΣVt
N˜=UΣ˜Vt
由LSA在训练集合上得到的参数,当一个新的文档向量 x⃗ test 到来时,我们可以利用下式将其原始term space映射到latent space:
x⃗ ˜=Σ˜−1Vtx⃗ test
LSA的优点
LSA的不足
3. pLSA
类似于LSA的思想,在pLSA中也引入了一个Latent class,但这次要用概率模型的方式来表达LSA的问题,如下图:
在这个probabilitistic模型中,我们引入一个Latent variable zk∈{z1,z2,...,zK} ,这对应着一个潜在的语义层。于是,完整的模型为: p(di) 代表文档在数据集中出现的概率; p(wj|zk) 代表当确定了语义 zk 时,相关的term(word)出现的机会分别是多少; p(zk|di) 表示一个文档中语义分布的情况。利用以上这些定义,我们就可以一个生成式模型(generative model),利用它产生新的数据:
这样,我们得到了一个观测对 (di,wj) ,多次重复这一过程我们就得到了一个类似N的共生矩阵,而潜在的语义 zk 在观测值中并没有表现出来。为了刻画 (di,wj) 的联合分布,我们可得到以下公式:
p(di,wj)=p(di)p(wj|di),p(wj|di)=∑Kk=1p(wj|zk)p(zk|di)
p(di,wj)=∑Kk=1p(wj|zk)p(zk)p(di|zk)
L=∑Ni=1∑Mj=1n(di,wj)logp(di,wj)
=∑Ni=1n(di){logp(di)+∑Mj=1n(di,wj)n(di)log∑Kk=1p(wj|zk)p(zk|di)}
此目标函数也可以解释为使 p(wj|di) 与 n(di,wj)n(di) 两个分布之间的K-L Divergence最小,即 p(wj|di) 更好的刻画共生矩阵的实际分布。
EM求解
在似然值 L 的表达式中存在对数内部的加运算,所以球pLSA最大似然解的问题没有闭式解,我们只能求助于EM算法,下面我们从最简单的启发式的角度推导出pLSA的求解过程。
既然似然值 L 无法直接求解最大值,那么我们转而优化其下界 F ,并通过迭代不断的将此下界提高,那么最终得到的解即为 L 近似最大解, 当然,此过程中寻求的下界 F 要求尽量紧确。因为:
0<p(zk|di,wj)<1,∑Kk=1p(zk|di,wj)=1
利用琴生不等式和概率小于1的性质,我们可以得到如下推导:
L=∑Ni=1∑Mj=1n(di,wj)logp(di,wj)
=∑Ni=1∑Mj=1n(di,wj)log(∑Kk=1p(wj|zk)p(zk)p(di|zk))
>∑Ni=1∑Mj=1n(di,wj)log(∑Kk=1p(zk|di,wj)p(wj|zk)p(zk)p(di|zk))
≥∑Ni=1∑Mj=1n(di,wj)∑Kk=1p(zk|di,wj)log(p(wj|zk)p(zk)p(di|zk))
∑p(w|z)=1,∑p(z)=1,∑p(d|z)=1
F=∑Ni=1∑Mj=1n(di,wj)∑Kk=1p(zk|di,wj)log(p(wj|zk)p(zk)p(di|zk))
+∑Kk=1λk[∑Ni=1p(di|zk)−1]+∑Kk=1μk[∑Mj=1p(wj|zk)−1]+ξ[∑Kk=1p(zk)−1]
对此目标函数求导,我们可以得到EM算法中的M-step:
p(wj|zk)∝∑dn(di,wj)p(zk|di,wj)
p(di|zk)∝∑wn(di,wj)p(zk|di,wj)
p(zk)∝∑d∑wn(di,wj)p(zk|di,wj)
而EM算法中的E-step也就是求已知 di,wj 时隐含变量 zk 的后验概率:p(zk|di,wj)=p(wj|zk)p(zk)p(di|zk)∑k′p(wj|zk′)p(zk′)p(di|zk′)
pLSA与LSA的关系
由Figure4可以看到pLSA与LSA之间的对应关系。其中 p(z) 刻画了Latent Space也即topic space的信息; p(w|z) 刻画了topic space与term space之间的关系,对应着LSA中的正交基 V ;在文档分类是,这两部分也就是我们在模型训练结束需要保存的信息,当一个新的文档的到来时, 我们可以再次利用EM算法得到新的文档与主题的对应关系 p(d|z) ,并由此得到文档在topic空间上的表示 p(z|d) 。
pLSA的优势
pLSA的不足
针对pLSA的不足,研究者们又提出了各种各样的topic based model, 其中包括大名鼎鼎的Latent Dirichlet Allocation (LDA),在此就不再多说了。
4. 参考文献