主题模型思路是基于VSM构建共现矩阵,并通过矩阵分解获得语义的稠密表示。

主题模型:

  • LSA(latent semantic analysis,潜在语义分析,共现矩阵的SVD分解)
  • pLSA(概率潜在语义分析)
  • LDA(Latent Dirichlet Allocation)

BOW与共现矩阵

共现矩阵(co-occurrence matrix)有两种,一种是词与词的共现矩阵(word-word matrix)通常用在信息检索中,如文档的相似匹配。另外一种的文档与词的共现矩阵(document-word matrix)通常用于构建词向量(Embedding)。共现矩阵的权重基于BOW(词袋模型)相关的计算获得,如TF、TF-IDF。

以下有文档与词的共现矩阵(document-word matrix),

其中$m$​表示文档数量,$n$​表示词汇表大小,$w_{i,j}$​​基于BOW通过文档与词的共现关系获得,以TF-IDF为例,

其中$N$ 为文档总数,$TF(D_{i},word_{j})$ 表示词 $word_{j}$ 在文档 $D_{i}$ 中的频次。$DF(word_{j})$ 表示包括词 $word_{j}$​ 的文档数,称为逆文档频次。为避免数值问题,可以通过加一平滑,

这样可以避免OOV外的词出现数值计算问题。此外,更多权重可以是:

  1. boolean
  2. TF
  3. IDF
  4. TF-IDF

这样获得的矩阵$D$​​有两个问题:矩阵维度非常大,矩阵的每一行都表示一个文档的向量化表征,但是维度非常大;矩阵是稀疏的,文档的表征向量中元素有大量的0取值。主题模型的引入可以解决这个问题。

基于文档与词的共现矩阵这里还可以衍生两个矩阵:

  • $D \times D^{\top}$ 表征文档矩阵
  • $D^{\top} \times D$ 表征词矩阵

LSA主题模型

主题模型要做的事情是从文本表示中发现潜在的主题,同时获得稠密的文档表示与稠密的词表示,也就是说主题模型能够获得:

  • 潜在的主题
  • 稠密的文档表征
  • 稠密的词表征

LSA主题模型依赖矩阵的奇异值分解(SVD),首先我们来说是SVD。对于任意矩阵$A \in R^{m,n}$,其SVD分解,

其中,$U \in R^{m \times m}, U U^{\top} = I; V \in R^{n \times n}, VV^{\top} = I$​​​。$\Sigma \in R^{m \times n}$是广义对角矩阵,

这里$\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r \ge 0$称为奇异值。考虑到对角矩阵对角线有0元素,于是紧凑形式SVD分解为,

其中$r \le \min(n,m)$。​

对于向量$x$​​关于矩阵$A$​​的线性变换可以分解为,

这启发我们,SVD具有明显的几何意义,先对向量$x$进行旋转变换,然后进行伸缩变换,然后再一次旋转变换。

于是,把SVD分解用到共现矩阵上就获得LSA主题模型。对于文档-单词矩阵,其SVD分解为,

分解获得的三个矩阵的意义非常明显:

  • 矩阵$P \in R^{m \times r}$​​,每一行表示文档的主题分布,第$i$​​行表示文档$i$​​​的向量化表征,每个表征向量的维度为$r \lt n$​
  • 矩阵$Q^{\top} \in R^{r \times n}$,每一行表示词的主题分布,第$i$行表示词$i$的向量化表征,每个表征向量的维度为$r \lt n$
  • $\Sigma$是个对角矩阵,对角线元素依次为$\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r \ge 0$,表示潜在主题的强度,就是主题在数据集中出现的次数

矩阵$P$与矩阵$Q$​​分别得到文档与单词的Embedding,因此可以做文档匹配、聚类或分类,词相似度匹配、词同义、多义词问题。

矩阵分解是在全局中完成,因此能够有效的利用全局的统计信息,但是共现矩阵外的文档如何处理?根据SVD分解,有

其中$w_i$为文档-词向量。

LSA的局限

LSA基于共现矩阵的SVD分解,能够有效的利用全局的统计信息,可以理解为是一个无监督的聚类过程,但有如下局限:

  • 获得的主题其实解释性较差
  • 由于共现矩阵本质是BOW模型,无法解决词序及其相关问题
  • 在单词类比任务(如:国王 vs 王后 类比于 男人 vs 女人)中表现相对较差

总结

主题模型是个比较广泛的领域,使用范围广,如推荐系统,本文只是讲述LSA主题模型方法,此外还包括pLSA、LDA等。LSA的本质是对文档-词共现矩阵的SVD分解,并起到降维作用。

参考文献

[1] 统计自然语言处理

转载请包括本文地址:https://allenwind.github.io/blog/9116
更多文章请参考:https://allenwind.github.io/blog/archives/