自然语言处理 - 潜在语义分析LSA背后的奇异值分解SVD

特征值和特征向量

\(A \mathbf{x} = \lambda \mathbf{x}\),这里,\(A \in \mathcal{R}^{n \times n}\)\(\mathbf{x} \in \mathcal{R}^{n \times 1}\)\(\lambda \in \mathcal{R}\)\(\lambda\) 是特征值,\(\mathbf{x}\) 是对应的特征向量。因此特征值分解:\(AW=W \Sigma\)\(A=W \Sigma W^{-1}\)。最后,将 \(W\) 中的 n 个向量标准化,可以得到\[A_{n \times n}=W_{n \times n} \Sigma_{n \times n} W^{T}_{n \times n}\]这里要求 \(A\) 必须为方阵。

SVD奇异值分解

\(A_{m \times n}=U_{m \times m} \Sigma_{m \times n} V^{T}_{n \times n}\)

计算左奇异矩阵U:
\(AA^T \in \mathcal{R}^{m \times m}\)\((AA^T) \mathbf{u}_i = \lambda_i \mathbf{u}_i\)。具体地,\(AA^{T} = U \Sigma V^{T} V \Sigma^T U^T = U \Sigma \Sigma^T U^T\)

计算右奇异矩阵V:
\(A^T A \in \mathcal{R}^{n \times n}\)\((A^T A) \mathbf{v}_i = \lambda_i \mathbf{v}_i\)。具体地,\(A^{T} A = V \Sigma^T U^T U \Sigma V^{T} = V \Sigma^T \Sigma V^T\)

注:可以看出特征值等于奇异值的平方。

计算奇异值:
\(A=U \Sigma V^{T}\) => \(AV = U \Sigma\) => \(A \mathbf{v}_i = \sigma_i \mathbf{u}_i\) => 求出 \(\sigma_i\)

潜在的k个主题

对于奇异值,在奇异值矩阵中按从大到小排序,而且奇异值减少地很快。因此可以用最少的k个奇异值和对应的左右奇异向量来近似A。\[A_{m \times n} = U_{m \times m} \Sigma_{m \times n} V^{T}_{n \times n} \approx U_{m \times k} \Sigma_{k \times k} V^{T}_{k \times n}\] \(U_{il}\) 是第i个文本与第l个主题的相关度,\(V_{jm}\) 是第j个单词和第m个主题的相关度,\(\Sigma_{lm}\) 是第l个主题和第m个主题的相关度。

使用

对于一个新的文本query:\(\mathbf{q} \in \mathcal{R}^{n \times 1}\)\[\mathbf{newq}_{1 \times k} = \mathbf{q}_{1 \times n} V_{n \times k} \Sigma^{-1}_{k \times k}\]

转载于:https://www.cnblogs.com/viredery/p/nlp_svd.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值