Singular Value Decomposition (SVD) for Recommendation
SVD decomposes a user-item rating matrix into latent user and item factors, enabling predictions of missing ratings and powering collaborative filtering recommendation systems.
SVD Decomposition
SVD factorizes a matrix M = U \u03a3 V^T, where U contains user factors, V contains item factors, and \u03a3 contains singular values (importance of each latent factor). Keeping only the top-k singular values gives the best rank-k approximation.
Low-Rank Approximation
Truncated SVD for Sparse Matrices
For large, sparse user-item matrices (typical in production), truncated SVD is computed efficiently without forming the full matrix. scikit-learn's TruncatedSVD uses randomized SVD for speed.
TruncatedSVD Usage
Making Recommendations
Matrix Factorization Libraries
Production recommendation systems use specialized libraries like Surprise, implicit, or LightFM that support explicit and implicit feedback with regularization.
Beyond Vanilla SVD
Vanilla SVD cannot directly handle missing entries. In practice, the SVD++ and ALS (Alternating Least Squares) algorithms optimize matrix factorization only on observed ratings, handling sparsity correctly. Libraries like surprise provide SVD, NMF, and KNN collaborative filtering with cross-validation support.