[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-recommenders-team--recommenders":3,"tool-recommenders-team--recommenders":61},[4,18,26,36,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":32,"env_os":104,"env_gpu":105,"env_ram":106,"env_deps":107,"category_tags":113,"github_topics":115,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":133,"updated_at":134,"faqs":135,"releases":163},4481,"recommenders-team\u002Frecommenders","recommenders","Best Practices on Recommendation Systems","Recommenders 是一个专注于推荐系统最佳实践的开源项目，旨在帮助研究人员和开发者高效地构建、实验并部署从经典算法到前沿深度学习的各类推荐模型。它主要解决了推荐系统开发过程中流程繁琐、标准不一以及从原型到生产环境落地困难的痛点，提供了一套经过验证的完整解决方案。\n\n该项目非常适合从事数据挖掘、机器学习的研究人员，以及需要将推荐功能集成到产品中的软件开发工程师。Recommenders 的独特亮点在于其结构化的学习路径，通过一系列详细的 Jupyter Notebook 示例，覆盖了数据准备、模型构建（如 ALS、xDeepFM 等）、离线评估、超参数调优以及在 Azure 云环境中的生产化部署这五大核心任务。此外，项目还内置了多种实用工具函数，简化了数据加载、格式转换及训练测试集划分等常见操作。作为 Linux Foundation AI & Data 旗下的项目，Recommenders 不仅提供了可复用的代码实现，更凝聚了社区在推荐领域的宝贵经验，是探索和优化推荐算法的理想起点。","\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","\u003C!--\n版权所有 © Recommenders 贡献者。\n根据 MIT 许可证授权。\n-->\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Frecommenders-team\u002Fartwork\u002Fmain\u002Fcolor\u002Frecommenders_color.svg\" width=\"800\">\n\n\n[![文档状态](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[![许可证](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 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Frecommenders.svg?logo=pypi&logoColor=white)](https:\u002F\u002Fpypi.org\u002Fproject\u002Frecommenders)\n[![Python 版本](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## 最新动态（2025年4月）\n\n我们达到了20,000颗星！！\n\n我们很高兴地宣布，我们在 GitHub 上的项目已获得20,000颗星！感谢您对 Recommenders 项目的大力支持与贡献。我们非常期待在您的帮助下继续构建和完善这个项目。\n\n请查看版本 [Recommenders 1.2.1](https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Freleases\u002Ftag\u002F1.2.1)！\n\n我们修复了大量由依赖项引起的 bug，提升了安全性，并对笔记本和库进行了全面审查。\n\n## 简介\n\nRecommenders 的目标是帮助研究人员、开发者和爱好者快速原型设计、实验并部署一系列经典及最先进推荐系统到生产环境中。\n\nRecommenders 是 [Linux 基金会人工智能与数据基金会](https:\u002F\u002Flfaidata.foundation\u002Fprojects\u002F) 下的一个项目。\n\n本仓库包含用于构建推荐系统的示例和最佳实践，以 Jupyter 笔记本的形式提供。这些示例详细记录了我们在五个关键任务上的学习成果：\n\n- [数据准备](examples\u002F01_prepare_data)：为每种推荐算法准备和加载数据。\n- [模型构建](examples\u002F00_quick_start)：使用多种经典及深度学习推荐算法构建模型，例如交替最小二乘法 ([ALS](https:\u002F\u002Fspark.apache.org\u002Fdocs\u002Flatest\u002Fapi\u002Fpython\u002F_modules\u002Fpyspark\u002Fml\u002Frecommendation.html#ALS)) 或极端深度因子分解机 ([xDeepFM](https:\u002F\u002Farxiv.org\u002Fabs\u002F1803.05170))。\n- [评估](examples\u002F03_evaluate)：使用离线指标评估算法性能。\n- [模型选择与优化](examples\u002F04_model_select_and_optimize)：调整和优化推荐模型的超参数。\n- [上线部署](examples\u002F05_operationalize)：在 Azure 生产环境中部署模型。\n\n在 [recommenders](recommenders) 中提供了若干实用工具，用于支持常见任务，如以不同算法所需格式加载数据集、评估模型输出以及拆分训练\u002F测试数据。此外，还包含了多个最先进算法的实现，供您自学并在自己的应用中进行定制。更多信息请参阅 [Recommenders 文档](https:\u002F\u002Freadthedocs.org\u002Fprojects\u002Fmicrosoft-recommenders\u002F)。\n\n如需更详细的仓库概述，请参阅 [wiki 页面](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fwiki\u002FDocuments-and-Presentations)上的相关文档。\n\n有关推荐系统实际应用场景的更多信息，请参阅 [scenarios](scenarios)。\n\n## 快速入门\n\n我们推荐使用 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F) 进行环境管理（比 conda\u002Fpip 快10–100倍），并使用 [VS Code](https:\u002F\u002Fcode.visualstudio.com\u002F) 进行开发。要在 Linux\u002FWSL 上安装 Recommenders 包并运行示例笔记本：\n\n```bash\n# 1. 如果尚未安装 gcc，请先安装。在 Ubuntu 上，可以使用以下命令：\n# sudo apt install gcc\n\n# 2. 安装 uv（如果尚未安装）\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n\n# 3. 创建并激活一个新的虚拟环境\nuv venv ~\u002F.venvs\u002Frecommenders --python 3.11\nsource ~\u002F.venvs\u002Frecommenders\u002Fbin\u002Factivate\n\n# 4. 安装核心 Recommenders 包。该包可运行所有 CPU 笔记本。\nuv pip install recommenders\n\n# 5. 创建一个 Jupyter 内核\nuv pip install ipykernel\npython -m ipykernel install --user --name recommenders --display-name \"Python (recommenders)\"\n\n# 6. 在 VS Code 或通过命令行克隆此仓库：\ngit clone https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders.git\n\n# 7. 在 VS Code 中：\n#   a. 打开一个笔记本，例如 examples\u002F00_quick_start\u002Fsar_movielens.ipynb；\n#   b. 选择 Jupyter 内核 \"Python (recommenders)\"；\n#   c. 运行笔记本。\n```\n\n有关其他平台（如 Windows 和 macOS）以及不同配置（如 GPU、Spark 和实验性功能）的更多设置信息，请参阅 [设置指南](SETUP.md)。\n\n除了核心包之外，还提供了若干附加组件，包括：\n+ `[gpu]`：用于运行 GPU 模型。\n+ `[spark]`：用于运行 Spark 模型。\n+ `[dev]`：用于仓库的开发。\n+ `[all]`：`[gpu]`|`[spark]`|`[dev]`\n+ `[experimental]`：指尚未经过充分测试，或可能需要额外安装步骤的模型。\n\n## 算法\n\n下表列出了当前仓库中可用的推荐算法。示例栏中链接的笔记本分为“快速入门”，展示易于运行的算法示例；或“深入剖析”，详细解释算法的数学原理及实现过程。\n\n| 算法 | 类型 | 描述 | 示例 |\n|-----------|------|-------------|---------|\n| 交替最小二乘法 (ALS) | 协同过滤 | 针对大规模数据集中显式或隐式反馈的矩阵分解算法，优化了可扩展性和分布式计算能力。适用于 PySpark 环境。 | [快速入门](examples\u002F00_quick_start\u002Fals_movielens.ipynb) \u002F [深入解析](examples\u002F02_model_collaborative_filtering\u002Fals_deep_dive.ipynb) |\n| 注意力异步奇异值分解 (A2SVD)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 基于序列的算法，利用注意力机制捕捉用户的长期和短期偏好。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| Cornac\u002F贝叶斯个性化排序 (BPR) | 协同过滤 | 针对隐式反馈进行物品排名预测的矩阵分解算法。适用于 CPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Fcornac_bpr_deep_dive.ipynb) |\n| Cornac\u002F双边变分自编码器 (BiVAE) | 协同过滤 | 用于二元数据（如用户-物品交互）的生成模型。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Fcornac_bivae_deep_dive.ipynb) |\n| 卷积序列嵌入推荐 (Caser) | 协同过滤 | 基于卷积的算法，旨在同时捕捉用户的总体偏好和序列模式。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| 深度知识感知网络 (DKN)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 结合知识图谱和文章嵌入的深度学习算法，用于新闻或文章推荐。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fdkn_MIND.ipynb) \u002F [深入解析](examples\u002F02_model_content_based_filtering\u002Fdkn_deep_dive.ipynb) |\n| 极端深度因子分解机 (xDeepFM)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 基于深度学习的算法，适用于包含用户\u002F物品特征的隐式和显式反馈。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fxdeepfm_criteo.ipynb) |\n| 嵌入点积偏差 | 协同过滤 | 一种通用算法，使用用户和物品的嵌入及偏差。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fembdotbias_movielens.ipynb) |\n| LightFM\u002F因子分解机 | 协同过滤 | 适用于隐式和显式反馈的因子分解机算法。适用于 CPU 环境。 | [快速入门](examples\u002F02_model_collaborative_filtering\u002Flightfm_deep_dive.ipynb) |\n| LightGBM\u002F梯度提升树\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 针对基于内容的问题，具有快速训练和低内存占用特点的梯度提升树算法。适用于 CPU\u002FGPU\u002FPySpark 环境。 | [CPU 快速入门](examples\u002F00_quick_start\u002Flightgbm_tinycriteo.ipynb) \u002F [PySpark 深入解析](examples\u002F02_model_content_based_filtering\u002Fmmlspark_lightgbm_criteo.ipynb) |\n| LightGCN | 协同过滤 | 一种简化了 GCN 设计的深度学习算法，用于预测隐式反馈。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Flightgcn_deep_dive.ipynb) |\n| GeoIMC\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 一种考虑用户和物品特征的矩阵补全算法，采用黎曼共轭梯度优化，并遵循几何方法。适用于 CPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fgeoimc_movielens.ipynb) |\n| GRU | 协同过滤 | 基于序列的算法，利用循环神经网络捕捉用户的长期和短期偏好。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| 多项式变分自编码器 | 协同过滤 | 用于预测用户\u002F物品交互的生成模型。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Fmulti_vae_deep_dive.ipynb) |\n| 具有长短期用户表征的神经推荐 (LSTUR)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 用于推荐新闻文章的神经推荐算法，能够建模用户的长短期兴趣。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Flstur_MIND.ipynb) |\n| 具有注意力多视角学习的神经推荐 (NAML)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 用于推荐新闻文章的神经推荐算法，采用注意力多视角学习。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fnaml_MIND.ipynb) |\n| 神经协同过滤 (NCF) | 协同过滤 | 针对用户\u002F物品隐式反馈的性能增强型深度学习算法。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fncf_movielens.ipynb) \u002F [深入解析](examples\u002F02_model_collaborative_filtering\u002Fncf_deep_dive.ipynb) |\n| 具有个性化注意力的神经推荐 (NPA)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 用于推荐新闻文章的神经推荐算法，采用个性化注意力网络。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fnpa_MIND.ipynb) |\n| 具有多头自注意力的神经推荐 (NRMS)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 用于推荐新闻文章的神经推荐算法，采用多头自注意力机制。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fnrms_MIND.ipynb) |\n| 下一个物品推荐 (NextItNet) | 协同过滤 | 基于扩张卷积和残差网络的算法，旨在捕捉序列模式。同时考虑用户\u002F物品的交互与特征。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| 受限玻尔兹曼机 (RBM) | 协同过滤 | 基于神经网络的算法，用于学习显式或隐式用户\u002F物品反馈背后的概率分布。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Frbm_movielens.ipynb) \u002F [深入解析](examples\u002F02_model_collaborative_filtering\u002Frbm_deep_dive.ipynb) |\n| 黎曼低秩矩阵补全 (RLRMC)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 使用黎曼共轭梯度优化、内存消耗小的矩阵分解算法，用于预测用户\u002F物品的交互。适用于 CPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Frlrmc_movielens.ipynb) |\n| 推荐简单算法 (SAR)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 基于相似性的隐式用户\u002F物品反馈算法。适用于 CPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsar_movielens.ipynb) \u002F [深入解析](examples\u002F02_model_collaborative_filtering\u002Fsar_deep_dive.ipynb) |\n| 自注意力序列推荐 (SASRec) | 协同过滤 | 基于 Transformer 的序列推荐算法。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsasrec_amazon.ipynb) |\n| 短期与长期偏好融合推荐 (SLi-Rec)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 基于序列的算法，利用注意力机制、时间感知控制器和内容感知控制器，同时捕捉用户的长期和短期偏好。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| 多兴趣感知的序列用户建模 (SUM)\u003Csup>*\u003C\u002Fsup> | 协同过滤 | 一种增强的记忆网络基序列用户模型，旨在捕捉用户的多种兴趣。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsequential_recsys_amazondataset.ipynb) |\n| 基于个性化 Transformer 的序列推荐 (SSEPT) | 协同过滤 | 基于 Transformer 的序列推荐算法，结合用户嵌入。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fsasrec_amazon.ipynb) |\n| 标准变分自编码器 | 协同过滤 | 用于预测用户\u002F物品交互的生成模型。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Fstandard_vae_deep_dive.ipynb) |\n| Surprise\u002F奇异值分解 (SVD) | 协同过滤 | 用于在小规模数据集中预测显式评分反馈的矩阵分解算法。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Fsurprise_svd_deep_dive.ipynb) |\n| 词频-逆文档频率 (TF-IDF) | 基于内容的过滤 | 适用于文本数据集的基于相似性的简单内容推荐算法。适用于 CPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Ftfidf_covid.ipynb) |\n| Vowpal Wabbit (VW)\u003Csup>*\u003C\u002Fsup> | 基于内容的过滤 | 快速的在线学习算法，非常适合用户特征\u002F上下文不断变化的场景。使用 CPU 进行在线学习。 | [深入解析](examples\u002F02_model_content_based_filtering\u002Fvowpal_wabbit_deep_dive.ipynb) |\n| 宽而深 | 协同过滤 | 一种能够记忆特征交互并泛化用户特征的深度学习算法。适用于 CPU\u002FGPU 环境。 | [快速入门](examples\u002F00_quick_start\u002Fwide_deep_movielens.ipynb) |\n| xLearn\u002F因子分解机 (FM) 和场感知 FM (FFM) | 协同过滤 | 一种快速且内存高效的算法，用于根据用户\u002F物品特征预测标签。适用于 CPU\u002FGPU 环境。 | [深入解析](examples\u002F02_model_collaborative_filtering\u002Ffm_deep_dive.ipynb) |\n\n**注意**: \u003Csup>*\u003C\u002Fsup> 表示由微软发明\u002F贡献的算法。\n\n独立或孵化中的算法和工具是放入 [contrib](contrib) 文件夹的候选对象。该文件夹将存放那些可能不易融入核心仓库，或者需要时间重构代码、完善功能并添加必要测试的贡献内容。\n\n| 算法 | 类型 | 描述 | 示例 |\n|-----------|------|-------------|---------|\n| SARplus \u003Csup>*\u003C\u002Fsup> | 协同过滤 | 针对 Spark 的优化版 SAR 实现 |  [快速入门](contrib\u002Fsarplus\u002FREADME.md) |\n\n\n\n### 算法比较\n\n我们提供了一个 [基准测试笔记本](examples\u002F06_benchmarks\u002Fmovielens.ipynb)，用于展示如何评估和比较不同的算法。在这个笔记本中，MovieLens 数据集按照 75\u002F25 的比例进行分层拆分，得到训练集和测试集。我们使用下面列出的每一种协同过滤算法来训练推荐模型。参数值采用文献[这里](http:\u002F\u002Fmymedialite.net\u002Fexamples\u002Fdatasets.html)中报告的经验值。对于排序指标，我们使用 `k=10`（前 10 个推荐项）。比较实验在一台配备 4 核 CPU、30GB 内存和 1 块 GeForce GTX 1660 Ti 显卡（6GB 显存）的机器上运行。Spark ALS 以本地独立模式执行。下表展示了在 MovieLens 100k 数据集上运行 15 个 epoch 后的结果。\n\n| 算法 | MAP | nDCG@k | Precision@k | Recall@k | RMSE | MAE | R\u003Csup>2\u003C\u002Fsup> | 解释方差 |\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## 贡献说明\n\n本项目欢迎各位的贡献与建议。在提交贡献之前，请先阅读我们的 [贡献指南](CONTRIBUTING.md)。\n\n为营造一个包容且富有激励性的社区，本项目遵循此 [行为准则](CODE_OF_CONDUCT.md)。\n\n\u003C!--\n已停止 AzureML MLOps。参见 #2251\n## 构建状态\n\n这些测试是每晚构建任务，用于执行异步测试。`main` 是我们的主分支，`staging` 是开发分支。我们使用 [pytest](https:\u002F\u002Fdocs.pytest.org\u002F) 对 [recommenders](recommenders) 中的 Python 工具进行测试，并利用 Recommenders 的 [笔记本执行器](recommenders\u002Futils\u002Fnotebook_utils.py) 来运行 [notebooks](examples)。\n\n有关测试流程的更多信息，请参阅 [测试文档](tests\u002FREADME.md)。\n\n### AzureML 每日构建状态\n\n每日构建测试在 AzureML 上运行。\n\n| 构建类型 | 分支 | 状态 |  | 分支 | 状态 |\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## 参考文献\n\n- **免费课程**: M. González-Fierro, “推荐系统：实用入门”, LinkedIn Learning, 2024。[可通过此链接观看](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, “推荐系统：前沿与实践”, Springer, 北京, 2024。[可通过此链接购买](https:\u002F\u002Fwww.amazon.com\u002FRecommender-Systems-Frontiers-Practices-Dongsheng\u002Fdp\u002F9819989639\u002F)。\n- A. Argyriou, M. González-Fierro 和 L. Zhang, “Microsoft Recommenders：生产就绪推荐系统的最佳实践”, *WWW 2020：国际万维网大会，台北*, 2020。在线获取：https:\u002F\u002Fdl.acm.org\u002Fdoi\u002Fabs\u002F10.1145\u002F3366424.3382692\n- S. Graham, J.K. Min, T. Wu, “Microsoft recommenders：加速推荐系统开发的工具”, *RecSys '19：第 13 届 ACM 推荐系统会议论文集*, 2019。在线获取：https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3298689.3346967\n- L. Zhang, T. Wu, X. Xie, A. Argyriou, M. González-Fierro 和 J. Lian, “大规模生产就绪推荐系统的构建”, *ACM SIGKDD 知识发现与数据挖掘大会 2019 (KDD 2019)*, 2019。","# Recommenders 快速上手指南\n\nRecommenders 是一个由 Linux Foundation AI & Data 托管的开源项目，旨在帮助研究人员和开发者构建、评估及部署经典与前沿的推荐系统。本项目提供了丰富的 Jupyter Notebook 示例，涵盖数据准备、模型构建、评估、调优及生产环境部署全流程。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐), WSL (Windows Subsystem for Linux), 或 macOS。\n    *   *注：Windows 原生支持有限，建议通过 WSL 运行。*\n*   **Python 版本**: 推荐 Python 3.11。\n*   **编译器**: 需要安装 `gcc` (Ubuntu\u002FDebian 系统通常预装，若未安装需执行 `sudo apt install gcc`)。\n*   **开发工具**: 推荐使用 [VS Code](https:\u002F\u002Fcode.visualstudio.com\u002F) 进行开发。\n*   **包管理工具**: 官方强烈推荐使用 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F)，其速度比 conda\u002Fpip 快 10-100 倍。\n\n## 安装步骤\n\n以下是在 Linux\u002FWSL 环境下使用 `uv` 安装核心包并运行示例的标准流程：\n\n1.  **安装 uv** (如果尚未安装):\n    ```bash\n    curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n    ```\n\n2.  **创建并激活虚拟环境** (指定 Python 3.11):\n    ```bash\n    uv venv ~\u002F.venvs\u002Frecommenders --python 3.11\n    source ~\u002F.venvs\u002Frecommenders\u002Fbin\u002Factivate\n    ```\n\n3.  **安装 Recommenders 核心包**:\n    ```bash\n    uv pip install recommenders\n    ```\n    *可选扩展*: 如需使用 GPU 加速或 Spark，可安装额外依赖：\n    *   GPU 支持: `uv pip install \"recommenders[gpu]\"`\n    *   Spark 支持: `uv pip install \"recommenders[spark]\"`\n    *   全部功能: `uv pip install \"recommenders[all]\"`\n\n4.  **配置 Jupyter Kernel**:\n    ```bash\n    uv pip install ipykernel\n    python -m ipykernel install --user --name recommenders --display-name \"Python (recommenders)\"\n    ```\n\n5.  **克隆项目代码库**:\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders.git\n    cd recommenders\n    ```\n\n## 基本使用\n\n安装完成后，您可以通过运行官方提供的 Jupyter Notebook 快速体验推荐算法。以下以经典的 **SAR (Simple Algorithm for Recommendation)** 在 MovieLens 数据集上的应用为例：\n\n1.  **启动 VS Code** 并打开克隆后的目录。\n2.  **打开示例 Notebook**:\n    导航至 `examples\u002F00_quick_start\u002Fsar_movielens.ipynb` 并打开。\n3.  **选择内核**:\n    在 Notebook 右上角点击内核选择器，选择刚才创建的 **`Python (recommenders)`**。\n4.  **运行单元格**:\n    依次运行代码单元格。该示例将演示：\n    *   加载 MovieLens 数据集。\n    *   训练 SAR 模型。\n    *   生成顶部 K 个物品推荐列表。\n    *   评估模型效果。\n\n**核心代码逻辑示例** (源自 Notebook):\n\n```python\nfrom recommenders.models.sar import SAR\nfrom recommenders.datasets import movielens\n\n# 1. 加载数据\ndf = movielens.load_pandas_df(size=\"100k\")\n\n# 2. 初始化模型\nmodel = SAR(\n    user_col=\"userID\",\n    item_col=\"itemID\",\n    rating_col=\"rating\",\n    time_col=\"timestamp\",\n)\n\n# 3. 拟合模型\nmodel.fit(df)\n\n# 4. 获取推荐结果\ntop_k = model.recommend_k_items(\n    user_ids=[1], \n    top_k=10, \n    remove_seen=True\n)\nprint(top_k)\n```\n\n更多算法（如 ALS, xDeepFM, LightGCN 等）的详细用法请参考 `examples` 目录下的其他 Notebook，分为 \"Quick start\" (快速入门) 和 \"Deep dive\" (深度解析) 两类。","某中型电商平台的算法团队正急需在两周内上线一套个性化商品推荐系统，以应对即将到来的促销旺季。\n\n### 没有 recommenders 时\n- **重复造轮子耗时久**：工程师需从零编写数据清洗、划分训练\u002F测试集的基础代码，且不同算法（如 ALS 与深度学习模型）的数据格式不统一，导致大量时间浪费在适配上。\n- **算法复现门槛高**：想要尝试业界领先的 xDeepFM 等模型，需自行研读论文并实现复杂网络结构，极易因细节错误导致效果不佳或无法收敛。\n- **评估标准不统一**：缺乏标准化的离线评估指标库，团队成员对准确率、召回率等计算方式理解不一，难以客观对比模型优劣。\n- **调参优化无头绪**：超参数调整完全依赖人工经验试错，缺乏系统的自动化调优流程，模型性能迟迟无法达到上线标准。\n\n### 使用 recommenders 后\n- **数据准备标准化**：直接调用内置工具快速完成多源数据的加载与格式化，一键生成符合各类算法要求的输入数据，开发效率提升数倍。\n- **前沿模型即插即用**：通过官方提供的 Jupyter Notebook 示例，直接复用已验证的 ALS、xDeepFM 等经典及 SOTA 算法代码，将重心从“写代码”转向“调业务”。\n- **评估体系专业化**：利用内置的评估模块统一计算离线指标，确保团队在同一基准下公平对比模型表现，快速锁定最优方案。\n- **调参流程自动化**：借助模型选择与优化示例，系统化地进行超参数搜索与调优，短时间内即可将模型精度提升至生产级水平。\n\nrecommenders 通过提供全流程的最佳实践与标准化组件，帮助团队将原本需要一个月的研发周期压缩至一周，成功赶在促销前上线了高质量推荐服务。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frecommenders-team_recommenders_8b9e7c5d.png","recommenders-team","Recommenders team ","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frecommenders-team_08ac65ed.png","Recommenders offers examples & best practices for building recommendation systems, provided as Jupyter notebooks. An LF AI & Data Sandbox project.",null,"info@lfaidata.foundation","https:\u002F\u002Fgithub.com\u002Frecommenders-team",[80,84,88,92,96],{"name":81,"color":82,"percentage":83},"Python","#3572A5",98,{"name":85,"color":86,"percentage":87},"Scala","#c22d40",0.8,{"name":89,"color":90,"percentage":91},"C++","#f34b7d",0.5,{"name":93,"color":94,"percentage":95},"Jupyter Notebook","#DA5B0B",0.4,{"name":97,"color":98,"percentage":99},"Dockerfile","#384d54",0.3,21601,3308,"2026-04-06T10:08:27","MIT","Linux, macOS, Windows","非必需。仅运行特定深度学习模型（如 xDeepFM, NCF, GRU 等）时需要 GPU 支持，需安装 [gpu] 额外依赖包。具体显卡型号、显存大小及 CUDA 版本未在文档中明确说明，通常取决于所安装的 PyTorch\u002FTensorFlow 后端版本要求。","未说明",{"notes":108,"python":109,"dependencies":110},"1. 推荐使用 'uv' 进行环境管理（比 conda\u002Fpip 快 10-100 倍），也可使用常规 pip。2. 在 Linux\u002FWSL 上安装前需确保已安装 gcc（Ubuntu 下可通过 'sudo apt install gcc' 安装）。3. 核心包仅支持 CPU 运行，若需使用 Spark 模型、GPU 模型或开发功能，需分别安装 [spark]、[gpu] 或 [dev] 额外依赖包。4. 部分算法标记为实验性（experimental），可能未经过充分测试或需要额外的安装步骤。","3.11",[64,111,112],"ipykernel","gcc (系统级依赖)",[16,14,15,114,13],"其他",[116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],"machine-learning","recommender","ranking","deep-learning","python","jupyter-notebook","recommendation-algorithm","rating","operationalization","kubernetes","recommendation-system","recommendation-engine","recommendation","data-science","tutorial","artificial-intelligence","ai","2026-03-27T02:49:30.150509","2026-04-06T23:58:14.550373",[136,141,146,150,155,159],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},20380,"在 Windows 上安装 xlearn 时遇到 'Cannot find xlearn Library' 错误怎么办？","在 Windows 上直接通过 pip 安装 xlearn 可能会失败，因为无法找到底层库文件。官方文档指出这不是推荐的安装方式。建议参考 xlearn 官方文档中关于 Windows 安装的说明（https:\u002F\u002Fxlearn-doc.readthedocs.io\u002Fen\u002Flatest\u002Finstall\u002Finstall_windows.html）进行手动配置。不过，在 Databricks 环境中，直接运行 'pip install cmake' 和 'pip install xlearn' 通常可以正常工作。","https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fissues\u002F1408",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},20381,"使用自定义数据集运行 NCF 深度挖掘笔记时出现 TypeError 错误，原因是什么？","该错误通常发生在初始化测试数据阶段（_init_test_data），原因是自定义数据集的格式或列名与 NCFDataset 类的预期不符。确保数据集中包含正确的用户 ID、物品 ID 和评分列，并且列名与初始化参数（col_user, col_item, col_rating）一致。如果问题仍然存在，建议将问题拆分为独立的 GitHub Issue 以便更详细地追踪和解决。","https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fissues\u002F816",{"id":147,"question_zh":148,"answer_zh":149,"source_url":145},20382,"如何基于特定用户 ID 和物品 ID 获取 Top-N 推荐结果？","训练好的模型通常提供 predict 方法，可以输入特定的用户和物品对来获取评分。但该方法仅针对单个用户 - 物品对进行评分。若要基于某个用户已交互的物品生成 Top-N 推荐，需要自行编写逻辑：遍历候选物品列表，调用 predict 方法计算用户与每个候选物品的评分，然后按评分排序取前 N 个。目前代码库中没有直接支持“基于某物品推荐相似物品”的一站式函数。",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},20383,"Spark 烟雾测试中 LightGBM 的 AUC 指标下降，如何解决？","如果在升级 LightGBM 或 Spark 版本后出现 AUC 指标显著下降（例如从 0.68 降至 0.62），可能是由于数据分块大小（chunksize）设置不当导致的已知问题。尝试在保持 useSingleDatasetMode=True 的情况下增大 chunksize 参数。实验表明，将 chunksize 从默认值增加到 100k 可以显著改善模型效果，而增加到 10k 可能无明显改进。此问题在主分支（master）中已被修复。","https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fissues\u002F1615",{"id":156,"question_zh":157,"answer_zh":158,"source_url":140},20384,"如何在 Databricks 上验证生成的 wheel 包是否正常工作？","在构建 PyPI 包的过程中，需要专门测试 wheel 包在 Databricks 上的兼容性。具体步骤包括：在 Databricks 集群中上传生成的 wheel 文件，使用 %pip install 命令安装，然后导入相关模块并运行简单的示例代码或单元测试。根据反馈，安装 cmake 和 xlearn 等依赖后，wheel 包在 Databricks 上可以正常运行。",{"id":160,"question_zh":161,"answer_zh":162,"source_url":140},20385,"CI 流水线中如何处理火花测试（Spark tests）失败导致流程中断的问题？","在自动化发布流水线中，如果烟雾测试（smoke tests）失败，应配置为立即停止后续步骤，避免发布有缺陷的版本。可以通过在脚本中添加条件判断来实现：一旦检测到测试失败，立即退出脚本（exit 1）。此外，需修复 Spark 测试中的具体问题（如依赖冲突或路径错误），并确保流水线在安装包时使用完整的包名而非通配符，以提高稳定性。",[164,169,174,179,184,189,194,199,204,209,214,219,224,229],{"id":165,"version":166,"summary_zh":167,"released_at":168},118396,"1.2.1","## 新算法或改进\n* 由于 scipy 的重大变更，SAR 稀疏乘法进行了修改，由 @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2083 中完成。\n* 从核心包中移除 LightFM，相关 PR：#2122 和 #2144。\n* 修改了 2 个文件以更新 newsrec 模型，由 @sumana-2705 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2125 中完成。\n\n\n## 新工具或改进\n* 为确保正确构建 DataFrame，对矩阵进行了展平处理，由 @gramhagen 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2084 中完成。\n* 增加了 r-precision 指标，由 @daviddavo 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2086 中完成。\n* 修复了 sklearn 中 log_loss 的破坏性变更，由 @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2106 中完成。\n* 修复并改进了 ImplicitCF，由 @daviddavo 在 #2117 和 #2164 中完成。\n* 更改函数名称以反映新的 TensorFlow 接口，由 @siyerp 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2143 中完成。\n* 弃用了 SeriesGroupBy.agg 中字典的用法，由 @daviddavo 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2114 中完成。\n* 还原并修复 Python 评估功能，由 @daviddavo 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2119 中完成。\n* 更新函数签名以符合新的 TensorFlow 要求，由 @siyerp 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2146 中完成。\n* 更新 MIND 数据集相关工具，由 @miguelgfierro 在 #2145、#2155 和 #2160 中完成。\n\n\n## 新笔记本或改进\n* 更新 Jupyter 依赖以适配 Colab，由 @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2108 中完成。\n* 更新 cornac_bivae_deep_dive.ipynb：修复错别字，由 @martin0258 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2104 中完成。\n* 修正 `mind_utils.ipynb` 中 pickle dump 使用的变量错误，由 @ubergonmx 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2158 中完成。\n\n\n## 其他功能\n* 修复 numpy 相关问题，由 @daviddavo 在 #2113 和 #2120 中完成。\n* 更新安装说明，相关 PR：#2080 和 #2181。\n* 添加面向新贡献者的建议和指南，由 @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2103 中完成。\n* 设置 scipy \u003C= 1.13.1，由 @SimonYansenZhao 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2127 中完成。\n* 添加推荐系统免费课程，由 @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2135 中完成。\n* 在 README.md 中添加场景参考，由 @anargyri 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2093 中完成。\n* 文档改进及错别字修正，相关 PR：#2102、#2109、#2096 和 #2130。\n* 更新 Issue 模板，在 #2032 的 Issue 中增加了“愿意贡献”部分，由 @sumana-2705 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2123 中完成。\n* 将 pymanopt 测试移至实验性测试组，由 @daviddavo 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2139 中完成。\n* 将 AML SDK 从 v1 迁移到 v2，由 @SimonYansenZhao 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2134 中完成。\n* 更新开发容器，由 @SimonYansenZhao 在 https:\u002F\u002Fgithub.com\u002Frecommender","2024-12-24T07:39:57",{"id":170,"version":171,"summary_zh":172,"released_at":173},118397,"1.2.0","## 新算法或改进\n* @ChuyangKe 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1809 中实现了 Spark 的物品-物品推荐算法。\n* @simonzhaoms 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1860 中修正了 SARPlus 工作流中的打包命令。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1949 中更新了来自 Hugging Face 的 Glove 的新 URL。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1957 中修复了 Deeprec 测试中的 bug，并增加了更多测试用例。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1967 中将 LightGBM 中的 early_stopping 改为可调用对象。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2050 中更新了混合算法分类，使其与《Recommenders》书籍及 Aggarwal 的观点保持一致。\n* @gazon1 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2052 中修复了 sasrec 模型在读取包含时间戳的数据集时的 bug。\n* @SimonYansenZhao 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2077 中为 SUMModel 单独捕获导入错误。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2068 中修复了 nightly 版本中 fastai 的错误。\n\n\n## 新工具或改进\n* @ChuyangKe 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1802 中优化了 Python 分割器。\n* @gro1m 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1811 中用 pd.concat 替代了 append。\n* @ChuyangKe 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1812 中实现了 Python 通用的 NDCG。\n* @AdityaSoni19031997 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1828 中简化了评估参数。\n* @TrellixVulnTeam 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1835 中应用了 CVE-2007-4559 补丁。\n* 新笔记本执行器 #1865 #2048 #2031。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1934 中将 cornac 限制为 1.15.1，以解决 1.15.4 版本存在的问题。\n* @loomlike 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2004 中重构了排名指标 `map`，使其与 Spark 的实现一致。\n* @thaiminhpv 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2054 中修正了 MIND 用户行为历史的构建方式。\n* @daviddavo 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F2075 中将两个 concat 合并为一个。\n\n\n## 新笔记本或改进\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1814 中对 lightgcn_deep_dive.ipynb 进行了小幅修改。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1824 中移除了未使用的导入。\n* 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1831 和 #1846 中进行了 MovieLens 基准测试。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1854 中修复了 Wide and Deep 的错误。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002Frecommenders-team\u002Frecommenders\u002Fpull\u002F1850 中更新了 xDeepFM 笔记本，并修复了测试中的错误。\n* @miguelgfierro 在 https:\u002F\u002Fgithub.com\u002F 中重新运行并清理了 dataprep 笔记本。","2024-05-01T13:41:20",{"id":175,"version":176,"summary_zh":177,"released_at":178},118398,"1.1.1","## 新算法或改进\n* 减少 W&D 的迭代次数，以缩短集成测试时间，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1698\n* 实现最频繁推荐功能，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1666\n* 在 #1719 和 #1721 中为 SAR+ 实现 time_now 功能\n* 如果相似度度量不在选项范围内，则在 SAR+ 中添加快速失败机制，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1743\n* 修正 SAR 项目相似度的 dtype，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1751\n* 简化 SAR 测试数据加载函数，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1752\n* 重新格式化 SAR+ 的 SQL 查询，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1772\n* 为 SAR 添加新的项目相似度度量指标，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1754\n\n\n## 新工具或改进\n* 重写 get_top_k_items() 函数以提升运行时性能，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1748\n* 优化 Spark recall_at_k 的时间性能，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1796\n\n## 新笔记本或改进\n* 修复 FastAI 笔记本中的缺失导入，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1708\n* 审查 NCF 笔记本，详见 #1703 和 #1712\n* 审查 LightFM 笔记本并添加测试，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1706\n* 审查 BPR 笔记本，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1704\n* 审查 LightGCN 笔记本，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1714\n* 审查 DKN 笔记本，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1722\n* 审查 SAR 笔记本，详见 #1738 和 #1768\n\n## 其他功能\n* 启用与 AzureML 的分布式测试，详见 #1696、#1717、#1729 等\n* 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1756 中添加对 Python 3.8 和 3.9 的测试\n* 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1692 中添加贡献者图片\n* 更新 README.md，详见 #1709、#1711 和 #1767\n* 修复 codeowners 文件中的错误，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1699\n* 添加测试以检查 CuDNN 是否已启用，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1715\n* 将 Docker 镜像引用更新至内部注册表，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1727\n* 修复 data_transform.ipynb 中的链接错误，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1736\n* 为排名函数 get_top_k_items() 添加测试，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1757\n* 修复 CPU 夜间工作流中的内存错误，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1759\n* 更新测试基础设施说明，详见 #1776 和 #1777\n* 添加时间性能测试，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1765\n* 添加路径过滤器，以避免在更改 Markdown 文件时触发单元测试，详见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1791\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fcompare\u002F1.1.0...1.1.1","2022-07-20T05:58:55",{"id":180,"version":181,"summary_zh":182,"released_at":183},118399,"1.1.0","## 新算法或改进\n* TensorFlow 2.x 中的 SASRec 和 SSEPT，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1530 #1621 #1678\n* RBM 代码清理、模型保存及其他新增功能，见 #1599 #1618 #1622\n* 覆盖 NCF 深入分析中的旧测试文件，以避免 bug，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1674\n* SAR+ 改进及 bug 修复，见 #1636 #1644 #1680 #1671\n* NCF 改进及 bug 修复，见 #1612\n* 从 SAR 方法中移除 drop_duplicates()，修复 #1464，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1588\n* SAR 文本修复，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1663\n\n## 新工具或改进\n* 更新 lightfm_utils.py，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1624\n* 更改 LightFM 中 user_ids 和 item_ids 参数的格式，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1651\n* 修复 spark_stratified_split() 中的随机性问题，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1654\n* 对 Jaccard 和 Lift 相似度度量进行澄清，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1668\n* 在解释方差中使用 numpy 的除法运算，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1691\n* 将 MovieLens 的 URL 由 HTTP 改为 HTTPS，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1677\n* 移除 Spark 评估中对用户和物品 ID 的类型转换，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1686\n* 持久化中间数据，以避免 Spark 延迟随机评估导致的非确定性，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1676 #1652\n\n## 新笔记本或改进\n* 修复 Spark 3.2 上笔记本构建失败的问题，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1608\n* 从 LightGBM 示例笔记本中移除早停轮次，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1620\n\n## 其他功能\n* 启用 Python 3.8 和 3.9，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1626 #1617\n* 在 ADO 测试流水线中将 Python 从 3.6 升级到 3.7，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1627\n* 增加 GPU 夜间测试的超时时间，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1623\n* 降低 LightGBM 测试 AUC 的基准值，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1619\n* 更改测试超时时间，见 #1625 #1661 #1684\n* 场景游戏化，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1637\n* 限制测试：缩短新闻推荐 GPU 笔记本的运行时间，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1656\n* 从 install_requires 中移除 pydocumentdb，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1629\n* 更改并优化依赖项，见 #1630 #1653\n* 修复 Spark 调优测试，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1635\n* 修正 Markdown 文件及其他文件中的拼写错误，见 #1639 #1589 #1646 #1647 #1688\n* 更新 Dockerfile，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1645\n* 改进文档，见 #1648 #1669 #1682 #1690 #1672\n* 修复 Codecov，见 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1665\n* 在夜间测试中设置 Spark 环境变量，见 https:\u002F\u002Fgithu","2022-04-01T09:25:04",{"id":185,"version":186,"summary_zh":187,"released_at":188},118400,"1.0.0","## 向后不兼容的更改\n* TensorFlow 升级至 2.6.1 \u002F 2.7 #1574 , #1565 , #1540\n\n## 新算法或改进\n* 提升算法可见性 #1542\n* LightGBM 测试改进 #1531\n* 修复 Surprise 与 Python 3.7 的兼容性问题 #1540\n* TF-IDF 运行时性能优化 #1571\n* 为 SARplus 添加 Spark 3.x 支持 #1566\n\n## 新工具或改进\n* 升级至 Spark v3 #1555 , #1549 , #1543\n* 将 scikit-surprise 和 pymanopt 从 setup.py 中移出 #1602\n* pymanopt 相关问题 #1606\n\n## 新笔记本或改进\n* 修复 RBM 笔记本中的 bug #1581\n* 从 RBM 笔记本中移除显式将评分映射为整数的操作 #1585\n\n## 其他功能\n* 修复夜间工作流 #1576 , #1548\n* 稳定更多不稳定测试 #1558\n* 多项 Pipeline 修复 #1545\n* 优化 Notebook 单元测试 #1538\n* 将开发状态调整为生产\u002F稳定 #1579\n* 更新依赖项 #1569, #1570\n* 修复 Databricks 安装脚本 #1531\n* 添加 Codespace 部署 #1521\n* 改进 GitHub 测试 #1518, #1578, #1590, #1592\n* Flake8 修复 #1552 , #1550\n* 文档改进 #1591, #1598, #1594, #1603\n* 更新发布流水线 #1596","2022-01-13T20:18:21",{"id":190,"version":191,"summary_zh":192,"released_at":193},118401,"0.7.0","## 向后不兼容的变更\n- 文件夹重命名 #1485、#1478\n- PyPI 包名改为 `recommenders` #1477\n\n## 新算法或改进\n- VAE 中缺失的导入 #1508\n\n## 新工具或改进\n- `retrying` 导入 #1487\n- 增加多样性、新颖性、覆盖率和意外性指标 #1536、#1535、#1522、#1505、#1491、#1470、#1465\n\n## 新笔记本或改进\n- 展示 Spark 中多样性、新颖性、覆盖率和意外性指标的新笔记本 #1488、#1470、#1465\n\n## 其他功能\n- 启用 LightGBM 3.0 版本 #1527\n- 支持所有 Python 3.7 的微版本 #1474\n- 支持在 `virtualenv` 和 `venv` 中安装 #1520、#1476\n- 支持从 PyPI 在 Docker 容器中安装 #1509\n- Read the Docs 构建 #1529、#1528\n- 文档改进 #1515、#1469、#1462\n- GitHub Actions 上的 CI 流水线（开发中）#1517、#1503、#1499、#1494、#1490","2021-09-23T18:03:12",{"id":195,"version":196,"summary_zh":197,"released_at":198},118402,"0.6.0","## 新工具或改进\n- 修复单元测试中的 URL #1447\n- 改进文档 #1446 #1440 #1436 #1428 #1426 #1425 #1415\n- 为 maybe_download 函数添加重试机制 #1427\n\n## 新笔记本或改进\n- 多样性指标笔记本 #1416\n- 使用新的多样性指标更新评估笔记本 #1416\n- 修复 xlearn 笔记本 #1427\n\n## 其他功能\n- 为 PyPI 生成软件包 #1445 #1442 #1441 #1429\n- 改进安装流程 #1455 #1431\n- 修复测试 #1452 #1427\n- 为发布生成流水线 #1427","2021-06-18T15:59:34",{"id":200,"version":201,"summary_zh":202,"released_at":203},118403,"0.5.0","## 代码库结构\n* 默认分支由 master 重命名为 main #1284 #1278\n\n## 新数据集和竞赛支持\n* Microsoft News 数据集（MIND）及 [Microsoft News 推荐挑战赛](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Facademic-program\u002Fmind-news-recommendation-challenge\u002F) #1247 #1236\n\n## 新算法或改进\n* 优化新闻推荐算法的 GPU 使用 #1235\n* 优化 surprise 工具库 #1224\n* GeoIMC 算法 #1204\n* 标准 VAE 算法 #1194\n* 多项式 VAE 算法 #1194\n\n## 新工具或改进\n* 序列模型的生产化示例 #1254\n* 修复 fastai 中的 bug #1288\n* 修复亲和力矩阵中的 bug #1243\n* 解决与 MMLSpark 版本的冲突 #1230\n* 修复负反馈采样器 #1200\n\n## 新笔记本或改进\n* 更新 AzureML Designer 笔记本 #1286 #1253\n* KDD2020 教程：基于 Microsoft Academic Graph 的论文推荐 #1208\n* 更新 o16n 实时打分笔记本 #1176\n* 降低 TensorFlow 笔记本的日志输出冗余度 #1276\n\n## 其他功能\n* 升级 papermill 和 scrapbook 以用于测试 #1271 #1270 #1282 #1289\n* 修复测试用例 #1244 #1242 #1226 #1218\n* 修复 Spark 安装问题 #1186\n* 更新 Python 版本 #1202\n* 关于 Java 依赖的说明 #1209\n* 重新激活 CICD 流水线 #1284","2021-04-30T09:22:21",{"id":205,"version":206,"summary_zh":207,"released_at":208},118404,"0.4.0","## 新算法或改进\n- DKN 修复 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1165 \n- GeoIMC https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1142\n- LSTUR #1137 #1080\n- NAML #1137 #1080\n- NPA #1137 #1080\n- NRMS #1137 #1080\n- LighGCN #1130 #1123\n- NextItNet #1130 #1126\n- 修复 SAR #1128 #1023 #1018 #991\n- LightFM #1096\n- TFIDF 推荐系统 #1088\n- A2SVD #1010\n- GRU4Rec #1010\n- Caser #1010\n- SLi-Rec #1010 \n- SARplus #955\n- 使用 cornac 库的 BPR #950 #944 #937\n\n## 新工具或改进\n- MIND 数据集 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1153 \n- 修复文本迭代器 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1133\n- 修复 NNI 工具 #1131\n- Azure Designer 依赖项 #1115 #1101 #1095 #1077 #1060\n- 修复测试 #1057 #1004 #954 #935 #932\n\n## 新笔记本或改进\n- 带 MIND 数据集的 DKN 笔记本 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1165 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1137\n- GeoIMC 笔记本 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1142\n- LSTUR 笔记本 #1137 #1080\n- NAML 笔记本 #1137 #1080\n- NPA 笔记本 #1137 #1080\n- NRMS 笔记本 #1137 #1080\n- LighGCN 笔记本 #1130 #1123\n- NextItNet 笔记本 #1130 #1126\n- 将 Recommenders 集成到 Azure Designer 中 #1115 #1101 #1095 #1060 #1036\n- NCF 超参数调优笔记本 #1102 #1092\n- LightFM 笔记本 #1096\n- TFIDF 推荐系统笔记本 #1088\n- 在笔记本中添加计时器类 1063\n- 修复 xlearn 笔记本 #1006 #974\n- o16n 笔记本修复 #1003 #969\n- A2SVD 笔记本 #1010\n- GRU4Rec 笔记本 #1010\n- Caser 笔记本 #1010\n- SLi-Rec 笔记本 #1010 \n- 使用 cornac 的 BPR 笔记本 #950 #944 #937\n\n## 其他功能\n- 修复在 Databricks 上的安装 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1161 #965\n- 修复 Docker https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders\u002Fpull\u002F1146 #1120 #1070 #1058 #1034\n- 修复 Azure Blob 版本 #1119\n- 锁定 TensorFlow 版本 #1098\n- 重构代码结构 #1086\n- 商业场景与术语表 #1086\n- ADO 工件 #1069 \n- 避免使用 pandas>1 #1052\n- CICD #1002 #998 #994 #980","2021-04-30T09:20:30",{"id":210,"version":211,"summary_zh":212,"released_at":213},118405,"0.3.1","## 新算法或改进\n* 改进了 SAR 性能 #914 #922\n* 针对 Wikidata 知识图谱的工具 #881 #902\n\n## 新工具或改进\n* 修复了 Python 评估器中的 bug #863\n* 更新了 NNI 版本及工具 #856\n* 更新了求和校验 #874\n* 将 URL 下载工具改为使用 requests 库 #813\n\n## 新笔记本或改进\n* 优化了 Spark 笔记本 #864\n* 新增关于使用 Wikidata 生成知识图谱的笔记本 #881 #902\n* 宽深混合 Hyperdrive 笔记本及 AzureML API 更新 #847\n\n## 其他功能\n* 为三种环境（CPU、GPU、Spark）均添加了 Docker 支持（Dockerfile）\n* 添加了用于 pip 安装的 setup.py 文件 #851\n* 添加了 Sphinx 文档 #859\n* 在 ReadTheDocs 上发布了文档 #912\n* 修复了 Spark 测试相关问题 #850\n* 增加了使用 AzureML 计算目标的测试 #848 #846 #839 #823\n* 使用 Recommenders 引擎开发了 Xamarin 移动应用，用于电影推荐 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frecommenders_engine_example_layout","2021-04-30T09:18:34",{"id":215,"version":216,"summary_zh":217,"released_at":218},118406,"0.3.0","## New platform support\r\n* Windows support with tests #797 #726\r\n\r\n## New algorithms or improvements\r\n* LightGBM #633 #735\r\n* RLRMC #729\r\n* Changed seed for GPU algos for reproducibility #785 #748\r\n* Added benchmark #715\r\n* Fixed bugs in SAR #697 #619 \r\n\r\n## New utilities or improvements\r\n* Python evaluation improvement by memoization #713\r\n* Improved tests #706\r\n* New algos for hyperparameter tuning with NNI #687 \r\n* Criteo dataloader #642 \r\n* Wrapper VW #592 \r\n* Added more data formats #605 \r\n* New metrics #580 \r\n\r\n## New notebooks or improvements\r\n* SAR remote execution through AzureML #728\r\n* SAR remote execution of notebook through AzureML #681 \r\n* LightGBM with small criteo on CPU #633 \r\n* LightGBM o16n on Databricks with MMLSpark #735 #714 #682 #680 \r\n* Hyperparameter tuning with NNI on Surprise SVD #687\r\n* Hyperparameter tuning with Hyperdrive #546 \r\n\r\n## Other features\r\n* Fixed bugs in utilities, tests and notebooks\r\n* New unit, smoke and integration tests for the new algos\r\n","2021-04-30T09:14:58",{"id":220,"version":221,"summary_zh":222,"released_at":223},118407,"0.2.0","## New Algorithms or improvements\r\n* Vowpal Wabbit (VW) https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F452\r\n* xDeepFM https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F453\r\n* DKN https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F453\r\n* NCF https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F392\r\n* RBM https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F390\r\n* FastAI Embedding dot Bias https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F411\r\n* Optimization of SAR\r\n\r\n## New utilities or improvements\r\n* Improved the performance of python splitters https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F517\r\n* Added GPU utilities\r\n* Added utilities for hyperparameter tuning\r\n\r\n## New Notebooks or improvements\r\n* Improved o16n notebook with ALS, Movielens and Databricks https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F475\r\n* Added a deep dive notebook on VW https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F452\r\n* Improved notebook for hyperparameter tuning on Spark https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F444\r\n* New notebook on FastAI Embedding dot Bias algo https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F411\r\n* New notebook of deep dive on NCF https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F392\r\n* New quick start notebook of RBM https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F390\r\n* New deep dive notebook of RBM https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F390\r\n* New quickstart notebook of xDeepFM with synthetic data\r\n* New quickstart notebook of DKN with synthetic data\r\n* New notebook on data transformation https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F384\r\n\r\n\r\n## Other features\r\n* Fixed bugs in utilities, tests and notebooks\r\n* Added an installation script for Databricks https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F457\r\n* Changed installer from a bash to a python script https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F512\r\n* Added a parameter to control pyspark version in the installer https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F461\r\n* Optimized tests to be quicker https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F486\r\n* New unit, smoke and integration tests for the new algos\r\n* Added GPU test pipeline https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F408\r\n* Improved Github metrics tracker https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FRecommenders\u002Fpull\u002F400","2021-04-30T09:13:04",{"id":225,"version":226,"summary_zh":227,"released_at":228},118408,"0.1.1","## New Algorithms or improvements\r\n* Improved SAR single node for top k recommendations. User can decide if the recommended top k items to be sorted or not.\r\n\r\n## New utilities or improvements\r\n* Added data related utility functions like movielens data download in Python and PySpark.\r\n* Added new data split method (timestamp based split) added.\r\n\r\n## New Notebooks or improvements\r\n* Added an O16N notebook for Spark ALS movie recommender on Azure production services such as Databricks, Cosmos DB, and Kubernetes Services. \r\n* Added SAR deep dive notebook with single-node implementation demonstrated. \r\n* Added Surprise SVD deep dive notebook. \r\n* Added Surprise SVD integration test.\r\n* Added Surprise SVD ranking metrics evaluation.\r\n* Made quick-start notebooks consistent in terms of running settings, i.e., experiment protocols (e.g., data split, evaluation metrics, etc.) and algorithm parameters (e.g., hyper parameters, remove seen items, etc.). \r\n* Added a comparison notebook for easy benchmarking different algorithms. \r\n\r\n## Other features\r\n* Updated SETUP with Azure Databricks.\r\n* Added SETUP troubleshooting for Azure DSVM and Databricks. \r\n* Updated READMEs under each notebook directory to provide comprehensive guidelines.\r\n* Added smoke\u002Fintegration tests on large movielens dataset (10mil and 20mil). \r\n* Updated the Spark settings of CI\u002FCD machine to eliminate unexpected build failures such as \"no space left issue\". \r\n\r\n","2018-12-12T04:07:03",{"id":230,"version":231,"summary_zh":232,"released_at":233},118409,"0.1.0","## New Algorithms or improvements\r\nDevelopment of SAR algorithm on three implementations:\r\n* [SAR single node](reco_utils\u002Frecommender\u002Fsar\u002Fsar_singlenode.py)\r\n* [SAR PySpark](reco_utils\u002Frecommender\u002Fsar\u002Fsar_pyspark.py)\r\n* [SAR+](reco_utils\u002Frecommender\u002Fsar\u002Fsarplus)\r\n\r\n## New utilities or improvements\r\n* [Dataset splitters](reco_utils\u002Fdataset) in Python and PySpark.\r\n* [Rating and ranking metrics](reco_utils\u002Fevaluation) in Python and PySpark.\r\n\r\n## New Notebooks or improvements\r\n* [ALS quickstart with Movielens](notebooks\u002F00_quick_start\u002Fals_pyspark_movielens.ipynb)\r\n* [SAR single node quickstart with Movielens](notebooks\u002F00_quick_start\u002Fsar_python_cpu_movielens.ipynb)\r\n* [SAR PySpark quickstart with Movielens](notebooks\u002F00_quick_start\u002Fsar_pyspark_movielens.ipynb)\r\n* [SAR+ quickstart with Movielens](notebooks\u002F00_quick_start\u002Fsarplus_movielens.ipynb)\r\n* [Data splitter](notebooks\u002F01_data\u002Fdata_split.ipynb)\r\n* [ALS deep dive](notebooks\u002F02_modeling\u002Fals_deep_dive.ipynb)\r\n* [SAR deep dive](notebooks\u002F02_modeling\u002Fsar_deep_dive.ipynb)\r\n* [Evaluation](notebooks\u002F03_evaluate\u002Fevaluation.ipynb)\r\n\r\n## Other features\r\n* [Benchmark](README.md#benchmarks) of the current algorithms.\r\n* Unit, smoke and integration tests for Python and PySpark environments. \r\n","2018-11-12T13:05:09"]