统计学习方法-潜在语义分析(LSA)-读书笔记

统计学习方法-LSA-读书笔记

    • 1、前言
    • 2、LSA
      • 2.1矩阵奇异值分解算法
      • 2.2非负矩阵分解算法

1、前言

文本数据挖掘中最简单的方法是利用向量空间模型(vector space model,VSM),也就是但词向量空间模型,创造一个单词-文本矩阵,矩阵中的值通常采用单词在文本中出现的频数或权值表示。它是一个稀疏矩阵
权值通常采用单词频率-逆文本频率(TF-IDF)表示,定义为
T F I D F i j = t f i j t f ⋅ j log ⁡ d f d f i TFIDF_{ij}=\frac{tf_{ij}}{tf\cdot _j}\log \frac{df}{df_i} TFIDFij=tfjtfijlogdfidf
t f i j tf_{ij} tfij是单词出现在文本中的频数, t f ⋅ j tf\cdot _j tfj是文本中出现的所有单词的频数之和, d f i df_i dfi是含有单词的文本数, d f df df是文本集合D的全部文本数。
由于自然语言单词具有一词多义性,多词一义性,所以基于单词向量的相似度计算存在不精确的问题。

2、LSA

单词-文本矩阵X可以近似的表示成单词-话题矩阵T与话题-文本矩阵Y的乘积形式。这就是潜在语义分析。
X = T Y X=TY X=TY

2.1矩阵奇异值分解算法

①构建单词-文本矩阵X,这是一个m*n矩阵,表示单词在文本中出现的频数或权值。
②截断奇异值分解。根据确定的话题个数k对矩阵X进行截断奇异值分解,左矩阵作为话题空间向量,对角矩阵与右矩阵的乘积作为文本在话题向量空间的表示。
X = U k Σ k V k T = U k ( Σ k V k T ) X=U_k{\Sigma}_kV_k^T=U_k({\Sigma}_kV_k^T) X=UkΣkVkT=Uk(ΣkVkT)

2.2非负矩阵分解算法

对单词-文本矩阵进行非负矩阵分解,左矩阵作为话题向量空间,右矩阵作为文本在话题空间的表示。通常X为非负的。
X = W H X=WH X=WH
此为近似相等,所以非负矩阵分解是对原始数据的压缩。
算法:形式化为最优化问题求解。利用损失函数或者代价函数。
m i n ∣ ∣ X − W H ∣ ∣ 2 min ||X-WH||^2 minXWH2
约束条件 W , H > 0 W,H>0 W,H>0
利用乘法更新规则优化算法,交替地对W和H进行更新
**定理:**平方损失 ∣ ∣ X − W H ∣ ∣ 2 ||X-WH||^2 XWH2对下列乘法更新规则
H l j ← H l j ( W T X ) l j ( W T W H ) l j H_{lj}\leftarrow H_{lj}\frac{(W^TX)_{lj}}{(W^TWH)_{lj}} HljHlj(WTWH)lj(WTX)lj
W i l ← W i l ( X H T ) l j ( W H H T ) l j W_{il}\leftarrow W_{il}\frac{(XH^T)_{lj}}{(WHH^T)_{lj}} WilWil(WHHT)lj(XHT)lj
原理如下:求对W,H偏导,得出梯度下降更新规则,
W i l = W i l + λ i l [ ( X H T ) i l − ( W H H T ) i l ] W_{il}=W_{il}+{\lambda}_{il}[(XH^T)_{il}-(WHH^T)_{il}] Wil=Wil+λil[(XHT)il(WHHT)il]
H l j = H l j + μ l j [ ( W T X ) l j − ( W T W H ) l j ] H_{lj}=H_{lj}+{\mu}_{lj}[(W^TX)_{lj}-(W^TWH)_{lj}] Hlj=Hlj+μlj[(WTX)lj(WTWH)lj]
步长取:
λ i l = W i l ( W H H T ) i l {\lambda}_{il}=\frac{W_{il}}{(WHH^T)_{il}} λil=(WHHT)ilWil
μ l j = H l j ( W T W H ) l j {\mu}_{lj}=\frac{H_{lj}}{(W^TWH)_{lj}} μlj=(WTWH)ljHlj
由此得出上面定理中乘法更新规则。

你可能感兴趣的:(学习笔记)