跳轉到

SVD 奇異值分解與最佳低秩近似#

任何一個矩陣,無論是不是方陣,都可以分解成「旋轉—伸縮—再旋轉」三個幾何動作的合成。這就是奇異值分解(Singular Value Decomposition, SVD):

\[A = U \Sigma V^T\]

其中 \(U\)、\(V\) 是正交矩陣,\(\Sigma\) 是對角矩陣,對角線上的奇異值 \(\sigma_1 \ge \sigma_2 \ge \cdots \ge 0\) 描述了這個線性變換在各个正交方向上的伸縮倍率。若只保留前 \(k\) 個奇異值與對應的奇異向量,得到的秩 \(k\) 矩陣 \(A_k\) 是所有秩不超過 \(k\) 的矩陣中,與 \(A\) 距離最近者。這個「最佳低秩近似」性質,是 SVD 在二十世紀末成為資料科學核心工具的根本原因。

十九世紀的三位發現者#

SVD 的理論起源遠比想像中早。1873 年,義大利帕維亞大學的 Beltrami 首先對實方陣證明了 SVD 的存在性,發表於《數學年刊》(Annali di Matematica)。僅僅一年之後,法國數學家 Camille Jordan 在 1874 年獨立地給出了更完整的敘述,並且推廣到複數矩陣。Jordan 對這個結果相當自豪,認為它是自己最重要的貢獻之一,但當時的數學界並未重視——十九世紀的數學家關心的是不變量理論與剛萌芽的抽象代數,一個「把矩陣對角化」的技術性結果顯得無足輕重。此後近半個世紀,SVD 被反覆重新發現:Autonne、Browne、Eckart 與 Young 等人都曾獨立推導過它。一個深刻的數學事實被埋沒了六十年,等待應用場景的出現。

統計學把它撿了起來#

真正的推手來自統計學。1901 年,優生學家 Karl Pearson 在《哲學雜誌》發表〈On Lines and Planes of Closest Fit to Systems of Points in Space〉,為了在遺傳數據中尋找「最適合的直線與平面」,他提出了主軸分析——這是主成分分析(PCA)的起點。Pearson 的工作動機很實際:生物測量學(biometry)正在興起,高爾頓與皮爾遜學派蒐集了大量的人體與遺傳測量數據,需要在高維數據中找到主要的變異方向。1933 年,Harold Hotelling 在《教育心理學期刊》上發表「Analysis of a Complex of Statistical Variables into Principal Components」,把這套方法系統化,並用於心理測驗與教育測量數據。Hotelling 當時面對的是美國教育測驗產業與大規模社會調查的興起——數據第一次多到人力無法直接理解,必須機械化地降維。

Eckart 與 Young 在 1936 年發表的定理補上了最後一塊拼圖:他們證明截斷 SVD 恰好就是 PCA 在 Frobenius 範數意義下的最佳解,把統計學的 PCA 與線性代數的 SVD 統一起來。有趣的是,這篇論文發表於心理測量學(Psychometrika)的相關脈絡,再次說明社會科學的資料需求驅動了數值線性代數的理論。

Golub 與 Stanford:讓 SVD 可以計算#

理論雖然完備,SVD 在電腦上如何穩定地計算,卻是另一回事。直接對 \(A^TA\) 做特徵分解會把條件數平方掉,數值上不可接受。突破來自 Gene Golub。Golub 在 1965 年與 William Kahan 合作發表了用 Householder 變換做矩陣分解的工作,隨後與 Velvel Kahan 時期的同事、以及 1965 年加入的 Golub 本人,發展出兩階段策略:先用 Householder 二對角化(Golub–Kahan 1965),再對二對角矩陣用帶隱位移的 QR 迭代求奇異值。Golub 與 Christian Reinsch 於 1970 年在《數值數學》(Numerische Mathematik)發表了完整的演算法,很快被收入 EISPACK 與後來的 LAPACK,成為今日 numpy.linalg.svd 背後的核心。

Golub 在 Stanford 的影響遠不止於此。他 1965 年起在史丹佛任教,把數值線性代數經營成一門有自己期刊(SIAM Journal on Matrix Analysis,他參與創辦)、自己會議、自己經典教科書(Golub 與 Van Loan 的《Matrix Computations》, 1983)的學科。1990 年代,Golub 及其學生把 SVD 推向資訊檢索:1988 年左右,Susan Dumais、George Furnas、Thomas Landauer 等人在 Bellcore(貝爾通信研究)發展 Latent Semantic Analysis(LSA),把「詞彙—文件」矩陣做截斷 SVD,在數百維的潛在語義空間中度量詞與文件的相似度,成功處理了同義詞問題。這是搜尋引擎時代來臨之前,自然語言處理最重要的突破之一,而它的數學心臟正是 Golub 團隊二十年前寫的 SVD 演算法。

從影像壓縮到 Netflix 大獎#

SVD 的低秩近似性質讓它天然適合壓縮:一張 \(512 \times 512\) 的灰階影像,保留前 50 個奇異值,只需儲存約 \(2 \times 512 \times 50\) 個數字,卻能保持影像的主要輪廓。這個教學範例在 JPEG 之類的基於頻域的壓縮流行之後更多是概念示範,但它揭示的思想——「重要的資訊集中在少數幾個方向」——在推薦系統中找到了巨大的商業舞台。

2006 年,Netflix 宣布舉辦百萬美元大獎:任何隊伍若能把推薦準確率提升 10%,即可獨得一百萬美元。超過四萬支隊伍參賽,比賽持續了近三年,最後由「BellKor's Pragmatic Chaos」隊於 2009 年奪冠。獲勝方案的核心技術正是矩陣分解——把巨大的「用戶—電影」評分矩陣近似為兩個低秩矩陣的乘積,這在數學上就是 SVD 的推廣(評分矩陣有大量缺失值,需要用交替最小平方法或隨機梯度下降求解,業界通稱「SVD」)。Netflix 大獎把矩陣分解推薦方法推向整個產業,也催生了無數關於推薦系統的論文與新創公司。可以說,1873 年 Beltrami 在帕維亞的一個定理,在一百三十六年後為 Netflix 的股東創造了以億計的價值。

結語#

SVD 的故事展示了一條典型的數學技術演化路徑:十九世紀的純數學發現,沉睡半世紀;被統計學家為處理社會數據而重新拾起;在電腦出現後被 Golub 一代的數值分析師工程化;最終在資訊檢索與推薦系統中成為產業基礎設施。低秩近似的哲學——複雜世界的有效資訊維度遠低於表象——至今仍是機器學習的主導思想之一。