机器学习产品经理方法论01-毕业论文参考文章们

文章推荐系统 | 一、推荐流程设计

2019-11-27  本文已影响0人  小王子特洛伊

推荐系统主要解决的是信息过载的问题,目标是从海量物品筛选出不同用户各自喜欢的物品,从而为每个用户提供个性化的推荐。推荐系统往往架设在大规模的业务系统之上,面临着用户的不断增长,物品的不断变化,并且有着全面的推荐评价指标和严格的性能要求(Netflix 的请求时间在 250 ms 以内,今日头条的请求时间在 200ms 以内),所以推荐系统很难一次性地快速计算出用户所喜好的物品,并且同时满足准确度、多样性等评价指标。为了解决如上这些问题,推荐系统通常被设计为三个阶段:召回、排序和调整,如下图所示:

在召回阶段,首先筛选出和用户直接相关或间接相关的物品,将原始数据从万、百万、亿级别缩小到万、千级别;在排序阶段,通常使用二分类算法来预测用户对物品的喜好程度(或者是点击率),然后将物品按照喜好程序从大到小依次排列,筛选出用户最有可能喜欢的物品,这里又将召回数据从万、千级别缩小到千、百级别;最后在调整阶段,需要过滤掉重复推荐的、已经购买或阅读的、已经下线的物品,当召回和排序结果不足时,需要使用热门物品进行补充,最后合并物品基础信息,将包含完整信息的物品推荐列表返回给客户端。

这里以文章推荐系统为例,讲述一下推荐系统的完整流程,如下图所示:

  1. 同步业务数据
    为了避免推荐系统的数据读写、计算等对应用产生影响,我们首先要将业务数据从应用数据库 MySQL 同步到推荐系统数据库 Hive 中,这里利用 Sqoop 先将 MySQL 中的业务数据同步到推荐系统的 HDFS 中,再关联到指定的 Hive 表中,这样就可以在推荐系统数据库 Hive 中使用用户数据和文章数据了,并且不会对应用产生任何影响。

  2. 收集用户行为数据
    除了用户数据和文章数据,我们还需要得到用户对文章的行为数据,比如曝光、点击、阅读、点赞、收藏、分享、评论等。我们的用户行为数据是记录在应用服务器的日志文件中的,所以可以利用 Flume 对应用服务器的日志文件进行监听,一方面将收集到的用户行为数据同步到 HDFS 中,并关联到 Hive 的用户行为表,每天更新一次,以供离线计算使用。另一方面将 Flume 收集到的用户行为数据同步到 Kafka,实时更新,以供在线计算使用。

  3. 构建离线画像和特征

  1. 多路召回
  1. 排序

不同模型的做法大致相同,这里以 LR 模型为例。

  1. 推荐中心

参考

https://space.bilibili.com/61036655/channel/detail?cid=91348(强烈推荐,蚂蚁大神的视频讲得很棒)
https://www.bilibili.com/video/av68356229
https://pan.baidu.com/s/1-uvGJ-mEskjhtaial0Xmgw(学习资源已保存至网盘, 提取码:eakp)

上一篇 下一篇

猜你喜欢

热点阅读