潜语义分析(LSA)是一种监督学习方法,主要用于文本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。潜在语义分析由Deerwester等于1990年提出,最初应用于文本信息检索,在推荐系统、图像处理、生物信息学等领域也有广泛的应用。
文本信息处理中,传统的方法以单词向量表示文本的语义内容,以单词向量空间的度量表示文本之间的语义相似度。潜在语义分析旨在解决这种不能准确表示语义 的问题,试图从大量的文本数据中发现潜在的话题,以话题向量表示文本的语义内容,以话题向量空间的度量准确地表示文本之间的语义相似度,这也是话题分析的基本想法。
潜在语义使用的是非概率的话题分析模型。具体地,将文本集合表示为单词-文本矩阵,对单词-文本矩阵进行奇异值分解,从而得到向量空间,以及文本在话题向量空间的表示。
一、单词向量空间与话题空间
1.单词向量空间
文本信息处理,比如文本信息检索、文本数据挖掘的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算。最简单的方法是利用向量空间模型,也就是单词向量空间模型。向量空间模型的基本想法是:给定一个文本,用一个向量表示该文本的“语义”,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或权值,基本假设是文本中所有单词的出现情况表示了文本的语义内容;文本集合中的每个文本都表示为一个向量,存在于一个单词空间;向量空间的度量,如内积或标准化内积表示文本之间的“语义相似度”。
例如,文本信息检索的任务是,用户提出查询时,帮助用户找到与查询最相关的文本,以排序的形式展示给用户。一个最简单的做法是采用单词向量空间模型,将查询与文本表示为单词向量,计算查询向量与文本向量的内积,作为语义相似度,以这个相似度的高低对文本进行排序。在这里,查询看作是伪文本,查询与文本的语义相似度表示为查询与文本的相关性。
下面给出严格定义,给定一个含有n个文本的集合,以及在所有问诊中出现的m个单词集合。将单词在文本中出现的数据用一个单词-文本矩阵表示,记作X
这是一个n*m矩阵,元素表示单词在文本中出现的频数或权值。由于单词种类很多,而每个文本中出现单词的种类很少,所以单词-文本矩阵是一个稀疏矩阵。
权重通常用单词频数-逆文频率(TF-IDF),其定义是
式表示单词出现在中的频数,表示文本中所有出现单词的频数只和,是含有单词的文本数,是文本几个D的全部文本数。直观上,一个单词在一个文本中出现的频数越高,这个单词在这个文本中的重要性越高;一个单词在整个文本集合中出现的文本数越少,这个单词就越能表示其所在文本的特点,重要度就越高:一个单词在一个文本的TF-IDF是两种重要度的积,综合表示重要度。
单词向量空间模型直接使用单词-文本矩阵的信息。单词-文本矩阵的第j列向量表示表示文本
其中是单词在文本的权值,,权值越大,该单词在该文本中的重要性越高。这时矩阵可以写成
两个单词向量的内积或标准化内积(余弦)表示对应文本之间的语义相似度。因此文本之间的相似度为:
式中,表示内积,表示范数。
单词空间向量的优点是模型简单,计算效率高。因为单词向量通常是稀疏的,两个向量的内积计算只需要在其同不为零的维度上进行即可,需要计算很少,可以高效地完成。单词向量空间也有一定的局限性,体现在内积相似度未必能够准确表达两个文本的语义相似度。因为在自然语言的单词具有一词多义,多个单词可以表示同一个语义,所以基于单词向量的相似度计算存在不精确的问题。
airplane | 2 | |||
aircraf | 2 | |||
computer | 1 | |||
apple | 2 | 3 | ||
fruit | 1 | |||
produce | 1 | 2 | 2 | 1 |
2.话题向量空间
两个文本的语义相似度可以体现在两者的话题相似度上。所谓话题,并没有严格的定义,就是指文本中所讨论的内容或主题。一个文本一般含若干个话题。如果两个文本的话题相似,那么两者的语义应该也相似。话题可以由若干个单词表示,同义词可以表示同一个话题,而多义词可以表示不同的话题。这样,基于话题的模型可以解决上述基于单词的模型存在的问题。
给定一个文本,用话题空间的一个向量表示该文本,该向量的每一分量对应一个话题,其数值为该话题在该文本中出现的权值。用两个向量的内积或标准化内积表示对应聊个文本的语义相似度。注意,话题的个数通常远远小于单词的个数,话题向量空间模型更加抽象。事实上潜在语义分析正是构建话题向量空间的方法(即话题分析的方法),单词向量空间模型与话题空间模型可以互相补充,现实中,两者可以同时使用。
(1) 话题向量空间
给定一个文本集合和相应的单词集合。可以获得其单词-文本矩阵,构成原始的单词向量空间,每一列是一个文本在单词向量空间中的表示
矩阵也可以写成
假设所有文本中共含有k个话题。假设每个话题都由一个定义资料单词集合上的m维向量表示,称为话题空间,即
其中是单词在话题的权值,,权值越大,该单词在话题中的重要度越高。这k个话题向量成一个话题向量空间,维数为k。
话题向量空间也可以表示为一个矩阵,称为单词-话题矩阵,记作
矩阵也可以写作
(2)文本在话题向量空间的表示
现考虑文本集合的文本,在单词向量空间由一个向量表示,将投影到话题向量空间,得到话题向量空间的一个向量,是一个k为向量,其表达式为
其中是文本在话题的权值,,权值越大,该话题在该文本中的重要性越高。
矩阵表示话题在文本中出现的情况,称为话题-文本矩阵记作
矩阵也可以写作
(3)从单词向量空间到话题向量空间的线性变换
这样一来,在单词向量空间的文本可以通过它在话题空间中的向量近似表示,具体地由k个话题以为系数的线性组合近似表示
所以单词-文本矩阵可以近似的表示为单词-话题矩阵与话题-文本矩阵的乘积形式,这就是潜语义分析
在原始的单词向量空间中,两个文本的相似度可以由向量的内积表示,即。经过潜在语义分析之后,在话题向量空间中,两个文本的相似度可以由对应的向量的内积即表示
要进行潜在语义分析,需要同时决定两部分,一是话题空间向量,二是文本在话题中的表示,使两者乘积是原始矩阵的近似,而这一结果完全从话题-文本矩阵的信息中获得。
二、潜在语义分析算法
1.单词-文本矩阵
给定文本集合和单词集合。潜在语义分析首先将这些数据表成单词-文本矩阵
这是一个矩阵,元素表示单词在文本中出现的频数或权值。
2.截断奇异值分解
潜在语义根据确定的话题个数k对单词-文本矩阵进行截断奇异值分解
式中是矩阵,它的列由的前k个相互正交的左奇异向量组成,是k阶对角矩阵,对角元素为前k个最大奇异值,是矩阵,它的列由的前k个互相正交的右奇异向量组成
3.单词向量空间
在单词-文本矩阵的截取奇异分解式中,矩阵的每一列向量表示一个话题,称为话题向量。由k个话题生成一个子空间。
称为话题空间
4.文本的话题表示
有了话题空间,接着考虑文本在话题空间的表示
其中
因此矩阵的第j列向量满足
式中是矩阵的第j列向量。矩阵的每一列向量是一个文本在话题向量空间的表示。
得到话题空间以及文本在话题空间的表示