1

We are looking at building recommender system for our brand-new Learning Management System. There are a bunch of users and items (learning modules) onboarded, but no ratings yet - typical cold start problem.

To begin with, we are thinking of using a simple item-based similarity using item attributes (tags, category, etc.) The idea is to switch to more robust collaborative filtering as the ratings start coming in.

Questions:

  1. Is this a good approach? Is there a recommended ML pattern to handle such cold-start conditions?
  2. To realise item-based similarity, which is the right algorithm? Say, cosine similarity. However, please note there is no "matrix". Should we try to use a standard ML algorithm or maybe roll our own?
gammay
  • 5,957
  • 7
  • 32
  • 51

1 Answers1

1
  1. Your approach is good. I would start with an unsupervised learning algorithm such as 'k-Nearest Neighbors classifier'. If your team doesn't know the first thing about ML, I recommend you to read this tutorial http://www.astroml.org/sklearn_tutorial/general_concepts.html . It uses python and a great library called scikit-learn. From there you could do Andrew's NG course (https://www.coursera.org/learn/machine-learning/) although it does not cover any recommendation systems.

  2. I usually go with a Pearson Correlation algorithm (https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient) and that suffices me for my problems. The problem with this approach is that it is linear. I have read that the Orange data mining tool provides many correlation measures. Using it you could find which one is best for your data. I would advice against using your own algorithm.

There is an older question which provides further information on the matter: How can I implement a recommendation engine?

Community
  • 1
  • 1
Andrés Marafioti
  • 819
  • 1
  • 7
  • 23