推荐系统的几种常用算法总结

优采云 发布时间: 2020-08-09 16:22

  尊敬的读者你好:笔者很高兴自己的文章能被阅读,但原创与编辑均不易,所以转载请必须标明本文出处并附上本文地址超链接以及博主博客地址:。若认为本文对您有用处还请帮忙点个赞鼓励一下,笔者在此谢谢每一位读者,如需联系笔者,请记下邮箱:,谢谢合作!

  之前也做过一些关于推荐系统的项目,下面就来系统的总结一下。

  一、什么是推荐系统?

  引用百度百科的一段解释就是:“利用电子商务网站向顾客提供商品信息和建议,帮助用户决定应当订购哪些产品,模拟销售人员帮助顾客完成订购过程。个性化推荐是按照用户的兴趣特性和订购行为,向用户推荐用户感兴趣的信息和商品。”

  在这个数据过载的时代,信息的消费者须要从海量的信息中找到自己所须要的信息,信息的生产者要使自己生产的信息在海量的信息中脱颖而出,这时推荐系统就应运而生了。对用户而言,推荐系统不需要用户提供明晰的目标;对物品而言,推荐系统解决了2/8现象的问题(也叫长尾效应),让冷门的物品可以展示到须要它们的用户面前。

  二、推荐系统要解决的问题?

  1、帮助用户找到想要的物品 如:书籍、电影等

  2、可以增加信息过载

  3、有利于提升站点的点击率/转化率

  4、有利于对用户进行深入了解,为用户提供个性化服务

  三、推荐系统的发展趋势?

  推荐系统的研究大致可以分为三个阶段,第一阶段是基于传统的服务,第二阶段是基于目前的社交网路的服务,第三阶段是正式到来的物联网。这其中形成了好多基础和重要的算法,例如协同过滤(包括基于用户的和基于物品的)、基于内容的推荐算法、混合式的推荐算法、基于统计理论的推荐算法、基于社交网路信息(关注、被关注、信任、知名度、信誉度等)的过滤推荐算法、群体推荐算法、基于位置的推荐算法。其中基于邻域的协同过滤推荐算法是推荐系统中最基础、最核心、最重要的算法,该算法除了在学术界得到较为深入的研究,而且在业界也得到特别广泛的应用,基于邻域的算法主要分为两大类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法,除此之外,基于内容的推荐算法应用也十分广泛等等,因此下文将对涉及推荐系统的常用算法进行详尽介绍。

  1、基于流行度的推荐算法

  2、基于协同过滤的推荐算法(UserCF与ItemCF)

  3、基于内容的推荐算法

  4、基于模型的推荐算法

  5、基于混合式的推荐算法

  四、基于流行度的推荐算法

  基于流行度的算法十分简单粗鲁,类似于各大新闻、微博热榜等,根据PV、UV、日均PV或分享率等数据来按某种热度排序来推荐给用户。

  注:独立访客(UV)、访问次数(VV)两个指标有哪些区别?

  ① 访问次数(VV):记录1天内所有访客访问了该网站多少次,相同的访客有可能多次访问该网站,且访问的次数累加。

  ② 独立访客(UV):记录1天内所有访客访问了该网站多少次,虽然相同访客能多次访问网站,但只估算为1个独立访客。

  ③ PV访问量(Page View):即页面访问量,每打开一次页面或则刷新一次页面,PV值+1。

  1、优点:该算法简单,适用于刚注册的新用户

  2、缺点:无法针对用户提供个性化的推荐

  3、改进:基于该算法可做一些优化,例如加入用户分群的流行度进行排序,通过把热榜上的体育内容优先推荐给体育迷,把政要热文推给热爱谈论政治的用户。

  五、基于用户的协同过滤推荐算法

  当目标用户须要推荐时,可以先通过兴趣、爱好或行为习惯找到与他相像的其他用户,然后把这些与目标用户相像的用户喜欢的而且目标用户没有浏览过的物品推荐给目标用户。

  1、基于用户的CF原理如下:

  ① 分析各个用户对物品的评价,通过浏览记录、购买记录等得到用户的隐性评分;

  ② 根据用户对物品的隐性评分估算得到所有用户之间的相似度;

  ③ 选出与目标用户最相像的K个用户;

  ④ 将这K个用户隐性评分最高而且目标用户又没有浏览过的物品推荐给目标用户。

  2、优点:

  ① 基于用户的协同过滤推荐算法是给目标用户推荐这些和他有共同兴趣的用户喜欢的物品,所以该算法推荐较为社会化,即推荐的物品是与用户兴趣一致的那种群体中的热门物品;

  ② 适于物品比用户多、物品时效性较强的情形,否则估算慢;

  ③ 能实现跨领域、惊喜度高的结果。

  3、缺点:

  ① 在好多时侯,很多用户两两之间的共同评分仅有几个,也即用户之间的重合度并不高,同时仅有的共同打了分的物品,往往是一些太常见的物品,如收视大片、生活必需品;

  ②用户之间的距离可能显得很快,这种离线算法无法顿时更新推荐结果;

  ③推荐结果的个性化较弱、较笼统。

  4、改进:

  ① 两个用户对流行物品的有相像兴趣,丝毫不能说明她们有相像的兴趣,此时要降低惩罚力度;

  ②如果两个用户同时喜欢了相同的物品,那么可以给这两个用户更高的相似度;

  ③在描述邻居用户的偏好时,给其近来喜欢的物品较高权重;

  ④把类似地域用户的行为作为推荐的主要根据。

  六、基于物品的协同过滤推荐算法

  当一个用户须要个性化推荐时,举个反例因为我之前订购过许嵩的《梦游计》这张专辑,所以会给我推荐《青年晚报》,因为好多其他用户都同时订购了许嵩的这两张专辑。

  1、基于物品的CF原理如下:

  ① 分析各个用户对物品的浏览记录;

  ② 依据浏览记录剖析得出所有物品之间的相似度;

  ③ 对于目标用户评价高的物品,找出与之相似度最高的K个物品;

  ④ 将这K个物品中目标用户没有浏览过的物品推荐给目标用户

  2、优点:

  ① 基于物品的协同过滤推荐算法则是为目标用户推荐这些和他之前喜欢的物品类似的物品,所以基于物品的协同过滤推荐算法的推荐较为个性,因为推荐的物品通常都满足目标用户的奇特兴趣。

  ②物品之间的距离可能是依据成百上千万的用户的隐性评分估算得出,往往能在一段时间内保持稳定。因此,这种算法可以预先估算距离,其在线部份能更快地生产推荐列表。

  ③应用最广泛,尤其以电商行业为典型。

  ④ 适于用户多、物品少的情形,否则估算慢

  ⑤ 推荐精度高,更具个性化

  ⑥倾向于推荐同类商品

  3、缺点:

  ①不同领域的最热门物品之间常常具有较高的相似度。比如,基于本算法,我们可能会给喜欢听许嵩歌曲的朋友推荐汪峰的歌曲,也就是推荐不同领域的畅销作品,这样的推荐结果可能并不是我们想要的。

  ②在物品冷启动、数据稀疏时疗效不佳

  ③推荐的多样性不足,形成信息闭环

  4、改进:

  ① 如果是热门物品,很多人都喜欢,就会接近1,就会导致好多物品都和热门物品相像,此时要降低惩罚力度;

  ②活跃用户对物品相似度的贡献大于不活跃的用户;

  ③同一个用户在间隔太短的时间内喜欢的两件商品之间,可以给与更高的相似度;

  ④在描述目标用户偏好时,给其近来喜欢的商品较高权重;

  ⑤同一个用户在同一个地域内喜欢的两件商品之间,可以给与更高的相似度。

  七、基于内容的推荐算法

  协同过滤算法仅仅通过了解用户与物品之间的关系进行推荐,而根本不会考虑到物品本身的属性,而基于内容的算法会考虑到物品本身的属性。

  根据用户之前对物品的历史行为,如用户订购过哪些物品、对哪些物品采集过、评分过等等,然后再按照估算与那些物品相像的物品,并把它们推荐给用户。例如某用户之前订购过许嵩的《寻宝游戏》,这可以说明该用户可能是一个嵩鼠,这时就可以给该用户推荐一些许嵩的其他专辑或专著。

  1、基于内容的推荐算法的原理如下:

  ① 选取一些具有代表性的特点来表示每位物品

  ② 使用用户的历史行为数据剖析物品的这种特点,从而学习出用户的喜好特点或兴趣,也即建立用户画像

  ③ 通过比较上一步得到的用户画像和待推荐物品的画像(由待推荐物品的特点构成),将具有相关性最大的前K个物品中目标用户没有浏览过的物品推荐给目标用户

  2、优点:

  ① 是最直观的算法

  ② 常利用文本相似度估算

  ③ 很好地解决冷启动问题,并且也不会囿于热度的限制

  3、缺点:

  ① 容易受限于对文本、图像、音视频的内容进行描述的详尽程度

  ② 过度专业化(over-specialisation),导致仍然推荐给用户内容密切关联的item,而丧失了推荐内容的多样性。

  ③主题过分集中,惊喜度不足

  八、基于模型的推荐算法

  基于模型的推荐算法会涉及到一些机器学习的方式,如逻辑回归、朴素贝叶斯分类器等。基于模型的算法因为快速、准确,适用于实时性比较高的业务如新闻、广告等,而若是须要这些算法达到更好的疗效,则须要人工干预反复的进行属性的组合和筛选,也就是常说的Feature Engineering。而因为新闻的时效性,系统也须要反复更新线上的物理模型,以适应变化。

  九、基于混合式的推荐算法

  现实应用中,其实极少有直接用某种算法来做推荐的系统。在一些大的网站如Netflix,就是融合了数十种算法的推荐系统。我们可以通过给不同算法的结果加权重来综合结果,或者是在不同的估算环节中运用不同的算法来混和,达到更贴合自己业务的目的。

  十、推荐结果列表处理

  1、当推荐算法估算得出推荐结果列表以后,我们常常还须要对结果进行处理。比如当推荐的内容里收录敏感词汇、涉及用户隐私的内容等等,就须要系统将其筛除;

  2、若多次推荐后用户仍然对某个物品毫无兴趣,就须要将这个物品减少权重,调整排序;

  3、有时系统还要考虑话题多样性的问题,同样要在不同话题中筛选内容。

  十一、推荐结果评估

  当一个推荐算法设计完成后,一般须要用查准率(precision),查全率(recall),点击率(CTR)、转化率(CVR)、停留时间等指标进行评价。

  查准率(precision):推荐给用户且用户喜欢的物品在推荐列表中的比重

  查全率(recall):推荐给用户且用户喜欢的物品在用户列表中的比重

  点击率(CTR):实际点击了的物品/推荐列表中所有的物品

  转化率(CVR):购买了的物品/实际点击了的物品

  日积月累,与君共进,增增小结,未完待续。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线