SVD(奇异值分解),pLSA(概率潜在语义分析)和LDA(潜在狄利克雷分布)是常用的语义分析技术。从表示学习的角度出发,这些技术的目的是类似的,就是希望摆脱one-hot的单词表示。one-hot表示对任意单词,都用一个$V$维向量$[0,…,0,1,0,…,0]$表示,$V$是词典大小,只有词对应的那一维为1,其他都为0。one-hot表示虽然在很多问题上取得了很好的效果,但是问题也很明显:维度过高,且完全忽略了词与词之间的相似性。“图书”和“书籍”是非常相似的两个词,而“运动”和“政党”却没有什么相似性,但是在one-hot的表示下,这两对词却没什么区别。为了更好地反应出不同词之间的语义关系,Harris提出了distributional hypothesis:在相似的上下文中出现的单词具有相似的语义。在这样的假设下,我们同样可以把一个单词表示为$V$维向量,但不只有一个维度为1,这个单词周围出现过的词所对应的维度都是非0的,这样,我们就把单词的“语义”分布在了它周围的单词上,计算单词相似性,就不再永远是0了。但是这样维度还是太高,噪音过大,我们希望透过词汇的表面形式(surface form),挖掘出背后潜在的语义。做法就是:降维。对于一个文档集合$D=\{d_1,d_2,...,d_M\}$,每个文档由一堆单词构成$d_i=\{w_{i1},w_{i2},...,w_{in_i}\},i=1,...,M$,这样,每个文档可以由一个$V$维向量表示(这里有bag-of-word假设,不考虑单词的顺序),每一维代表该词在文档中出现的次数或者tf-idf等。SVD、pLSA、LDA这些方法,希望通过降维,用$K$维向量表示每个文档,$K$为话题(topic/concept)的个数,$K \ll V$;同时每个话题用$V$维向量表示,可以理解为话题是所有词汇的某种组合。从数学的角度出发,降维是在一定的维度约束下($K$一般都很小,几十几百),尽量减小因为降维所带来的数据损失,本事是和语义没什么关系的。但当其应用于文档-单词矩阵(或者其他类似的矩阵,如单词-上下文矩阵)时,降维就能够带来语义,因为降维能消除冗余和噪声:对于单词来讲,统计上的共现就是“冗余”,试想,如果一个词A后面一直跟着词B,也就可以把AB合二为一看为一个“话题”了;同时,降维能够消除数据中的噪声,避免一些奇异数据对结果的影响,提升模型泛化性。

从具体做法上来说,SVD是通过矩阵分解来达到上面的目的,可以看做对原文档-单词矩阵进行有损压缩;pLSA可以看做概率化的SVD,因为SVD分解出的向量取值范围是实数域,不好直观地进行解释;而LDA在pLSA的基础上更进一步,是一个完全的生成模型,对于模型参数引入先验分布。这些生成式模型训练可以是无监督的(事先不知道每个单词所属的隐变量—话题),可以利用EM、Gibbs Sampling等算法估计参数。

其实现在很火的以word2vec为代表的神经网络词向量模型,也是在利用共现。这些模型可以简单理解为:越共现的单词,词向量越相似(或者更准确地说,上下文越类似的单词,词向量越相似)。一个很自然的问题是,这些用梯度下降训练的非确定性的算法,和前面提到的SVD矩阵分解方法,有什么区别和联系?为什么这些新的方法效果更优?论文[4]就是在探索这个问题。根据论文推导,Skip-Gram with Negative Sampling(SGNS)理论上可以看做是在做矩阵分解任务,要分解的矩阵M是单词-上下文矩阵,一行代表一个单词,一列代表一种上下文,矩阵中的非零项代表该单词出现在该上下文中。具体到SGNS中,上下文就是该单词周围的单词,所以$M$是对称方阵,$M_{ij}=\log{\frac{P(w_i, w_j)}{P(w_i)P(w_j)}} - \log{T}$,其中第一项是单词$i$和单词$j$的互信息,其大小衡量的是单词间的相关性,$T$是负采样的个数。这种基于PMI的单词-上下文矩阵在word similarity等很多任务上都取得了很好的效果。得到这样的结论还不够,因为任何一个为单词和上下文生成向量表示的模型,都可以看做是在做单词-上下文矩阵分解。我们还需要搞清楚,这类方法和SVD这样的传统矩阵分解方法,在解决问题上到底有哪些不同?效果和性能上的差异是因何而来?论文给出了一些定性分析和实验。其中一个很重要的原因在于,word2vec相当于带权重的矩阵分解。如果把矩阵分解,理解为一个Autoencoder,词向量就是中间表示,要reconstruct该词的PMI签名,那word2vec就是一个带权重的Autoencoder,也就是说,PMI签名每个位置的权重是不一样的,一些初步实验也表明,如果仅仅是不带权重的普通的Autoencoder,效果并不好,学不出很有意义的词向量。

参考资料

  1. Wayne Xin Zhao. Note for pLSA and LDA.
  2. Gregor Heinrich. Parameter estimation for text analysis.
  3. Rickjin. LDA数学八卦.
  4. Neural Word Embedding as Implicit Matrix Factorization.