A comparative Python framework for building, evaluating, and deploying multimodal recommender systems with auxiliary data.
Cornac is a Python framework for building and evaluating multimodal recommender systems. It provides a unified platform to experiment with models that use auxiliary data like text and images, offering tools for fast prototyping, model comparison, and deployment. It solves the problem of fragmented tooling in recommender system research and development.
Researchers and data scientists working on recommender systems, particularly those focusing on multimodal approaches or needing to compare multiple algorithms efficiently.
Developers choose Cornac for its comprehensive model library, ease of experimentation, and strong focus on multimodal data. Its compatibility with TensorFlow and PyTorch, along with built-in evaluation tools and deployment features, makes it a versatile and practical choice for both research and applied projects.
A Comparative Framework for Multimodal Recommender Systems
Enables seamless integration of auxiliary data like text, images, and social networks, as highlighted by models such as VBPR for images and CTR for text, making it ideal for modern recommender systems.
Includes over 50 models ranging from classic matrix factorization to neural approaches like LightGCN, facilitating easy comparison and experimentation without switching frameworks.
Provides a simple Flask-based serving API and integrates with ANN libraries like Faiss and Annoy for efficient retrieval, as shown in the examples for scalable recommendation serving.
Recommended by ACM RecSys 2023 and offers trustworthy baselines like BPR, ensuring reliable comparisons and adherence to academic standards for reproducible research.
Many models require separate installation of specific libraries (e.g., TensorFlow, PyTorch) and system dependencies like OpenMP on Mac OS, leading to complex setup and potential conflicts.
The Flask-based serving API is basic and may not scale efficiently for high-concurrency environments without significant customization, as noted in the documentation's suggestion to use WSGI servers for production.
While great for experimentation, extending or implementing new models requires deep understanding of the framework's internal APIs, which are less documented compared to core features.
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Deep Learning for humans
Streamlit — A faster way to build and share data apps.
Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.