LSA

LSA(Latent Semantic Analysis)潜在语义分析, 又称为LSI(Latent Semantic Index), 是一种常用的主题模型.

观点

文本和词汇之间存在着某种相关关系, 若干篇文本和若干个词汇根据这种相关关系构成了一定的语义结构. 去除结构中冗余次要的影响因素, 达到优化该结构的目的.

做法

将高维度的词汇-文本共现矩阵, 通过奇异值分解(SVD)法, 将原来的文章向量映射到低维度的潜在语义空间中, 即主题空间中, 空间的维度等于主题的数量.

意义

  • 维度降低, 缩小了问题的规模

  • 使得表面毫不相关的词, 体现出深层次的联系

数学表示

dd篇文本, tt个词汇, 构成一个大小为(t,d)(t, d)词汇-文本共现矩阵XX. 其中的每个元素XijX_{ij}值可以是:

  • jj个词在第ii篇文本中出现的次数

  • tf-idf

LSA步骤如下:

  • SVD将矩阵XX分解分X=T0S0D0TX=T_0S_0D_0^T, T0T_0大小为(t,r)(t, r), S0S_0大小为(r,r)(r,r)对角矩阵, 对角元素为奇异值, D0TD_0^T大小为(r,d)(r,d)

  • 考虑S0S_0中最大的kk个元素, k<rk\lt{r}, kk即是降维后的维度, 也是主题的数量. 取S0S_0中相应的kk个值组成kk阶对角矩阵, 同时取出T0T_0中对应的kk列, D0TD_0^T中对应的kk行, 得到XX^=TSDTX\approx{\hat{X}}=TSD^T, 其中TT大小为(t,k)(t,k), SS大小为(k,k)(k,k), DTD^T大小为(k,d)(k,d), X^\hat{X}即是优化后的语义结构

  • 对于新文本, 先将其转化为词汇频率或tf-idf向量XqX_q, 即一个列向量(t,1)(t,1). 对XqX_q进行转换得到Dq=XqTTS1D_q=X_q^TTS^{-1}, 大小为(1,k)(1,k)

  • DD, (d,k)(d,k)保存了训练中所有dd篇文本的降维后由主题组成的向量, 将DqD_qDD比较产生相似度的度量

LSA算法优点

  • 反映的不再是简单的词汇出现的频率和分布关系, 而是利用主题表现的强化的语义关系

  • 低位, 有效处理大规模文本库

LSA算法缺点

  • SVD对数据变化较敏感, 缺乏先验, 显得太机械

  • bag-of-word模型, 忽略了语法, 词语顺序等信息

  • 超参数: 主题数量对结果有较大影响, 而且模型的表现随着参数变化无规律波动大, 难以调参

最后更新于

这有帮助吗?