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

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

  •  1
     
  •   sinex · 2019-05-09 22:11:03 +08:00 · 5470 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    最后,感谢您的阅读~

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