Netflix-Style Recommendation Engine

Rate a handful of films and watch three classic approaches—content-based, collaborative, and hybrid—compete in your browser. No server, no API keys: vectors, cosine similarity, and neighbor-based scoring, explained as you go.

Rate movies

You’ve rated 0 / aim for 5–10

Pick at least 5 titles to see personalized recommendations. Each algorithm uses your stars differently—details below in How it works.

Your recommendations

Top picks per algorithm (movies you haven’t rated)

Content-based

Genre vectors + cosine similarity to your taste profile.

Collaborative

Match your ratings to synthetic “neighbor” users, borrow their favorites.

Hybrid

Normalized blend: 55% content + 45% collaborative signal.

Cold start: why ratings matter

Same engine, two worlds—no history vs. enough signal

0 ratings

5+ ratings

How it works

Visual sketches of what each method is doing under the hood

Content-based filtering

Each movie is a vector over genres. Your profile is a weighted average of vectors from films you rated. We recommend unseen titles with the highest cosine similarity to that profile—pure item metadata, no other users required.

sim(u,i) = cos(v_user, v_i)    v_user = Σ r_m · v_m

Collaborative filtering (user-user)

We compare your ratings to synthetic user profiles that “rated” the same catalog. Neighbors with similar patterns on overlapping movies vote for what you might like next. In production this becomes matrix factorization or deep retrieval at scale.

pred(u,i) = Σ w_uv · r_vi / Σ |w_uv|

Hybrid model

Content-based systems excel when metadata is rich; collaborative signals capture taste beyond genres. A hybrid smooths blind spots: we min-max normalize both score lists, then combine with fixed weights (here 55% / 45%) and re-rank.

H(i) = 0.55 · Ĉ(i) + 0.45 · F̂(i)