{"id":13677838,"url":"https://github.com/irecsys/DeepCARSKit","last_synced_at":"2025-04-29T12:32:05.701Z","repository":{"id":38601643,"uuid":"471740458","full_name":"irecsys/DeepCARSKit","owner":"irecsys","description":"A Deep Learning Based Context-Aware Recommendation Library","archived":false,"fork":false,"pushed_at":"2024-10-27T06:58:03.000Z","size":6326,"stargazers_count":19,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-27T07:52:41.143Z","etag":null,"topics":["collaborative-filtering","context-aware","context-aware-recommender-system","deep-learning","deep-recommender-system","neural-collaborative-filtering","neural-network","pytorch","recommender-system"],"latest_commit_sha":null,"homepage":"https://carskit.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/irecsys.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"deepcarskit","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-03-19T15:47:52.000Z","updated_at":"2024-10-27T06:59:17.000Z","dependencies_parsed_at":"2024-01-14T15:21:25.933Z","dependency_job_id":"9c180a5b-f8c7-437b-9b47-5bfa1a158425","html_url":"https://github.com/irecsys/DeepCARSKit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irecsys%2FDeepCARSKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irecsys%2FDeepCARSKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irecsys%2FDeepCARSKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irecsys%2FDeepCARSKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irecsys","download_url":"https://codeload.github.com/irecsys/DeepCARSKit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224173180,"owners_count":17268061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaborative-filtering","context-aware","context-aware-recommender-system","deep-learning","deep-recommender-system","neural-collaborative-filtering","neural-network","pytorch","recommender-system"],"created_at":"2024-08-02T13:00:47.810Z","updated_at":"2025-04-29T12:32:05.689Z","avatar_url":"https://github.com/irecsys.png","language":"Python","funding_links":["https://ko-fi.com/deepcarskit"],"categories":["Python"],"sub_categories":[],"readme":"\n# DeepCARSKit\n\n*A Deep Learning Based Context-Aware Recommendation Library*\n\n[![License](https://img.shields.io/badge/License-MIT-orange.svg)](./LICENSE)\n[![Website carskit.github.io](https://img.shields.io/website-up-down-green-red/http/monip.org.svg)](https://carskit.github.io/)\n[![python](https://badges.aleen42.com/src/python.svg)](https://badges.aleen42.com/src/python.svg)\n[![Citation Badge](https://api.juleskreuer.eu/citation-badge.php?doi=10.1016/j.simpa.2022.100292)](https://scholar.google.com/citations?view_op=view_citation\u0026hl=en\u0026citation_for_view=0FENWMcAAAAJ:Bg7qf7VwUHIC)\n[![DOI:10.1007/978-3-319-76207-4_15](https://zenodo.org/badge/DOI/10.1016/j.simpa.2022.100292.svg)](https://doi.org/10.1016/j.simpa.2022.100292)\n\n[![CARSKit Website](images/intro-img1.jpg)](https://carskit.github.io/)\n\n\n## History\n+ **[CARSKit](https://github.com/irecsys/CARSKit)** was released in 2015, and it was the first open-source library for \ncontext-aware recommendations. There were no more significant updates in CARSKit since 2019. It was a library built based on Java and [Librec](https://github.com/guoguibing/librec) v1.3. \nThere is a version in Python, [CARSKit-API](https://github.com/WagnoLeaoSergio/CARSKit_API), which is a python wrapper of CARSKit.\n+ Recommender systems based on deep learning have been well-developed in recent years. The context-aware \nrecommendation models based on traditional collaborative filtering (e.g., KNN-based CF, matrix factorization) turned out to \nbe out-dated. Therefore, we develop and release [DeepCARSKit](https://github.com/irecsys/DeepCARSKit) which was built upon the [RecBole](https://recbole.io/) v1.0.0 recommendation library.\nDeepCARSKit is *a Deep Learning Based Context-Aware Recommendation Library* which can be run with correct setting based on Python and [PyTorch](https://pytorch.org/).\n\n\n## Feature\n+ **Implemented Deep Context-Aware Recommendation Models.** Currently, we support the CARS models built based on factorization machines (FM) and \nNeural Collaborative Filtering (NeuCF and NeuMF). More algorithms will be added.\n\n+ **Multiple Data Splits \u0026 Evaluation Options.** We provide evaluations based on both hold-out and N-fold cross validations.\n\n+ **Extensive and Standard Evaluation Protocols.** We rewrite codes in RecBole to adapt the evaluations for context-aware recommendations.\nParticularly, item recommendations can be produced for each unique combination of (user and context situation). Relevance and Ranking metrics, \nsuch as precision, recall, NDCG, MRR, can be calculated by taking context information into consideration.\n\n+ **Autosave Best Logs.** DeepCARSKit can automatically save the best log/configuration of the models you run, in the folder of 'log/best/'.\n\n+ **Other Features.** Other characteristic in DeepCARSKit are inherited from RecBole, suc as GPU accelerations.\n\n\n## News \u0026 Updates\n**11/13/2024**: We release DeepCARSKit v1.0.1\n+ Update requirements.txt\n+ Address the randomness issue in N-fold cross validation by utilizing multiprocessing\n\n**03/19/2022**: We release DeepCARSKit v1.0.0\n\n## Documents\n+ [DeepCARSKit API](https://carskit.github.io/doc/DeepCARSKit/index.html)\n+ [RecBole API](https://recbole.io/docs/)\n+ Yong Zheng. \"[DeepCARSKit: A Deep Learning Based Context-Aware Recommendation Library](https://doi.org/10.1016/j.simpa.2022.100292)\", Software Impacts, Vol. 13, Elsevier, 2022\n+ Yong Zheng. \"[DeepCARSKit: A Demo and User Guide](https://doi.org/10.1145/3511047.3536417)\", Adjunct Proceedings of the 30th ACM Conference on User Modeling, Adaptation and Personalization (ACM UMAP), Spain, July, 2022\n+ Yong Zheng, Gonzalo Florez Arias. \"[A Family of Neural Contextual Matrix Factorization Models for Context-Aware Recommendations](https://doi.org/10.1145/3511047.3536404)\", Adjunct Proceedings of the 30th ACM Conference on User Modeling, Adaptation and Personalization (ACM UMAP), Spain, July, 2022\n\n\n\n\n## Installation\nDeepCARSKit works with the following operating systems:\n\n* Linux\n* Windows 10\n* macOS X\n\nDeepCARSKit requires Python version 3.7 or later, torch version 1.7.0 or later, and RecBole version 1.0.1. \nFor more details, you can refer to the list of [requirements](https://github.com/irecsys/DeepCARSKit/blob/main/requirements.txt).\nIf you want to use DeepCARSKit with GPU,\nplease ensure that CUDA or cudatoolkit version is 9.2 or later.\nThis requires NVIDIA driver version \u003e= 396.26 (for Linux) or \u003e= 397.44 (for Windows10).\n\nThe DeepCARSKit library was successfully tested by using the following environments:\n- `python==3.9.20`\n- `recbole==1.0.1`\n- `numpy==1.20.0`\n- `scipy==1.6.0`\n- `lightgbm==4.5.0`\n- `xgboost==2.1.1`\n\nMore info about installation from conda and pip will be released later.\nCurrenly, you can make a git clone of the source codes. We will pulish it to pypi and conda in next release.\n\n## Quick-Start\nWith the source code, you can use the provided script for initial usage of our library:\n\n```bash\npython run.py\n```\n\nThis script will run the NeuCMFi model on the DePaulMovie dataset.\n\n### Data Sets \u0026 Preparation\nA list of available data sets for research on context-aware recommender systems can be found [here](https://github.com/irecsys/CARSKit/tree/master/context-aware_data_sets).\nWe provide two data sets (i.e., DePaulMovie and TripAdvisor) in the library. You can refer to its data format, such as [depaulmovie.inter](https://github.com/irecsys/DeepCARSKit/blob/main/dataset/depaulmovie/depaulmovie.inter).\n\nMore specifically, you need to prepare a data set looks like this: (use 'float' and 'token' to indicate numerical and nominal variables)\n\n+ user_id:token\n+ item_id:token\n+ rating:float\n+ context variable 1:token\n+ context variable 2:token\n+ context variable N:token\n+ contexts:token =\u003e a concatenation of context conditions\n+ uc_id:token =\u003e a concatenation of user_id and contexts\n\n### Algorithms in NeuCMF Framework\nAn extensive NeuCMF framework is included in the DeepCARSKit library. There are multiple variants of the NeuCMF models in this framework.\n\n[![alt text](images/NeuCMF.png)](https://carskit.github.io/)\n\n\n### Hyperparameter tuning \nYou can tune up the parameters from the configuration file, config.yaml\n\nA user guide with more and more details is on the way...\n\n\n## Major Releases\n| Releases | Date       |\n|----------|------------|\n| v1.0.1   | 11/13/2024 |\n| v1.0.0   | 03/19/2022 |\n\n\n\n## Cite\nIf you find DeepCARSKit useful for your research or development, please cite the following paper:\n\n```\n@article{deepcarskit,\n    title={DeepCARSKit: A Deep Learning Based Context-Aware Recommendation Library},\n    author={Zheng, Yong},\n    journal={Software Impacts},\n    volume={13},\n    pages={100292},\n    year={2022},\n    publisher={Elsevier}\n}\n```\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\nPlease make sure to update tests as appropriate.\n\nWe welcome collaborations and contributors to the DeepCARSKit. Your names will be listed here.\n\n## Sponsors\nThe current project was supported by Google Cloud Platform. We are looking for more sponsors to support the development and distribution of this libraray.\nIf you are interested in sponsorship, please let me know. Our official email is DeepCARSKit [at] gmail [dot] com.\n\n## License\n[MIT License](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firecsys%2FDeepCARSKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firecsys%2FDeepCARSKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firecsys%2FDeepCARSKit/lists"}