Restaurant Recommendation Engine

Jun 2019

Restaurant Recommendation Engine

Photo by Satria Bagaskara on Pexels

Building a production recommendation system from scratch using Singular Value Decomposition that delivered accurate personalized suggestions from sparse user rating data.

#client project #highlights #machine learning #app #backend

Background and Industry Context

How do users find restaurants based on the ones they liked? Using SVD, we can give recommendations based on similar users, in a very powerful, but efficient way.

Our client needed a recommendation engine that could identify hidden patterns from sparse rating data (just a handful of restaurants). As the main developer, I built the core system: recommendation algorithm, backend API, and business logic, delivered in just 4 weeks.

Restaurant Discovery

Result

Unreasonably effective recommendations from minimal user data. The SVD-based system accurately predicted preferences from as few as 3-10 ratings, outperforming rule-based approaches while maintaining controllable serendipity for discovery.

Solution Architecture

Matrix Factorization with SVD

Implemented collaborative filtering using Singular Value Decomposition to decompose the sparse user-restaurant rating matrix into latent features. Direct NumPy matrix manipulation provided full control over factorization, enabling custom optimization unavailable in off-the-shelf libraries.

Serendipity and Business Logic

Pure accuracy optimization produces safe, boring recommendations. I introduced controlled randomness to suggest venues slightly outside predicted preferences, with tunable exploration factors balancing confidence versus discovery.

Additional features included:

  • Cold-start handling via content-based fallbacks for new users and restaurants
  • Rule-based filtering for cuisine, price, and dietary restrictions
  • Geographic constraints respecting location preferences
  • Real-time updates incorporating new ratings dynamically

Technologies Used

Python, NumPy, Pandas, Flask, OpenAPI

Need support for your AI project?

Let's work together!

← Back to Projects