taiyangqi的个人博客分享 http://blog.sciencenet.cn/u/taiyangqi

博文

推荐系统与推荐方法

已有 6309 次阅读 2014-10-30 09:29 |个人分类:读书笔记|系统分类:科研笔记| 推荐系统, 协同过滤, 推荐方法

在这信息过载的时代,无论是信息生产者还是信息消费者都遇到了很大的挑战:对于信息消费者而言,从海量的信息中找到自己感兴趣的信息是一件非常困难的事情;对信息生产者而言,让自己生产的信息脱颖而出,受到广泛用户关注也是非常困难的事。推荐系统就是为了联系用户和信息,一方面帮助信息消费者发现对自己有价值的信息,另一方面让信息生产者生产的信息能够有针对性地展现在对它感兴趣的用户面前,实现用户和信息生产者间的共赢。推荐系统是能够通过用户行为的变化来改变用户浏览所看到的东西的系统。

推荐的思想如今已经得到广泛的使用,如相关搜索、话题推荐、电子商务的各种商品推荐、社交网络的交友推荐。

有代表性的企业如下:

  1. 亚马逊的个性化产品推荐,号称推荐之王

  2. Netflix的视频和DVD推荐(《纸牌屋》的成功拍摄是它大数据应用的另一个神话)

  3. Pandora的音乐推荐

  4. Facebook的好友推荐

  5. GoogleReader的个性化阅读

  6. 各种个性化广告(亚马逊公司正在追求的行为广告)

  7. Foursquare的基于位置的服务。(餐馆推荐等)

  8. 雅虎垃圾邮件智能过滤。

当前主要推荐方法对比

推荐方法

定义

优点

缺点

基于内容推荐

认为用户会喜欢和他以前喜欢的物品在内容上相似的物品

没有冷启动和稀疏问题;没有新项目问题;透明性

新用户问题;不能显式利用其它用户的数据

协同过滤推荐

不依赖于用户的属性信息和物品的内容信息,仅仅通过分析大量的用户对物品的行为数据,从中找出特定行为模式,据此来预测用户的兴趣并做出推荐

新的兴趣点发现、不需要领域知识;推荐个性化;能处理复制的非结构化对象

新用户问题;质量取决于历史数据;初始推荐质量差

基于关联规则推荐

以关联规则为基础,把已购买商品作为规则头,规则体为推荐对象。

能发现新的兴趣点;不需要领域知识

规则的抽取好时且难;个性化程度低;产品名同义性问题

基于效用推荐

根据用户资料创建效用函数,基于效用函数做推荐

无冷启动和稀疏问题;对用户偏好变化敏感;加入考虑非产品特性问题

用户需提供多种信息以形成效用函数;推荐是静态的,灵活性差;

基于知识推荐

根据用户知识结构建模从而进行推荐

能考虑非产品特性

知识难以获取;推荐是静态的


推荐系统的性能优劣,很大程度上取决于推荐方法,它是整个推荐系统的核心和关键部分。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。

一、基于内容推荐

基于内容的推荐(Content-based Recommendation)根据用户历史信息(如评价、分享、收藏过的文档)构成用户偏好文档,计算推荐项目与用户偏好文档的相似度,将最相似的项目推荐给用户。它是建立在项目的内容信息上作出推荐的,而不需要依据其他用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户感兴趣的资料。

常用方法:常用决策树、神经网络和基于向量的表示方法来学习用户的资料形成用户资料模型。基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

例子:在电影推荐中,基于内容的推荐系统首先分析用户已经看过的打分比较高的电影的共性(演员、导演、风格等),再推荐与用户感兴趣的电影内容相似度很高的其他电影。

优点:

1.用户独立性:不需要其它用户的数据,没有冷启动问题和稀疏问题。

2.个性化:能为具有特殊兴趣爱好的用户进行推荐。

3.能推荐新的或不是很流行的项目,没有新项目问题。

4.透明性:通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。

5.已有比较好的技术,如关于分类学习方面的技术已相当成熟。
缺点:

