Recommenders 库简介及使用指南

Recommenders 是一个旨在帮助研究人员、开发者和爱好者快速构建和部署各种推荐系统的项目。该项目隶属于 Linux Foundation of AI and Data,提供了丰富的 Jupyter Notebook 示例和最佳实践,涵盖了推荐系统的五个关键任务:数据准备、模型构建、算法评估、模型选择与优化,以及模型的生产化部署。


友情链接:ACEJoy


 

最新动态(2024年5月)

我们发布了新版本 Recommenders 1.2.0。此次更新包含大量改进,如对 Python 3.8 至 3.11 的全面测试(大约 1800 个测试)、多种算法性能的提升、笔记本的审查和许多其他改进。

项目简介

Recommenders 项目提供了构建推荐系统的示例和最佳实践,主要通过 Jupyter Notebooks 详细展示了以下五个关键任务:

  1. 数据准备:为每个推荐算法准备和加载数据。
  2. 模型构建:使用多种经典和深度学习推荐算法构建模型,如交替最小二乘法(ALS)或极限深度因子分解机(xDeepFM)。
  3. 算法评估:使用离线指标评估算法。
  4. 模型选择与优化:调优和优化推荐模型的超参数。
  5. 模型生产化部署:在 Azure 上将模型部署到生产环境。

此外,Recommenders 库还提供了多种实用工具,支持常见任务如加载数据集、评估模型输出和分割训练/测试数据。库中还包含了一些最先进的算法实现,供学习和在实际应用中定制。

快速开始

我们推荐使用 conda 进行环境管理,并使用 VS Code 进行开发。以下是在 Linux/WSL 上安装 Recommenders 包并运行示例笔记本的步骤:

# 1. 安装 gcc(如果尚未安装)。在 Ubuntu 上,可以使用以下命令:
# sudo apt install gcc

# 2. 创建并激活新的 conda 环境
conda create -n <environment_name> python=3.9
conda activate <environment_name>

# 3. 安装 Recommenders 核心包。它可以运行所有 CPU 笔记本。
pip install recommenders

# 4. 创建一个 Jupyter 内核
python -m ipykernel install --user --name <environment_name> --display-name <kernel_name>

# 5. 在 VSCode 中或使用命令行克隆此仓库:
git clone https://github.com/recommenders-team/recommenders.git

# 6. 在 VSCode 中:
#   a. 打开一个笔记本,例如 examples/00_quick_start/sar_movielens.ipynb;
#   b. 选择 Jupyter 内核 <kernel_name>;
#   c. 运行笔记本。

关于在其他平台(如 Windows 和 macOS)上的安装和不同配置(如 GPU、Spark 和实验特性)的更多信息,请参阅 Setup Guide

除了核心包,Recommenders 还提供了几个额外的包,包括:

  • [gpu]:用于运行 GPU 模型。
  • [spark]:用于运行 Spark 模型。
  • [dev]:用于仓库开发。
  • [all]:包含 [gpu][spark][dev]
  • [experimental]:包含未经过充分测试和/或可能需要额外安装步骤的模型。

支持的算法

Recommenders 库目前支持多种推荐算法,以下是部分算法的简介及其示例:

