The idea behind the method
E-commerce has an interaction matrix: rows are customers, columns are products, values are ratings,
clicks or purchases. The matrix is sparse — most shoppers have interacted with only a tiny
fraction of the catalogue.
Matrix factorization decomposes that matrix R into the product of two smaller matrices:
R = U x V^T (approximately)
U — the user matrix [N x K]
V — the item matrix [M x K]
K — the number of latent factors (10 to 200)
Prediction for user u and item i:
r_hat(u,i) = U[u] . V[i]
The model is trained so that the dot product of the vectors reproduces the known interactions as
closely as possible.
The main algorithms
| Algorithm | Data type | Characteristic |
|---|---|---|
| SVD / SVD++ | Explicit ratings (1–5) | The classic, the basis of the Netflix Prize |
| ALS | Implicit data (clicks, views) | Parallelises well, strong on large data |
| NMF | Any non-negative values | Interpretable factors |
| BPR (Bayesian Personalized Ranking) | Implicit data | Optimises ranking directly |
In e-commerce the data is predominantly implicit — a shopper does not leave ratings, they browse
and buy — so ALS and BPR are used more often than SVD.
How to read the result
After training, every user and every product is represented by a vector of K numbers. Products with
similar vectors are similar in their interaction patterns. A shopper is recommended the products
whose vectors give the largest dot product with theirs.
Important: latent factors carry no explicit semantics. You cannot say that factor number 3 is
an interest in electronics. The algorithm finds abstract dimensions that describe the data, and
nothing labels them.
Where MF sits among modern algorithms
Matrix factorization remains a strong baseline: it works well, it is interpretable enough, and it is
computationally predictable. Modern neural approaches — two-tower models, Item2Vec, transformers —
beat it on accuracy given enough data, but demand more resources for training and inference. In most
e-commerce scenarios, MF with ALS is a sensible starting point before the architecture gets more
complicated.