Skip to content

Duvvuri-Srinath/Multi-Modal-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Multi-Modal Content Recommendation System

License: MIT Python 3.9 PyTorch Flask Docker

A robust recommendation system combining text, images, and user behavior features with deep learning and rule-based filtering.

๐Ÿ“Œ Table of Contents

โœจ Features

  • Multi-Modal Fusion: Combines text (BERT), images (ResNet), and user features
  • Rule-Based Filtering: Customizable business logic adjustments
  • Scalable Training: Distributed training with PyTorch DDP
  • Production API: Flask/Gunicorn REST API with Docker support
  • Robust Pipeline: Comprehensive logging & error handling

๐Ÿ—๏ธ Architecture

graph TD
    subgraph Client["๐Ÿ“ฑ Client"]
        A["โœจ User App"] -->|HTTP Req| B["POST /recommend"]
    end

    subgraph API["๐ŸŒ API Service"]
        B --> C{"๐Ÿ› ๏ธ Validate & Preprocess"}
        C --> D["๐Ÿ“ Text (BERT)"]
        C --> E["๐Ÿ–ผ๏ธ Image (ResNet)"]
        C --> F["๐Ÿ‘ค User Features"]
        D --> H["๐Ÿง  MM Recommender"]
        E --> H
        F --> H
        H --> I["โš–๏ธ Rule Filter"]
        I --> K["๐Ÿ“ˆ Rating Prediction"]
    end

    subgraph Training["๐Ÿ‹๏ธ Training"]
        L["๐Ÿ“š Data"] --> M["๐Ÿ“ฅ Loader"]
        M --> N["๐Ÿงน Preprocess"]
        N --> O["๐Ÿค– DataLoader"]
        O --> P["๐Ÿง  Model Training"]
        P --> Q["๐Ÿ’พ Checkpoint"]
    end
Loading

๐Ÿ“‚ Project Structure

multi_modal_recommendation/
โ”œโ”€โ”€ data/               # Data processing modules
โ”œโ”€โ”€ models/             # Model architectures
โ”œโ”€โ”€ training/           # Training scripts
โ”œโ”€โ”€ api/                # Flask API implementation
โ”œโ”€โ”€ main.py             # Main entry point
โ”œโ”€โ”€ requirements.txt    # Dependencies
โ””โ”€โ”€ Dockerfile          # Container configuration

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.9
  • CUDA-enabled GPU (recommended)
  • Docker (optional)

Installation

git clone https://github.com/your-username/multi-modal-recommendation.git
cd multi-modal-recommendation

python3 -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows

pip install -r requirements.txt

๐Ÿ’ป Usage

Training

# Single-GPU training
python main.py --epochs 10 --batch_size 32 --data_path data/movies.csv

# Distributed training (2 GPUs)
python -m torch.distributed.launch --nproc_per_node=2 main.py --distributed

API Deployment

# Local deployment
gunicorn --bind 0.0.0.0:5000 api.recommendation_api:app

# Docker deployment
docker build -t multi-modal-recommender .
docker run -p 5000:5000 multi-modal-recommender

API Request Examples

Multipart/form-data:

curl -X POST -F "text=Space exploration movie" \
  -F "user_features=0.5,1.2,0.8,2.1,1.5" \
  -F "image=@poster.jpg" \
  http://localhost:5000/recommend

JSON:

curl -X POST -H "Content-Type: application/json" \
  -d '{"text": "Romantic comedy", "user_features": "0.5,1.8,2.2", "image_path": "data/movie.jpg"}' \
  http://localhost:5000/recommend

Response:

{
  "predicted_rating": 4.2
}

โš™๏ธ Configuration

image

๐Ÿง  Model Details

  • Text Encoder: BERT-base (768d โ†’ 128d FC)
  • Image Encoder: ResNet-18 (512d โ†’ 128d FC)
  • User Encoder: FC Network (10d โ†’ 128d)
  • Fusion: Concatenation + FC Network
  • Rules: -10% rating for new users

๐Ÿ“ˆ Evaluation

Metric: Root Mean Squared Error (RMSE)

Epoch 5/10 | Train Loss: 0.32 | Val Loss: 0.41
Best model saved with RMSE: 0.38

๐Ÿ”ฎ Future Enhancements

  • Real-time learning pipeline
  • Advanced feature engineering
  • Explainable AI components
  • Multi-modal attention mechanisms

๐Ÿ“œ License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors