{"adoption": {"forks": 171, "observed_at": "2026-08-28T04:03:23.900520+00:00", "stars": 1053}, "canonical_url": "https://ross.abutalabs.com/products/cornac", "card": {"archived": false, "artifact_type": "library", "description": "A Comparative Framework for Multimodal Recommender Systems", "domain": ["machine-learning", "data-science"], "enriched": true, "function": ["machine-learning", "benchmarking", "data-science"], "health_score": 98, "homepage": "https://cornac.preferred.ai", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["PreferredAI/cornac"], "name": "PreferredAI/cornac", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-11T18:52:11+00:00", "repo": "PreferredAI/cornac", "stars": 1053, "tags": ["recommender-systems", "collaborative-filtering", "matrix-factorization", "multimodal-learning", "recommendation-algorithms", "evaluation-framework", "algorithms"], "topics": ["recommender-system", "recommendation-algorithms", "recommendation-engine", "matrix-factorization", "collaborative-filtering", "multimodal-learning", "recommendation-system", "multimodality"], "urls": [], "use_cases": ["compare recommender system algorithms on benchmark datasets", "build a collaborative filtering recommender with matrix factorization", "train a recommender using item text and image side information", "evaluate and reproduce recommendation algorithm results", "implement a new recommendation model for research", "benchmark BPR and other RecSys baselines"], "what_it_is": "Cornac is a Python framework for building and comparing multimodal recommender systems, with convenient support for auxiliary data such as item text, images, and social networks. It enables fast experiments and straightforward implementation of new recommendation models, integrating with TensorFlow and PyTorch.", "when_to_avoid": ["you need production recommendation serving rather than experimentation", "your use case is general machine learning outside recommendation", "you require a non-Python stack"], "when_to_choose": ["you need a well-regarded framework for reproducible recommender experiments", "your models leverage auxiliary multimodal data like text, images, or social graphs", "you want easy integration with TensorFlow or PyTorch", "you need trustworthy baseline implementations for RecSys comparison"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cornac", "repo": "PreferredAI/cornac", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:23.900520+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:59:19.707329+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2bf5a41043e56aeff81424087c79cc017a91af00ef299ea964fd00f39cbe5ad", "fetched_at": "2026-08-28T04:03:23.900520+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PreferredAI/cornac"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 93}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2969, "days_push": 22, "days_rel": 49, "gap_med": 25.5, "n_releases_24m": 9}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}