implicit 是一个面向隐式反馈数据的快速协同过滤推荐库(Python),提供 ALS、BPR、逻辑矩阵分解与物品近邻等算法,多线程 CPU 训练并支持 GPU 加速。
- v0.7.3
- 发布于
- 2026年5月9日
- 3,830
- 星标
- 4,030
- 下载
- 同步于
- 8 天前
最新版本
v0.7.32026年5月9日 02:36下载慢?可在上方随时切换镜像源
项目说明
项目概述
implicit 是一个专注隐式反馈(点击、购买、播放等行为数据)的协同过滤推荐库,用 Cython 与 OpenMP 实现多线程并行训练,在全部 CPU 核心上高效拟合模型。它提供隐式 ALS、贝叶斯个性化排序(BPR)、逻辑矩阵分解与基于 Cosine、TFIDF、BM25 的物品近邻四类主流算法,ALS 与 BPR 还带自定义 CUDA 内核,可配合 Annoy、Faiss 等近似近邻库加速线上推荐。
不依赖评分数据,从行为日志直接训练工业级推荐模型。
| 项目 | 内容 |
|---|---|
| 平台 | Linux、macOS、Windows |
| 语言 | Python(Cython/CUDA 内核) |
| 许可 | MIT |
| 算法 | ALS、BPR、逻辑矩阵分解、物品近邻 |
主要功能
- 隐式 ALS:针对隐式反馈的交替最小二乘,多线程训练
- BPR:贝叶斯个性化排序,适合排序场景
- 逻辑矩阵分解:把交互建模为概率的分解方法
- 物品近邻:Cosine、TFIDF、BM25 距离的 Item-Item 模型
- GPU 训练:ALS 与 BPR 有自定义 CUDA 内核
- 近似近邻加速:接入 Annoy、NMSLIB、Faiss 加快推荐生成
- 相似推荐:一键查询相似物品与相似用户
适用人群
- 构建推荐系统的后端工程师
- 处理隐式行为数据的算法工程师
- 做推荐算法研究的科研人员
- 参加推荐赛题的竞赛选手
快速上手
- 安装:
pip install implicit- 训练 ALS 模型并推荐:
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)核心优势
- 训练快:Cython + OpenMP 吃满多核,速度远超纯 NumPy 实现
- GPU 可选:主流算法有 CUDA 内核,大数据量也能秒级拟合
- 专注隐式反馈:接口与算法围绕点击、购买等真实行为设计
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Linux、macOS、Windows |
| 语言环境 | Python 3.9+、SciPy 0.16+ |
| GPU | 可选,需 CUDA Toolkit 13 并安装 rmm-cu13 |
注意事项
- 输入格式:模型以稀疏矩阵为输入,需先构建用户-物品置信度矩阵
- BLAS 线程:OpenBLAS 环境建议设置
OPENBLAS_NUM_THREADS=1,关闭其内部多线程反而更快 - GPU 配置:GPU 支持需 CUDA 13 与 rmm 依赖,CPU 版无此要求
历史版本
排序