I'm novice in that matter but I was thinking about the formulation of a recommender system. Let's take the example of a movie recommendation system. We have a column dedicated to movies ID (or names), a matrix related to the rates the users gave to each movie, and a matrix with movie features (romance, drama, etc..)- joined a photo that shows this formulation. What about I would like to use users features to improve my recommendation? If I had information like age, profession, revenue of each user I would like to use it in my formulation. But if I include user features, this formulation is not Content-­‐based neither Collaborative filtering anymore. Anyone knows what kind of formulation it can assume?enter image description here


1 Answer 1


This is referred to as side information. This is used to enhance the recommender system.

A good library for collaborative filtering (and beginner friendly) is turicreate. Have a look at this link. o summarise, the traditional, basic matrix factorisation will encode user i and items j respectively as vectors $u_i$ and $v_j$ so that the predicted score that a user would give to the unseen item is:

$$ score(i,j) = u_i^T v_j $$

but you can have a more complex model that will also take into account idiosyncratic characteristics of both items and users:

$$ score(i,j) = u_i^T v_j + a^T x_i + b^T y_j $$

which increases the capacity of the model.

  • $\begingroup$ Thanks for you answer. I would like to use Python to modelate this problem, I'm not a math expert, but do you think I can "easily" use this library on Python? Do you know other libraires I can use to modelate this kind of problem? The only library I have used to modelate my ML problems was Sklearn. $\endgroup$
    – Jaice
    Sep 28, 2020 at 14:18
  • $\begingroup$ I think it's the easiest one I have used so far, there is a minimal amount of work to setup a model (I would say 5-10 lines of code) and then you can build up form there. Have a look at this link. $\endgroup$ Sep 29, 2020 at 21:40

Your Answer

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

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