Building a Hybrid Movie Recommender with Neo4j and Graph Data Science
How we built a graph-based movie recommendation system by combining collaborative signals, content relationships, and GDS algorithms.
Peter Mangoro
This capstone was where graph modeling and recommendation strategy clicked for me. Instead of treating recommendations as just a matrix problem, we modeled users, movies, genres, and directors as connected entities and used that structure directly.
Team Context
This was a collaborative project. Team members included:
- Peter Mangoro
- Bekithemba Nkomo
- Masheia Dzimba
Assignment Focus
We built a hybrid recommender by combining:
- collaborative edges (
User->Movieratings) - content structure (
Movie->Genre,Movie->Director) - GDS algorithms for similarity, embeddings, and community analysis
What We Built
- Graph schema with
User,Movie,Genre, andDirector - Cypher + Python workflows for loading and profiling interactions
- Multiple recommendation lenses:
- overlap similarity (Jaccard-like patterns)
- embedding-based retrieval (FastRP + kNN)
- community-aware perspective (Louvain)
Key Findings
- Content nodes improved explainability: recommendations could be justified by shared genres/directors, not just co-ratings.
- Data sparsity mattered: in a small dataset, pure collaborative signals were unstable for some users.
- Embedding + neighborhood approaches offered stronger behavior in sparse pockets than overlap alone.
- Community detection added a useful segmentation lens for user taste patterns.
Lessons Learned
The most useful lesson was that hybrid recommenders are not just “add more algorithms.” The graph design itself determines whether recommendations remain interpretable and robust when user behavior is sparse.
I also learned to frame model choices by business behavior (cold-start, explainability, stability), not by algorithm popularity.
Skills I Gained
- Hybrid recommender design with graph-native features
- GDS workflow design (projection, similarity, embedding, community detection)
- Evaluation of tradeoffs across sparse user-item graphs
- Collaborative project execution with clear technical handoff points
Artifacts
- Main notebook: P_Mangoro_recommender_project.ipynb
My First AWS Adventure: Building a Sentiment Analysis System on a Budget
From zero to production-ready: How I built a full-stack sentiment analysis platform entirely within AWS Free Tier, exploring serverless architecture, cost optimization, and creative problem-solving along the way.
Designing and Building a Neo4j Knowledge Graph from Relational Data
How I modeled a Chinook-style music dataset as a property graph, loaded it in the right dependency order, and validated it with Cypher queries.