潜在语义分析(LSA)是一种非监督学习方法,用于文本话题分析。其特点是通过矩阵分解发现文本于单词之间的基于话题的语义关系。
潜在语义分析是一种非概率话题分析模型。步骤为:
- 先将文本集合表示为单词-文本矩阵
- 对单词-文本矩阵进行奇异值分解(SVD)或非负矩阵分解(NMF),从而得到话题向量空间,以及文本在话题向量空间的表示
给定由n个文本的集合 D={d1,d2,⋯,dn} ,以及所有文本中单词集 W={w1,w2,⋯,wm},
则单词在文本中出现的数据用单词-文本矩阵(word-document matrix)表示, 记为:
X=⎣⎢⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋯x1nx2n⋮xmn⎦⎥⎥⎥⎥⎤
其中, xij表示单词wi在文本dj中出现的频数或权值。由于单词种类多,而每个文本中单词种类通常少,所以为单词-文本矩阵是稀疏矩阵。
权值常用单词频率-逆文本频率(term frequeny-inverse document frequency, TF-IDF)表示:
TFIDFij=tf⋅jtfijlogdfidf,i=1,2,⋯,m;j=1,2,⋯,n
其中,
- tfij 是单词 wi 在文本 dj 中的频数;
- tf⋅j 是 dj 中出现的所有单词频数之和;
- dfi 是含有单词wi的文本数;
- df 是文本集合D的全部文本数。
单词-文本矩阵的第j列向量xj表示文本dj:
xj=⎣⎢⎢⎢⎢⎡x1jx2j⋮xmj⎦⎥⎥⎥⎥⎤,j=1,2,⋯,n
两个单词向量内积或者标准化内积表示对应文本之间的语义相似度, 因此文本di与dj的之间的相似度:
xi⋅xj,∣xi∣∣xj∣xi⋅xj
单词向量空间模型的优缺点
- 优点: 简单,计算高效
- 缺点: 一词多义(polysemy)和多词一义(synonymy)不能很好处理, 存在相似度计算不准确的问题
话题没有严格的定义,是指文本讨论的内容或主题。而基于话题的模型是为了解决单词向量不能很好处理一词多义(polysemy)和多词一义(synonymy)的问题。
给定由n个文本的集合 D={d1,d2,⋯,dn}, 以及所有文本中单词集 W={w1,w2,⋯,wm},
则单词在文本中出现的数据用单词-文本矩阵(word-document matrix)表示, 记为:
X=⎣⎢⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋯x1nx2n⋮xmn⎦⎥⎥⎥⎥⎤
假设所有文本含有k个话题, 每个话题l由一个定义在单词集合W傻姑娘的m维向量:
tl=⎣⎢⎢⎢⎢⎡t1lt2l⋮tml⎦⎥⎥⎥⎥⎤,l=1,2,⋯,k
则有话题向量矩阵T:
T=⎣⎢⎢⎢⎢⎡t11t21⋮tm1t12t22⋮tm2⋯⋯⋯t1kt2k⋮tmk⎦⎥⎥⎥⎥⎤
文本dj在单词向量空间用xj表示,将xj投影到话题向量空间T,得到话题向量空间yj,yj是个k维向量:
yj=⎣⎢⎢⎢⎢⎡y1jy2j⋮ykj⎦⎥⎥⎥⎥⎤,j=1,2,⋯,n
因此,话题-文本矩阵Y:
Y=⎣⎢⎢⎢⎢⎡y11y21⋮yk1y12y22⋮yk2⋯⋯⋯y1ny2n⋮ykn⎦⎥⎥⎥⎥⎤
因此,单词向量空间的文本向量xj,可以用话题向量空间yj近似表示,即以k个话题向量以yj为系数的线性组合:
xj≈y1jt1+y2jt2+⋯+ykjtk,j=1,2,⋯,n
矩阵形式:
X≈TY
这就是潜在语义分析。
参考: 李航《统计学习方法》