隐式语意分析
隐式语义分析(Latent Semantic Analysis,LSA),也被称为隐式语义索引(Latent Semantic Indexing,LSI),是一种不同于关键词检索的搜索引擎解决方案,其检索结果的实际效果更接近于人的自然语言,在一定程度上能够提高搜索结果的相关性。
原始方法的缺点
从自然语言的角度,大部分词具有一词多义的特点,机器无法确定在何环境下使用何种词义,这就导致了搜索结果与用户的理想值便存在很大的距离:
- 一词多义将导致基于精确匹配的搜索算法在结果中包含很多并非用户真正要查找的内容;
- 一义多词则使得基于精确匹配的算法在给出的结果中遗漏了很多用户真正需要查找的内容。
LSI通过绕开自然语言理解,以大样本数量的统计分析找出不同的词(词组、短语)间的相关性,以使搜索结果进一步接近于用户真正要查找的内容,同时,也能够保证搜索的效率。
LSA
所谓隐式语义索引指的是,怎样通过海量文献找出词汇之间的关系。当两个词或一组词出现在同一个文档中时,这些词之间可以被认为是语义相关的。机器并不知道某个词究竟代表什么,不知道某个词是什么意思。
- 电脑和计算机这两个词在文章中经常混用,大量的在网页中同时出现,搜索引擎就会认为这两个词是极为语义相关的。
- SEO和搜索引擎优化,虽然一个是英语一个是中文,这两个词大量出现在相同的网页中,虽然搜索引擎还不能知道搜索引擎优化或SEO指的是什么,但是却可以从语义上把『SEO』,『搜索引擎优化』,『Search Engine Optimization』,『SEM』等词紧紧连在一起。可见LSI并不依赖于语言。
- 苹果和橘子这两个词,也是大量出现在相同文档中,不过紧密度低于同义词。所以搜索引擎不会认为他们是语义相关的。
具体说来就是对一个大型的文档集合使用一个合理的维度建模,并将词和文档都表示到该空间,比如有2000个文档,包含7000个索引词,LSA使用一个维度为100的向量空间将文档和词表示到该空间,进而在该空间进行信息检索。而将文档表示到此空间的过程就是SVD奇异值分解和降维的过程。降维是LSA分析中最重要的一步,通过降维,去除了文档中的“噪音”,也就是无关信息(比如词的误用或不相关的词偶尔出现在一起),语义结构逐渐呈现。相比传统向量空间,潜在语义空间的维度更小,语义关系更明确。
低阶近似
LSA潜在语义分析中,低阶近似是为了使用低维的矩阵来表示一个高维的矩阵,并使两者之差尽可能的小。给定一个 M×N 矩阵C(其秩为r)和正整数k,我们希望找到一个 M×N 矩阵 Ck ,其秩不大于k。设X为C与 Ck 之间的差, X=C–Ck ,X的F-范数为: