隐式反馈数据集的协同过滤
项目描述
Implicit
为隐式数据集提供快速Python实现的协同过滤算法。
本项目提供了几种流行的推荐算法的快速Python实现,用于隐式反馈数据集。
-
交替最小二乘法,如论文隐式反馈数据集的协同过滤和隐式反馈协同过滤中共轭梯度方法的应用中所述。
-
使用余弦、TFIDF或BM25作为距离度量的项目-项目最近邻模型。
所有模型都具有多线程训练程序,使用Cython和OpenMP并行地在所有可用的CPU核心上拟合模型。此外,ALS和BPR模型都拥有定制的CUDA内核 - 允许在兼容的GPU上进行拟合。近似最近邻库,如Annoy、NMSLIB和Faiss,也可以通过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构建推荐系统的文章
- H&M个性化时尚推荐Kaggle竞赛
- Yandex Cup 2022:预测喜欢
- 使用Google BigQuery和implicit库推荐GitHub存储库
- Implicit矩阵分解简介:使用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许可下发布
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
hashes for implicit-0.7.2-cp311-cp311-win_amd64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | ff779f25d71c5cab26403b732e358ed813adaa04ecc08ac5b3e3ed781e565f51 |
|
MD5 | add36103aa80d65756c696d15573e3a9 |
|
BLAKE2b-256 | 7c2548964efed207b60b2d5b2855161638e4f368f5db332b57f62b6cd16fb591 |
hashes for implicit-0.7.2-cp311-cp311-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 1f161c97d455b710e6d68937e87ecd22ff212bc6e22dc57748b76c6ade42abc2 |
|
MD5 | a43f459d8de9681b3990188bdace8315 |
|
BLAKE2b-256 | bf484781c8fa5ba413a8346926e01ea85d3fec63bc1d887f67c0faaa9d7d6471 |
hashes for implicit-0.7.2-cp311-cp311-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 3d8f61d1783630e7a894cf53a1e4f0a56b73e7218776dc8fe03e3e6c1d85da72 |
|
MD5 | 82dfd951e752dbfd449acd92145239cf |
|
BLAKE2b-256 | 183ff7c7c54b967f7e28a0b1176f5025485a71dcd3ea01fe9dc8225a8bbbf14b |
hashes for implicit-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 0bfff5e332d73cfc5896beb1ab09e0aef1c0c28713a2799b978290757b536af9 |
|
MD5 | 491ae3b9ad8af3af1f446791c63eaa87 |
|
BLAKE2b-256 | 34947d0f396d42866ad87a3fc2c735bd30d2932ae1d33ffb967eca33a184d351 |
hashes for implicit-0.7.2-cp311-cp311-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | db359d570729e72cda15f5eae98f93427f567cd20a28cb47732196e66c74a32c |
|
MD5 | 0d68a01378a9c9af7a9c230c13c5b1ce |
|
BLAKE2b-256 | 112bb6cf28066d1fd3ca3d2c1df78c3f11fbd3250c55b2988f6cb6129b67f81e |
hashes for implicit-0.7.2-cp311-cp311-macosx_10_9_universal2.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 3cc71e673fad6a76a3f6f2b1361e4b01f80ded61e1ca41ceb3c4e8d265ceb5f0 |
|
MD5 | c87e47096ce15f6a4b29b0c7ddb71ecb |
|
BLAKE2b-256 | 33c409b681642f8c84ac35ce97ea8b1d0ffab5a8c7d5f006eb75e257491e5693 |
hashes for implicit-0.7.2-cp310-cp310-win_amd64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | a4ee10107ba7a2745d5166e17f9202f5b73e7b362ac248229e16be8819cde49c |
|
MD5 | d7e1525e79aba227fb98f4640f8d9162 |
|
BLAKE2b-256 | 782ebb4fcccd240f9140610a99e7d2bb3f55da16a4ad4c3d4b5466fcdf66b276 |
hashes for implicit-0.7.2-cp310-cp310-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 32d3ad57a4217ed50e3d126ce3782b2f27d0a1ed9fcbb71a7ccf5cfebc96430d |
|
MD5 | 4086467a2139158e67037b058951a12a |
|
BLAKE2b-256 | cdccdeac70cae8cc32c9885d0cd73bc66e1b3cbea36ae7080b8c83995eaf5322 |
hashes for implicit-0.7.2-cp310-cp310-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 9a243c0a9d22bd902dcc0cd0622fbed05c020613bf272934498cf88cf187a1be |
|
MD5 | 3cb3ca19c16cc9ab92601505cc389690 |
|
BLAKE2b-256 | 0c9bc26063863680bfdd1068798a696b9adaf1fcb092df5916a5bda221f82cd2 |
hashes for implicit-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | f08f9c15dd7724368aad47458c77f888385dec5a69221432e50b689996a6455f |
|
MD5 | 60545e54c867b021edf70525f50738c0 |
|
BLAKE2b-256 | 6457b4d444e688457799bfe34bed3e5705f19ea769d646c36e1f25829d278da4 |
hashes for implicit-0.7.2-cp310-cp310-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | a3209629ba593e5e1365cde1e5ffa57a62bca6ca99eda9b1e464a70eea91632b |
|
MD5 | 30558b5442ebde97e286c452ab01f068 |
|
BLAKE2b-256 | 69bdff04a8a0fa1e001f2cf5e33e12313069716ffb1995f7b44a163c7c63d546 |
哈希值用于implicit-0.7.2-cp310-cp310-macosx_10_9_universal2.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | a6cce64d839272b3ae0c7e9799ee326ee0cb7da9d69b1de7205ef1139379ff22 |
|
MD5 | b1f5d96d4b79e2372615edaebf615915 |
|
BLAKE2b-256 | f7ad39136886538166f2a000699815b69b23518b53cbc8bfb09cbc400ee0535e |
哈希值用于implicit-0.7.2-cp39-cp39-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | bd10b250c53c7917b77b883b1cd0a1f94368115521816338995a32112eab8321 |
|
MD5 | e9115047a696a3a9172bbc8ed95419ca |
|
BLAKE2b-256 | d0af577b6c5ff26e615fe6c6d771857a41cd86e6042d482a32220c3133336848 |
哈希值用于implicit-0.7.2-cp39-cp39-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 6a9058d5b2c1e19de344d4fc0b031504bc6be0fe7f7f5c91f11db66c28727894 |
|
MD5 | 21cbc4a9270992aac27e885881ca54c5 |
|
BLAKE2b-256 | 79fdee7958d6b1808643aaf0a176ba40a64f1bfe5ac77839a37d9eb3349ab895 |
哈希值用于implicit-0.7.2-cp39-cp39-macosx_11_0_arm64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 67e08aaf57e5072b9fe17218e2dad6b11369f1ad4ac732dc13ded76228a50970 |
|
MD5 | 2fcfb409b4a33d825e35c38026c0be12 |
|
BLAKE2b-256 | 0bc775445a651f278da9f2ed61889b94bd380e021da9a1b5be5c2cafb986f6b7 |
哈希值用于implicit-0.7.2-cp39-cp39-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | ab28f9fe3d90d1461694c33eb2741e8f5446737561786cc118ca92fe51d7ffe7 |
|
MD5 | 8daf275fdb6e0853b112235cf56ba6af |
|
BLAKE2b-256 | b71aa7a74e151a390da5402fdffe87ef5cd537378fa201ef948374708d19ec0a |
哈希值用于implicit-0.7.2-cp39-cp39-macosx_10_9_universal2.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 61f7048d0f1b2579796ccc25bb79ad3517a52c60252fd6e18572f75f0a506b70 |
|
MD5 | 8ca78be1d202e6ff0855d3c77b421fa8 |
|
BLAKE2b-256 | 4b16d5713d9869fccb7277b253983fa8883df2b8ef8aa108616473facb517563 |
哈希值用于implicit-0.7.2-cp38-cp38-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 2e7ac1e9df353729a1a45daa5417d417b748242e6271b423e384bc6b6216747b |
|
MD5 | 389a1284efb7a75b7defaaa04ab6eac6 |
|
BLAKE2b-256 | 422a1b8d5e953227e04e7c639f3db458d9f366b318b23a8924a5138dc1276aaa |
哈希值用于implicit-0.7.2-cp38-cp38-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 6dab0506685dd23c27e648337f86875272dd8341400c3ff306fa99fe3f049bdf |
|
MD5 | 29f86a2352c170e0a93c9137be69ffe2 |
|
BLAKE2b-256 | eee23ff11cba2f0b15377a9db224c9fe492b7dbabc6f50c12122a75e189d4b76 |
哈希值用于implicit-0.7.2-cp38-cp38-macosx_11_0_arm64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | c2805ceea609dddb0ecd6f948f1dabd48bd9c47edffd3ff50584a4248a66c719 |
|
MD5 | dcdd9badeb5751e66553afc3cabef407 |
|
BLAKE2b-256 | 71e8d830f9fba452018174f4f001f84746bc7d3ab7f0406d49bb2c2ccb8077db |
哈希值用于implicit-0.7.2-cp38-cp38-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | f533cb8e42f80ed5457a287d0c3ae5b7789c2ea098519eecee58c45adcb4c3d7 |
|
MD5 | a7d1ad6f7f807ea34eef446d1fd79e20 |
|
BLAKE2b-256 | fb7af92c7a0a2d924ba279b31e8d10c12ea4d0d72ce328a110997d80803ec5d0 |
哈希值用于implicit-0.7.2-cp38-cp38-macosx_10_9_universal2.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | c9519fdb8a1a06b201b7c55dfa51d6a0f00ff55223600b1484fcacd8d248a47a |
|
MD5 | ac34924d692c47c365bafab283051d5a |
|
BLAKE2b-256 | d3aa3e7a5461ed638392c8945a9f3bc9f3fb83fe2a3670bd8bb4e102a9a88d77 |
哈希值用于implicit-0.7.2-cp37-cp37m-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 1c755cb0e6ac69b44c8215a80ba7c5c132f2767453078b573e3d18900220aa57 |
|
MD5 | fc58f014f57daee0594a31e5b07cf428 |
|
BLAKE2b-256 | c987442304bc3a8ca63dcd60c3fb72a2cd3e71e58da891c282571af7fe1a80a6 |
哈希值用于implicit-0.7.2-cp37-cp37m-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 0ecb6fcf2581a47f0fbaf50cf412c377684670e09c0a6764dc2fc112b7bfa4af |
|
MD5 | 86da5eb63683bf4d26b677410622b5ad |
|
BLAKE2b-256 | 1dad4a0935958df90b9f196d1cec2837851d1e427af9bc3393faa3a7c0915ba0 |
哈希值用于implicit-0.7.2-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 3f6b93dbf377875c2aeccac52239b0ff2db987821b0fb29e0f1efd95474aeab4 |
|
MD5 | d45ab2abc4c221fb4d8c58edc0c68052 |
|
BLAKE2b-256 | 9b6baf556a8eb4a764612d558c8c3001c43dfaf1ab63715e878bbb4095d9fbef |
哈希值用于implicit-0.7.2-cp36-cp36m-manylinux2014_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 60bfb1bc1c6d3f219db11e20537e5b7108dbb1f7daaf8677e1ba3ccff643f497 |
|
MD5 | c3b3616fe8f8f3b9c439f24ecd2e16be |
|
BLAKE2b-256 | 76f1148d60e73e969ee4bfcf0592799b9fc1a0f9cccdcd1ed0f8dbd6de11712d |
哈希值用于implicit-0.7.2-cp36-cp36m-manylinux2014_aarch64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | cb4b78ff885ca21d8d443f31f6e28bba0a67a640f7682cc9996c0c1cc2e585cc |
|
MD5 | aed68327a4fb2c66d259d57771eb3434 |
|
BLAKE2b-256 | 676fbaaf5c078c72027a86cc4bd84b6c86b0694024f1fb30cf9777afae089e1a |
哈希值用于implicit-0.7.2-cp36-cp36m-macosx_10_9_x86_64.whl
算法 | hash 摘要 | |
---|---|---|
SHA256 | 335925bf728579ba729d60570b223713312a725ad647d000e0773f25bcf2f5a5 |
|
MD5 | a132cb36e317232990954687400f19fd |
|
BLAKE2b-256 | a0f6c8d38264af19ee82f4ec558dd2ee9b08a844af0b98707775fbfa967c1093 |