rectorch:在pytorch中实现的stateofart recsys方法。
rectorch的Python项目详细描述
^{str1}$rectorch是一个基于pytorch的top-N推荐框架。 它包括几种在pytorch中实现的最先进的top-N推荐方法。在
包括的方法
最新的PyPi版本包含以下方法。在
Name | Description | Ref. |
---|---|---|
MultiDAE | Denoising Autoencoder for Collaborative filtering with Multinomial prior | [1] |
MultiVAE | Variational Autoencoder for Collaborative filtering with Multinomial prior | [1] |
CMultiVAE | Conditioned Variational Autoencoder | [2] |
CFGAN | Collaborative Filtering with Generative Adversarial Networks | [3] |
EASE | Embarrassingly shallow autoencoder for sparse data | [4] |
ADMM_Slim | ADMM SLIM: Sparse Recommendations for Many Users | [5] |
SVAE | Sequential Variational Autoencoders for Collaborative Filtering | [6] |
入门
安装
rectorch可在PyPi上使用,并且可以使用pip安装
pip3 install rectorch
要求
如果通过克隆此存储库来安装rectorch,请确保安装了所有要求。在
^{pr2}$建筑
rectorch由7个主要模块组成,总结如下。在
^{tb2}$教程
(即将发布)
我们将很快发布一系列python笔记本,其中包含如何培训和评估的示例 使用rectorch的推荐方法。在
文件
rectorchAPI的完整文档可在https://makgyver.github.io/rectorch/上找到。在
已知问题
文档在4K显示上存在渲染问题。要“修复”该问题,请放大([Ctrl][+],[Cmd][+])页面。 谢谢你的耐心,很快就会修好的。在
测试
测试^{str1}$rectorch的最简单方法是使用pytest。在
git clone https://github.com/makgyver/rectorch.git
cd rectorch/tests
pytest
您也可以使用coverage检查覆盖率。
从tests
文件夹:
coverage run -m pytest
coverage report -m
开发分公司
rectorch是使用测试驱动方法开发的。master分支(即pypi发行版)是最新的 每个模块都经过了全面测试的框架版本。然而,新的未经测试 或者正在开发的特性在dev分支中可用。rectorch的dev版本 可以通过克隆分支来使用。在
git clone -b dev https://github.com/makgyver/rectorch.git
cd rectorch
pip3 install -r requirements.txt
进行中的工作
以下功能/更改将很快发布:
- 根据模型的特点,将
models
模分解为多个子模块 - 为框架引入“全球”设置/配置
- 在配置中添加优化器的参数
- 包括水平拆分,并在
DataProcessing
中保留一个。在
建议
这个框架在不断发展,实现的方法是根据需要选择的 我们的研究活动。我们计划尽快采用最先进的方法,但是 如果您有任何具体的要求,请随时通过打开问题与我们联系。在
引用本回购协议
如果您在工作中使用rectorch,请考虑引用此存储库。在
@misc{rectorch,
author = {Mirko Polato},
title = {{rectorch: pytorch-based framework for top-N recommendation}},
year = {2020},
month = {may},
doi = {10.5281/zenodo.3841898},
version = {1.0},
publisher = {Zenodo},
url = {https://doi.org/10.5281/zenodo.153841898991}
}
参考文献
[1] Dawen Liang,Rahul G.Krishnan,Matthew D.Hoffman和Tony Jebara。2018 用于协同过滤的可变自动编码器。2018年会议记录 万维网会议(WWW'18)。国际万维网会议指导 日内瓦共和国和州委员会,切,689-698。 DOI:https://doi.org/10.1145/3178876.3186150
[2] 托马索·卡拉罗、米尔科·波拉托和法比奥·艾奥利。条件变分 top-N产品推荐自动编码器,2020年。arXiv预印本: https://arxiv.org/abs/2004.11141
[3] 董觉泽,金秀康,金相佑,李正泰。2018 CFGAN:一个基于生成对抗网络的通用协同过滤框架。 第27届ACM国际信息与知识会议论文集 管理层(CIKM'18)。美国计算机械协会,纽约,纽约,美国,137–146。 DOI:https://doi.org/10.1145/3269206.3271743
[4] 哈拉尔德斯特克。2019稀疏数据的浅层自动编码器令人尴尬。 在万维网会议上(WWW'19)。计算机机械协会, 美国纽约,3251-3257。DOI:https://doi.org/10.1145/3308558.3313710
[5] Harald Steck,Maria Dimakopoulou,Nickolai Riabov和Tony Jebara。2020 ADMM SLIM:对许多用户的稀疏建议。第十三届国际刑事诉讼 网络搜索和数据挖掘会议(WSDM'20)。计算机机械协会, 美国纽约,555-563。DOI:https://doi.org/10.1145/3336191.3371774
[6] 雅各布,诺维塔姆,诺维塔姆。2019 用于协同过滤的序列变分自动编码器。第十二届会议录 网络搜索与数据挖掘国际会议(WSDM'19)。计算机协会 机械,纽约,纽约,美国,600–608。DOI:https://doi.org/10.1145/3289600.3291007
- 项目
标签: