一个 Go 语言实现的 RESTful 的推荐系统后端 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
sinex

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

  •  1
     
  •   sinex May 9, 2019 6376 views
    This topic created in 2545 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    最后,感谢您的阅读~

    9 replies    2019-05-11 15:43:41 +08:00
    gaoyoubo
        1
    gaoyoubo  
       May 9, 2019 via Android
    不错可以继续完善
    sinex
        2
    sinex  
    OP
      &nbs;May 10, 2019 via Android
    @gaoyoubo 谢谢
    gaoyoubo
        3
    gaoyoubo  
       May 10, 2019
    @sinex 这个你在生产环境中使用了吗? 正好我们近期也有类似的需求。
    Philippa
        4
    Philippa  
       May 10, 2019 via iPhone
    太好了……我也是随口说说。刚好要搭服务,有空拿来玩玩。谢谢分享
    sinex
        5
    sinex  
    OP
       May 10, 2019
    @gaoyoubo 目前直接用的话可能为时太早^_^,虽然测试起来没有问题。我打算接下来做一个 DEMO 性质的推荐网站来验证这个项目可用性,有些潜在的问题可能我自己用过后才会更清楚。
    sinex
        6
    sinex  
    OP
       May 10, 2019
    @Philippa 谢谢你给的思路,哈哈~
    xuanyuanaosheng
        7
    xuanyuanaosheng  
       May 11, 2019 via Android
    ma 住
    lol0
        8
    lol0  
       May 11, 2019 via Android
    niubi
    sevenQu
        9
    sevenQu  
       May 11, 2019
    About     Help     Advertise     Blog     API     FAQ     Solana     946 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 21:49 PVG 05:49 LAX 14:49 JFK 17:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86