Contents

Latent semantic analysis (LSA)

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

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

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

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

X=[x11x12x1nx21x22x2nxm1xm2xmn] 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]

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

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

TFIDFij=tfijtfjlogdfdfi,i=1,2,,m;j=1,2,,n \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

其中,

  • tfij\mathrm{tf}_{ij} 是单词 wiw_i 在文本 djd_j 中的频数;
  • tfj\mathrm{tf}_{\cdot j}djd_j 中出现的所有单词频数之和;
  • dfi\mathrm{df}_{i} 是含有单词wiw_i的文本数;
  • df\mathrm{df} 是文本集合DD的全部文本数。

单词-文本矩阵的第j列向量xjx_j表示文本djd_j

xj=[x1jx2jxmj],j=1,2,,n 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

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

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

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

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

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

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

X=[x11x12x1nx21x22x2nxm1xm2xmn] 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维向量:

tl=[t1lt2ltml],l=1,2,,k 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=[t11t12t1kt21t22t2ktm1tm2tmk] 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]

文本djd_j在单词向量空间用xjx_j表示,将xjx_j投影到话题向量空间TT,得到话题向量空间yjy_jyjy_j是个k维向量:

yj=[y1jy2jykj],j=1,2,,n 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  

因此,话题-文本矩阵YY

Y=[y11y12y1ny21y22y2nyk1yk2ykn] 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]

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

xjy1jt1+y2jt2++ykjtk,j=1,2,,n 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

矩阵形式:

XTY X \approx TY

这就是潜在语义分析。

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