LSA LSA与现有向量空间模型(vector space model )同样,用向量表示词(terms )和文档(documents ),根据夹角等向量间的关系来判断词和文档间的关系; 不同的是,LSA通过将单词和文档映射到潜在的语义空间,消除了原始向量空间的“噪声”,提高了信息检索的准确度。
文本挖掘的两个方面应用“1”分类。
a .按语义对词汇表中的单词进行分类(例如,把各种运动的名字放在一起) ) ) ) ) ) ) ) ) )。
b .按主题对文本进行分类(例如将所有介绍足球的新闻归类为体育系) )。
)检索)用户提出提问式(通常由几个反映文本主题的单词组成)后,系统在数据库中将提问式与预存的文本关键词进行自动匹配,检测出两者一致的文本。
文本分类中出现的问题(1)这个词很多义
例如,如果单词bank与单词mortgage,loans,rates同时出现,bank很可能表示金融机构的意思。 但是,如果bank这个单词和lures,casting,fish一起出现的话,很有可能表示河岸的意思。
)2)一义多词
例如,当用户搜索“automobile”(即汽车)时,传统向量空间模型只返回包含单词“automobile”的页面,而实际上用户可能也需要包含单词“car”的页面
LSA原理是通过对大量文本集的统计分析,从中提取词语的语境使用意义。 技术上通过SVD分解等处理,消除了同义词、多义词的影响,提高了后续处理的精度。
流程:
)分析文档集合,生成词汇-文本矩阵a。
)对词汇-文本矩阵进行奇异值分解。
)3)对SVD分解后的矩阵降维
(4)使用降维矩阵构建潜在语义空间
SVD分解,即奇异值分解,听起来可能很大,但实际上是用其他几个矩阵的乘积表示一个矩阵。 假设有mn的矩阵a,则SVD发现如下公式的分解,将a分解为3个矩阵的乘积:
性质:关于奇异值,与我们的特征分解中的特征值相似,在奇异值矩阵中也是按照从大到小的顺序排列。 另外,特异值的减少特别快,大多数情况下,从前10%到1%的特异值之和占全部特异值之和的99%以上的比例。 也就是说,也可以使用与最大的k个奇异值相对应的左右奇异向量来近似地描述矩阵。 也就是说,矩阵a可以只用灰色部分的3个次矩阵来近似记述
由于这一重要性质,SVD可以用于PCA的维度削减,以进行数据压缩和噪声消除。 也可以用于推荐算法中,对用户和偏好对应的矩阵进行特征分解,得到隐含的用户需求进行推荐。 它还可以用于NLP的算法,如潜在语义索引(LSI )。
先看图
)词汇-文本矩阵a是稀疏矩阵,行表示词,列表示文档。 单词-文档矩阵中的元素通常是单词在文档中的出现次数,或者是该单词的TF-IDF (term frequency-inversedocumentfrequency )。
)2)次矩阵x是单词分类的结果,各行表示单词,各行表示语义上相近的词类,这一行非零的各要素表示各语义类中各单词的重要性(或关联性)
例如: X=
[0.7 0.15
0.22 0.49
0.3 0.03]
第一个单词与第一个语义类比较相关,第二个单词正好相反,第三个单词与两个语义的关联都不强。
第2个子矩阵b表示词的类别和文章的类别的关联性
例如B=
[0.7 0.21
0.18 0.63]
第一个词的语义类与第一个主题相关,与第二个主题关系不大,第二个词的语义类相反
矩阵y是对文本进行分类的结果,每行表示一个主题,每列表示一个文本,此列中的每个元素表示此文本在不同主题中的相关性
例如,Y=
[0.7 0.15 0.22
0 0.92 0.08]
第一篇文章属于第一个主题,第二篇文章和第二个主题非常相关,第三篇文章与这两个主题都不相关
)3)构建单词-文档矩阵后,LSA对该矩阵进行降维,找到单词-文档矩阵的低阶近似。 降低维度的理由如下。
a .原始单词-文档矩阵太大,计算机无法处理。 从这个角度来看,是降维的新行列式的元矩阵的近似。
b .原始单词-文档矩阵有噪声。 从这个角度看,降维后新的行列式元矩阵的去噪矩阵。
c .原始单词-文档矩阵太稀疏。 原始单词-文档矩阵准确地反映了每个单词是否在ysdhm文档中“出现”。 但是,在很多情况下,由于对与某个文档“相关”的所有单词都感兴趣,所以有必要发掘单词的各种同义词。
降维结果可能是不同的单词,也可能是因为语义关联而合并,如下所示:
{(car ),) truck ),) flower )---) ) 1.3452*car0.2828*truck ),) flower ) }
维度可以解决一部分同义词问题,也可以解决一部分二义问题。 具体来说,对原语-文档矩阵进行降维处理后,原语向量对应的二义部分被加到与该意思相似的词上,剩下的部分对应的二义成分减少。
应用
低维语义空间可以用于以下几点:
在低维语义空间可对文档进行比较,进而可用于文档聚类和文档分类。在翻译好的文档上进行训练,可以发现不同语言的相似文档,可用于跨语言检索。
发现词与词之间的关系,可用于同义词、歧义词检测。.
通过查询映射到语义空间,可进行信息检索。
从语义的角度发现词语的相关性,可用于“选择题回答模型”(multi choice qustions answering model)。 LSA的优点
1)低维空间表示可以刻画同义词,同义词会对应着相同或相似的主题。
2)降维可去除部分噪声,是特征更鲁棒。
3)充分利用冗余数据。
4)无监督/完全自动化。
5)与语言无关。
1)LSA可以处理向量空间模型无法解决的一义多词(synonymy)问题,但不能解决一词多义(polysemy)问题。因为LSA将每一个词映射为潜在语义空间中的一个点,也就是说一个词的多个意思在空间中对于的是同一个点,并没有被区分。
2)SVD的优化目标基于L-2 norm 或者 Frobenius Norm 的,这相当于隐含了对数据的kldxg分布假设。而 term 出现的次数是非负的,这明显不符合 Gaussian 假设,而更接近 Multi-nomial 分布。
3)特征向量的方向没有对应的物理解释。
4)SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练。
5)没有刻画term出现次数的概率模型。
6)对于count vectors 而言,欧式距离表达是不合适的(重建时会产生负数)。
7)维数的选择是ad-hoc的。
8)LSA具有词袋模型的缺点,即在一篇文章,或者一个句子中忽略词语的先后顺序。
9)LSA的概率模型假设文档和词的分布是服从联合正态分布的,但从观测数据来看是服从泊松分布的。因此LSA算法的一个改进PLSA使用了多项分布,其效果要好于LSA。
参考:https://www.jianshu.com/p/9fe0a7004560