推荐系统的目的
-
信息过载
-
推荐系统
- 推荐系统是信息过载所采用的措施, 面对海量的数据信息,从中快速推荐出符合用户特点的物品.解决一些人的"选择恐惧症";面向没有明确需求的人
- 解决如何从大量信息中找到自己感兴趣的信息
- 解决如何让自己生产的信息脱颖而出,受到大众的喜爱
- 让用户更快更好的获取到自己需要的内容
- 让内容更快更好的推送到喜欢它的用户手中
- 让网站(平台)更有效的保留用户资源
推荐系统的应用
推荐系统的基本思想
- 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品
- 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品
- 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品
-
知你所想
- 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品
-
物以类聚
- 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品
-
人以群分
- 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品
推荐系统的数据分析
-
要推荐物品或内容的元数据,例如关键字,分类标签,基因描述等;
-
系统用户的基本信息,例如性别,年龄,兴趣标签等
-
用户的行为数据,可以转化为对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等.这些用户的偏好信息可以分为两类:
- 显示的用户反馈:这类是用户子啊网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论
- 隐式的用户反馈:这类是用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等
推荐系统的分类
-
根据实时性分类
- 离线推荐
- 实时推荐
-
根据推荐原则分类
- 基于相似度的推荐
- 基于知识的推荐
- 基于模型的推荐
-
根据推荐是否个性化分类
- 基于统计的推荐
- 个性化推荐
-
根据数据源分类
- 基于人口统计学的推荐
- 基于内容的推荐
- 基于协同过滤的推荐
基于人口统计学的推荐算法
基于人口统计学的推荐算法是一种简单而直观的推荐方法,它主要依赖于用户的基本信息(如年龄、性别、地域等)来进行推荐。这种算法的基本思想是,如果用户的人口统计学特征相似,那么他们的兴趣和偏好也可能相似。因此,可以根据与目标用户人口统计学特征相似的其他用户的行为,来为目标用户推荐物品。
需要注意的是,基于人口统计学的推荐算法虽然简单直观,但它也存在一些局限性。例如,它可能无法捕捉到用户之间的细微差别和深层次的兴趣偏好;同时,对于新用户或冷门物品,由于缺少足够的数据来支持推荐,算法的效果可能会受到限制。因此,在实际应用中,通常需要结合其他推荐算法(如基于内容的推荐、协同过滤推荐等)来提高推荐的准确性和多样性。
基于内容给的推荐算法
基于内容的推荐算法(Content-Based Recommendations,CB)是一种经典的推荐算法,它主要依赖于用户及物品(如电影、书籍、商品等)自身的内容属性和行为属性来进行推荐,而不涉及其他用户的行为。
基于内容的推荐算法通过分析物品的内容和用户的偏好来构建用户画像,从而进行个性化推荐。物品的内容可以包括文本、图像、视频等多媒体信息,而用户的偏好则通常通过用户对物品的评分、浏览历史、购买记录等行为数据来学习。
在推荐过程中,算法会首先提取物品的特征向量,这些特征向量可以是物品的文本描述、标签、关键词等信息的量化表示。然后,算法会构建用户偏好模型,该模型反映了用户对物品特征的喜好程度。最后,算法会根据用户偏好模型和物品特征向量之间的相似度来生成推荐列表,将相似度高的物品推荐给用户。
基于内容的推荐算法在多个领域得到了广泛应用,包括但不限于:
- 电商平台:根据用户的购买历史和浏览行为,推荐相关商品。
- 流媒体平台:通过分析用户的观看习惯,提供个性化的影视推荐。
- 社交媒体:根据用户的浏览历史、点赞和分享行为,推送相关的帖子和内容。
- 新闻聚合平台:通过分析用户的阅读习惯,向用户推送感兴趣的新闻和文章。
基于协同过滤的推荐算法
-
协同过滤(Collaborative Filtering, CF)
-
基于近邻的协同过滤
- 基于用户(User-CF)
- 基于物品(Item-CF)
-
基于模型的协同过滤
- 奇异值分解(SVD)
- 潜在语义分析(LSA)
- 支撑向量机(SVM)
协同过滤(CF)推荐方法
-
基于内容(Content based, BC)主要利用的是用户评价过的物品的内容特征,而CF方法还可以利用其他用户评分过的物品内容
-
CF可以解决CB的一些局限
- 物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐
- CF基于用户之间对物品的评价质量,避免了CB仅依赖内容给可能造成的对物品质量判断的干扰
- CF推荐不受内容限制,只要其他类似用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在联系)
-
分为两类:基于近邻和基于模型
基于用户的协同过滤
基于用户的协同过滤是一种推荐系统算法,它的核心思想是:为某个用户推荐与他相似的其他用户所喜欢的物品。这种方法主要依赖于用户的行为数据,如评分、购买记录、浏览历史等,来发现用户之间的相似性。
基于用户的协同过滤算法的工作流程通常如下:
- 收集用户行为数据:首先,需要收集用户的历史行为数据,如评分、购买记录等。
- 计算用户相似性:然后,使用某种相似性度量方法(如余弦相似度、皮尔逊相关系数等)来计算用户之间的相似性。
- 生成推荐列表:最后,根据用户之间的相似性,为目标用户生成一个推荐列表,该列表包含与目标用户相似的其他用户所喜欢的物品。
需要注意的是,虽然基于用户的协同过滤算法在某些场景下表现良好,但它也存在一些挑战,如冷启动问题(新用户或新物品缺乏足够的行为数据来进行推荐)和稀疏性问题(用户-物品矩阵中的大量缺失值导致相似性计算不准确)。为了克服这些挑战,研究者们提出了许多改进方法,如使用矩阵分解、深度学习等技术来增强推荐系统的性能。
基于物品的协同过滤
基于物品的协同过滤是一种推荐系统算法,其核心思想是:为用户推荐与他之前喜欢的物品相似的其他物品。这种方法主要依赖于用户对物品的行为数据(如评分、购买、浏览等)来发现物品之间的相似性。
基于物品之间的相似性,推荐系统可以为用户推荐新的物品。例如,由于用户'a'喜欢物品'C',并且物品'C'与物品'B'相似(从用户'a'的喜好中推断),系统可能会将物品'B'推荐给用户'a'(尽管在这个例子中,用户'a'已经喜欢物品'B'了,但这是一个简化的示例来说明过程)。同样地,由于用户'b'也喜欢物品'C',系统可能会将与用户'a'相似的其他物品(如物品'B',如果它尚未被用户'b'喜欢)推荐给用户'b'。
需要注意的是,在实际应用中,物品之间的相似性通常是通过计算物品特征之间的相似度来衡量的,这些特征可能是基于物品的属性、用户的行为数据或其他信息提取的。此外,推荐系统还会考虑用户的历史行为、偏好和其他因素来生成个性化的推荐列表。
基于物品的协同过滤算法在推荐系统中非常流行,因为它能够利用用户的历史行为数据来发现物品之间的相似性,并为用户提供个性化的推荐。然而,它也存在一些挑战,如冷启动问题(新物品缺乏足够的行为数据来进行相似性计算)和稀疏性问题(用户-物品矩阵中的大量缺失值导致相似性计算不准确)。
混合推荐
实际网站的推荐系统往往都不是单纯只采用了某一种推荐的机制和策略,往往是将多个方法混合在一起,从而达到更好的推荐效果.比较流行的组合方法有:
-
加权混合
- 用线性公式(linear formula)将集中不同的推荐按照一定权重组合起来,具体权重的值需要再测试数据集上反复实验,从而达到最好的推荐效果
-
切换混合
- 切换的混合方式,就是允许在不同的情况(数据量,系统运行状况,用户和物品的数目等)下,选择最为合适的推荐机制计算推荐
-
分区混合
- 采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户
-
分层混合
- 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐
推荐系统评测
- 让用户更快更好的获取到自己需要的内容
- 让内容更快更好的推送到喜欢它的用户手中
- 让网站(平台)更有效的保留用户资源
推荐系统实验方法
-
离线实验
- 通过体制系统获得用户行为数据,并按照一定格式生成一个标准的数据集
- 将数据集按照一定的规则分成训练集和测试集
- 在训练集上训练用户兴趣模型,在测试集上进行预测
- 通过事先定义的离线指标评测算法在测试集上的预测结果
-
用户调查
- 用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务;我们需要记录他们的行为,并让他们回答一些问题;最后进行分析
-
在线实验
- AB测试
推荐系统评测指标
- 预测准确度
- 用户满意度
- 覆盖率
- 多样性
- 惊喜度
- 信任度
- 实时性
- 健壮性
- 商业目标
推荐准确度评测
-
评分预测
- 很多网站都有让用户给物品打分的功能,如果知道用户对物品的历史评分,就可以从中学习一个兴趣模型,从而预测用户对新物品的评分
- 评分预测的准确度一般用均方根(RMSE)或平均绝对误差(MAE)计算
Top-N推荐
- 网站提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做Top-N推荐
- Top-N推荐的预测准确率一般用准确率(precision)和召回率(recall)来度量
准确率、精确率和召回率
假如某个班级有男生80人,女生20人,共计100人,目标是找出所有女生。现在默认挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了,那么怎样评估他的工作?
将挑选结果用矩阵示意来表示: 定义 TP、FN、FP、TN四种分类情况
| 相关(Relevant),正类 | 无关(NonRelevant),负类 | |
|---|---|---|
| 被检索到 (Retrieved) | TP 选出的人中,其中20人是女生 | FP 错误把30个男生当女生选出 |
| 未被检索到 (Not Retrieved) | FN 未选出的人中,0人是女生 | TN 未选出的人中,有50人非女生 |
精确率、准确率、召回率
- 准确率(accuracy)——正确分类的item数与总数之比
- 精确率(precision)——所有被检索到的item中,"应该被检索到"的item占的比例
- 召回率(recall)——所有检索到的item占所有"应该检索到的item"的比例
总之,随着互联网技术的不断发展,推荐系统将在未来发挥越来越重要的作用,不仅能够改善用户体验,促进信息的有效流通,也将成为企业增长的重要驱动力。面对这一趋势,深入理解和掌握推荐系统的原理与实践,对于从事互联网行业的专业人士来说至关重要。