The technical name for this is "collaborative filtering". I think they are basing their work on this paper<p>- <a href="http://www.jmlr.org/papers/volume10/takacs09a/takacs09a.pdf" rel="nofollow">http://www.jmlr.org/papers/volume10/takacs09a/takacs09a.pdf</a><p>EDIT: Actually looks like Eq (15) from<p>- <a href="http://public.research.att.com/~volinsky/netflix/BellKorICDM07.pdf" rel="nofollow">http://public.research.att.com/~volinsky/netflix/BellKorICDM...</a><p>Anyway there are lots of papers around on the topic.
FWIW, I gave a talk about the Alternating Least Squares algorithm mentioned here (and linked in several comments) and how we implemented it at Spotify:<p>Slides: <a href="http://www.a1k0n.net/spotify/ml-madison/" rel="nofollow">http://www.a1k0n.net/spotify/ml-madison/</a>
Video (for the extremely patient): <a href="https://www.youtube.com/watch?v=MX_ARH-KoDg" rel="nofollow">https://www.youtube.com/watch?v=MX_ARH-KoDg</a>
I hoped for a minute that they shared their complete implementation; anyone aware of a recommendation system that can scale to millions of items, be updated as soon as new items come in (no full graph recalculation) and take multiple inputs (ratings, saved in library, etc)?