今天,要和大家推荐一个Go 编写的开源推荐系统——Gorse。
Gorse 旨在成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将商品、用户和交互数据导入 Gorse,系统将自动训练模型为每个用户生成推荐。项目特点如下:
Gorse 是一个单节点训练和分布式预测推荐系统。Gorse 将数据存储在 MySQL 或 MongoDB 中,中间数据缓存在 redis 中。集群由一个主节点、多个工作节点和服务器节点组成。主节点负责模型训练、非个性化物品推荐、配置管理、会员管理。服务器节点负责公开 RESTful API 和在线实时推荐。Worker 节点负责为每个用户进行离线推荐。此外,管理员可以通过主节点的仪表盘进行系统监控、数据导入导出和系统状态检查。
Gorse的主要工作流程如下:
1、用户产生的反馈被收集到数据存储中。
2、提取存档的反馈以训练推荐模型。Gorse中有两种模型(排名模型和CTR模型)。
3、离线推荐在后台从所有项目生成并缓存。
4、在线推荐基于缓存的离线推荐实时返回给用户。
目前,Gorse已经在Github上标星3.8K,累计分支 274 个(Github地址:https://github.com/zhenghaoz/gorse)