An AI-powered recommendation system that simulates how modern e-commerce platforms generate personalized product suggestions.
This project combines:
- Collaborative Filtering (SVD Matrix Factorization)
- Content-Based Filtering (TF-IDF + Cosine Similarity)
into a Hybrid Recommendation Engine, delivered through an interactive Streamlit application.
Design and implement a production-style recommendation system that:
- Learns user preferences
- Finds similar products
- Ranks results intelligently
- Simulates real-world product discovery systems
The system follows a modular recommendation pipeline:
User Query / Interaction
β
User History Extraction
β
Candidate Generation
ββ Content-Based Filtering (TF-IDF)
ββ Collaborative Filtering (SVD)
β
Hybrid Ranking Engine
β
Top-N Recommendations
graph TD
User[User Query] --> History[User Interaction Data]
History --> CF["Collaborative Filtering - SVD"]
User --> CB["Content-Based Filtering - TF-IDF"]
CF --> Hybrid[Hybrid Scoring]
CB --> Hybrid
Hybrid --> Output[Top-N Recommendations]
Final ranking score is computed as:
Final Score =
0.6 Γ Collaborative Score
+
0.4 Γ Content Similarity Score
This balances:
- User behavior (collaborative filtering)
- Product similarity (content-based filtering)
Dataset derived from:
Mercari Price Suggestion Challenge (Kaggle)
https://www.kaggle.com/c/mercari-price-suggestion-challenge
- Users: ~10,000 (simulated interactions)
- Products: ~2,500+
- Features:
- Product title
- Category
- Description
- Price
Run:
python prepare_products.py
Generates:
data/products.csv
data/interactions.csv
- Text preprocessing (cleaning titles/descriptions)
- TF-IDF vectorization of product text
- User-item interaction matrix construction
- Normalisation of product metadata
These steps enable both content similarity and collaborative learning.
- TF-IDF vectorisation
- Cosine similarity
- Captures product similarity
- SVD (matrix factorization using Surprise library)
- Learns user-item interaction patterns
- Combines both approaches
- Produces more accurate and personalized results
The system simulates a real-world search ranking pipeline:
User Query
β
Candidate Retrieval (TF-IDF similarity)
β
Ranking Model (SVD + Hybrid Score)
β
Top-N Results
This mirrors how modern e-commerce systems rank search results.
Recommendation quality can be evaluated using:
| Metric | Description |
|---|---|
| Precision@K | Relevance of top-K recommendations |
| Recall@K | Coverage of relevant items |
| MAP | Mean Average Precision |
| NDCG | Ranking quality |
Example (simulated):
Precision@10: 0.82
Recall@10: 0.74
NDCG@10: 0.86
Users can search queries such as:
Nike running shoes
Jordan sneakers
Adidas ultraboost
Returns top-N ranked recommendations.
- Combines collaborative + content-based filtering
- Improves recommendation accuracy
- Handles cold-start problems
- Product search
- Trending recommendations
- Product cards with images
- External purchase links
- Price filtering
- Category filtering
- Sorting:
- Best Match
- Price Low β High
- Price High β Low
User searches: "Nike running shoes"
β
TF-IDF retrieves similar products
β
SVD ranks based on user interactions
β
Hybrid score computed
β
Top recommendations displayed
marketplace-recommendation-engine
β
βββ app
β βββ streamlit_app.py
β
βββ src
β βββ similarity_search.py
β βββ collaborative_filtering.py
β βββ hybrid_recommender.py
β βββ image_fetcher.py
β
βββ data
β βββ products.csv
β βββ interactions.csv
β
βββ tests
β
βββ prepare_products.py
βββ requirements.txt
βββ README.md
To support scalability:
- Precomputed TF-IDF vectors for fast similarity search
- Efficient matrix factorization using SVD
- Batch recommendation generation
Potential improvements:
- Redis caching for frequent queries
- FAISS / vector database for similarity search
- Microservices-based recommendation system
- Distributed model serving
Clone:
git clone https://github.com/premnadh/marketplace-recommendation-engine.git
Navigate:
cd marketplace-recommendation-engine
Create virtual environment:
python3.11 -m venv venv
Activate:
source venv/bin/activate
Install dependencies:
pip install -r requirements.txt
Run application:
streamlit run app/streamlit_app.py
Open:
http://localhost:8501
- Hybrid recommendation system
- Real machine learning implementation
- Search + ranking pipeline
- Modular architecture
- Interactive UI
- Deep learning recommendation models
- Real-time personalization
- Session-based recommendations
- Advanced ranking algorithms
- Cloud deployment (AWS / GCP)
Prem Nadh Gajula
Aspiring Data Scientist | Machine Learning Engineer | Backend Developer
β If you found this project useful, consider starring the repository!# premnadh