使用implicit搭建实时推荐系统

Implicit简介

Implicit是一个开源的系统过滤项目,其包含多种流行的推荐算法,主要应用场景是针对隐性反馈行为进行推荐。包含的算法主要有:

Implicit使用

数据准备

Implicit输入需要使用的数据格式为user_id/item_id/rating,其中对于隐性评分的场景,可以根据具体情况进行设置,比如:

  • 按照浏览时间设置不同的rating
  • 按照浏览深度设置不同的rating(是否看过图片、点评等)
  • 按照不同行为设置不同的rating(浏览、收藏、加购)

模型训练

注意:

  • 这里使用了ALS算法,具体模型参数怎么调优目前还没有好的解决方案,给出的参数是随意给的。
  • 这里将模型结果存储到.npz文件中,便于后期直接使用,而不是每次使用时都要训练。
  • 需要对原先的user_id,item_id进行重新编码,否则会报错

模型使用

实时推荐

实时推荐的方案是使用离线模型结合实时行为进行推荐,而不是把整个模型部署到线上实时运行。中间主要区别是用户ID是不存在的,所以不能使用userid进行直接推荐。具体实现方式如下:

参考资料:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

机器学习在旅游与酒店个性化的研究

当我们访问Netflix、 YouTube 或Amazon时,我们认为个性化推荐是理所当然的。这些服务已经探索

开源地理位置数据库:tile38

Tile38是地理定位数据存储,空间索引和实时地理围栏。它支持多种对象类型,包括纬度/经度点,边界框,XYZ平

Redis存储经纬度数据并进行地理操作

Redis 从3.2.0版本开始提供了对地理位置的支持,reids 的地理位置坐标使用 sorted set存

发表评论

电子邮件地址不会被公开。 必填项已用*标注