跳转到主要内容

隐式反馈数据集的协同过滤

项目描述

Implicit

Build Status Documentation

为隐式数据集提供快速Python实现的协同过滤算法。

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

所有模型都具有多线程训练程序,使用Cython和OpenMP并行地在所有可用的CPU核心上拟合模型。此外,ALS和BPR模型都拥有定制的CUDA内核 - 允许在兼容的GPU上进行拟合。近似最近邻库,如AnnoyNMSLIBFaiss,也可以通过Implicit来加速推荐生成

安装

可以使用pypi安装Implicit。

pip install implicit

使用pip安装将使用适用于x86_64 Linux、Windows和OSX的预构建二进制wheels。这些wheels包括Linux上的GPU支持。

Implicit也可以使用conda安装

# CPU only package
conda install -c conda-forge implicit

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

基本用法

import implicit

# initialize a model
model = implicit.als.AlternatingLeastSquares(factors=50)

# train the model on a sparse matrix of user/item/confidence weights
model.fit(user_item_data)

# recommend items for a user
recommendations = model.recommend(userid, user_item_data[userid])

# find related items
related = model.similar_items(itemid)

示例文件夹中有一个程序演示了如何使用这个程序在last.fm数据集上计算相似艺术家

更多信息请参阅文档

关于Implicit的文章

这些博客文章描述了驱动这个库的算法

还有其他一些关于使用Implicit构建推荐系统的文章

需求

此库需要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许可下发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

implicit-0.7.2.tar.gz (70.3 kB 查看哈希值)

上传时间

构建分发

implicit-0.7.2-cp311-cp311-win_amd64.whl (750.8 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

implicit-0.7.2-cp311-cp311-manylinux2014_x86_64.whl (8.9 MB 查看哈希值)

上传时间 CPython 3.11

implicit-0.7.2-cp311-cp311-manylinux2014_aarch64.whl (958.5 kB 查看哈希值)

上传时间 CPython 3.11

implicit-0.7.2-cp311-cp311-macosx_11_0_arm64.whl (761.6 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

implicit-0.7.2-cp311-cp311-macosx_10_9_x86_64.whl (812.0 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

implicit-0.7.2-cp311-cp311-macosx_10_9_universal2.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

implicit-0.7.2-cp310-cp310-win_amd64.whl (748.6 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

implicit-0.7.2-cp310-cp310-manylinux2014_x86_64.whl (8.9 MB 查看哈希值)

上传时间 CPython 3.10

implicit-0.7.2-cp310-cp310-manylinux2014_aarch64.whl (955.8 kB 查看哈希值)

上传时间 CPython 3.10

implicit-0.7.2-cp310-cp310-macosx_11_0_arm64.whl (761.4 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

implicit-0.7.2-cp310-cp310-macosx_10_9_x86_64.whl (813.3 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

implicit-0.7.2-cp310-cp310-macosx_10_9_universal2.whl (1.5 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

implicit-0.7.2-cp39-cp39-win_amd64.whl (752.1 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

implicit-0.7.2-cp39-cp39-manylinux2014_x86_64.whl (8.9 MB 查看哈希值)

上传于 CPython 3.9

implicit-0.7.2-cp39-cp39-manylinux2014_aarch64.whl (960.4 kB 查看哈希值)

上传于 CPython 3.9

implicit-0.7.2-cp39-cp39-macosx_11_0_arm64.whl (765.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

implicit-0.7.2-cp39-cp39-macosx_10_9_x86_64.whl (817.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

implicit-0.7.2-cp39-cp39-macosx_10_9_universal2.whl (1.5 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

implicit-0.7.2-cp38-cp38-win_amd64.whl (752.5 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

implicit-0.7.2-cp38-cp38-manylinux2014_x86_64.whl (8.9 MB 查看哈希值)

上传于 CPython 3.8

implicit-0.7.2-cp38-cp38-manylinux2014_aarch64.whl (953.9 kB 查看哈希值)

上传于 CPython 3.8

implicit-0.7.2-cp38-cp38-macosx_11_0_arm64.whl (761.2 kB 查看哈希)

上传于 CPython 3.8 macOS 11.0+ ARM64

implicit-0.7.2-cp38-cp38-macosx_10_9_x86_64.whl (812.3 kB 查看哈希)

上传于 CPython 3.8 macOS 10.9+ x86-64

implicit-0.7.2-cp38-cp38-macosx_10_9_universal2.whl (1.5 MB 查看哈希)

上传于 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

implicit-0.7.2-cp37-cp37m-win_amd64.whl (741.7 kB 查看哈希)

上传于 CPython 3.7m Windows x86-64

implicit-0.7.2-cp37-cp37m-manylinux2014_x86_64.whl (8.9 MB 查看哈希)

上传于 CPython 3.7m

implicit-0.7.2-cp37-cp37m-manylinux2014_aarch64.whl (938.0 kB 查看哈希)

上传于 CPython 3.7m

implicit-0.7.2-cp37-cp37m-macosx_10_9_x86_64.whl (802.9 kB 查看哈希)

上传于 CPython 3.7m macOS 10.9+ x86-64

implicit-0.7.2-cp36-cp36m-win_amd64.whl (734.0 kB 查看哈希)

上传于 CPython 3.6m Windows x86-64

implicit-0.7.2-cp36-cp36m-manylinux2014_x86_64.whl (8.9 MB 查看哈希)

上传于 CPython 3.6m

implicit-0.7.2-cp36-cp36m-manylinux2014_aarch64.whl (925.5 kB 查看哈希)

上传于 CPython 3.6m

implicit-0.7.2-cp36-cp36m-macosx_10_9_x86_64.whl (787.7 kB 查看哈希)

上传于 CPython 3.6m macOS 10.9+ x86-64

支持