zoukankan      html  css  js  c++  java
  • SVD神秘值分解

    SVD分解

    SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是由于SVD能够说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。

    基础知识

    1. 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数

    2. 对角矩阵:对角矩阵是除对角线外全部元素都为零的方阵

    3. 单位矩阵:假设对角矩阵中全部对角线上的元素都为零,该矩阵称为单位矩阵

    4. 特征值:对一个M x M矩阵C和向量X,假设存在λ使得下式成立

    2 

    则称λ为矩阵C的特征值,X称为矩阵的特征向量。非零特征值的个数小于等于矩阵的秩。

    5. 特征值和矩阵的关系:考虑下面矩阵

    clip_image004

    该矩阵特征值λ1 = 30,λ2 = 20,λ3 = 1。相应的特征向量

    clip_image006

    如果VT=(2,4,6) 计算S x VT

    clip_image008

    clip_image010

    有上面计算结果能够看出,矩阵与向量相乘的结果与特征值,特征向量有关。观察三个特征值λ1 = 30,λ2 = 20,λ3 = 1,λ3值最小,对计算结果的影响也最小,假设忽略λ3,那么运算结果就相当于从(60,80,6)转变为(60,80,0),这两个向量十分相近。这也表示了数值小的特征值对矩阵-向量相乘的结果贡献小,影响小。这也是后面谈到的低阶近似的数学基础。

    矩阵分解

    1. 方阵的分解

    1) 设S是M x M方阵,则存在下面矩阵分解

    clip_image012

    当中U 的列为S的特征向量,clip_image014为对角矩阵,当中对角线上的值为S的特征值,按从大到小排列:

    clip_image016

    2) 设S是M x M 方阵,而且是对称矩阵,有M个特征向量。则存在下面分解

    clip_image018

    当中Q的列为矩阵S的单位正交特征向量,clip_image014[1]仍表示对角矩阵,当中对角线上的值为S的特征值,按从大到小排列。最后,QT=Q-1,由于正交矩阵的逆等于其转置。

    2. 神秘值分解

    上面讨论了方阵的分解,可是在LSA中,我们是要对Term-Document矩阵进行分解,非常显然这个矩阵不是方阵。这时须要神秘值分解对Term-Document进行分解。神秘值分解的推理使用到了上面所讲的方阵的分解。

    如果C是M x N矩阵,U是M x M矩阵,当中U的列为CCT的正交特征向量,V为N x N矩阵,当中V的列为CTC的正交特征向量,再如果r为C矩阵的秩,则存在神秘值分解:

    clip_image020

    当中CCT和CTC的特征值同样,为clip_image022

    Σ为M X N,当中clip_image024clip_image026,其余位置数值为0,clip_image028的值按大小降序排列。下面是Σ的完整数学定义:

    clip_image030

    σi称为矩阵C的神秘值。

    用C乘以其转置矩阵CT得:

    clip_image032

    上式正是在上节中讨论过的对称矩阵的分解。

    神秘值分解的图形表示:

    clip_image034

    从图中能够看到Σ尽管为M x N矩阵,但从第N+1行到M行全为零,因此能够表示成N x N矩阵,又因为右式为矩阵相乘,因此U能够表示为M x N矩阵,VT能够表示为N x N矩阵

    3. 低阶近似

    LSA潜在语义分析中,低阶近似是为了使用低维的矩阵来表示一个高维的矩阵,并使两者之差尽可能的小。本节主要讨论低阶近似和F-范数。

    给定一个M x N矩阵C(其秩为r)和正整数k,我们希望找到一个M x N矩阵Ck,其秩不大于K。设X为C与Ck之间的差,X=C – Ck,X的F-范数为

    clip_image036

    当k远小于r时,称Ck为C的低阶近似,当中X也就是两矩阵之差的F范数要尽可能的小。

    SVD能够被用与求低阶近似问题,过程例如以下:

    1. 给定一个矩阵C,对其神秘值分解:clip_image038

    2. 构造clip_image040,它是将clip_image042的第k+1行至M行设为零,也就是把clip_image042[1]的最小的r-k个(the r-k smallest)神秘值设为零。

    3. 计算Ckclip_image044

    回顾在基础知识一节里以前讲过,特征值数值的大小对矩阵-向量相乘影响的大小成正比,而神秘值和特征值也是正比关系,因此这里选取数值最小的r-k个特征值设为零合乎情理,即我们所希望的C-Ck尽可能的小。完整的证明能够在Introduction to Information Retrieval[2]中找到。

    我们如今也清楚了LSA的基本思路:LSA希望通过减少传统向量空间的维度来去除空间中的“噪音”,而降维能够通过SVD实现,因此首先对Term-Document矩阵进行SVD分解,然后降维并构造语义空间。


  • 相关阅读:
    118/119. Pascal's Triangle/II
    160. Intersection of Two Linked Lists
    168. Excel Sheet Column Title
    167. Two Sum II
    172. Factorial Trailing Zeroes
    169. Majority Element
    189. Rotate Array
    202. Happy Number
    204. Count Primes
    MVC之Model元数据
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4243955.html
Copyright © 2011-2022 走看看