cornac  by PreferredAI

Comparative framework for multimodal recommender systems

created 7 years ago
970 stars

Top 38.8% on sourcepulse

GitHubView on GitHub
Project Summary

Cornac is a Python framework for evaluating and implementing multimodal recommender systems, particularly those leveraging auxiliary data like text and images. It targets researchers and practitioners needing a flexible, reproducible, and comparative environment for building and testing recommendation algorithms, offering a wide range of models and evaluation metrics.

How It Works

Cornac provides a unified API for defining recommender system experiments, abstracting away data loading, splitting, model training, and evaluation. It supports various data modalities and integrates with deep learning libraries like TensorFlow and PyTorch. The framework emphasizes reproducibility and ease of comparison, allowing users to benchmark diverse models and metrics within a consistent experimental setup.

Quick Start & Requirements

  • Install: pip3 install cornac
  • Prerequisites: Python 3. Additional dependencies vary by model (e.g., CPU/GPU, specific libraries). Mac users may need gcc from Homebrew for OpenMP support.
  • Resources: Official documentation, tutorials, and examples are available.

Highlighted Details

  • Recommended by ACM RecSys 2023 for evaluation and reproducibility.
  • BPR implementation cited as a trustworthy baseline by independent research.
  • Supports model serving via Flask for demos and includes Cornac-AB for A/B testing.
  • Integrates Approximate Nearest Neighbor (ANN) search frameworks (Annoy, Faiss, HNSWLib, ScaNN) for efficient retrieval.
  • Features a comprehensive list of over 50 recommender models, from traditional methods to recent deep learning approaches.

Maintenance & Community

The project is actively maintained by PreferredAI. Contributions are welcomed, with guidelines provided. Citation details for academic use are available.

Licensing & Compatibility

  • License: Apache License 2.0.
  • Compatibility: Permissive license suitable for commercial use and integration with closed-source projects.

Limitations & Caveats

Some advanced models require specific hardware (GPU) or additional dependencies. While the framework is extensive, users must consult model-specific requirements for optimal performance.

Health Check
Last commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
20 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.