0x01 LSA
LSA(Latent Semantic Analysis)潜在语义分析, 又称为LSI(Latent Semantic Index), 是一种常用的主题模型.
观点
文本和词汇之间存在着某种相关关系, 若干篇文本和若干个词汇根据这种相关关系构成了一定的语义结构. 去除结构中冗余次要的影响因素, 达到优化该结构的目的.
做法
将高维度的词汇-文本共现矩阵, 通过奇异值分解(SVD)法, 将原来的文章向量映射到低维度的潜在语义空间中, 即主题空间中, 空间的维度等于主题的数量.
意义
维度降低, 缩小了问题的规模
使得表面毫不相关的词, 体现出深层次的联系
数学表示
d篇文本, t个词汇, 构成一个大小为(t,d)的词汇-文本共现矩阵X. 其中的每个元素Xij值可以是:
第j个词在第i篇文本中出现的次数
tf-idf值
LSA步骤如下:
SVD将矩阵X分解分X=T0S0D0T, T0大小为(t,r), S0大小为(r,r)对角矩阵, 对角元素为奇异值, D0T大小为(r,d)
考虑S0中最大的k个元素, k<r, k即是降维后的维度, 也是主题的数量. 取S0中相应的k个值组成k阶对角矩阵, 同时取出T0中对应的k列, D0T中对应的k行, 得到X≈X^=TSDT, 其中T大小为(t,k), S大小为(k,k), DT大小为(k,d), X^即是优化后的语义结构
对于新文本, 先将其转化为词汇频率或tf-idf向量Xq, 即一个列向量(t,1). 对Xq进行转换得到Dq=XqTTS−1, 大小为(1,k)
D, (d,k)保存了训练中所有d篇文本的降维后由主题组成的向量, 将Dq与D比较产生相似度的度量
LSA算法优点
反映的不再是简单的词汇出现的频率和分布关系, 而是利用主题表现的强化的语义关系
低位, 有效处理大规模文本库
LSA算法缺点
SVD对数据变化较敏感, 缺乏先验, 显得太机械
bag-of-word模型, 忽略了语法, 词语顺序等信息
超参数: 主题数量对结果有较大影响, 而且模型的表现随着参数变化无规律波动大, 难以调参
最后更新于