今天,要和大家推薦一個Go 編寫的開源推薦系統——Gorse。
Gorse 旨在成為一個通用的開源推薦系統,可以快速引入各種在線服務。通過將商品、用戶和交互數據導入 Gorse,系統將自動訓練模型為每個用戶生成推薦。項目特點如下:
- 自動化:通過后臺模型搜索,自動選擇最佳推薦模型和策略;
- 分布式推薦:單節點訓練、分布式預測以及在推薦階段實現水平擴展的能力;
- Restful API:為數據 CRUD 和推薦請求提供 RESTful API;
- 數據儀表盤:提供數據導入和導出、監控和集群狀態檢查的儀表板;
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)