首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

一个 Go 语言实现的 RESTful 的推荐系统后端

  •  1
     
  •   sinex · 106 天前 · 2240 次点击
    这是一个创建于 106 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年的时候小弟在 V2EX分享了一个 Go 语言实现的推荐系统引擎@Philippa 兄指出了构建一个 CLI+RPC 工具的可能性,之后我对项目进行了重构,添加了很多功能,想要再分享一下。

    项目包含了模型验证、数据导入 /导出工具和 RESTful 推荐服务,可以方便地用它验证推荐模型,构建简易的推荐系统服务。只需要提供用户和物品之间的交互记录,程序会自动加载数据、训练模型,最后为每个用户生成推荐列表。

    • 简单易用:只需要写好配置文件、导入数据,即可完成推荐系统服务搭建。可以使用 RESTful API 添加反馈、物品,系统按照设定的阈值会自动更新推荐列表。

    • 模型方面:实现了 WRMF 和 BPR 两个排序模型,当然也实现了很多评分预测模型,但是评测预测在实际场景中不实用。

    • 性能方面:比另外两个 GitHub 上比较热门的推荐系统项目librecSurprise略好一些。

    • 缺点和不足:当然它有很多的不足
    1. 它是一个单机程序,所以只能适用于数据量比较小的情况。
    2. 推荐系统的物品生成其实包含多个环节,例如去掉用户浏览过的、结合热门物品,单纯使用协同过滤是不够的,通常在协同过滤获取相关物品之后再需要一个重排序的过程(一般使用 CTR 预测来完成)。

    最后,感谢您的阅读~

    9 回复  |  直到 2019-05-11 15:43:41 +08:00
        1
    gaoyoubo   106 天前 via Android
    不错可以继续完善
        2
    sinex   106 天前 via Android
    @gaoyoubo 谢谢😁
        3
    gaoyoubo   106 天前
    @sinex 这个你在生产环境中使用了吗? 正好我们近期也有类似的需求。
        4
    Philippa   106 天前 via iPhone
    太好了……我也是随口说说。刚好要搭服务,有空拿来玩玩。谢谢分享
        5
    sinex   106 天前
    @gaoyoubo 目前直接用的话可能为时太早^_^,虽然测试起来没有问题。我打算接下来做一个 DEMO 性质的推荐网站来验证这个项目可用性,有些潜在的问题可能我自己用过后才会更清楚。
        6
    sinex   106 天前
    @Philippa 谢谢你给的思路,哈哈~
        7
    xuanyuanaosheng   105 天前 via Android
    ma 住
        8
    lol0   105 天前 via Android
    niubi
        9
    sevenQu   105 天前
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2043 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 12:05 · PVG 20:05 · LAX 05:05 · JFK 08:05
    ♥ Do have faith in what you're doing.