Singular value decomposition
What Is Singular Value Decomposition?
Singular value decomposition (SVD) is a matrix factorization technique in linear algebra that expresses any real or complex matrix as the product of three structured matrices, revealing the intrinsic geometric and statistical properties of linear transformations and data sets. Given an m-by-n matrix A, SVD factors it as A = U S V^T, where U is an m-by-m orthogonal matrix, S is an m-by-n diagonal matrix of non-negative singular values arranged in descending order, and V is an n-by-n orthogonal matrix. The columns of U and V are called left and right singular vectors, respectively, and together with the singular values they provide a complete characterization of the mapping A represents.
SVD generalizes the eigendecomposition of symmetric matrices to matrices of arbitrary shape and rank, making it broadly applicable across numerical linear algebra, statistics, signal processing, and machine learning. Its mathematical foundations were established in the nineteenth century by Beltrami and Jordan, and it has been a central tool in numerical computation since the development of stable bidiagonal reduction algorithms in the 1960s and 1970s.
Mathematical Foundations
The singular values of A are the square roots of the eigenvalues of the symmetric positive semidefinite matrix A^T A (or equivalently, A A^T), and they measure the scaling that A applies along each orthogonal direction defined by the singular vectors. The largest singular value equals the operator 2-norm of A, and the ratio of the largest to smallest non-zero singular value is the condition number, which quantifies numerical sensitivity of the linear system Ax = b to perturbations in the data.
The rank of A equals the number of non-zero singular values. A truncated SVD, retaining only the k largest singular values and their associated singular vectors, yields the best rank-k approximation to A in both the Frobenius norm and the spectral norm, a result known as the Eckart-Young-Mirsky theorem. This optimality property makes SVD the theoretical basis for dimensionality reduction, as described in the CMU Computer Science Theory chapter on SVD and information retrieval.
Computation and Numerical Methods
Computing the full SVD of an m-by-n matrix requires O(m n^2) floating-point operations when m >= n, using algorithms based on Householder bidiagonalization followed by QR iteration or divide-and-conquer methods. Standard implementations are provided in LAPACK (routines DGESVD and DGESDD) and are accessible through MATLAB, NumPy, and scientific computing libraries in most languages. For large sparse matrices where only a few extreme singular values are needed, Krylov subspace methods such as the Lanczos bidiagonalization algorithm are far more efficient than computing the full decomposition.
Research in SIAM Journal on Matrix Analysis and Applications on computing extreme singular values of large-scale tensor-train structured matrices illustrates how modern algorithms exploit matrix structure to compute the leading singular triplets of matrices far too large to factor directly, enabling SVD-based analysis of problems in quantum chemistry and high-dimensional data processing.
Applications in Data Analysis and Signal Processing
In statistics and machine learning, principal component analysis (PCA) is implemented through the SVD of a mean-centered data matrix; the right singular vectors are the principal components and the singular values encode the variance explained by each component. In natural language processing, latent semantic analysis applies truncated SVD to term-document matrices to uncover semantic relationships between words and documents.
In signal processing, SVD separates a signal subspace from a noise subspace by discarding singular values below a threshold, enabling noise reduction in arrays and spectral estimation. Oxford University CS course notes on SVD and PCA detail the relationship between the SVD of the data matrix and the eigendecomposition of the sample covariance matrix, showing that both approaches yield identical principal components.
Applications
Singular value decomposition has applications across a range of engineering and scientific domains, including:
- Image compression and low-rank approximation, where truncated SVD reduces storage while preserving perceptual content
- Recommender systems and collaborative filtering, exploiting low-rank structure in user-item rating matrices
- Antenna array processing and direction-of-arrival estimation in radar and sonar
- Control systems and robust stability analysis, where singular values bound gain over all input directions
- Genomics and bioinformatics, for dimensionality reduction and pattern discovery in gene expression data