Yelp Restaurant Hybrid Recommender System

  • Category: ML model
  • Client: Durham University
  • Project date: March 2021


A collaborative and content-based filtering hybrid recommender system used for recommending restaurants to Yelp users. MAde using SciPy, Pandas and SKLearn.

STAR Breakdown

  • Situation: In order to see the effect of hybridizing different recommendation methods, I needed to experiment with recommender systems and learn to test them.
  • Task: I was asked to develop a recommender system for restaurants in the Yelp reviews dataset. This recommender system needed to be a hybrid but it was up to me to choose the methods hybridized and how. I was also asked to test these methods but not specified as to how.
  • Action: I firstly read a large amount of literature on the implementation and effects of hybrid recommender systems. As a topic I find massively interesting and relevant to my ideal career projection, I enjoyed learning more than just what was needed to complete the task. After understanding the theory behind the system I needed to build, I set to preparing and filtering the data using Pandas in order to create high quality inputs for my system. As for the system itself, the collaborative filter was implemented first through a SciPy dense matrix of users and items. I then implemented the content-based filter using SKLearn and the written descriptions of the restaurants. These were then hybridized using the tie-break method where collaborative filtering would rank the restaurants while the content-based filter broke any ties in the score.
  • Result: The hybrid filter was then tested for diversity, accuracy and precision as well as the ethical implications and explainability of results. The unchanged collaborative filter actually very slightly outperformed the hybrid for accuracy however the opposite was the case for precision and diversity.