奇异值分解(We recommend a singular value decomposition) 火光摇曳

9
2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition| 火光摇曳 http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 1/9 火光摇曳 夜幕降临之际,火光摇曳妩媚、灿烂多姿,是最美最美的 奇异值分解(We Recommend a Singular Value Decomposition 搜索技术、机器学习、自然语言处理 原文作者: 原文链接: 译者: 孙振龙 在这篇文章中,我们以几何的视角去观察矩阵奇异值分解的过程,并且列举一些奇异值分解的应 用。 介绍 矩阵奇异值分解是本科数学课程中的必学部分,但往往被大家忽略。这个分解除了很直观,更重 要的是非常具有实用价值。譬如, (在线电影租赁公司)对能够提高其电影推荐系统准确 的人提供 万美元的丰厚奖金。令人惊奇的是,这个看似简单的问题却非常具有挑战性, 相关的团队正在使用非常复杂的技术解决之,而这些技术的本质都是奇异值分解。 奇异值分解简单来讲,就是以一种方便快捷的方式将我们感兴趣的矩阵分解成更简单且有直观意 义的矩阵的乘积。本文以几何的视角去观察奇异值分解的过程,并且列举一些奇异值分解的应 用。 线性变换的几何解释 首先,我们来看一个只有两行两列的简单矩阵。第一个例子是对角矩阵 从几何的角度,矩阵可以描述为一个变换:用矩阵乘法将平面上的点( )变换成另外一个点 ): 这种变换的效果如下:平面在水平方向被拉伸了 倍,在竖直方向无变化。

Transcript of 奇异值分解(We recommend a singular value decomposition) 火光摇曳

Page 1: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 1/9

火光摇曳夜幕降临之际,火光摇曳妩媚、灿烂多姿,是最美最美的… …

奇异值分解(We Recommend a SingularValue Decomposition)2015/01/04 搜索技术、机器学习、自然语言处理 richardsun原文作者:David Austin原文链接: http://www.ams.org/samplings/feature-column/fcarc-svd译者:richardsun(孙振龙)

在这篇文章中,我们以几何的视角去观察矩阵奇异值分解的过程,并且列举一些奇异值分解的应

用。

介绍

矩阵奇异值分解是本科数学课程中的必学部分,但往往被大家忽略。这个分解除了很直观,更重

要的是非常具有实用价值。譬如,Netflix(在线电影租赁公司)对能够提高其电影推荐系统准确

率10%的人提供100万美元的丰厚奖金。令人惊奇的是,这个看似简单的问题却非常具有挑战性,

相关的团队正在使用非常复杂的技术解决之,而这些技术的本质都是奇异值分解。

奇异值分解简单来讲,就是以一种方便快捷的方式将我们感兴趣的矩阵分解成更简单且有直观意

义的矩阵的乘积。本文以几何的视角去观察奇异值分解的过程,并且列举一些奇异值分解的应

用。

线性变换的几何解释

首先,我们来看一个只有两行两列的简单矩阵。第一个例子是对角矩阵

从几何的角度,矩阵可以描述为一个变换:用矩阵乘法将平面上的点(x, y)变换成另外一个点

(3x, y):

这种变换的效果如下:平面在水平方向被拉伸了3倍,在竖直方向无变化。

Page 2: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 2/9

再看下这个矩阵

它会产生如下的效果

不过这张图貌似也并没有能够简洁、清晰的描述出上述矩阵变换的几何效果。然而,如果我们把

网格旋转45度,再观察一下。

啊哈!我们看到现在这个新的网格被转换的方式与原始的网格被对角矩阵转换的方式是完全一致

的:网格在某一方向上被拉伸了3倍。

当然这是一种特殊的结果,因为矩阵M是对称的,换句话说,M的转置(通过互换矩阵的对角项

得到)还等于M。如果我们有一个2*2的对称矩阵,可以证明,我们总是可以通过在平面上旋转网