算法类型描述示例
交替最小二乘法 (ALS)协同过滤针对显式或隐式反馈的大规模数据集的矩阵分解算法,适用于 PySpark 环境。快速开始 / 深入探讨
——-——————
注意力异步奇异值分解 (A2SVD)协同过滤基于序列的算法,使用注意力机制捕捉用户的长短期偏好,适用于 CPU/GPU 环境。快速开始
Cornac/Bayesian Personalized Ranking (BPR)协同过滤用于预测隐式反馈的矩阵分解算法,适用于 CPU 环境。深入探讨
Cornac/Bilateral Variational Autoencoder (BiVAE)协同过滤用于二元数据(如用户-物品交互)的生成模型,适用于 CPU/GPU 环境。深入探讨
卷积序列嵌入推荐 (Caser)协同过滤基于卷积的算法,旨在捕捉用户的总体偏好和序列模式,适用于 CPU/GPU 环境。快速开始
深度知识感知网络 (DKN)内容过滤结合知识图谱和文章嵌入的深度学习算法,用于新闻或文章推荐,适用于 CPU/GPU 环境。快速开始 / 深入探讨
极限深度因子分解机 (xDeepFM)协同过滤用于隐式和显式反馈的深度学习算法,适用于 CPU/GPU 环境。快速开始
FastAI 嵌入点偏差 (FAST)协同过滤通用算法,使用用户和物品的嵌入和偏差,适用于 CPU/GPU 环境。快速开始
LightFM/因子分解机协同过滤适用于隐式和显式反馈的因子分解机算法,适用于 CPU 环境。快速开始
LightGBM/梯度提升树内容过滤适用于内容过滤问题的梯度提升树算法,具有快速训练和低内存使用的特点,适用于 CPU/GPU/PySpark 环境。CPU 快速开始 / PySpark 深入探讨
LightGCN协同过滤简化的图卷积网络设计,用于预测隐式反馈,适用于 CPU/GPU 环境。深入探讨
GeoIMC协同过滤利用黎曼共轭梯度优化的几何方法进行矩阵补全算法,适用于 CPU 环境。快速开始
GRU协同过滤基于序列的算法,使用递归神经网络捕捉用户的长短期偏好,适用于 CPU/GPU 环境。快速开始
多项式 VAE协同过滤用于预测用户/物品交互的生成模型,适用于 CPU/GPU 环境。深入探讨

结束语

Recommenders 库为开发推荐系统提供了丰富的资源和工具,无论是初学者还是有经验的开发者都能从中受益。通过详细的文档和多种示例,你可以快速上手并在不同的应用场景中实现推荐系统。如果你对推荐系统感兴趣,建议你深入探索 Recommenders 库中的各个示例,并根据自己的需求进行定制和扩展。

进一步学习和支持

文档和资源

Recommenders 提供了详细的文档和资源,帮助你更好地理解和使用该库:

  • 官方文档:详细介绍了库的安装、使用方法和各个算法的具体实现。
  • Wiki 页面:包含项目相关的文档和演示文稿。
  • 实际应用场景:展示了推荐系统在各种实际场景中的应用实例。

社区和支持

Recommenders 项目由一个活跃的社区支持,你可以通过以下方式获取帮助或参与贡献:

  • 加入 Slack 社区:与其他用户和开发者交流,获取实时帮助。
  • GitHub 讨论:在项目的讨论区提出问题、分享经验或讨论改进建议。
  • 贡献代码:如果你有兴趣为项目做出贡献,可以查看贡献指南,了解如何提交代码、报告问题或改进文档。

安装和环境配置

为了方便开发和环境管理,Recommenders 推荐使用 conda。以下是关于环境配置的一些重要提示:

  • 核心包pip install recommenders 安装核心包,适用于大多数 CPU 环境。
  • 额外包
  • [gpu]pip install recommenders[gpu],适用于需要 GPU 支持的模型。
  • [spark]pip install recommenders[spark],适用于需要 Spark 支持的模型。
  • [dev]pip install recommenders[dev],适用于开发和测试。
  • [all]pip install recommenders[all],包含以上所有额外功能。
  • [experimental]pip install recommenders[experimental],包含实验性模型和功能。

示例运行

以下是一个快速示例,展示如何使用 Recommenders 运行一个 Jupyter Notebook:

  1. 安装依赖# 安装 gcc(如果尚未安装) sudo apt install gcc # 创建并激活新的 conda 环境 conda create -n recommenders_env python=3.9 conda activate recommenders_env # 安装 Recommenders 核心包 pip install recommenders # 创建 Jupyter 内核 python -m ipykernel install --user --name recommenders_env --display-name "Recommenders Env"
  2. 克隆仓库git clone https://github.com/recommenders-team/recommenders.git
  3. 运行 Jupyter Notebook
    • 打开 VS Code,加载克隆的仓库。
    • 选择一个示例笔记本,如 examples/00_quick_start/sar_movielens.ipynb
    • 选择 Jupyter 内核 “Recommenders Env”。
    • 运行笔记本,体验推荐系统的构建过程。

通过这些步骤,你可以轻松上手 Recommenders 库,开始构建和优化自己的推荐系统。希望这篇文章能帮助你更好地理解和使用 Recommenders 库,祝你在推荐系统的探索之旅中取得成功!

发表评论