NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)

 
本《Word Embedding系列》文章包括:

(1)One-hot编码
(2)Word Embedding
(3)LSA(Latent Semantic Analysis)
(4)Word2vec的CBOW模型
(5)Word2vec的Skip-gram模型
(6)GloVe模型
(7)相关编程实现
 

本文介绍LSA(Latent Semantic Analysis)


 

目录

      • 一、SVD算法
      • 二、LSA算法

一、SVD算法

在这里插入图片描述
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第1张图片
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第2张图片
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第3张图片
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第4张图片
 
 
1.1 举一个例子:

假设文档集合如下:

Technical Memo Example
Titles:
c1: Human machine interface for Lab ABC computer applications
c2: A survey of user opinion of computer system response time
c3: The EPS user interface management system
c4: System and human system engineering testing of EPS
c5: Relation of user-perceived response time to error measurement
m1: The generation of random, binary, unordered trees
m2: The intersection graph of paths in trees
m3: Graph minors IV: Widths of trees and well-quasi-ordering
m4: Graph minors: A survey

则对应的共性矩阵{X}可以写成:
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第5张图片
对其进行奇异值分解:
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第6张图片

然后对分解后的矩阵降维,这里保留{S}的最大两个奇异值,相应的{W}{P}矩阵如图,注意{P}在公式中需要转置。(只有阴影部分需要保留,减少存储容量)

到了这一步后,我们有两种处理方法,论文Introduction to Latent Semantic Analysis是将降维后的三个矩阵再乘起来,重新构建了{X}矩阵如下:

NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第7张图片
观察{X}矩阵和{X^}矩阵可以发现:

LSA的效果显示:
{X}中human-C2值为0,因为C2中并不包含human单词,但是{X^ }中human-C2为0.40,表明human和C2有一定的关系,为什么呢?因为C2:”A survey of user opinion of computer system response time”中包含user单词,和human是近似词,因此human-C2的值被提高了。同理还可以分析其他在{X^ }中数值改变了的词。以上分析方法清晰的把LSA的效果显示出来了,也就是在{X^}中呈现出了潜在语义,然后希望能创建潜在语义空间,并在该空间中检索信息。

 
 
1.2 再举一个例子

NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第8张图片
这就是一个矩阵,不过不太一样的是,这里的一行表示一个词在哪些title中出现了(一行就是之前说的一维feature),一列表示一个title中有哪些词,(这个矩阵其实是我们之前说的那种一行是一个sample的形式的一种转置,这个会使得我们的左右奇异向量的意义产生变化,但是不会影响我们计算的过程)。比如说T1这个title中就有guide、investing、market、stock四个词,各出现了一次,我们将这个矩阵进行SVD,得到下面的矩阵:

NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第9张图片
左奇异向量表示词的一些特性,右奇异向量表示文档的一些特性(重要),中间的奇异值矩阵表示左奇异向量的一行与右奇异向量的一列的重要程序,数字越大越重要。

继续看这个矩阵还可以发现一些有意思的东西,首先,左奇异向量的第一列表示每一个词的出现频繁程度,虽然不是线性的,但是可以认为是一个大概的描述,比如book是0.15对应文档中出现的2次,investing是0.74对应了文档中出现了9次,rich是0.36对应文档中出现了3次;

其次,右奇异向量中一的第一行表示每一篇文档中的出现词的个数的近似,比如说,T6是0.49,出现了5个词,T2是0.22,出现了2个词。

 
 
1.3 笔记
NLP[3] - [Word Embedding系列] : LSA(Latent Semantic Analysis)_第10张图片


学者补充:

试着解释一下SVD矩阵:在我看来,SVD是对数据进行有效特征整理的过程。首先,对于一个m×n矩阵A,我们可以理解为其有m个数据,n个特征,(想象成一个n个特征组成的坐标系中的m个点),然而一般情况下,这n个特征并不是正交的,也就是说这n个特征并不能归纳这个数据集的特征。SVD的作用就相当于是一个坐标系变换的过程,从一个不标准的n维坐标系,转换为一个标准的k维坐标系,并且使这个数据集中的点,到这个新坐标系的欧式距离为最小值(也就是这些点在这个新坐标系中的投影方差最大化),其实就是一个最小二乘的过程。进一步,如何使数据在新坐标系中的投影最大化呢,那么我们就需要让这个新坐标系中的基尽可能的不相关,我们可以用协方差来衡量这种相关性。A^T·A中计算的便是n×n的协方差矩阵,每一个值代表着原来的n个特征之间的相关性。当对这个协方差矩阵进行特征分解之后,我们可以得到奇异值和右奇异矩阵,而这个右奇异矩阵则是一个新的坐标系,奇异值则对应这个新坐标系中每个基对于整体数据的影响大小,我们这时便可以提取奇异值最大的k个基,作为新的坐标,这便是PCA的原理。

 
 

二、LSA算法

LSA(latent semantic analysis)潜在语义分析,也被称为LSI(latent semantic index),是Scott Deerwester, Susan T. Dumais等人在1990年提出来的一种新的索引和检索方法。该方法和传统向量空间模型(vector space model)一样使用向量来表示词(terms)和文档(documents),并通过向量间的关系(如夹角)来判断词及文档间的关系;而不同的是,LSA将词和文档映射到潜在语义空间,从而去除了原始向量空间中的一些“噪音”,提高了信息检索的精确度。LSA的基本思想就是把高维的文档降到低维空间,那个空间被称为潜在语义空间。这个映射必须是严格线性的而且是基于共现表(就是那个矩阵啦)的奇异值分解。

 
2.1 原理

LSA潜在语义分析的目的,就是要找出词(terms)在文档和查询中真正的含义,也就是潜在语义,从而解决上节所描述的问题。

具体说来就是对一个大型的文档集合使用一个合理的维度建模,并将词和文档都表示到该空间,比如有2000个文档,包含7000个索引词,LSA使用一个维度为100的向量空间将文档和词表示到该空间,进而在该空间进行信息检索。而将文档表示到此空间的过程就是SVD奇异值分解和降维的过程。降维是LSA分析中最重要的一步,通过降维,去除了文档中的“噪音”,也就是无关信息(比如词的误用或不相关的词偶尔出现在一起),语义结构逐渐呈现。相比传统向量空间,潜在语义空间的维度更小,语义关系更明确。

2.2 LSA的步骤

  1. 分析文档集合,建立Term-Document矩阵。
  2. 对Term-Document矩阵进行奇异值分解。
  3. 对SVD分解后的矩阵进行降维,也就是奇异值分解一节所提到的低阶近似。
  4. 使用降维后的矩阵构建潜在语义空间,或重建Term-Document矩阵。

 
 


参考博客:
【1】主题模型TopicModel:LSA(隐性语义分析)模型和其实现的早期方法SVD:https://blog.csdn.net/pipisorry/article/details/42560331
【1】Latent semantic analysis:https://en.wikipedia.org/wiki/Latent_semantic_analysis
【2】奇异值分解(SVD):https://zhuanlan.zhihu.com/p/29846048

你可能感兴趣的:(NLP,nlp)