Netflix prize tribute: Recommendation algorithm in Python
blog.smellthedata.com
blog.smellthedata.com
I wonder why he chose to use PMF. There are seemingly less complicated algorithms (PCA/SVD/LSA) that appear to do the same type of thing.
It also looks like PMF uses expectation maximization, which is quite common but not necessarily scalable (although I could be wrong). This would probably take quite a bit of time to run on the whole dataset and unfortunately he doesn't give any specs!
PMF is a generalization of SVD that is able to work directly on the sparse structure of the input. It does gradient descent -- modifying the low dimension latent vectors directly to minimize error, and never does any imputation of missing values. This makes it very efficient, and it can easily handle millions of ratings. See http://www.cs.toronto.edu/~amnih/papers/pmf.pdf for an application of PMF to the very large Netflix problem.