1. RecoGym
RecoGym是一个侧重于强化学习的推荐系统模拟环境,它提供了一个统一的推荐框架,用于将经典推荐算法和强化学习方法结合起来进行推荐。RecoGym拥有进行离线和在线实验的功能,这让推荐系统算法的研究人员可以更好地把握推荐算法的各项性能指标。现在RecoGym已经是推荐系统研究领域知名的模拟仿真器。
原始文献:RecoGym: A Reinforcement Learning Environment for the problem of Product Recommendation in Online Advertising. https://arxiv.org/abs/1808.00720
项目地址:https://github.com/criteo-research/reco-gym
2. RecSim
RecSim是由Google的工作人员开发的一套可自定义的推荐系统模拟环境。与RecoGym一样,它侧重于强化学习方法在推荐系统中的实践,适合模拟连续交互式推荐问题。RecSim的目的并不在于搭建一个完美的通用模拟器,更多的是专注于模拟真实情况下用户的行为。作为一个开源平台,RecSim为强化学习和推荐系统交叉领域的研究人员和从业者提供了一个开发、评估和比较推荐算法的强大的工具。
原始文献:RecSim: A Configurable Simulation Platform for Recommender Systems. https://arxiv.org/abs/1909.04847
项目地址:https://github.com/google-research/recsim
3. Lenskit
LensKit是一个用于试验和研究推荐系统的模拟环境,由GroupLens团队开发、PIReT团队维护,其中GroupLens团队是推荐领域知名的测试数据集MovieLens和BookLens的作者,目前LensKit有Java(已停止维护)和Python两个版本。LensKit提供了很多用于构建、研究和研究推荐系统的工具,这使得LensKit可以以适合于教育和研究的灵活方式,为培训、运行和评估推荐算法提供强有力的支持。
原始文献:LensKit for Python: Next-Generation Software for Recommender Systems Experiments. https://arxiv.org/abs/1809.03125
项目地址:https://github.com/lenskit/lenskit
4. Recommenderlab
Recommenderlab是一个基于R语言的推荐系统框架,它提供了用于研究和研究推荐算法的基础结构。Recommenderlab实现了许多基础的推荐算法,同时允许用户开发和使用自己的推荐算法。基于该框架开发的推荐系统,代码会非常精简,但是在实际应用Recommenderlab的灵活性稍显不足。
原始文献:recommenderlab: A Framework for Developing and Testing Recommendation Algorithms. https://cran.r-project.org/web/packages/recommenderlab/vignettes/recommenderlab.pdf
项目地址: https://github.com/mhahsler/recommenderlab
5. MyMediaLite
MyMediaLite是一款轻量级的推荐系统算法功能库。MyMediaLite内含数十种不同的推荐算法,可以支持大多数模型的增量训练。除此之外,它还包括了一组推荐算法的评估程序,可以对例如MAE、NAME、RMSE等多种推荐算法的性能指标进行详细评估。该项目的核心代码小而紧凑,大小仅275KB,项目运行在.NET平台上,拥有良好的可移植性。
原始文献:MyMediaLite: A Free Recommender System Library. https://www.ismll.uni-hildesheim.de/pub/pdfs/Gantner_et_al2011_MyMediaLite.pdf
项目地址:https://github.com/zenogantner/MyMediaLite
6. Python-Recsys
Python- Recsys是一个基于Python开发的轻量级的开源推荐系统,实现了一些矩阵分解算法,例如奇异值分解。在Python-Recsys中可以通过标准性能指标评估结果来找到最佳的推荐算法调整参数。在使用方面,Python-recsys充分利用了Numpy和Scipy两个库的功能,使得项目简单清晰、代码简洁,文档资料也很丰富。虽然该项目规模小功能不多,但是主要的评估数据(Movielens,Last.fm)和评估程序该系统都已经具备。
项目地址:https://github.com/ocelma/python-recsys
7. LightFM
LightFM基于Python实现了许多隐式和显式反馈的推荐算法,包括对BPR和WARP排名损失的实现。这使它易于使用,快速(通过多线程模型估计)并产生高质量的结果。
它将推荐项和用户元数据都合并到传统的矩阵分解算法中,并将每个用户和推荐项表示为其特征的潜在表示的总和,从而使推荐建议可以推广到新推荐项和新用户。
项目地址:https://github.com/lyst/lightfm
8. Sparrow RecSys
SparrowRecSys是一个深度学习推荐系统,名字SparrowRecSys(麻雀推荐系统),取自“麻雀虽小,五脏俱全”之意。项目是一个基于Maven的混合语言项目,同时包含了TensorFlow,Spark,Jetty Server等推荐系统的不同模块。项目的数据来源于开源电影数据集MovieLens,其技术架构遵循经典的工业级深度学习推荐系统架构,包括了离线数据处理、模型训练、近线的流处理、线上模型服务、前端推荐结果显示等多个模块。是一个很不错的测试深度学习推荐算法的模拟环境。
项目地址:https://github.com/fangwudi/SparrowRecSys
9. Mahout
Mahout是一个开源的机器学习算法库,它包括了一些可扩展的机器学习领域经典算法的实现。在推荐方面,Mahout完整地封装了协同过滤算法,并实现了并行化,提供了简单易用的API接口,但相应的也屏蔽了许多算法细节,导致很难根据业务的场景对进行算法配置和调优。Mahout中的推荐算法都集中在Recommender命名空间中,主要包括了:基于用户的推荐算法、基于物品的推荐算法、基于物品的KNN推荐算法、Slope推荐算法、SVD推荐算法、TreeCluster推荐算法等。
项目地址:https://github.com/apache/mahout/
10. GraphLab Create
GraphLab Create是一个机器学习平台,用于构建智能的预测性应用程序,其中涉及数据清洗,开发功能,训练模型以及创建和维护预测性服务。其中推荐系统部分在graphlab.recommender中。
项目地址:https://github.com/apple/turicreate/