格,使得矩阵变换的效果恰好是在两个垂直的方向上对网格的拉伸或镜面反射。换句话说,对称

矩阵表现得像对角矩阵一样。

说的更数学化一些,给定一个对称矩阵M,我们可以找到一组正交向量v 使得Mv 等于v 和标量的

乘积;那就是

Mv = λ v

这里λ是标量。从几何意义上讲,这意味着当v 乘上矩阵M时被简单地拉伸或者反射了。因为这个

性质,我们称v 是M的特征向量;标量λ被称为特征值。一个可以被证明的重要的事实是:对称矩

阵不同的特征值对应的特征向量是正交的。如果我们把对称矩阵的特征向量和网格对齐,那么矩

阵对网格的拉伸或反射的方式,与矩阵对特征向量的拉伸或反射的方式,两者是完全一致的。

上述线性变换的几何解释非常简单:网格在某个方向上被简单地拉伸了。对于更一般的矩阵,我

们将要问的问题是: 能否能找到某个正交网格,在矩阵变换之下,变成另一个正交网格? 让我

们最后来考虑一个非对称矩阵的例子:

这个矩阵产生的几何效果是切变(shear)。

很容易找到一族沿水平轴的特征向量。但是从上图可以看出,这些特征向量无法把某个正交网格

变换到另外一个正交网格。尽管如此,我们先尝试将网格旋转30度,然后看看发生了什么,

i i i

i i i

i i

i i

Page 3: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 3/9

注意右侧红色平行四边形在原点形成的夹角已经增加。(译者注:这暗示了,如果我们增加旋转

角度,平行四边形在原点形成的夹角可能增加到90度,从而变成正交网格。) 接下来将左侧网格

旋转到60度:

右侧的网格现在几乎是正交的。事实上,如果将左侧网格旋转58.28度,左右两个网格就都是正交

的了。

奇异值分解

2*2矩阵奇异值分解的几何实质是:对于任意2*2矩阵,总能找到某个正交网格到另一个正交网格

的转换与矩阵变换相对应。

用向量解释这个现象:选择适当的正交的单位向量v 和v ,向量Mv 和Mv 也是正交的。

用u 和u 来表示Mv 和Mv 方向上的单位向量。Mv 和Mv 的长度用σ 和 σ 来表示——量化了网格

在特定方向上被拉伸的效果。σ 和 σ 被称为M的奇异值。(在本例中,奇异值就是黄金比例及其

倒数,但它在此不是很重要。)

由此,我们有

Mv = σ uMv = σ u

现在给出矩阵M作用于向量x的简单描述。因为向量v 和v 是正交的单位向量,我们有

x = (v x) v + (v x) v

这意味着

Mx = (v x) Mv + (v x) MvMx = (v x) σ u + (v x) σ u

1 2 1 2

1 2 1 2 1 2 1 2

1 2

1 1 1

2 2 2

1 2

1 · 1 2 · 2

1 · 1 2 · 2

1 · 1 1 2 · 2 2

Page 4: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 4/9

注意点积可以用向量的转置来计算

v · x = v x

我们有

Mx = u σ v x + u σ v xM = u σ v + u σ v

通常表述成

M = UΣV

这里U是列向量u 和u 组成的矩阵,Σ是非零项为σ 和 σ 的对角矩阵,V是列向量v 和v 组成的矩

阵。带有上标T的矩阵V是矩阵V的转置。

上面描述了怎样将矩阵M分解成三个矩阵的乘积:V描述了原始空间中的正交基,U描述了相关空

间的正交基,Σ描述了V中的向量变成U中的向量时被拉伸的倍数。

怎样做奇异值分解?

奇异值分解的魅力在于任何矩阵都可以找到奇异值。怎么做?让我们来看下先前的例子,这回在

空间中加入单位圆。在变换后的空间中,单位圆变成了椭圆,其长轴和短轴定义了正交网格。

