0
$\begingroup$

I have a training data set with 10m user ratings of movies, (expanded MovieLens) and 25 features (movie information, release, genre etc).

I want to design and build a recommendation system that will predict user ratings on movies, and recommend their "top x unseen movies".

What algorithms shall I use to predict user ratings on items, they take a set scale from 0.5 to 5.

I've read a lot of literature amount techniques, SVD, Decision Trees, Collaborative Filtering etc, but I'm finding it hard to choose a specific model.

$\endgroup$

1 Answer 1

3
$\begingroup$

I recommend you to have a look at ALS (alternating least squares) algorithm, a great implementation can be found in Spark's MLLib library.

It is based on the Collaborative filtering (CF) recommendation algorithme family. With a model-based approach that aim to fill in the missing entries of a user-item association matrix.Users and products are described by a small set of latent factors that can be used to predict missing entries.

MLlib uses the alternating least squares algorithm to learn these latent factors. And it support explicit and implicit feedback for user preferences.

A complete exemple for implementing a recommending system using Spark (PySpark) and MLib can be found here.

enter image description here

$\endgroup$
4
  • $\begingroup$ This looks great! I had already looked into ALS but this animation is fantastic. Is this implementation going to be able to handle a matrix that has 28k columns (items) and 140k rows (users), with around 99.5% sparsity? $\endgroup$ Nov 27, 2015 at 19:54
  • $\begingroup$ The implementation is based on spark, this is the point ... we are talking about big data. $\endgroup$
    – imanis_tn
    Nov 27, 2015 at 22:53
  • $\begingroup$ Yeah I was a bit naive and didn't look at the implementation enough. It's using the same data set as I am so it should be fine! $\endgroup$ Nov 28, 2015 at 10:53
  • $\begingroup$ Please mark the answer as correct, If you like it. You should appreciate the effort that somebody puts into answering,This discourage people to help you in the future. $\endgroup$
    – imanis_tn
    Dec 3, 2015 at 17:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.