OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Implicit 面向隐式反馈数据的高性能推荐算法库

Implicit 面向隐式反馈数据的高性能推荐算法库

 
  camera ·  2026-03-12 06:09:13 · 3 次点击  · 0 条评论  

Implicit

构建状态
文档

用于隐式数据集的快速 Python 协同过滤库。

本项目为隐式反馈数据集提供了几种流行推荐算法的快速 Python 实现:

所有模型都具备多线程训练例程,利用 Cython 和 OpenMP 在所有可用 CPU 核心上并行拟合模型。此外,ALS 和 BPR 模型还拥有自定义的 CUDA 内核,支持在兼容的 GPU 上进行拟合。Implicit 还可以使用近似最近邻库,如 AnnoyNMSLIBFaiss,以加速推荐生成

安装

可以通过 PyPI 安装 Implicit:

pip install implicit

使用 pip 安装将在 x86_64 架构的 Linux、Windows 和 OSX 系统上使用预编译的二进制 wheel 包。这些 wheel 包在 Linux 上包含 GPU 支持。

也可以通过 conda 安装 Implicit:

# 仅 CPU 版本
conda install -c conda-forge implicit

# CPU+GPU 版本
conda install -c conda-forge implicit implicit-proc=*=gpu

基本用法

import implicit

# 初始化模型
model = implicit.als.AlternatingLeastSquares(factors=50)

# 在用户/物品/置信度权重的稀疏矩阵上训练模型
model.fit(user_item_data)

# 为用户推荐物品
recommendations = model.recommend(userid, user_item_data[userid])

# 查找相关物品
related = model.similar_items(itemid)

examples 文件夹中有一个程序,展示了如何使用该库在 last.fm 数据集上计算相似艺术家

更多信息请参阅文档

关于 Implicit 的文章

以下博客文章描述了本库背后的算法:

还有一些其他关于使用 Implicit 构建推荐系统的文章:
* H&M 个性化时尚推荐 Kaggle 竞赛
* Yandex Cup 2022: 点赞预测
* 使用 Google BigQuery 和 implicit 库推荐 GitHub 仓库
* 隐式矩阵分解简介:使用 Sketchfab 模型的经典 ALS
* 隐式反馈推荐系统简明介绍

系统要求

本库需要 SciPy 0.16 或更高版本以及 Python 3.6 或更高版本。

GPU 支持至少需要 NVidia CUDA Toolkit 版本 11。

本库在 Ubuntu、OSX 和 Windows 系统上使用 Python 3.7、3.8、3.9、3.10 和 3.11 版本进行测试。

性能基准

可以在这里找到简单的基准测试,比较 ALS 拟合时间与 Spark 的性能。

优化配置

建议配置 SciPy 以使用 Intel 的 MKL 矩阵库。一种简单的方法是安装 Anaconda Python 发行版。

对于使用 OpenBLAS 的系统,强烈建议设置 export OPENBLAS_NUM_THREADS=1。这会禁用其内部的多线程能力,从而为本包带来显著的加速。同样,对于 Intel MKL,也应设置 export MKL_NUM_THREADS=1

基于 MIT 许可证发布

3 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 15 ms
Developed with Cursor