注意长轴和短轴用Mv 和Mv 定义。这两个向量因此成为单位圆里的所有向量中最长的和最短的

向量。

换句话讲,单位圆上的向量函数|Mx|在v 上有最大值而在v 上有最小值。这就把原始问题简化为

了一个标准的微积分问题:我们在单位圆上去优化一个函数的极值。而这个函数的极值点正好恰

恰是矩阵M M的特征向量。由于该矩阵是对称的,其不同的特征值对应的特征向量之间是正交

的。这就产生了向量族v 。

奇异值通过σ = |Mv |得到,u 是Mv 方向上的单位向量。但是u 之间为什么是正交的呢?

为了解释这个问题,我们假设σ和σ是不同的奇异值。我们有

Mv = σ uMv = σ u

T

1 1 1T

2 2 2T

1 1 1T

2 2 2T

T

1 2 1 2 1 2

1 2

1 2

T

i

i i i i i

i j

i i i

j j j

Page 5: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 5/9

让我们从表达式Mv Mv 开始,为了方便,假定奇异值是非零的。一方面,MviMvj是零,因为作为

矩阵M M的特征向量v 之间是正交的:

Mv · Mv = v M Mv = v · M Mv = λ v v = 0

另一方面,我们有

Mv Mv = σ σ u u = 0

因此u 和u 是正交的,所以我们已经找到能够转换成某个正交向量集u 的正交向量集v 。奇异值描

述了在不同方向上拉伸的倍数。

在实践中,这不是获得矩阵奇异值分解的步骤,因为这个方法不是特别高效,或者在数值计算中

的表现也不够好。

另外一个例子

让我们看一个奇异矩阵

矩阵的几何效果如下:

在这个例子中,第二个奇异值是零,所以我们可以这样写:

M = u σ v

换句话讲,如果一些奇异值为零,相应的项将不会出现在M的分解中。因此,矩阵M的秩(即线

性独立的行或列的个数)等于非零奇异值的个数。

数据压缩

奇异值分解可以高效的表示数据。例如,假设我们想传送下列图片,包含15*25个黑色或者白色

的像素阵列。

因为在图像中只有三种类型的列(如下),它可以以更紧凑的形式被表示。

我们用15*25的矩阵来表示这个图像,其中每个元素非0即1,0表示黑色像素,1表示白色像素。

如下所示,共有375个元素。

如果对M进行奇异值分解的话,我们只会得到三个非零的奇异值。

j j j

i jT

i

i j iT T

j iT

j j i · j

i · j i j i · j

i j i i

1 1 1T

Page 6: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 6/9

σ = 14.72σ = 5.22σ = 3.31

因此,矩阵可以如下表示

M=u σ v + u σ v + u σ v

我们有三个包含15个元素的向量v ,三个包含25个元素的向量u ,以及三个奇异值σ。这意味着

我们可以只用123个数字就能表示这个矩阵而不是出现在矩阵中的375个元素。在这种方式下,我

们看到在矩阵中有3个线性独立的列,也就是说矩阵的秩是3。

降噪

从之前的例子看出我们利用了矩阵中有很多奇异值为0的特殊性。通常来说,越大的奇异值对应

的信息越令人感兴趣。例如,想象我们用扫描仪将上面的图片输入到我们的计算机。但是,我们

的扫描机会在图片上产生一些缺陷(通常称作“噪声”)。

我们以同样的方式处理:用15*25矩阵来表示图像,然后进行奇异值分解。我们得到以下奇异

值:

σ = 14.15σ = 4.67σ = 3.00σ = 0.21σ = 0.19

…σ = 0.05

很明显,头三个奇异值是最重要的,所以我们假定其他的都是图像上的噪声,并假设假设

M≈u σ v + u σ v + u σ v

这就产生了如下的优化后的图片

Noisy image Improved image

数据分析

