刀还未配,出门已是江湖~~~
推荐引擎
上图给出了推荐引擎原理:
- 数据来源:物品信息、用户信息、用户对物品行为反馈信息
- 推荐引擎:中间作用,多种推荐机制
- 推荐结果:对特定用户,根据推荐算法将物品推荐给用户
推荐引擎分类
根据数据源不同,推荐引擎可分为:
1. 根据系统用户基本信息发现用户相关程度,称为基于人口统计学的推荐
2. 根据推荐物品或内容,发现物品间的相关性,称为基于内容的推荐
3. 根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或发现用户的相关性,称为基于协同过滤的推荐
基于人口统计学的推荐
一种易于实现的推荐方法,只是简单的根据用户基本信息发现用户相关程度,然后将相似用户喜爱的其他物品推荐给当前用户
好处:没有冷启动问题,领域独立
坏处:过于粗糙、用户信息不易提取
基于内容的推荐
根据推荐物品或内容的元数据,发现物品或内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品
好处:更加精确推荐
坏处:推荐效果依赖对物品模型的完整和全面程度,并未考虑人对物品的态度,且存在冷启动问题
基于用户的协同过滤的推荐
根据所有用户对物品或者信息的偏好,发现当前用户的口味和偏好相似的“邻居”用户群,一般采用计算“k-邻居”算法;然后,基于k个邻居的历史偏好为当前用户进行推荐
解释:
假设用户A喜欢物品W1,W3
用户B喜欢W2
用户C喜欢W1,W3,W4
从用户历史喜好,发现用户A和用户C口味和偏好类似,且用户C还喜欢物品W4,也可推断用户A可能喜欢物品W4
基于物品的协同过滤
使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户
解释:
假设用户A喜欢物品W1,W3
用户B喜欢W1,W2,W3
用户C喜欢W1
推断:物品W1和物品W3比较相似,喜欢物品W1的人也喜欢物品W3
推荐:将物品W3推荐给用户C
然而,实际应用中采用混合推荐算法
潜在因子算法
背景:算法是在NetFlix的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一,RMSE小且效率更高。
思想:每个user都有自己的偏好,比如A喜欢带有古风、剧情类等元素即潜在因子。若某首歌带有这些元素,即可将其推荐给这个用户。潜在因子是user和item的桥梁。
潜在因子推荐
一、用户-潜在因子矩阵Q
表示不同用户对于不同元素的偏好程度,0-1从不喜欢到很喜欢
二、潜在因子-音乐矩阵P
表示每种音乐含有各种元素的成分,Latent Factor的成分为此音乐元素的权重大小(0-1)
三、结果
举例:张三对音乐A的喜爱程度=张三对小清新喜好*音乐A中小清新的权重+…
推荐:将音乐中张三已听过的提出,选取评分最高的未推荐的给他
潜在因子计算
直接获取用户对海量音乐的偏好不太现实,现实只有用户对音乐的行为数据。
实际评分矩阵R:
矩阵值:用户对音乐行为的量化值:单曲循环=5,分享=4,收藏=3,主动播放=2,听完=1,跳过=-2,拉黑=-5
实际上:评价矩阵将非常稀疏,利用UV分解(将上述评价矩阵分解为两个低维度矩阵),用Q和P的乘积评估实际的评分矩阵
计算:利用最优化理论,L2范式+梯度下降法求解QP
推荐问题
冷启动
- 用户冷启动:给新注册用户个性化推荐
- 物品冷启动:新物品推荐给对它感兴趣的用户
- 系统冷启动: 新开发的网站设计个性化推荐
解决方案:
1. 提供非个性化推荐:热门排行榜,当数据够时再切换为个性化
2. 利用用户注册提供的信息做粗粒度
3. 利用第三方数据,一般为用户社交网络信息
4. 新用户加入时,引导用户选择一些信息
5. 新物品加入,利用物品内容
6. 系统冷启动,只有请专家来做物品相似度