510 likes | 1.21k Vues
大数据存储与应用 降维. 课程主页: http ://netcomm.bjtu.edu.cn/? page_id=397 陈 一 帅 chenyishuai@gmail.com. 介绍. 为什么要降维? 找出规律,压缩数据量. 几维?. 降维. 看起来 3 维,其实 2 维. 看起来 2 维,其实 1 维. 内容. 特征值与特征向量 PCA (主元素分析) Principal-Component Analysis SVD (奇异值分解) Singular-Value Decomposition CUR 分解. 特征值与特征向量. 特征值与特征向量. 定义
E N D
大数据存储与应用降维 课程主页:http://netcomm.bjtu.edu.cn/?page_id=397 陈一帅 chenyishuai@gmail.com
介绍 • 为什么要降维? • 找出规律,压缩数据量 几维?
降维 看起来3维,其实2维 看起来2维,其实1维
内容 • 特征值与特征向量 • PCA(主元素分析)Principal-Component Analysis • SVD(奇异值分解)Singular-Value Decomposition • CUR分解
特征值与特征向量 • 定义 • 计算方法 • Power Iteration寻找特征对(Eigenpairs) • 特征向量矩阵
定义 • M 矩阵, λ常数,e非零列向量 • Me = λe • 唯一确定一个e • e为unit vector • 第一个非零元素为正
一般计算方法 • 要 , 的行列式等于0 • 求得λ • 然后通过Me = λe求e • 计算复杂度O(n3)
Power Iteration方法 • 任选一个向量X0 • 递归 • 误差 Frobenius norm 足够小时,停止 • 这个Xk就是M的主特征向量 • 然后通过 Mx = λx 求 λ • x是一个单位向量:X-1 = XT
Power Iteration方法 • 再找第二个特征对 • 在M中去掉第一个主特征向量的因素 • 然后类似计算
特征向量矩阵 • 特征向量是单位向量 • 特征向量之间正交 • 特征向量矩阵 E 的特点
PCA • 事例 • 使用特征向量进行降维 • 距离矩阵
原理 • 将矩阵与一个正交单位向量矩阵相乘,意味着在欧式空间上的旋转 • 求 的特征矩阵E,对高维数据进行旋转 • 原数据变成在新的坐标上的投影。 • 新的坐标上,第一维是主特征向量指向的那个方向,能量最强 • 以后依次递减 • 使降维成为可能
对称阵 逆时针45度旋转 原始数据 按虚线旋转
在新坐标系上的位置 • 第一维的能量 > 第二维的能量,而且它们正交 • 所以,如果要降到一维,无疑,应该保留第一维,把第二维去掉 • PCA
SVD • 定义 • 降维 • 应用 • 计算
定义 • r 是 A 的 Rank (秩) • U:左奇异向量 Left singular vectors 单位正交矩阵 • :奇异值 Singular values对角阵, • V:右奇异向量 Right singular vectors 单位正交矩阵
例 • 二维 • M的秩 r = 2 科幻 浪漫 概念强度矩阵 科幻 浪漫 浪漫 科幻 电影– 概念 矩阵 用户 – 概念 矩阵
用户电影观看矩阵 用户 – 概念 矩阵 科幻 浪漫 概念强度矩阵 科幻 浪漫 科幻 浪漫 在实际中,U,V中没有这么多0 概念分得没有这么清 电影– 概念 矩阵
SVD的理解 • V是把电影按照用户进行概念分类后的结果 • 五部电影,投影到“科幻”“浪漫”两个概念上
SVD的理解 • 是将用户按照电影进行概念分类后的结果 • 7个用户,投影到“科幻”“浪漫”两个概念上
基于SVD的降维 • 降概念强度最低那一维 用户 – 概念 矩阵 概念强度矩阵 电影– 概念 矩阵
降维结果 误差评估
证明 • 为什么去掉 最小的那一维,误差最小? • 需要证明两点 • 如果M = PQR 是M的SVD,有 • qii是Q对角线上的值,也就是
实践中 • 保持80~90%的能量 • 计算复杂度 • 看哪个小 • LINPACK, Matlab, SPlus, Mathematica都有实现
和特征向量的关系 • 是 的特征值对角阵 • U是 的特征向量矩阵 • V是 的特征向量矩阵 • 就是PCA的那个旋转矩阵E 就可以用Power Iteration的方法解
应用 • 已知:赵老师喜欢Matrix,给它评分为5, • 问:赵老师喜欢什么类型的片? • qV计算,把赵老师投影到概念空间上
应用 • 给赵老师推荐什么片? • 把赵老师的概念向量qV,乘视频的概念向量VT,得到推荐的视频向量 = [1.64 1.64 1.64 -0.16 -0.16] • 给他推荐《异形》
应用 • 寻找和赵老师兴趣相同的人 • 他们虽然看的是不同的片,但发现了他们的兴趣相同 • 通过UI矩阵发现的
SVD的问题 • 结果难以解释 • 为什么这么多维? • U和V很Dense! • 占空间多
CUR • 正确地选择行/列 • 构造中间矩阵 • 消除冗余的行/列
缘起 • 克服SVD的问题 • M = CUR • 随机找c行,组成C • 选行j的概率P(j)= 其能量(值的平方和)/A的总能量 • 选出后,除它可能被挑上的次数的开方 • 好处:好理解,C稀疏
求U • W是C和R的交集 • 对它SVD: • Z+ 伪反 (pseudoinverse) • Z中的元素,如果是0,保持不变;如果非0,取倒数
性能 • [Drineas et al.] • 取 行, 列,就能在O(m*n)时间内,以概率获得 • Drineas et al., Fast Monte Carlo Algorithms for Matrices III: Computing a Compressed Approximate Matrix Decomposition, SIAM Journal on Computing, 2006.
冗余行/列的处理 • K列相同 • 扔掉K-1列,保留1列 • 对这一列中的所有值,乘
实验 • DBLP作者数据 • 作者 – 会议 矩阵,论文数 • 428K 作者(行),3659会议(列) • 做降维 • CPU时间 • 准确度 • 存储空间:输出矩阵中数值个数/输入矩阵中数值个数
性能比较 • Sun, Faloutsos: Less is More: Compact Matrix Decomposition for Large Sparse Graphs, SDM ’07.
扩展 • SVD • 线性投影 • 非线性方法 isomap.stanford.edu/ • A Global Geometric Framework for Nonlinear Dimensionality Reduction. J. B. Tenenbaum, V. de Silva and J. C. Langford. Science 290 (5500): 2319-2323, • 给你698张人脸的图像(64×64灰度),通过isomap降维方法将每张脸当做一个点映到二维平面上,使得横坐标恰好反映人脸左右看的程度,纵坐标反映人脸上下看的程度。 • http://blog.csdn.net/littlestonelj/article/details/7534382
练习 • 11.3.2