我们在收集数据的时候经常会遇到噪声:无论工具多好,总有一些误差在测量过程中。如果我们

记得大的奇异值指向矩阵中重要的特征,很自然地想到用奇异值分解去研究被收集的数据。

1

2

3

1 1 1T

2 2 2T

3 3 3T

i i i

1

2

3

4

5

15

1 1 1T

2 22T

3 3 3T

Page 7: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 7/9

例如,我们收集了一些数据如下:

如下是我们获得的数据,将其放入矩阵中:

-1.03 0.74 -0.02 0.51 -1.31 0.99 0.69 -0.12 -0.72 1.11

-2.23 1.61 -0.02 0.88 -2.39 2.02 1.62 -0.35 -1.67 2.46

然后进行奇异值分解。我们得到奇异值

σ = 6.04σ = 0.22

其中第一个奇异值远远大于另外一个,很安全的假设小的奇异值σ 是数据中的噪声并且可以理想

地认为是0。这个例子中的矩阵的秩是1,意味着所有数据都位于u 定义的线上。

这个简短的例子引出了主成分分析领域,展示了一系列用奇异值分解来检测数据依赖和冗余的技

术。

同样地,奇异值分解可以用来检测数据中的簇,这就解释了奇异值分解可以用来尝试优化Netflix的电影推荐系统。程序会根据你看过的电影来对与你看过的电影相似的未看过的电影进行排序。

推荐系统会挑选出你未看过的电影集合中预估分高的电影。

总结

如文章的开头所述,奇异值分解应该是本科数学专业线性代数课程的核心部分。除了拥有无比简

单的几何解释,奇异值分解提供了将线性代数想法应用于现实的极其有效的技术。然而大家对本

科线性代数课程的通常都缺乏足够的重视。

本文可能有点印象派的风格:我的目的是为奇异值分解背后的中心思想提供直观的解释,并通过

具体的例子来说明怎么将奇异值分解的思想付诸实践。

References:

Gilbert Strang, Linear Algebra and Its Applications. Brooks Cole.Strang’s book is somethingof a classic though some may find it to be a little too formal.

William H. Press et al, Numercial Recipes in C: The Art of Scientific Computing. CambridgeUniversity Press.Authoritative, yet highly readable. Older versions are available online.

Dan Kalman, A Singularly Valuable Decomposition: The SVD of a Matrix, The CollegeMathematics Journal 27 (1996), 2-23.Kalman’s article, like this one, aims to improve the profile

1

2

2

i

Page 8: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 8/9

of the singular value decomposition. It also a description of how least-squares computationsare facilitated by the decomposition.

If You Liked This, You’re Sure to Love That, The New York Times, November 21, 2008.This articledescribes Netflix’s prize competition as well as some of the challenges associated with it.

本文链接:奇异值分解(We Recommend a Singular Value Decomposition)本站文章若无特别说明,皆为原创,转载请注明来源:火光摇曳,谢谢!^^

相关文章

2014/06/19[我们是这样理解语

言的-1]文本分析平

台TextMiner

2014/07/21[LDA工程实践之算

法篇-1]算法实现正

确性验证

2014/10/27[LDA工程实践之算

法篇-2] SparseLDA

算法

2014/06/17[LDA数学八卦-4]文本建模

2014/06/17[LDA数学八

卦-5]LDA 文本建模

还没有评论,沙发等你来抢

评论 最新 最早 最热

社交帐号登录:

微博 QQ 人人 豆瓣 更多»

Page 9: 奇异值分解(We recommend a singular value decomposition)   火光摇曳

2015/1/4 奇异值分解(We Recommend a Singular Value Decomposition) | 火光摇曳

http://www.flickering.cn/nlp/2015/01/%e5%a5%87%e5%bc%82%e5%80%bc%e5%88%86%e8%a7%a3%ef%bc%88werecommendasingularvaluedecomp… 9/9

火光摇曳正在使用多说

说点什么吧…

发布