Recommenders是由Linux基金会AI和数据项目支持的开源推荐系统工具包。它的目标是帮助用户快速构建、评估和部署各种推荐算法,从经典的协同过滤到最新的深度学习模型。
该项目提供了丰富的Jupyter notebook示例,详细介绍了推荐系统开发的五个关键步骤:
Recommenders不仅包含了多种算法的实现,还提供了数据加载、评估指标计算、超参数调优等常用工具函数。无论是学术研究还是工业应用,Recommenders都能大大提高推荐系统的开发效率。
Recommenders实现了30多种经典和最新的推荐算法,包括:
每种算法都提供了详细的示例代码和文档说明。
提供了常用数据集(如MovieLens)的加载函数,以及数据分割、负采样等预处理工具。
实现了NDCG、MAP、Recall等常用的排序和评分指标,支持Python和PySpark环境。
集成了多种超参数优化算法,如网格搜索、随机搜索等。
提供了在Azure等云平台上部署推荐模型的最佳实践。
要开始使 用Recommenders,只需几个简单步骤:
pip install recommenders
git clone https://github.com/recommenders-team/recommenders.git
examples/00_quick_start/sar_movielens.ipynb
更多详细安装说明请参考Setup Guide。
Recommenders实现的算法涵盖了推荐系统的各个方面。以下是一些代表性算法的简介:
Alternating Least Squares (ALS)
Neural Collaborative Filtering (NCF)
LightGBM
Deep Knowledge-Aware Network (DKN)
Self-Attentive Sequential Recommendation (SASRec)
Next Item Recommendation (NextItNet)
Wide & Deep
Extreme Deep Factorization Machine (xDeepFM)
Recommenders提供了一个基准测试notebook,用于比较不同算法在MovieLens数据集上的性能。以下是部分算法在MovieLens 100k数据集上运行15轮的结果:
算法 | MAP | nDCG@10 | Precision@10 | Recall@10 |
---|---|---|---|---|
ALS | 0.004732 | 0.044239 | 0.048462 | 0.017796 |
BiVAE | 0.146126 | 0.475077 | 0.411771 | 0.219145 |
NCF | 0.107720 | 0.396118 | 0.347296 | 0.180775 |
SAR | 0.110591 | 0.382461 | 0.330753 | 0.176385 |
从结果可以看出,不同算法在各个指标上表现各有优劣。用户可以根据具体应用场景选择合适的算法。
Recommenders是一个开源项目,欢迎社区贡献。贡献方式包括但不限于:
在贡献之前,请阅读贡献指南。
Recommenders为推荐系统的研究和开发提供了一个全面的工具包。无论是初学者还是专家,都能从中受益:
随着推荐系统在各行各业的广泛应用,Recommenders将继续发挥重要作用,推动这一领域的发展。