1.内容过于规范:只能发现和用户已有兴趣相似的资源,不能为用户发现新的感兴趣的资源。

2.新用户问题:当一个新的用户没有货很少对商品进行评分时,系统很难向用户提供可信的推荐

3.要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。
二、协同过滤推荐

协同过滤推荐(Collaborative Filtering Recommendation)基于一组兴趣相同的用户或项目进行的推荐,根据邻居用户(与目标用户兴趣相似的用户)的偏好信息产生对目标用户的推荐列表。分为基于用户的协同过滤算法和基于项目的协同过滤算法。

1)基于用户(user-based)的协同过滤算法:在一个在线个性化推荐系统中,当一个用户A需要个性化推荐时,可以找到和他有相似兴趣的其他用户,然后把那些用户 的而用户A 听说过的物品推荐给A。(用户相似性度量—最近邻居查询—预测评分)。

UserCF给用户推荐那些和他们有共同兴趣偏好的用户喜欢的物品,它的推荐结果着重反映和用户兴趣点类似的小群体热点,它的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度。

2)基于项目(item-based)的协同过滤算法:主要通过分析用户行为记录计算物品之间的相似度,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都喜欢物品B。

ItemCF给用户推荐那些和他之前喜欢的物品类似的物品,它的推荐着重用户的历史兴趣,它的推荐更加个性化。

优点:

1.能够过滤难以进行机器自动内容分析的信息,如艺术品,音乐等。

2.共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。

3.有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是协同过滤和基于内容的过滤一个较大的差别,基于内容的过滤推荐很多都是用户本来就熟悉的内容,而协同过滤可以发现用户潜在的但自己尚未发现的兴趣偏好。

4.能够有效的使用其他相似用户的反馈信息,较少用户的反馈量,加快个性化学习的速度。

   缺点:

   1.用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题);

      2.随着用户和商品的增多,系统的性能会越来越低(即可扩展性问题);

      3.如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(即最初评价问题)。

        三、基于关联规则推荐

基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。关联规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。比如购买牛奶的同时很多人会同时购买面包。算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。

以喜欢图书A的用户还喜欢其他哪些图书为例,说明推荐流程:

1.数据清理:对用户和图书分别计数,过滤掉一些超不活跃的用户和超冷门的图书

2.计算两两图书之间的支持度、置信度、提升度,根据最低支持度、最低置信度、最低提升度剪枝,把低于最小值的规则扔掉

3.对图书A进行推荐:找出图书A的所有规则,按照置信度降序排序,Top-N即为和图书A最相关的前N本图书

四、基于效用推荐

基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况(不以该物品的价格为基础,而是该物品对人的有用程度,或是人对该物品的价值的认可程度)上计算的,其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(ProductAvailability)等考虑到效用计算中。

五、基于知识推荐

基于知识的推荐(Knowledge-basedRecommendation)在某种程度是可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,它可以是用户已经规范化的查询,也可以是一个更详细的用户需要的表示。

例子:用户一般隔好久才会购买相机,系统不可能构建用户记录或推荐其他人喜欢的相机,只能推荐畅销的机型,因此系统需要而外的因果知识生成推荐,这些有关用户和商品效用的额外信息(一般由用户提供),如用户喜欢冲洗大照片,那么高分辨率相机会好点,系统会询问用户有关特征的相对重要性,如分辨率是不是比重量更重要。

六、组合推荐

由于各种推荐方法都有缺陷,所以实际运用中,组合推荐常被采用。通常是基于内容推荐和协同过滤推荐的组合。

组合方式有:

1.加权(Weight):加权多种推荐技术结果

2.变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术

3.混合(Mixed):同时采用多种技术给出多种推荐结果为用户提供参考

4.特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用

5.层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐

6.特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中

7.元级别(meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。




参考:推荐系统实践  项亮

      推荐系统-项亮博士论文






https://blog.sciencenet.cn/blog-1191257-839745.html

上一篇:apriori关联挖掘算法的mapreduce并行化
下一篇:[转载]网络爬虫基本原理
收藏 IP: 218.66.59.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 09:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部