http://blog.sciencenet.cn/home.php?mod=space&uid=696950&do=blog&quickforward=1&id=699380
PS:一直以來對(duì)SVD分解似懂非懂,此文為譯文,原文以細(xì)致的分析+大量的可視化圖形演示了SVD的幾何意義。能在有限的篇幅把這個(gè)問題講解的如此清晰,實(shí)屬不易。原文舉了一個(gè)簡(jiǎn)單的圖像處理問題,簡(jiǎn)單形象,真心希望路過的各路朋友能從不同的角度闡述下自己對(duì)SVD實(shí)際意義的理解,比如 個(gè)性化推薦中應(yīng)用了SVD,文本以及Web挖掘的時(shí)候也經(jīng)常會(huì)用到SVD。
原文:We recommend a singular value decomposition
簡(jiǎn)介
SVD實(shí)際上是數(shù)學(xué)專業(yè)內(nèi)容,但它現(xiàn)在已經(jīng)滲入到不同的領(lǐng)域中。SVD的過程不是很好理解,因?yàn)樗粔蛑庇^,但它對(duì)矩陣分解的效果卻非常好。比如,Netflix(一個(gè)提供在線電影租賃的公司)曾經(jīng)就懸賞100萬美金,如果誰能提高它的電影推薦系統(tǒng)評(píng)分預(yù)測(cè)準(zhǔn)確率提高10%的話。令人驚訝的是,這個(gè)目標(biāo)充滿了挑戰(zhàn),來自世界各地的團(tuán)隊(duì)運(yùn)用了各種不同的技術(shù)。最終的獲勝隊(duì)伍"BellKor's Pragmatic Chaos"采用的核心算法就是基于SVD。
SVD提供了一種非常便捷的矩陣分解方式,能夠發(fā)現(xiàn)數(shù)據(jù)中十分有意思的潛在模式。在這篇文章中,我們將會(huì)提供對(duì)SVD幾何上的理解和一些簡(jiǎn)單的應(yīng)用實(shí)例。
線性變換的幾何意義(The geometry of linear transformations)
讓我們來看一些簡(jiǎn)單的線性變換例子,以 2 X 2 的線性變換矩陣為例,首先來看一個(gè)較為特殊的,對(duì)角矩陣:

從幾何上講,M 是將二維平面上的點(diǎn)(x,y)經(jīng)過線性變換到另外一個(gè)點(diǎn)的變換矩陣,如下圖所示

變換的效果如下圖所示,變換后的平面僅僅是沿 X 水平方面進(jìn)行了拉伸3倍,垂直方向是并沒有發(fā)生變化。

現(xiàn)在看下矩陣

這個(gè)矩陣產(chǎn)生的變換效果如下圖所示

這種變換效果看起來非常的奇怪,在實(shí)際環(huán)境下很難描述出來變換的規(guī)律 ( 這里應(yīng)該是指無法清晰辨識(shí)出旋轉(zhuǎn)的角度,拉伸的倍數(shù)之類的信息)。還是基于上面的對(duì)稱矩陣,假設(shè)我們把左邊的平面旋轉(zhuǎn)45度角,然后再進(jìn)行矩陣 M 的線性變換,效果如下圖所示:

看起來是不是有點(diǎn)熟悉? 對(duì)的,經(jīng)過 M 線性變換后,跟前面的對(duì)角矩陣的功能是相同的,都是將網(wǎng)格沿著一個(gè)方向拉伸了3倍。
這里的 M 是一個(gè)特例,因?yàn)樗菍?duì)稱的。非特殊的就是我們?cè)趯?shí)際應(yīng)用中經(jīng)常遇見一些 非對(duì)稱的,非方陣的矩陣。如上圖所示,如果我們有一個(gè) 2 X 2 的對(duì)稱矩陣 M 的話,我們先將網(wǎng)格平面旋轉(zhuǎn)一定的角度,M 的變換效果就是在兩個(gè)維度上進(jìn)行拉伸變換了。
用更加數(shù)學(xué)的方式進(jìn)行表示的話,給定一個(gè)對(duì)稱矩陣 M ,我們可以找到一些相互正交 Vi ,滿足 MVi 就是沿著 Vi 方向的拉伸變換,公式如下:
Mvi = λivi
這里的 λi 是拉伸尺度(scalar)。從幾何上看,M 對(duì)向量 Vi 進(jìn)行了拉伸,映射變換。Vi 稱作矩陣 M 的特征向量(eigenvector), λi 稱作為矩陣 M 特征值(eigenvalue)。這里有一個(gè)非常重要的定理,對(duì)稱矩陣 M 的特征向量是相互正交的。
如果我們用這些特征向量對(duì)網(wǎng)格平面進(jìn)行線性變換的話,再通過 M 矩陣對(duì)網(wǎng)格平面進(jìn)行線性換的效果跟對(duì) M 矩陣的特征向量進(jìn)行線性變換的效果是一樣的。
對(duì)于更為普通的矩陣而言,我們?cè)撛趺醋霾拍茏屢粋€(gè)原來就是相互垂直的網(wǎng)格平面(orthogonal grid), 線性變換成另外一個(gè)網(wǎng)格平面同樣垂直呢?PS:這里的垂直如圖所示,就是兩根交錯(cuò)的線條是垂直的。

經(jīng)過上述矩陣變換以后的效果如圖

從圖中可以看出,并沒有達(dá)到我們想要的效果。我們把網(wǎng)格平面旋轉(zhuǎn) 30 度角的話,然后再進(jìn)行同樣的線性變換以后的效果,如下圖所示

讓我們來看下網(wǎng)格平面旋轉(zhuǎn)60度角的時(shí)候的效果。

嗯嗯,這個(gè)看起來挺不錯(cuò)的樣子。如果在精確一點(diǎn)的話,應(yīng)該把網(wǎng)格平面旋轉(zhuǎn) 58.28 度才能達(dá)到理想的效果。
