Home > AI

gorse 一个简单易用的开箱可用的推荐系统

linker   ·   发表于 6个月前   ·   AI

gorse 采用Go语言编写, 提供了最简单了SVD、WRMF等推荐算法。

链接=>/zhenghaoz/gorse

6 Reply   |  Until 6个月前 | 44 View

linker
发表于 6个月前

gorse中实现了11个推荐模型。

模型 数据

任务
多线程训练

显式(评分) 隐式 隐式带权 评分 排序
BaseLine ✔️

✔️ ✔️
NMF ✔️

✔️ ✔️
SVD ✔️

✔️ ✔️
SVD++ ✔️

✔️ ✔️ ✔️
KNN ✔️

✔️ ✔️ ✔️
CoClustering ✔️

✔️ ✔️ ✔️
SlopeOne ✔️

✔️ ✔️ ✔️
ItemPop ✔️ ✔️

✔️
KNN (Implicit) ✔️ ✔️
✔️ ✔️ ✔️
WRMF ✔️ ✔️ ✔️
✔️
BPR ✔️ ✔️

✔️
  • 在MovieLens 1M上对评分模型进行交叉验证 [源代码].
模型 RMSE MAE Time (AVX2)
SlopeOne 0.90683 0.71541 0:00:26
CoClustering 0.90701 0.71212 0:00:08
KNN 0.86462 0.67663 0:02:07
SVD 0.84252 0.66189 0:02:21 0:01:48
SVD++ 0.84194 0.66156 0:03:39 0:02:47
  • 在MovieLens 100K上对排序模型进行交叉验证 [源代码].
模型 Precision@10 Recall@10 MAP@10 NDCG@10 MRR@10 用时 ItemPop 0.19081 0.11584 0.05364 0.21785 0.40991 0:00:03 KNN 0.28584 0.19328 0.11358 0.34746 0.57766 0:00:41 BPR 0.32083 0.20906 0.11848 0.37643 0.59818 0:00:13 WRMF 0.34727 0.23665 0.14550 0.41614 0.65439 0:00:14

评论列表

  • 加载数据中...

编写评论内容

linker
发表于 6个月前

$ gorse test bpr --load-csv u.data --csv-sep $'\t' --eval-precision --eval-recall --eval-ndcg --eval-map --eval-mrr
...
+--------------+----------+----------+----------+----------+----------+----------------------+
|              |  FOLD 1  |  FOLD 2  |  FOLD 3  |  FOLD 4  |  FOLD 5  |         MEAN         |
+--------------+----------+----------+----------+----------+----------+----------------------+
| Precision@10 | 0.321041 | 0.327128 | 0.321951 | 0.318664 | 0.317197 | 0.321196(±0.005931)  |
| Recall@10    | 0.212509 | 0.213825 | 0.213336 | 0.206255 | 0.210764 | 0.211338(±0.005083)  |
| NDCG@10      | 0.380665 | 0.385125 | 0.380003 | 0.369115 | 0.375538 | 0.378089(±0.008974)  |
| MAP@10       | 0.122098 | 0.123345 | 0.119723 | 0.116305 | 0.119468 | 0.120188(±0.003883)  |
| MRR@10       | 0.605354 | 0.601110 | 0.600359 | 0.577333 | 0.599930 | 0.596817(±0.019484)  |
+--------------+----------+----------+----------+----------+----------+----------------------+

评论列表

  • 加载数据中...

编写评论内容

linker
发表于 6个月前

gorse 代码的核心文件都在core目录。


评论列表

  • 加载数据中...

编写评论内容

linker
发表于 6个月前

base目录主要是一些基础结构体和常用功能,例如稀疏矩阵相关的工具、随机相关工具等。

评论列表

  • 加载数据中...

编写评论内容

linker
发表于 6个月前

example目录里有几个例子, 运行时会自动下载 数据集, 需要在命令行指明数据集名,例如 ml-100k

评论列表

  • 加载数据中...

编写评论内容

linker
发表于 6个月前

engine目录主要是为了实现本地文件数据存储而写的一些代码。基于BoltDB。

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content