gorse: Go 推荐系统引擎
Gorse 是一个用 Go 编写的开源推荐系统。Gorse 的目标是成为一个通用的开源推荐系统,可以快速引入到各种在线服务中。通过将物品、用户和互动数据导入 Gorse,系统将自动训练模型,为每个用户生成推荐。项目特点如下:
- AutoML。通过后台的模型搜索,自动选择最佳推荐模型和策略。
- 分布式推荐。单节点训练,分布式预测,并能在推荐阶段实现横向扩展。
- RESTful API。为数据 CRUD 和推荐请求提供 RESTful APIs。
- 仪表板。提供用于数据导入和导出、监控和集群状态检查的仪表板。
快速启动
架构
Gorse 是一个单节点训练和分布式预测的推荐系统。Gorse 将数据存储在 MySQL 或 MongoDB 中,中间数据缓存在 Redis 中。
- 该集群由一个主节点、多个工作节点和服务器节点组成。
- 主节点负责模型训练、非个性化的项目推荐、配置管理和成员管理。
- 服务器节点负责暴露 RESTful APIs 和在线实时推荐。
- 工作者节点负责对每个用户进行离线推荐。
此外,管理员可以通过主节点上的仪表盘进行系统监控,数据导入和导出,以及系统状态检查。
任何贡献都是值得期待的:报告一个错误,给出建议,甚至创建一个拉动请求。如果 Gorse 已经在生产中使用,欢迎提交 Gorse 生产用户注册,将你的产品添加到 gorse.io的案例研究部分。
鸣谢
gorse 受到以下项目的启发: