数据科学与R语言数据-R语言-图表-决策-Linux-PythonR语言小技能

推荐系统常见算法总结

2018-12-12  本文已影响15人  Liam_ml

1.基于静态信息的推荐

通过用户登录来源或者相关账号绑定,获取用户之前的社交网站上的信息。与2人口统计学获取特征相区别。

1.1 直接获取用户喜好信息

  1. 用户使用微信登录,获取用户发过的朋友圈公开信息,提取与被推荐物品高度相关的信息,进行推荐。

  2. 用户使用微博登录网易云,发现发过喜欢begin again电影的状态,于是推荐主题曲lost star.

  3. 用户用微博登录,切关注了xx领域某个类别的一个大v号,则可以推荐该类别。

1.2 获取用户社交关系信息

2.基于用户特征的推荐(基于人口统计学的推荐)☆

  1. 不需要历史行为数据;

  2. 不需要物品的属性信息。

  1. 区分粒度很粗,效果不会特别好。

3.基于物品内容的推荐 ☆

  1. 比较直观,物品属性维度越多越准确;

  2. 覆盖率广。

  1. 需要物品的属性信息;

  2. 物品相似度衡量只考虑物品本身,有一定局限,因为很多推荐内容有很强的主观性,比如音乐书籍电影;

  3. 需要一定的用户历史喜好信息。

4.协同过滤 ☆

  1. 不需要任何的用户或者内容的属性特征信息

  2. 推荐效果的惊喜度、准确度、多样性较好

  3. 随着用户行为增多,推荐效果也会提升

  1. 需要大量、准确的用户行为数据;

  2. 冷启动问题(新用户/物品没有行为,也找不到类似用户)

  3. 灰羊问题(个别口味特殊的用户找不到口味类似的用户)

  4. 因为采用历史行为数据,不易修改,不够灵活

  5. 覆盖率较低(数据稀疏问题,很多物品没有行为)

4.1 基于用户的CF

基于用户行为计算用户之间的相关性,再通过当前用户行为找到相似度高的用户,然后把他们喜欢的物品推荐给当前用户。

4.2 基于物品的CF

基于用户行为计算物品之间的相关性,再通过当前用户对物品的行为对喜欢的物品找到相似度高的物品,然后推荐给当前用户。

5.因子分解 ☆

  1. 推荐算法学习-SVM,RSVM,ASVM,SVDPP学习公式推导

  2. 在Python中实现你自己的推荐系统-svd

  3. 潜在因子算法

  1. 可以处理一定的数据稀疏问题
  1. 很依赖历史行为数据量

  2. 速度可能会非常缓慢,并且计算成本比较高

  3. 物品相关推荐集更多的是基于行为,不太适合做详情页推荐

6. 深度学习

目前有很多深度学习推荐系统的研究,但是还没有端到端的纯dl的方法。目前我了解到的有:

  1. 基于电影海报的深度学习方法: 其实也是基于内容的,只是用深度学习来获取海报图像的内容。

  2. youtube视频推荐: 整个推荐系统分为候选集生成(也称为搜索/召回)和排序两个阶段。其中召回阶段负责基于用户画像及场景数据从海量的视频库(百万级别)中将相关度最高的资源检索出来,作为候选集; 排序阶段负责基于更加精细的特征对候选集(百级别)进行排序,最终呈现给用户的只是很少一部分数据。

7.其它

上一篇下一篇

猜你喜欢

热点阅读