rectorch:在pytorch中实现的stateofart recsys方法。

rectorch的Python项目详细描述


logo

Build StatusPyPiDOICoverage Statusdocsversionissueslicense

^{str1}$rectorch是一个基于pytorch的top-N推荐框架。 它包括几种在pytorch中实现的最先进的top-N推荐方法。在

包括的方法

最新的PyPi版本包含以下方法。在

NameDescriptionRef.
MultiDAEDenoising Autoencoder for Collaborative filtering with Multinomial prior[1]
MultiVAEVariational Autoencoder for Collaborative filtering with Multinomial prior[1]
CMultiVAEConditioned Variational Autoencoder[2]
CFGANCollaborative Filtering with Generative Adversarial Networks[3]
EASEEmbarrassingly shallow autoencoder for sparse data[4]
ADMM_SlimADMM SLIM: Sparse Recommendations for Many Users[5]
SVAESequential 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Jackson解析非同构JSON对象数组   java为什么'Stream<T>::<A>toArray(IntFunction<A[]>)`接受没有绑定的类型参数A?   java在JavaFX2.0中获取给定布局中的节点大小?   java双链接列表创建节点   java使用HashMap添加、删除和查找   java中push_back(C++)的等效方法是什么?   java在Jetty中运行servlet时获得HTTP 500   用java显示包含图像和文本的页面的最简单文档格式   swing从选项卡窗格Java中的不同选项卡访问数据   字符串Java帮助检查登录类使用。CSV文件   java Struts 1.2.9动作链接   包含max元素的java列表   currentNode上的jcr Java空检查   在Android中使用OpenNLP的POSTaggerMe时出现java NullPointerException   java Logback只将消息记录到syslog一次   如何用Java编写构造函数的API文档   java从gallery中获取所有图像并存储在阵列中   java Maven:将外部jar文件夹添加到类路径