LSA/LSI原理以及实践

LSA(latent semantic analysis)潜在语义分析也可以称为 LSI(latent semantic index)

       该方法和传统向量空间模型一样使用向量来表示词(iterms)和文档(documents),并通过向量间(一般通过余弦相似度来刻画)的关系来表示词和文档之间的相似度

LSA/LSI原理以及实践_第1张图片

三个矩阵有非常清楚的物理含义。第一个矩阵中的每一行表示意思相关的一类词(可以将维度理解成特征数,每个词在各个特征中的数值),其中的每个非零元素表示这类词中每个词的重要性(或者说相关性),数值越大越相关。最后一个矩阵中的每一列表示同一主题一类文章,其中每个元素表示这类文章中每篇文章的相关性。中间的矩阵则表示类词和文章类之间的相关性。因此,我们只要对关联矩阵进行一次奇异值分解,我们就可以同时完成了近义词分类和文章的分类。(同时得到每类文章和每类词的相关性)

上面的叙述可能看起来比较迷,可以看一下一个具体的实例:

LSA/LSI原理以及实践_第2张图片

这个图有点走形,不过应该能看懂,图中一共有10篇文章,选择代表词11个,矩阵中的数字代表横坐标中的词对应的纵坐标中的文章中出现的词频,对这个矩阵进行SVD分解:

LSA/LSI原理以及实践_第3张图片

LSA/LSI原理以及实践_第4张图片

这样看起来理解起来比较容易理解

 

LSA的优点:

1. LSA可以在低维空间刻画同义词,同义词会对应着相似或相同的主题;

2. 降维可以去掉部门噪声,使特征更鲁棒;        

3. 充分利用冗余数据(是指词频吗)

4. 无监督/完全自动化

5. 与语言无关

6. 能解决一意多词问题

LSA的缺点:

1. 无法解决一词多义的问题

2. SVD的优化目标基于L-2 norm 或者Frobenius Norm的,这相当于隐含了对数据的高斯分布假设。而term 出现的次数是非负的,这明显不符合Gaussian 假设,而更接近Multi-nomial 分布;

3. 对于count vectors 而言,欧式距离表达是不合适的(重建时会产生负数); 

4. 特征向量的方向没有对应的物理解释; 

5. SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练; 

6. 维数的选择是ad-hoc的;

本文的内容大部分抄录: https://www.cnblogs.com/bentuwuying/p/6219970.html

你可能感兴趣的:(AI,learning,road)