Spaces:
Sleeping
title: RecSys-HP
emoji: π―
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
license: mit
app_port: 8000
RecSys-HP: Two-Tower Recommendation System
A production-ready recommendation system implementation using TensorFlow with an enhanced two-tower architecture. This system provides personalized item recommendations through collaborative filtering, content-based filtering, category-boosted recommendations, and hybrid approaches, featuring advanced training strategies.
π Features
- ποΈ Enhanced Two-Tower Architecture: 128D embeddings with temperature scaling and attention mechanisms
- π― Multiple Recommendation Engines:
- Raw Two-Tower (Collaborative Filtering)
- Content-Based Filtering
- Hybrid Recommendations
- Category-Boosted Recommendations
- β‘ Fast Inference: FAISS-powered similarity search with sub-100ms response times
- π¨ Interactive Frontend: React-based web interface with real-time recommendations
- π Category Analysis: Intelligent category preference analysis and visualization
- π Real User Profiles: Browse genuine user interaction histories
- πͺ Category-Aware Similarity: 60/40 category split for balanced discovery
π Project Structure
RecSys-HP/
βββ π datasets/ # Training and validation data
β βββ items.csv # Product catalog (19K+ items)
β βββ users.csv # User profiles
β βββ interactions.csv # User-item interaction logs
β
βββ π§ src/ # Core ML implementation
β βββ models/ # Neural network architectures
β β βββ item_tower.py # Original item embedding tower
β β βββ user_tower.py # User embedding tower
β β βββ improved_two_tower.py # Advanced two-tower with improvements
β β
β βββ preprocessing/ # Data preparation pipeline
β β βββ data_loader.py # Dataset loading and validation
β β βββ user_data_preparation.py # User feature engineering
β β
β βββ training/ # Model training pipeline
β β βββ item_pretraining.py # Item tower pretraining
β β βββ joint_training.py # Joint user-item training
β β
β βββ inference/ # Recommendation engines
β β βββ recommendation_engine.py # Main recommendation engine
β β βββ faiss_index.py # FAISS similarity search
β β
β βββ artifacts/ # Trained models & indices
β βββ vocabularies.pkl # Feature vocabularies
β βββ *_weights.* # Model weights
β βββ faiss_* # FAISS index files
β
βββ π¨ frontend/ # React web interface
β βββ src/
β β βββ App.js # Main React component
β β βββ App.css # Styling
β βββ build/ # Production build
β
βββ π api/ # FastAPI backend
β βββ main.py # API server with static file serving
β
βββ π Configuration
βββ requirements.txt # Python dependencies
βββ Dockerfile # Container configuration
βββ docker-build.md # Deployment guide
π― Recommendation Strategies
1. Raw Two-Tower (Collaborative Filtering) π₯
- Features: 128D embeddings, category boosting (1.6x), FAISS similarity search
- Strengths: Superior personalization with behavioral signal focus
- Algorithm: Two-tower neural collaborative filtering with category awareness
2. Content-Based Recommendations π
- Method: Aggregated user history embedding with weighted mean pooling
- Features: FAISS similarity search on aggregated user preferences
- Benefits: Works for users with interaction history, fast inference
3. Hybrid Approach π
- Method: Weighted combination of collaborative and content-based
- Features: Configurable weight mixing (default 70% collaborative, 30% content)
- Benefits: Best of both approaches with balanced coverage
- Algorithm: Score-based weighted combination
4. Category-Boosted Recommendations πͺ
- Method: Intelligent category preference learning and boosting
- Features: Dynamic category analysis from user interaction patterns
- Benefits: Maintains user preferences while enabling discovery
π¬ Technical Deep Dive
Enhanced Training Process
Two-Phase Training Strategy
- Item Pretraining: Self-supervised learning on item features
- Joint Training: User-item interaction learning with contrastive loss
Architecture Improvements
- User Tower: Demographics + 50-slot interaction history with attention
- Item Tower: Optimized embeddings with smart dimensionality
- Training: Contrastive learning with positive/negative pairs
π Getting Started
The application runs automatically in this Hugging Face Space! The system includes:
- Interactive Web Interface: Browse users, generate recommendations, analyze categories
- Multiple Recommendation Types: Try different algorithms
- Real User Data: Explore genuine user interaction patterns
- Performance Monitoring: Real-time API response tracking
API Endpoints
| Method | Endpoint | Description | Features |
|---|---|---|---|
GET |
/ |
Web Interface | Interactive React app |
POST |
/recommendations |
Personalized recommendations | Multi-strategy (collaborative/content/hybrid) |
POST |
/item-similarity |
Category-balanced similar items | 60% same category + ANN search |
GET |
/real-users |
Browse real user profiles | Genuine interaction histories |
GET |
/health |
System health check | API status monitoring |
π Project Achievements
β
Enhanced Architecture: 128D embeddings, temperature scaling, contrastive learning
β
Category-Aware Recommendations: Intelligent personalization with diversity
β
Content-Based Filtering: Revolutionary user history aggregation approach
β
Enhanced Cold-Start Support: Improved new user handling
β
Production Ready: Scalable API with enhanced frontend features
π§ Advanced Configuration
Model Parameters
- Embedding Dimension: 128 (upgraded from 64)
- Hidden Layers: [256, 128] for both towers
- Dropout Rate: 0.3 (increased for regularization)
- Attention Heads: 8 (user tower), 4 (item tower)
- Temperature Scaling: Learnable parameter (initial: 1.0)
- Max History Length: 50 interactions per user
Training Configuration
- Hard Negative Mining: Top-3 hardest negatives
- Contrastive Weight: 0.3 (configurable)
- Focal Loss: Alpha=0.25, Gamma=2.0
π Production Deployment
Performance Optimizations
- Two-Tower Architecture: Separates user and item processing for scalability
- FAISS Integration: Sub-linear similarity search
- Batch Inference: Vectorized computation for multiple users
- Model Versioning: Support for A/B testing different model variants
π Ready to deliver next-generation personalized recommendations!