文章目录
- 1. 单词向量空间、话题向量空间
- 1.1 单词向量空间
- 1.2 话题向量空间
- 2. 潜在语义分析算法
- 2.1 例子
- 3. 非负矩阵分解算法
- 4. TruncatedSVD 潜在语义分析实践
- 一种无监督学习方法,主要用于文本的话题分析
- 其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系
- 最初应用于
文本信息检索
,也被称为潜在语义索引(latent semantic indexing,LSI),在推荐系统、图像处理、生物信息学等领域也有广泛应用
文本信息处理中:
- 传统的方法以单词向量表示文本的语义内容,以
单词向量空间的度量
表示文本之间的语义相似度 - 潜在语义分析 旨在 解决这种方法不能准确表示语义的问题,试图从大量的文本数据中发现潜在的话题
- 以话题向量表示文本的语义内容,以话题向量空间的度量更准确地表示文本之间的语义相似度
潜在语义分析使用的是非概率的话题分析模型
- 将文本集合表示为
单词-文本
矩阵 - 对单词-文本矩阵进行
奇异值分解
,从而得到话题向量空间,以及文本在话题向量空间的表示
非负矩阵分解
(non-negative matrix factorization,NMF)是另一种矩阵的因子分解方法,其特点是分解的矩阵非负。非负矩阵分解也可以用于话题分析。
1. 单词向量空间、话题向量空间
1.1 单词向量空间
文本信息处理的一个核心问题
是对文本的语义内容进行表示,并进行文本之间的语义相似度计算。
- 利用向量空间模型(vector space model,VSM),也就是单词向量空间模型(word vector space model)。
- 基本想法:用一个向量表示文本的“语义”,向量的
每一维对应一个单词
,其数值为该单词在该文本中出现的频数或权值 - 基本假设:
文本中所有单词的出现情况表示了文本的语义内容;
文本集合中的每个文本都表示为一个向量,存在于一个向量空间;
向量空间的度量,如内积或标准化内积表示文本之间的“语义相似度”。
- 单词文本矩阵是稀疏矩阵,元素为频数或权值
- 权值:常用
单词频率-逆文本频率
(term frequency-inverse document frequency,TF-IDF)表示,其定义是
单词向量空间模型的优点
:
是模型简单,计算效率高
。因为单词向量通常是稀疏的,两个向量的内积计算只需要在其同不为零的维度上进行即可,需要的计算很少,可以高效地完成
单词向量空间模型也有一定的局限性
:
内积相似度
未必能够准确表达两个文本的语义相似度上- 因为自然语言的单词具有
一词多义性
(polysemy)及多词一义性
(synonymy),所以基于单词向量的相似度计算存在不精确的问题
1.2 话题向量空间
话题(topic),就是指文本所讨论的内容或主题。
- 一个文本一般含有若干个话题
- 如果两个文本的话题相似,那么两者的语义应该也相似
- 话题由若干个语义相关的单词表示
- 同义词(如“airplane”与“aircraft”)可以表示同一个话题
- 而多义词(如“apple”)可以表示不同的话题
这样,基于话题的模型就可以解决上述基于单词的模型存在的问题。
定义一种话题向量空间模型(topic vector space model)
- 给定一个文本,用话题空间的一个向量表示该文本,该向量的每一分量对应一个话题,其数值为该话题在该文本中出现的权值
- 用两个向量的内积或标准化内积表示对应的两个文本的语义相似度
- 注意话题的个数
通常远远小于
单词的个数,话题向量空间模型更加抽象 - 潜在语义分析正是构建话题向量空间的方法(即话题分析的方法)
单词向量空间
模型与话题向量空间
模型互为补充,两者可以同时使用
单词-文本
矩阵XXX 近似为:单词-话题
矩阵TTT & 话题-文本
矩阵YYY 的乘积形式,X≈TYX \approx TYX≈TY
2. 潜在语义分析算法
潜在语义分析 利用 矩阵奇异值分解(SVD),对单词-文本
矩阵进行奇异值分解
- 左矩阵 作为
话题向量空间
- 对角矩阵 与 右矩阵的乘积 作为
文本在话题向量空间的表示
潜在语义分析 根据 确定的话题个数k
对单词-文本
矩阵XXX进行截断奇异值分解
2.1 例子
3. 非负矩阵分解算法
非负矩阵分解 也可以用于 话题分析
- 对
单词-文本
矩阵进行非负矩阵分解
左矩阵
作为话题向量空间
右矩阵
作为文本在话题向量空间的表示
。注意通常单词-文本
矩阵是非负的(所有元素 >= 0)
定义:找到两个非负矩阵乘积近似表示一个非负矩阵
X≈WH,X≥0,W≥0,H≥0X \approx WH,X \ge 0, W\ge 0, H \ge 0X≈WH,X≥0,W≥0,H≥0
WWW 为基矩阵,表示话题空间,HHH 为系数矩阵,是文本在话题空间的表示。
非负矩阵分解 旨在 用较少的基向量、系数向量 来 表示较大的数据矩阵
非负矩阵分解 可以表为以下的最优化问题:
min∣∣X−WH∣∣2st.W,H≥0\min ||X-WH||^2\\ st. \quad W,H \ge 0min∣∣X−WH∣∣2st.W,H≥0
非负矩阵分解
的算法是迭代算法
- 乘法更新规则的迭代算法,交替地对WWW和HHH进行更新。
- 本质是梯度下降法,通过定义特殊的步长和非负的初始值,保证迭代过程及结果的矩阵WWW和HHH均为非负
4. TruncatedSVD 潜在语义分析实践
基于sklearn.decomposition.TruncatedSVD的潜在语义分析实践