目录
推荐系统简介
why is it
信息过载,比如淘宝上亿个商品,不可能用户一个一个看完挑选,面对海量的数据信息,从中快速推荐出符合用户特点的物品。解决一些人的“选择恐惧症”;面向没有明确需求的人
目的
- 让用户更快更好的获取到自己需要的内容
- 让内容更快更好的推送到喜欢它的用户手中
- 让网站(平台)更有效的保留用户资源
更好地协调用户网站和商户/商品
基本思想
- 精准推送:利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品
- 物以类聚:利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品
- 人以群分:利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品
数据支持
推荐的核心在于数据提供支持猜测用户可能买什么或者物品可能被什么用户买
- 推荐物品或内容的元数据,例如关键字,分类标签,基因描述等;
- 系统用户的基本信息,例如性别,年龄,兴趣标签等
- 用户的行为数据,可以转化为对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。这些用户的偏好信息可以分为两类:
- 显式的用户反馈:例如数据库记录的用户对物品的评分,或者对物品的评论。
- 隐式的用户反馈:例如数据库订单购物车信息和日志点击浏览行为,隐式的反应了用户对物品的喜好
推荐系统分类
- 基于统计:比如热门推荐/topN推荐
全部用户看到的都一样的 - 个性化
- 基于人口统计学的推荐
- 基于内容的推荐Content Based简称CB
主要利用用户评价购买过的物品特征 - 基于协同过滤的推荐Collaborative Filtering,CF
可以利用其他用户的物品内容
- 混合推荐
我们往往用的是混合推荐,比如我们公司个性化70%+热门30%,还有一些随机的
基于人口统计学的推荐算法
用户a和c年龄性别相似,用户a喜欢商品A,我们就可以把商品A推荐给用户c
基于内容(物品)的推荐算法(Content Based)CB
用户a,b,c没有明显相同特征,电影A和电影C都有爱情和动作特征,认为他们相似度较高,用户a喜欢电影A就很可能喜欢电影C
基于协同过滤(Collaborative Filtering)的推荐算法
CB主要是利用用户评价过的物品或者内容特征,而CF还可以利用其他用户评分过的物品内容
可以解决CB的局限性
- 物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐
- CF基于用户对物品的评价质量,避免了CB仅依赖内容可能造成的对物品质量判断的干扰
- CF推荐不受内容限制,只要其他用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在联系)
分为:基于近邻和基于模型
- 基于用户
- 基于物品
混合推荐
实际网站的推荐系统往往都不是单纯只采用了某一种推荐的机制和策略,往往是将多个方法混合在一起,从而达到更好的推荐效果。比较流行的组合方法有:
- 加权混合
用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果 - 切换混合
切换的混合方式,就是允许在不同的情况(数据量,系统运行状况,用户和物品的数目等)下,选择最为合适的推荐机制计算推荐 - 分区混合
采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户 - 分层混合
采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐
推荐系统好坏评测
方法
1.离线实验
- 通过体制系统获得用户行为数据,并按照一定格式生成一个标准的数据集
- 将数据集按照一定的规则分成训练集和测试集
- 在训练集上训练用户兴趣模型,在测试集上进行预测
- 通过事先定义的离线指标评测算法在测试集上的预测结果
2.用户调查
- 用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务;我们需要记录他们的行为,并让他们回答一些问题;最后进行分析
3.在线实验
- AB测试,我当前主要工作,以后有时间介绍
评测指标
- 预测准确度
- 用户满意度
- 覆盖率
- 多样性
- 惊喜度
- 信任度
- 实时性
- 健壮性
- 商业目标(gtv,点击率等)
推荐准确度评测
评分预测
- 很多网站都有让用户给物品打分的功能,如果知道用户对物品的历史评分,就可以从中学习一个兴趣模型,从而预测用户对新物品的评分
- 评分预测的准确度一般用均方根误差(RMSE)或平均绝对误差(MAE)计算
Top-N推荐
- 网站提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做Top-N推荐
- Top-N推荐的预测准确率一般用精确率(precision)和召回率(recall)来度量
准确率、精确率和召回率