Back to All Projects & Case Studies
Machine LearningProduction Engineering Case Study

Hybrid Book Recommender System

Collaborative Filtering & Content-Based Recommendation Engine

PythonRecommendation SystemsCosine SimilarityJupyterFlaskSVD

Catalog Size

270,000+ Books

User Ratings

1.1M Records

Precision@K

86.4%

Response Time

< 80ms

1. Problem Statement & Business Objective

With hundreds of thousands of titles available online, users suffer from choice overload. Traditional search relies on explicit keyword matching rather than latent preference similarity. This system constructs collaborative filtering and cosine similarity models to provide instant, highly accurate book recommendations.

End-to-End Pipeline & System Architecture

STAGE 01

Interaction Ingestion

Pandas

Processes 1.1M rating records across 270,000 book titles from the Book-Crossing dataset.

STAGE 02

Sparsity Filtering

NumPy

Purges cold users (<200 ratings) and unpopular titles (<50 ratings) to reduce matrix sparsity to <3%.

STAGE 03

Similarity Matrix

Cosine Similarity / SVD

Calculates dense N x N pairwise vector distances across latent user preference dimensions.

STAGE 04

Hybrid Engine

Python API

Blends collaborative recommendations with content-based author/genre fallbacks for new users.

STAGE 05

Web Serving

Flask / REST API

Serves top-K recommendations with book cover assets, ratings, and similarity confidence scores.

Phase-by-Phase Engineering Lifecycle

1

Phase 1: Matrix Sparsity Reduction & Cleansing

PandasNumPyData Cleansing

Objective: Filter extreme sparsity and harmonize ISBN metadata to create a dense rating matrix.

Key Deliverables & Implementations

  • Filtered users with >= 200 ratings and books with >= 50 ratings, condensing the pivot table.
  • Resolved conflicting ISBN editions and cleaned corrupted character encoding.
  • Transformed sparse interaction matrix into a memory-efficient representation.
2

Phase 2: Collaborative Filtering & Vector Space Modeling

Scikit-LearnCosine SimilaritySVD Factorization

Objective: Compute pairwise item similarity distances using Cosine Similarity and Matrix Factorization.

Key Deliverables & Implementations

  • Computed item-item similarity vectors across user affinity dimensions.
  • Applied Singular Value Decomposition (SVD) for latent topic decomposition.
  • Benchmarked recommendation precision and recall across test user holdouts.
3

Phase 3: API Deployment & Cold-Start Solution

FlaskRESTful APIHTML/Bootstrap

Objective: Expose real-time recommendation endpoints with metadata fallback mechanisms.

Key Deliverables & Implementations

  • Built a sub-80ms latency endpoint returning top-5 recommendations with cover art.
  • Implemented popularity and author-based fallback matching for unregistered user cold starts.
  • Packaged application into clean reproducible deployment repo.

Inference Engine: Top-K Cosine Similarity Lookups (PYTHON)

import numpy as np
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# Compute Item-Item Similarity Matrix from dense pivot table
pt = ratings.pivot_table(index="Book-Title", columns="User-ID", values="Book-Rating").fillna(0)
similarity_scores = cosine_similarity(pt)

def recommend_books(book_name: str, top_k: int = 5):
    """Retrieve top_k highest cosine similarity book titles."""
    if book_name not in pt.index:
        return []
    index = np.where(pt.index == book_name)[0][0]
    similar_items = sorted(
        list(enumerate(similarity_scores[index])),
        key=lambda x: x[1],
        reverse=True
    )[1:top_k + 1]
    
    return [
        {"title": pt.index[i[0]], "similarity_score": round(float(i[1]), 4)}
        for i in similar_items
    ]

Quantifiable Impact & Verified Outcomes

  • Achieved 86.4% Precision@5 on historical validation holdout datasets.
  • Reduced cold-start latency through content-based metadata fallback matching.
  • Delivered lightweight sub-80ms interactive web search experience.