小白从0学习推荐系统 ---01 推荐系统简介

推荐系统概述

什么是推荐系统?

推荐系统是信息过载所采用的措施,面对海量的数据信息,从中快速推荐出符合用户特点的物品。解决一些人(主要面向没有明确需求的人)的“选择恐惧症”。
对于用户来说,它倾向于解决如何从大量信息中找到自己感兴趣的信息;
对于商家来说,它解决了如何让自己生产的信息脱颖而出,从而受到大众的喜爱。

推荐系统的目的

  • 让用户更快更好的获取到自己需要的内容
  • 让内容更快更好的推送到喜欢它的用户手中
  • 让网站(平台)更有效的保留用户的资源

小白从0学习推荐系统 ---01 推荐系统简介

推荐系统的基本思想

  • 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品 。(知你所想,精准推送)
  • 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品。(物以类聚)
  • 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品。(人以群分)小白从0学习推荐系统 ---01 推荐系统简介

推荐系统的数据分析

  • 要推荐物品或内容的元数据,例如关键词,分类标签,基因描述等;
  • 系统用户的基本信息,例如性别,年龄,兴趣标签等;
  • 用户的行为数据,可以转换为对物品或者信息的偏好,更具应用本身的不同,可能包含用户对物品的评分,用户查看物品的记录,用户的购买记录等信息。这些用户的偏好信息大致可以分为两类:
    • 显示的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。 —这个在系统的数据库可以获取
    • 隐式的用户反馈:这类是用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了哪些物品,用户查看了哪些物品的信息等。-- 这个一般是在系统的日志获取
      小白从0学习推荐系统 ---01 推荐系统简介

推荐系统的分类

  • 根据实时性分类:离线推荐、实时推荐
  • 根据推荐是否个性化分类:基于统计的推荐、个性化推荐
  • 根据推荐原则分类:基于相似度的推荐、基于知识的推荐、基于模型的推荐
  • 根据数据源分类:基于人口统计学的推荐、基于内容的推荐、基于协同过滤的推荐
    小白从0学习推荐系统 ---01 推荐系统简介

推荐算法简介

基于人口统计学的推荐算法

小白从0学习推荐系统 ---01 推荐系统简介

基于内容的推荐算法

小白从0学习推荐系统 ---01 推荐系统简介

基于协同过滤的推荐算法

  • 协同过滤(Collaborative Filtering,CF): 简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。
  • 基于近邻的协同过滤
    • 基于用户的协同过滤(User-CF)
    • 基于物品的协同过滤(Item-CF)
  • 基于模型的协同过滤
    • 奇异值分解(SVD)
    • 潜在语义分析(LSA)
    • 支持向量机(SVM)
      小白从0学习推荐系统 ---01 推荐系统简介

协同过滤(CF)推荐方法

  • 基于内容(Content based,CB)主要利用的是用户评价过的物品的内容特征,而CF方法还可以利用其它用户评分过的物品内容。
  • CF可以解决CB的一些局限
    • 物品内容不完全或者难以获得时,依然可以通过其它用户的反馈给出推荐(其实就推荐系统的冷启动问题)
    • CF基于用户之间 对物品的评价质量,避免了CB仅依赖内容可能造成被的对物品质量判断的干扰
    • CF推荐不受内容限制,只要其它类似用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在的联系)
  • 分为两类:基于近邻的协同过滤、基于模型的协同过滤

协同过滤:

  • 基于用户的协同过滤小白从0学习推荐系统 ---01 推荐系统简介
  • 基于物品的协同过滤
    小白从0学习推荐系统 ---01 推荐系统简介

混合推荐

实际网站的推荐系统往往都不是只采用一种推荐的机制和策略,往往是将多个方法混合在一起,从而达到更好的推荐效果,常见的组合方法:

  • 加权混合
    • 用线性公式将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复试验,从而达到最好的推荐效果。
  • 切换混合
    • 切换的混合方式,就是允许在不同的情况(数据量,系统运行状况,用户和物品的数目等)下,选择最为合适的推荐机制计算推荐。
  • 分区混合
    • 采用多种推荐机制,并将不同的推荐结果分为不同的区显示给用户。
  • 分层混合
    • 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。

推荐系统评测

什么是好的推荐系统?

  • 能够让三方共赢的推荐系统就是好的推荐系统。

推荐系统的实验方法

  • 离线实验
    • 通过体制系统获得用户行为数据,并按照一定的格式生成一个标准的数据集
    • 将数据集按照一定的规则分成训练集测试集
    • 训练集上训练用户兴趣模型,在测试集上进行预测
    • 通过事先定义的离线指标评测算法在测试集上的预测结果
  • 用户调查
    • 用户调查需要有一些真实用户,首先让他们在需要测试的推荐系统上完成一些任务;然后我们需要记录他们的行为,并让他们回答一些问题;最后再进行分析。
  • 在线实验
    • AB测试

推荐系统的评测指标

  • 预测准确度、用户满意度、覆盖率、多样性、惊喜度、信任度、实时性、健壮性、商业目标

推荐准确度的评测

  • 评分预测

    • 目前很多网站都有让用户给物品打分的功能,如果知道用户对物品的历史评分,就可以从中学习一个兴趣模型,从而预测用户对新物品的评分
    • 评分预测的准确度一般用均方根误差(RMSE)或平均绝对误差(MAE)计算
      小白从0学习推荐系统 ---01 推荐系统简介
  • Top-N推荐

    • 网站在提供推荐服务时,一般给用户一个个性化的推荐列表,这种推荐叫Top-N推荐
    • Top-N推荐的预测准确率一般用精准率(precision)和召回率(recall)来度量
  • 混淆矩阵
    小白从0学习推荐系统 ---01 推荐系统简介

    • 准确率(accuracy):正确分类的item数与总数之比。
      • accuracy= (TP+TN)/(TP+FP+FN+TN)
    • 精确率(precision):所有被检索到的item中,"应该被检索到"的item占的比例
      • precision= (TP)/(TP+FP)
    • 召回率(recall):所有检索到的item占所有"应该检索到的item"的比例
      • recall= (TP)/(TP+FN)