推荐系统基础知识

来源:互联网 发布:python list太大拆分 编辑:程序博客网 时间:2024/06/16 05:28

1      推荐系统基础知识

1.1    推荐模型类别

推荐模型类别很多,调研了几种比较常见、应用比较多的类型

1.1.1基于人口统计学的推荐

1.1.1.1 机制

基于人口统计学的推荐机制是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户

图文说明:


系统对每个用户都有一个用户 Profile的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的Profile计算用户的相似度,可以看到用户A Profile和用户 C一样,那么系统会认为用户 A C 是相似用户,在推荐引擎中,可以称他们是邻居;最后,基于邻居用户群的喜好推荐给当前用户一些物品,图中将用户A喜欢的物品 A 推荐给用户 C

1.1.1.2优缺点

优点:

因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有冷启动(Cold Start的问题。这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。

缺点:

这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。在一些电子商务的网站中,这个方法可以给出一些简单的推荐。

 

1.1.1  基于内容的推荐

1.1.1.1 机制

其主要根据用户之前的喜好,推荐相似的物品

使用item的内容或者属性,选择给定item的相似的item列表,这些属性一般为文本内容,包括题目、名、标签以及一些产品的元信息,通常也包括一些media信息,比如图像、音频等等

图文说明:


图中给出了基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电影间的相似度,因为类型都是爱情,浪漫电影 A C被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C

1.1.1.1 优缺点

优点:

在于它能很好的建模用户的口味,能提供更加精确的推荐。

缺点:

1.       需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度。在现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。

2.       物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。

3.       因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。

虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点,有些站点还请专业的人员对物品进行基因编码

1.1.2  协同过滤推荐

协同过滤算法算是推荐系统中最经典的算法了,也称为基于领域你好 ---的算法。协同过滤牵涉到用户和商品的交互信息,也就是用户行为,而一般用户对于商品的行为反馈有:

  显性反馈行为——用户明确表现出对某项产品和的喜好,比如用户对商品的打分、评论等信息。

  隐性反馈行为——不能明确代表用户对产品喜好的行为,比如页面浏览行为等,这类数据量的比较多,常常伴有大量的噪音,需要经过处理和转化才可能有实际的用途。

1.1.2.1 基于用户的协同过滤

基于用户的协同过滤推荐算法先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的喜好产生向目标用户的推荐。基本原理就是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源。

图文说明:


上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户A喜欢物品A、物品C,用户B喜欢物品B,用户C喜欢物品A、物品C和物品D;从这些用户的历史喜好信息中,我们可以发现用户A和用户C的口味和偏好是比较类似的,同时用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户

基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于邻居用户群计算推荐,但它们所不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

1.1.1.1 基于物品的协同过滤

根据所有用户对物品或者信息的评价,发现物品和物品之间的相似度,然后根据用户的历史偏好信息将类似的物品推荐给该用户。

图文说明:


上图表明基于项目的协同过滤推荐的基本原理,用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A,从这些用户的历史喜好中可以认为物品A与物品C比较类似,喜欢物品A的都喜欢物品C,基于这个判断用户C可能也喜欢物品C,所以推荐系统将物品C推荐给用户C

 

基于物品的协同过滤和基于内容推荐的相同点都是要计算两个物品的相似度,但不同点是前者是根据两个物品被越多的人同时喜欢,这两个物品就越相似,而后者要根据物品的内容相似度来做推荐。由此可以看到两种方法的不同点在于计算两个物品的相似度方法不同,一个根据外界环境计算,一个根据内容计算。

 

1.1.1.1 基于模型的协同过滤

基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。

 

1.1.1.2 协同过滤优缺点

优点:

它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。

这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好

缺点:

方法的核心是基于历史数据,所以对新物品和新用户都有冷启动的问题。

推荐的效果依赖于用户历史偏好数据的多少和准确性。

在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

对于一些特殊品味的用户不能给予很好的推荐。

由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

推荐的效果依赖于用户历史偏好数据的多少和准确性。

在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

对于一些特殊品味的用户不能给予很好的推荐。

由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

 

1.1.2混合的推荐

在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。关于如何组合各个推荐机制,这里讲几种比较流行的组合方法。

1.1.2.1 加权的混合

用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。

1.1.2.2 切换的混合

前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。

1.1.2.3 分区的混合

采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。

1.1.2.4 分层的混合

采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。

1.2    推荐系统评测

1.2.1  推荐系统资料的评测指标

用户满意度、预测准确度、覆盖率、多样性、新颖度、惊喜度、信任度、实时性、健壮性、商业目标。然后作者说,在设计推荐系统的时候,要尽量的考虑这些指标,特别是推荐的结果尽量满足多样性、新颖、能够惊喜就更好了。

个人观点:评测推荐结果只有一个指标就够了,那就是商业价值,能够提升商业价值,给业务带来更多利益的推荐系统,就是好的推荐系统。

推荐的多样性、新颖度,如果多样化的推荐结果能够提升价值转换,那我们就在设计推荐系统的时候适当的提高多样性的权重,同样,如果新颖的东西能够提升价值转换,那么我们就提升新颖的权重。这才是回归推荐系统的本质!

以下是几种评测方式:

离线实验

在推荐系统中,利用已经现成的用户行为轨迹(即推荐之后是否点击之类的数据)

用户调查

有一定参考性,但是前提是调查的量要足够,如果取的量不够,其意义是不大的。所以,这是一个耗费巨大成本的工程,在实际的操作中并不可取。

在线实验

严格来说是AB测试。把数据分流,一部分数据走A推荐算法,一部分走B推荐算法,然后收集AB算法的推荐结果导致的用户行为,根据核心价值一对比结果,一目了然。

0 0
原创粉丝点击