SVD (Matrix Factorization)
Description
The SVD (Singular Value Decomposition) policy implements matrix factorization, often referring to iterative algorithms inspired by SVD used for collaborative filtering (like Funk SVD or SVD++). It decomposes the user-item interaction matrix into latent factors and potentially incorporates user/item biases (mean-centering tendencies) to improve prediction accuracy. It's typically trained using optimization techniques like Stochastic Gradient Descent (SGD).
Policy Type: svd
Supports: embedding_policy
, scoring_policy
Configuration Example
embedding_policy_svd.yaml
policy_configs:
embedding_policy: # Can also be used under scoring
policy_type: svd
n_factors: 100 # Number of latent factors
n_epochs: 20 # Number of training iterations (epochs) for SGD
biased: true # Whether to include user/item bias terms
lr_all: 0.005 # Learning rate for SGD
reg_all: 0.02 # Regularization strength for SG
References
- Koren, Y. (2008). Factorization Meets the Neighborhood: A Multifaceted Collaborative Filtering Model. KDD. (Introduced SVD++ which includes biases and implicit influence).
- Funk, S. (2006). Netflix Update: Try This at Home. Blog post. (Popularized iterative matrix factorization with SGD for the Netflix Prize).