推荐算法介绍

来源:互联网 发布:windows最新软件版本 编辑:程序博客网 时间:2024/06/03 17:55

        随着计算机领域技术的高速发展,电子商务时代的普及,个性化的推荐系统深入生活应用的各个方面。个性化推荐算法是推荐系统中最核心的技术,在很大程度上决定了电子商务推荐系统性能的优劣。而协同过滤推荐是个性化推荐系统应用最为广泛的技术,协同过滤推荐主要分为基于用户的协同过滤推荐、基于项目的协同过滤推荐和基于模型的协同过滤推荐。

一、根据目标用户推荐

        1、大众行为的推荐引擎:基于系统所有用户的反馈,对每个用户都给出同样的推荐;

        2、个性化的推荐引擎:系统根据不同用户的口味和喜好分别给出比较精确的推荐;

二、根据推荐模型推荐

        1、基于物品和用户本身推荐:将每个用户和每个物品当作独立的实体,预测每个用户对每个物品的喜好程度;

        2、基于关联规则推荐:数据挖掘中的一个经典问题,比如“购物篮问题”,即发现哪些物品经常会被同时购买或者用户购买了一些物品后还倾向于购买哪些物品;

        3、基于模型的推荐:机器学习中的一个典型问题,根据已有的用户喜好历史信息作为训练样本,训练出一个预测用户喜好的模型,然后基于模型计算推荐;

三、根据数据源推荐

        1、基于人口的统计学推荐(Demographic-based Recommendation):根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户,如图所示:


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

        2、基于内容的推荐(Content-based Recommendation):根据物品或内容的元数据,发现物品或内容的相关性,然后基于用户以前的喜好记录推荐给用户相似的物品,如图所示:


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

        3、基于协同过滤的推荐(Collaborative Filtering-based Recommendation):它的原理就是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐,即利用集体的智慧进行推荐,比如你想看一部电影但不知道哪部,这时大部分人会问周围的朋友,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。基于协同过滤的推荐可以分为三个子类:基于用户的推荐(User-based Recommendation)、基于项目的推荐(Item-based Recommendation)和基于模型的推荐(Model-based Recommendation)。

三种方法的区别:


四、基于协同过滤的推荐

1、基于用户的协同过滤推荐(User-based Collaborative Filtering Recommendation)

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


        上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户 A 喜欢物品 A、物品 C,用户 B 喜欢物品 B,用户 C 喜欢物品 A 、物品 C 和物品 D;从这些用户的历史喜好信息中,我们可以发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D,那么我们可以推断用户 A 可能也喜欢物品 D,因此可以将物品 D 推荐给用户 A。
        基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

2、基于项目的协同过滤推荐(Item-based Collaborative Filtering Recommendation)

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


        上图表明基于项目的协同过滤推荐的基本原理,用户A喜欢物品A和物品C,用户B喜欢物品A、物品B和物品C,用户C喜欢物品A,从这些用户的历史喜好中可以认为物品A与物品C比较类似,喜欢物品A的都喜欢物品C,基于这个判断用户C可能也喜欢物品C,所以推荐系统将物品C推荐给用户C。
        基于项目的协同过滤推荐和基于内容的协同过滤推荐都是基于物品相似度预测推荐,只是相似度度量的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。

==========================================================================================

UserCF和ItemCF的区别:

表格的解释:

(1)假设目标用户的喜好分为3个领域A、B、C,其中A是他主要喜欢的领域,则UserCF和ItemCF有以下区别:

UserCF:会将A、B、C三个领域中比较热门的东西推荐给目标用户,因为系统会找到与目标用户兴趣相似的其他用户然后将其他用户关注的东西推荐给目标用户,所以是某个群体内的热门物品;同时也反应出如果某些物品没有被该群体关注,则不会推荐给该群体,即推荐长尾能力的不足;

ItemCF:只推荐A领域的东西给目标用户,因为目标用户的主要兴趣点在A领域,这样他有限的推荐列表中就会包含该领域一定数量不热门的物品,所以推荐长尾能力较强,但多样性不足;

由此可见,以前两种推荐都有其合理性,但单独使用不是最好的选择,我们的推荐应该尽可能同时具备长尾性和多样性;

(2)针对新闻类网站,可以采用UserCF。因为用户大都关注热门新闻,个性化要求不强,热门程度和实效性是推荐的重点;ItemCF需要维护一张物品相似度表,当物品更新速度较快时,表的维护成本太高;

针对电商、音乐、图书类网站,可以采用ItemCF。因为用户的兴趣喜好相对稳定,个性化要求较高,同时对实效性要求不高;

===========================================================================================

3、基于模型的协同过滤推荐(Model-based Collaborative Filtering Recommendation)

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

五、参考文献

1、项亮的《推荐系统实践》https://book.douban.com/subject/10769749/

2、探索推荐引擎内部的秘密http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html

0 0
原创粉丝点击