潜在语义分析(LSA)

潜在语义分析(Latent Semantic Analysis,LSA)是一种无监督学习方法,主要用于分本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。

1、单词向量空间

文本信息处理的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算。最简单的方法是利用向量空间模型(Vector Space Model,VSM)。向量空间模型的基本想法是,给定一个文本,用一个向量表示该文本的“语义”,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或权值。这里的基本假设是文本中所有单词的出现情况表示了文本的语义内容。向量空间的度量,如内积或标准化内积表示文本之间的“语义相似度”。

严格定义如下:给出一个含有个文本的集合以及在所有文本中出现的个单词的集合。将单词在文本中出现的数据用一个单词-文本矩阵表示,记作:

表示单词在文本中出现的频数或权值。这是一个稀疏矩阵。

权值常用单词频率-逆文本频率(term frequency-inverse document frequency,TF-IDF)表示,其定义是:

其中是单词出现在文本中的频数,是文本中出现的所有单词的频数之和,是含有单词的文本数,是文本集合的全部文本数。

这个概念的解释我在读吴军先生的《数学之美》时见过,至今记忆犹新。举例来说,很多单词在所有文本中出现频率都很高(比如I,is,are,and)但它们并不能代表文本的语义,因为这些单词在所有文本中都出现,因此它们并不能代表文本的特点。这就是不能直接使用单词频率的原因。为了度量一个单词能多大程度地反映文本的特点,可以使用逆文本频率,即一个单词在整个文本集合中出现的文本越少,这个单词越能表示其所在文本的特点,重要度越高。这就是逆文本频率的含义。综合逆文本频率(度量单词多大程度反映文本特点)以及单词频率(度量单词对文本的重要性)就得到了TF-IDF

两个单词向量的内积或标准化内积(余弦)表示对应文本之间的语义相似度,文本与之间的相似度为:

VSM的优点是模型简单,计算效率高,因此单词向量通常是稀疏的,两个向量的内积计算只需要在同不为零的维度上进行即可。但VSM也有一定局限性,那就是有时内积相似度未必能准确表达两个文本的语义相似度,因为单词具有一词多义性(polysemy)和多词一义性(synonymy),所以基于单词向量的相似度计算存在不精确的问题。

2、话题向量空间

所谓话题(topic),并没有严格定义,就是指文本讨论的内容和主题。一个文本一般含有若干话题。

单词-文本矩阵定义同上,记为。

另外我们定义单词-话题矩阵,记作:

矩阵也可以写作(为所有文本的话题数)。

其中表示单词在话题的权值,,权值越大,该单词在该话题中重要度越高。这个话题向量张成一个话题向量空间,维数为。

接下来我们定义话题-文本矩阵

矩阵也可以写作。

其中表示话题在文本的权值,,权值越大,该话题在该文本中重要度越高。

这样一来,在单词向量空间的文本向量可以通过它在话题空间中的向量近似表示,具体地由个话题向量以为系数的线性组合近似表示:

表示单词在文本的权值,表示话题在文本的权值,表示单词在话题的权值。即:

这就是潜在语义分析。

进行潜在语义分析,需要同时决定两部分内容——单词-话题矩阵和话题-文本矩阵,使两者乘积是原始矩阵数据的近似。这一结果完全从单词-文本矩阵中获得。

3、潜在语义分析算法

潜在语义分析的思路是对单词-文本矩阵进行奇异值分解,将其左矩阵作为单词-话题矩阵,将其对角矩阵和右矩阵的乘积作为话题-文本矩阵。

具体来说,潜在语义分析根据固定的话题个数对单词-文本矩阵进行截断奇异值分解:

是矩阵,它的列由的前个互相正交的左奇异向量组成,是阶对角阵,对角元素为前个最大奇异值,是矩阵,它的列由的前个互相正交的右奇异向量组成。

从而为单词-话题矩阵(话题空间),为话题-文本矩阵(文本在话题空间的表示)。

4、非负矩阵分解算法

若一个矩阵所有元素非负,则称该矩阵为非负矩阵,若矩阵非负,记为。

给定非负矩阵,找到两个非负矩阵和:

称为矩阵的非负矩阵分解。

假设非负矩阵是一个矩阵,非负矩阵和分别为矩阵和矩阵。假设,即和小于原矩阵,所以非负矩阵分解是对原数据的压缩。

非负矩阵分解可形式化为最优化问题来求解。首先定义损失函数。

第一种是平方损失,两非负矩阵和的平方损失函数为:

第二种是散度,两非负矩阵和的散度损失函数为:

接着定义最优化问题:

或者:

使用梯度下降法求解得到的可分别作为话题矩阵和文本表示矩阵。

你可能感兴趣的:(潜在语义分析(LSA))