[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2398":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":47,"discoverSource":48},2398,"recommenders","recommenders-team\u002Frecommenders","recommenders-team","Best Practices on Recommendation Systems","https:\u002F\u002Frecommenders-team.github.io\u002Frecommenders\u002Fintro.html",null,"Python",21761,3325,276,167,0,2,27,77,13,45,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ai","artificial-intelligence","data-science","deep-learning","jupyter-notebook","kubernetes","machine-learning","operationalization","python","ranking","rating","recommendation","recommendation-algorithm","recommendation-engine","recommendation-system","recommender","tutorial","2026-06-12 02:00:40","\u003C!--\nCopyright (c) Recommenders contributors.\nLicensed under the MIT License.\n-->\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Frecommenders-team\u002Fartwork\u002Fmain\u002Fcolor\u002Frecommenders_color.svg\" width=\"800\">\n\n\n[![Documentation status](https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Frecommenders-team\u002Frecommenders.svg)](https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fblob\u002Fmain\u002FLICENSE)\n[![Black](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg)](https:\u002F\u002Fgithub.com\u002Fpsf\u002Fblack)\n[![PyPI Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Frecommenders.svg?logo=pypi&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Frecommenders)\n[![Python Versions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Frecommenders.svg?logo=python&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Frecommenders)\n\n[\u003Cimg align=\"left\" width=\"300\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Frecommenders-team\u002Fartwork\u002Fmain\u002Fmix\u002Fjoin_recommenders_slack.svg\">](https:\u002F\u002Fjoin.slack.com\u002Ft\u002Flfaifoundation\u002Fshared_invite\u002Fzt-2iyl7zyya-g5rOO5K518CBoevyi28W6w)\n\n\u003Cbr>\n\n## What's New (April, 2025)\n\nWe reached 20,000 stars!!\n\nWe are happy to announce that we have reached 20,000 stars on GitHub! Thank you for your support and contributions to the Recommenders project. We are excited to continue building and improving this project with your help.\n\nCheck out the release [Recommenders 1.2.1](https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Freleases\u002Ftag\u002F1.2.1)!\n\nWe fixed a lot of bugs due to dependencies, improved security, reviewed the notebooks and the libraries.\n\n## Introduction\n\nRecommenders objective is to assist researchers, developers and enthusiasts in prototyping, experimenting with and bringing to production a range of classic and state-of-the-art recommendation systems.\n\nRecommenders is a project under the [Linux Foundation of AI and Data](https:\u002F\u002Flfaidata.foundation\u002Fprojects\u002F). \n\nThis repository contains examples and best practices for building recommendation systems, provided as Jupyter notebooks. The examples detail our learnings on five key tasks:\n\n- [Prepare Data](examples\u002F01_prepare_data): Preparing and loading data for each recommendation algorithm.\n- [Model](examples\u002F00_quick_start): Building models using various classical and deep learning recommendation algorithms such as Alternating Least Squares ([ALS](https:\u002F\u002Fspark.apache.org\u002Fdocs\u002Flatest\u002Fapi\u002Fpython\u002F_modules\u002Fpyspark\u002Fml\u002Frecommendation.html#ALS)) or eXtreme Deep Factorization Machines ([xDeepFM](https:\u002F\u002Farxiv.org\u002Fabs\u002F1803.05170)).\n- [Evaluate](examples\u002F03_evaluate): Evaluating algorithms with offline metrics.\n- [Model Select and Optimize](examples\u002F04_model_select_and_optimize): Tuning and optimizing hyperparameters for recommendation models.\n- [Operationalize](examples\u002F05_operationalize): Operationalizing models in a production environment on Azure.\n\nSeveral utilities are provided in [recommenders](recommenders) to support common tasks such as loading datasets in the format expected by different algorithms, evaluating model outputs, and splitting training\u002Ftest data. Implementations of several state-of-the-art algorithms are included for self-study and customization in your own applications. See the [Recommenders documentation](https:\u002F\u002Freadthedocs.org\u002Fprojects\u002Fmicrosoft-recommenders\u002F).\n\nFor a more detailed overview of the repository, please see the documents on the [wiki page](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fwiki\u002FDocuments-and-Presentations).\n\nFor some of the practical scenarios where recommendation systems have been applied, see [scenarios](scenarios). \n\n## Getting Started\n\nWe recommend [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) for environment management (10-100x faster than conda\u002Fpip), and [VS Code](https:\u002F\u002Fcode.visualstudio.com\u002F) for development. To install the recommenders package and run an example notebook on Linux\u002FWSL:\n\n```bash\n# 1. Install gcc if it is not installed already. On Ubuntu, this could done by using the command\n# sudo apt install gcc\n\n# 2. Install uv (if not already installed)\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n\n# 3. Create and activate a new virtual environment\nuv venv ~\u002F.venvs\u002Frecommenders --python 3.11\nsource ~\u002F.venvs\u002Frecommenders\u002Fbin\u002Factivate\n\n# 4. Install the core recommenders package. It can run all the CPU notebooks.\nuv pip install recommenders\n\n# 5. Create a Jupyter kernel\nuv pip install ipykernel\npython -m ipykernel install --user --name recommenders --display-name \"Python (recommenders)\"\n\n# 6. Clone this repo within VSCode or using command line:\ngit clone https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders.git\n\n# 7. Within VSCode:\n#   a. Open a notebook, e.g., examples\u002F00_quick_start\u002Fsar_movielens.ipynb;\n#   b. Select Jupyter kernel \"Python (recommenders)\";\n#   c. Run the notebook.\n```\n\nFor more information about setup on other platforms (e.g., Windows and macOS) and different configurations (e.g., GPU, Spark and experimental features), see the [Setup Guide](SETUP.md).\n\nIn addition to the core package, several extras are also provided, including:\n+ `[gpu]`: Needed for running GPU models.\n+ `[spark]`: Needed for running Spark models.\n+ `[dev]`: Needed for development for the repo.\n+ `[all]`: `[gpu]`|`[spark]`|`[dev]`\n+ `[experimental]`: Models that are not thoroughly tested and\u002For may require additional steps in installation.\n\n## Algorithms\n\nThe table below lists the recommendation algorithms currently available in the repository. Notebooks are linked under the Example column as Quick start, showcasing an easy to run example of the algorithm, or as Deep dive, explaining in detail the math and implementation of the algorithm.\n\n| Algorithm | Type | Description | Example |\n|-----------|------|-------------|---------|\n| Alternating Least Squares (ALS) | Collaborative Filtering | Matrix factorization algorithm for explicit or implicit feedback in large datasets, optimized for scalability and distributed computing capability. It works in the PySpark environment. | [Quick start](examples\u002F00_quick_start\u002Fals_movielens.ipynb) \u002F [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fals_deep_dive.ipynb) |\n| Attentive Asynchronous Singular Value Decomposition (A2SVD)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Sequential-based algorithm that aims to capture both long and short-term user preferences using attention mechanism. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Cornac\u002FBayesian Personalized Ranking (BPR) | Collaborative Filtering | Matrix factorization algorithm for predicting item ranking with implicit feedback. It works in the CPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fcornac_bpr_deep_dive.ipynb) |\n| Cornac\u002FBilateral Variational Autoencoder (BiVAE) | Collaborative Filtering | Generative model for dyadic data (e.g., user-item interactions). It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fcornac_bivae_deep_dive.ipynb) |\n| Convolutional Sequence Embedding Recommendation (Caser) | Collaborative Filtering | Algorithm based on convolutions that aim to capture both user’s general preferences and sequential patterns. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Deep Knowledge-Aware Network (DKN)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Deep learning algorithm incorporating a knowledge graph and article embeddings for providing news or article recommendations. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fdkn_MIND.ipynb) \u002F [Deep dive](examples\u002F02_model_content_based_filtering\u002Fdkn_deep_dive.ipynb) |\n| Extreme Deep Factorization Machine (xDeepFM)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Deep learning based algorithm for implicit and explicit feedback with user\u002Fitem features. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fxdeepfm_criteo.ipynb) |\n| Embedding Dot Bias | Collaborative Filtering | General purpose algorithm with embeddings and biases for users and items. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fembdotbias_movielens.ipynb) |\n| LightFM\u002FFactorization Machine | Collaborative Filtering | Factorization Machine algorithm for both implicit and explicit feedbacks. It works in the CPU environment. | [Quick start](examples\u002F02_model_collaborative_filtering\u002Flightfm_deep_dive.ipynb) |\n| LightGBM\u002FGradient Boosting Tree\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Gradient Boosting Tree algorithm for fast training and low memory usage in content-based problems. It works in the CPU\u002FGPU\u002FPySpark environments. | [Quick start in CPU](examples\u002F00_quick_start\u002Flightgbm_tinycriteo.ipynb) \u002F [Deep dive in PySpark](examples\u002F02_model_content_based_filtering\u002Fmmlspark_lightgbm_criteo.ipynb) |\n| LightGCN | Collaborative Filtering | Deep learning algorithm which simplifies the design of GCN for predicting implicit feedback. It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Flightgcn_deep_dive.ipynb) |\n| GeoIMC\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Matrix completion algorithm that takes into account user and item features using Riemannian conjugate gradient optimization and follows a geometric approach. It works in the CPU environment. | [Quick start](examples\u002F00_quick_start\u002Fgeoimc_movielens.ipynb) |\n| GRU | Collaborative Filtering | Sequential-based algorithm that aims to capture both long and short-term user preferences using recurrent neural networks. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Multinomial VAE | Collaborative Filtering | Generative model for predicting user\u002Fitem interactions. It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fmulti_vae_deep_dive.ipynb) |\n| Neural Recommendation with Long- and Short-term User Representations (LSTUR)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with long- and short-term user interest modeling. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Flstur_MIND.ipynb) |\n| Neural Recommendation with Attentive Multi-View Learning (NAML)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with attentive multi-view learning. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fnaml_MIND.ipynb) |\n| Neural Collaborative Filtering (NCF) | Collaborative Filtering | Deep learning algorithm with enhanced performance for user\u002Fitem implicit feedback. It works in the CPU\u002FGPU environment.| [Quick start](examples\u002F00_quick_start\u002Fncf_movielens.ipynb) \u002F [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fncf_deep_dive.ipynb) |\n| Neural Recommendation with Personalized Attention (NPA)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with personalized attention network. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fnpa_MIND.ipynb) |\n| Neural Recommendation with Multi-Head Self-Attention (NRMS)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Neural recommendation algorithm for recommending news articles with multi-head self-attention. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fnrms_MIND.ipynb) |\n| Next Item Recommendation (NextItNet) | Collaborative Filtering | Algorithm based on dilated convolutions and residual network that aims to capture sequential patterns. It considers both user\u002Fitem interactions and features.  It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Restricted Boltzmann Machines (RBM) | Collaborative Filtering | Neural network based algorithm for learning the underlying probability distribution for explicit or implicit user\u002Fitem feedback. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Frbm_movielens.ipynb) \u002F [Deep dive](examples\u002F02_model_collaborative_filtering\u002Frbm_deep_dive.ipynb) |\n| Riemannian Low-rank Matrix Completion (RLRMC)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Matrix factorization algorithm using Riemannian conjugate gradients optimization with small memory consumption to predict user\u002Fitem interactions. It works in the CPU environment. | [Quick start](examples\u002F00_quick_start\u002Frlrmc_movielens.ipynb) |\n| Simple Algorithm for Recommendation (SAR)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Similarity-based algorithm for implicit user\u002Fitem feedback.  It works in the CPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsar_movielens.ipynb) \u002F [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fsar_deep_dive.ipynb) |\n| Self-Attentive Sequential Recommendation (SASRec) | Collaborative Filtering | Transformer based algorithm for sequential recommendation. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsasrec_amazon.ipynb) |\n| Short-term and Long-term Preference Integrated Recommender (SLi-Rec)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Sequential-based algorithm that aims to capture both long and short-term user preferences using attention mechanism, a time-aware controller and a content-aware controller. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Multi-Interest-Aware Sequential User Modeling (SUM)\u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | An enhanced memory network-based sequential user model which aims to capture users' multiple interests. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Sequential Recommendation Via Personalized Transformer (SSEPT) | Collaborative Filtering | Transformer based algorithm for sequential recommendation with User embedding. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fsasrec_amazon.ipynb) |\n| Standard VAE | Collaborative Filtering | Generative Model for predicting user\u002Fitem interactions.  It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fstandard_vae_deep_dive.ipynb) |\n| Surprise\u002FSingular Value Decomposition (SVD) | Collaborative Filtering | Matrix factorization algorithm for predicting explicit rating feedback in small datasets. It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Fsurprise_svd_deep_dive.ipynb) |\n| Term Frequency - Inverse Document Frequency (TF-IDF) | Content-Based Filtering | Simple similarity-based algorithm for content-based recommendations with text datasets. It works in the CPU environment. | [Quick  start](examples\u002F00_quick_start\u002Ftfidf_covid.ipynb) |\n| Vowpal Wabbit (VW)\u003Csup>*\u003C\u002Fsup> | Content-Based Filtering | Fast online learning algorithms, great for scenarios where user features \u002F context are constantly changing. It uses the CPU for online learning. | [Deep dive](examples\u002F02_model_content_based_filtering\u002Fvowpal_wabbit_deep_dive.ipynb) |\n| Wide and Deep | Collaborative Filtering | Deep learning algorithm that can memorize feature interactions and generalize user features. It works in the CPU\u002FGPU environment. | [Quick start](examples\u002F00_quick_start\u002Fwide_deep_movielens.ipynb) |\n| xLearn\u002FFactorization Machine (FM) & Field-Aware FM (FFM) | Collaborative Filtering | Quick and memory efficient algorithm to predict labels with user\u002Fitem features. It works in the CPU\u002FGPU environment. | [Deep dive](examples\u002F02_model_collaborative_filtering\u002Ffm_deep_dive.ipynb) |\n\n**NOTE**: \u003Csup>*\u003C\u002Fsup> indicates algorithms invented\u002Fcontributed by Microsoft.\n\nIndependent or incubating algorithms and utilities are candidates for the [contrib](contrib) folder. This will house contributions which may not easily fit into the core repository or need time to refactor or mature the code and add necessary tests.\n\n| Algorithm | Type | Description | Example |\n|-----------|------|-------------|---------|\n| SARplus \u003Csup>*\u003C\u002Fsup> | Collaborative Filtering | Optimized implementation of SAR for Spark |  [Quick start](contrib\u002Fsarplus\u002FREADME.md) |\n\n### Algorithm Comparison\n\nWe provide a [benchmark notebook](examples\u002F06_benchmarks\u002Fmovielens.ipynb) to illustrate how different algorithms could be evaluated and compared. In this notebook, the MovieLens dataset is split into training\u002Ftest sets at a 75\u002F25 ratio using a stratified split. A recommendation model is trained using each of the collaborative filtering algorithms below. We utilize empirical parameter values reported in literature [here](http:\u002F\u002Fmymedialite.net\u002Fexamples\u002Fdatasets.html). For ranking metrics we use `k=10` (top 10 recommended items). We run the comparison on a machine with 4 CPUs, 30Gb of RAM, and 1 GPU GeForce GTX 1660 Ti with 6Gb of memory. Spark ALS is run in local standalone mode. In this table we show the results on Movielens 100k, running the algorithms for 15 epochs.\n\n| Algo | MAP | nDCG@k | Precision@k | Recall@k | RMSE | MAE | R\u003Csup>2\u003C\u002Fsup> | Explained Variance |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| [ALS](examples\u002F00_quick_start\u002Fals_movielens.ipynb) | 0.004732 |\t0.044239 |\t0.048462 |\t0.017796 | 0.965038 |\t0.753001 |\t0.255647 |\t0.251648 |\n| [BiVAE](examples\u002F02_model_collaborative_filtering\u002Fcornac_bivae_deep_dive.ipynb) | 0.146126\t| 0.475077 |\t0.411771 |\t0.219145 | N\u002FA |\tN\u002FA |\tN\u002FA |\tN\u002FA |\n| [BPR](examples\u002F02_model_collaborative_filtering\u002Fcornac_bpr_deep_dive.ipynb) | 0.132478\t| 0.441997 |\t0.388229 |\t0.212522 | N\u002FA |\tN\u002FA |\tN\u002FA |\tN\u002FA |\n| [embdotbias](examples\u002F00_quick_start\u002Fembdotbias_movielens.ipynb) | 0.018954 |\t0.117810 |\t0.104242 |\t0.042450 | 0.992760 | 0.776040 | 0.223344 |\t0.223393 |\n| [LightGCN](examples\u002F02_model_collaborative_filtering\u002Flightgcn_deep_dive.ipynb) | 0.088526 | 0.419846 | 0.379626 | 0.144336 | N\u002FA | N\u002FA | N\u002FA | N\u002FA |\n| [NCF](examples\u002F02_model_collaborative_filtering\u002Fncf_deep_dive.ipynb) | 0.107720\t| 0.396118 |\t0.347296 |\t0.180775 | N\u002FA | N\u002FA | N\u002FA | N\u002FA |\n| [SAR](examples\u002F00_quick_start\u002Fsar_movielens.ipynb) | 0.110591 |\t0.382461 | \t0.330753 | 0.176385 | 1.253805 | 1.048484 |\t-0.569363 |\t0.030474 |\n| [SVD](examples\u002F02_model_collaborative_filtering\u002Fsurprise_svd_deep_dive.ipynb) | 0.012873\t| 0.095930 |\t0.091198 |\t0.032783 | 0.938681 | 0.742690 | 0.291967 | 0.291971 |\n\n## Contributing\n\nThis project welcomes contributions and suggestions. Before contributing, please see our [contribution guidelines](CONTRIBUTING.md).\n\nThis project adheres to this [Code of Conduct](CODE_OF_CONDUCT.md) in order to foster a welcoming and inspiring community for all.\n\n\u003C!--\nStopped AzureML MLOps. See #2251\n## Build Status\n\nThese tests are the nightly builds, which compute the asynchronous tests. `main` is our principal branch and `staging` is our development branch. We use [pytest](https:\u002F\u002Fdocs.pytest.org\u002F) for testing python utilities in [recommenders](recommenders) and the Recommenders [notebook executor](recommenders\u002Futils\u002Fnotebook_utils.py) for the [notebooks](examples). \n\nFor more information about the testing pipelines, please see the [test documentation](tests\u002FREADME.md).\n\n### AzureML Nightly Build Status\n\nThe nightly build tests are run daily on AzureML.\n\n| Build Type | Branch | Status |  | Branch | Status |\n| --- | --- | --- | --- | --- | --- |\n| **Linux CPU** | main | [![azureml-cpu-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-cpu-nightly.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-cpu-nightly.yml?query=branch%3Amain) | | staging | [![azureml-cpu-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-cpu-nightly.yml\u002Fbadge.svg?branch=staging)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-cpu-nightly.yml?query=branch%3Astaging) |\n| **Linux GPU** | main | [![azureml-gpu-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-gpu-nightly.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-gpu-nightly.yml?query=branch%3Amain) | | staging | [![azureml-gpu-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-gpu-nightly.yml\u002Fbadge.svg?branch=staging)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-gpu-nightly.yml?query=branch%3Astaging) |\n| **Linux Spark** | main | [![azureml-spark-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-spark-nightly.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-spark-nightly.yml?query=branch%3Amain) | | staging | [![azureml-spark-nightly](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-spark-nightly.yml\u002Fbadge.svg?branch=staging)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Factions\u002Fworkflows\u002Fazureml-spark-nightly.yml?query=branch%3Astaging) |\n-->\n\n## References\n\n- **FREE COURSE**: M. González-Fierro, \"Recommendation Systems: A Practical Introduction\", LinkedIn Learning, 2024. [Available on this link](https:\u002F\u002Fwww.linkedin.com\u002Flearning\u002Frecommendation-systems-a-practical-introduction).\n- D. Li, J. Lian, L. Zhang, K. Ren, D. Lu, T. Wu, X. Xie, \"Recommender Systems: Frontiers and Practices\", Springer, Beijing, 2024. [Available on this link](https:\u002F\u002Fwww.amazon.com\u002FRecommender-Systems-Frontiers-Practices-Dongsheng\u002Fdp\u002F9819989639\u002F).\n- A. Argyriou, M. González-Fierro, and L. Zhang, \"Microsoft Recommenders: Best Practices for Production-Ready Recommendation Systems\", *WWW 2020: International World Wide Web Conference Taipei*, 2020. Available online: https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3366424.3382692\n- S. Graham,  J.K. Min, T. Wu, \"Microsoft recommenders: tools to accelerate developing recommender systems\", *RecSys '19: Proceedings of the 13th ACM Conference on Recommender Systems*, 2019. Available online: https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3298689.3346967\n- L. Zhang, T. Wu, X. Xie, A. Argyriou, M. González-Fierro and J. Lian, \"Building Production-Ready Recommendation System at Scale\", *ACM SIGKDD Conference on Knowledge Discovery and Data Mining 2019 (KDD 2019)*, 2019.\n","Recommenders 是一个专注于推荐系统构建与优化的开源项目。它提供了多种经典及前沿的推荐算法实现，包括基于协同过滤的ALS和深度学习模型xDeepFM等，并通过Jupyter Notebook的形式展示从数据准备、模型训练到效果评估及参数调优的全过程。此外，该项目还介绍了如何将训练好的模型部署至Azure云平台进行实际应用。其适用于希望快速搭建个性化推荐服务的研究人员、开发者以及对推荐系统感兴趣的学习者。项目采用Python语言编写，遵循MIT许可协议，拥有活跃的社区支持。","2026-06-11 02:49:48","top_language"]