Contents

Latent semantic analysis (LSA)

潜在语义分析(LSA)是一种非监督学习方法,用于文本话题分析。其特点是通过矩阵分解发现文本于单词之间的基于话题的语义关系。

潜在语义分析是一种非概率话题分析模型。步骤为:

  1. 先将文本集合表示为单词-文本矩阵
  2. 对单词-文本矩阵进行奇异值分解(SVD)或非负矩阵分解(NMF),从而得到话题向量空间,以及文本在话题向量空间的表示

1. 单词向量空间

给定由n个文本的集合 $D = \lbrace d_1, d_2, \cdots, d_n \rbrace$ ,以及所有文本中单词集 $W = \lbrace w_1, w_2, \cdots, w_m \rbrace$, 则单词在文本中出现的数据用单词-文本矩阵(word-document matrix)表示, 记为:

$$ X=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 n} \cr x_{21} & x_{22} & \cdots & x_{2 n} \cr \vdots & \vdots & & \vdots \cr x_{m 1} & x_{m 2} & \cdots & x_{m n} \end{array}\right] $$

其中, $x_{ij}$表示单词$w_i$在文本$d_j$中出现的频数或权值。由于单词种类多,而每个文本中单词种类通常少,所以为单词-文本矩阵是稀疏矩阵。

权值常用单词频率-逆文本频率(term frequeny-inverse document frequency, TF-IDF)表示:

$$ \mathrm{TFIDF_{ij}}=\frac{\mathrm {tf_{ij}}}{\mathrm {tf_{\cdot j}}} \log \frac{\mathrm{df}}{\mathrm {df_i}}, \quad i=1,2, \cdots, m ; \quad j=1,2, \cdots, n $$

其中,

  • $\mathrm{tf}_{ij}$ 是单词 $w_i$ 在文本 $d_j$ 中的频数;
  • $\mathrm{tf}_{\cdot j}$ 是 $d_j$ 中出现的所有单词频数之和;
  • $\mathrm{df}_{i}$ 是含有单词$w_i$的文本数;
  • $\mathrm{df}$ 是文本集合$D$的全部文本数。

单词-文本矩阵的第j列向量$x_j$表示文本$d_j$:

$$ x_{j}=\left[\begin{array}{c} x_{1 j} \cr x_{2 j} \cr \vdots \cr x_{m j} \end{array}\right], \quad j=1,2, \cdots, n $$

两个单词向量内积或者标准化内积表示对应文本之间的语义相似度, 因此文本$d_i$与$d_j$的之间的相似度:

$$ x_{i} \cdot x_{j}, \quad \frac{x_{i} \cdot x_{j}}{\left|x_{i}\right|\left|x_{j}\right|} $$

单词向量空间模型的优缺点

  • 优点: 简单,计算高效
  • 缺点: 一词多义(polysemy)和多词一义(synonymy)不能很好处理, 存在相似度计算不准确的问题

2. 话题(topic)向量空间

话题没有严格的定义,是指文本讨论的内容或主题。而基于话题的模型是为了解决单词向量不能很好处理一词多义(polysemy)和多词一义(synonymy)的问题。

给定由n个文本的集合 $D = \lbrace d_1, d_2, \cdots, d_n \rbrace$, 以及所有文本中单词集 $W = \lbrace w_1, w_2, \cdots, w_m \rbrace$, 则单词在文本中出现的数据用单词-文本矩阵(word-document matrix)表示, 记为:

$$ X=\left[\begin{array}{cccc} x_{11} & x_{12} & \cdots & x_{1 n} \cr x_{21} & x_{22} & \cdots & x_{2 n} \cr \vdots & \vdots & & \vdots \cr x_{m 1} & x_{m 2} & \cdots & x_{m n} \end{array}\right] $$

假设所有文本含有k个话题, 每个话题l由一个定义在单词集合W傻姑娘的m维向量:

$$ t_{l}=\left[\begin{array}{c} t_{1 l} \cr t_{2 l} \cr \vdots \cr t_{m l} \end{array}\right], \quad l=1,2, \cdots, k $$

则有话题向量矩阵T:

$$ T=\left[\begin{array}{cccc} t_{11} & t_{12} & \cdots & t_{1 k} \cr t_{21} & t_{22} & \cdots & t_{2 k} \cr \vdots & \vdots & & \vdots \cr t_{m 1} & t_{m 2} & \cdots & t_{m k} \end{array}\right] $$

3. 文本在话题向量空间的表示

文本$d_j$在单词向量空间用$x_j$表示,将$x_j$投影到话题向量空间$T$,得到话题向量空间$y_j$,$y_j$是个k维向量:

$$ y_{j}=\left[\begin{array}{c} y_{1 j} \cr y_{2 j} \cr \vdots \cr y_{k j} \end{array}\right], \quad j=1,2, \cdots, n $$  

因此,话题-文本矩阵$Y$:

$$ Y=\left[\begin{array}{cccc} y_{11} & y_{12} & \cdots & y_{1 n} \cr y_{21} & y_{22} & \cdots & y_{2 n} \cr \vdots & \vdots & & \vdots \cr y_{k 1} & y_{k 2} & \cdots & y_{k n} \end{array}\right] $$

4. 单词向量空间到话题向量空间转换

因此,单词向量空间的文本向量$x_j$,可以用话题向量空间$y_j$近似表示,即以k个话题向量以$y_j$为系数的线性组合:

$$ x_{j} \approx y_{1 j} t_{1}+y_{2 j} t_{2}+\cdots+y_{k j} t_{k}, \quad j=1,2, \cdots, n $$

矩阵形式:

$$ X \approx TY $$

这就是潜在语义分析。

参考: 李航《统计学习方法》