当前位置: 首页 > 推荐系统 > 正文

推荐系统在各大公司中的应用

1 星2 星3 星4 星5 星 (2 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

1.基于Item-based推荐算法

基于用户的协同推荐算法随着用户数量的增多,计算量成线性加大,其性能会越来越差。而对于 Web 应用系统,响应速度绝是影响用户体验的最重要因素之一。这一点极大的限制了基于用户的协同过滤技术在实际系统中的使用。Amazon 更多地使用了基于项目(Item-based)的协同过滤技术,而且随着 Amazon 的成功,Item-based 方法也大为流行起来。豆瓣主要使用的也是 Item-based 方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  /**
     * Get recommended items by user's id
     *
     * @param int $userId
     * @param int $limit
     * @return array
     */
    public function getRecommendedItemsByUser($userId, $limit = 20)
    {
        $sql = 'select s.item_id2 from oso_slope_one s,oso_user_ratings u where u.user_id = '
             . $userId
             . ' and s.item_id1 = u.item_id and s.item_id2 != u.item_id group by s.item_id2 order by sum(u.rating * s.times - s.rating)/sum(s.times) desc limit '
             . $limit;
         return  $this->_db->fetchCol($sql);
    }

2.潘多拉(Pandora)和友播(Yobo)侧重基于内容层面的过滤,而Last.fm、豆瓣、8box更侧重协同过滤方式。

关于基于内容的过滤,以潘多拉为例,大致意思如下:

Pandora 弄了一个音乐基因组工程的技术后台,这些基因抓住了每首歌曲独一无二的特质——从旋律、调式、节奏,到配器、编曲、歌词,当然,还有声乐融合的奇妙世界。它关注的不是乐队看起来如何,他们应该从属于什么类型,或者谁买了他们的唱片——它关注的是每首歌听起来究竟如何。

  在过去5年多的时间里,我们仔细聆听了10000名不同艺术家的歌曲,每次分析一首歌的某一种音乐特质。我们夜以继日地推进这项工作,尽力涵盖那些来自全世界各个工作室、俱乐部和车库的新鲜作品。

我的理解:如果旋律,调式,节奏等这些内容不好提取出来,歌词、歌曲的曲风、歌曲的歌手等这些歌曲的属性还是可以提取出来的,这样可以根据歌词、歌曲的曲风、歌曲的歌手等属性来向用户推荐相关的歌曲。

基于内容过滤的系统其优点是简单、有效。其缺点是特征提取的能力有限,过分细化,纯基于内容的推荐系统不能为客户发现新的感兴趣的资源,只能发现和客户已有兴趣相似的资源。这种方法通常被限制在容易分析内容的商品的推荐,而对于一些较难提取出内容 的商品,如音乐CD、电影等就不能产生满意的推荐效果。

我的理解:如果某正在听王菲的歌,如果按照歌手来推荐,则推荐结果中只是出现王菲的歌曲,这样不能为用户发现新的感兴趣的资源(也许此用户还喜欢韩红的歌、蔡依林的歌等等),推荐结果的面有点窄。

3.协同过滤(Collaborative Filtering)技术,是推荐系统中应用最为广泛的技术之一,它基于一组兴趣相同的用户进行推荐。协同过滤基于这样的假设:为用户找到他真正感兴趣的内容的好方法是,首先找他与他兴趣相似的用户,然后将这些用户感兴趣的内容推荐给此用户。这个基本思想是不是和现在颇为流行的“口碑传播(word-of-mouth)”有点儿 类似?其实这个非常直观,相信大家都有体会,在现实生活里,对自己最有效的信息,往往是来自于朋友们的推荐。

我的理解,比如用户a听过歌曲传奇,用户b也听过歌曲传奇,同时用户b也听过歌曲天路,则将天路推荐给用户a,没准用户a喜欢这首歌。

4.三种推荐方式
当我们知道自己要什么的时候,我们要做的是“Search”,比如我喜欢易中天的《品三国》,我可以 google一下,看看它会给我些什么不一样的东西。这个时候,我的目的很明确,Search 围绕我的目的,可以作很多。但更多的时候,我其实并不是明确地知道自己想要什么,我只是无聊,我不知道应该 Search 什么,我就是想随便“翻翻”。这个“翻翻”就是 Alex 文章里面说到的 “Browse”。Alex 提到了很重要的一点,在 “Browse” 的状态下,用户“需要一些建议”(open to suggestions)。这正是需要 Recommender Systems 发挥作用的时候!

Alex 总结了 3 种推荐模式,它完全是从应用的角度划分的,但基本是可以和我之前提到的学术界的 3 种划分相对应的。

个人化推荐(personalized recommendation)—— 基于个人以前的行为模式进行推荐。
社会化推荐(social recommendation)—— 基于和你相似用户以前的行为模式进行推荐。
项推荐(item recommendation)—— 基于项本身进行推荐。

当然还有这 3 种混合模式的推荐。而且通常下,一个好的推荐系统,必然也是多种推荐方法相混合。觉得推荐模式的是数据!我们不讨论 Alex 的划分。他分析了 3 个非常成功的案例:Amazon、Pandora和 Del.icio.us。

Amazon 是当之无愧的“推荐之王(King of recommendation)”,无论是从推荐的实际效果还是从对推荐的重视程度上来看,都很难再找出一个能和 Amazon 比肩的应用。“据说(rumored)” Amazon 30% 的销售是依靠推荐带来的!Amazon 自然是根据需要选择了不同的推荐方法,Alex 的分析基本正确。Via

我的理解:
1.个人化推荐,比如我在某音乐网站听过王菲、张信哲、孙燕姿、梁静茹、齐秦的歌曲,则推荐结果中应该出现的是此5个歌手的歌曲或与此5个歌手风格类似的歌曲。
2.不知道是不是基于用户的协同过滤算法?
3.不知道是不是基于Item的协同过滤算法?

4.推荐引擎的价值

The Art, Science and Business of Recommendation Engines清晰地解释了推荐引擎的价值——是在线企业差异化竞争的利器。

原文指出用户上网行为分成两类:搜索和浏览。当消费者清楚地知道自己要找什么商品时,他的上网行为是搜索;如果用户并不清楚要找什么,只是逛一逛,此时他是在浏览,这是商家抓住消费者的有利时机,因为他并没有决定要买什么,他愿意听多种建议,推荐该粉墨登场了。

根据The Art, Science and Business of Recommendation Engines,推荐方式分成四类:

个性化推荐(Personalized recommendation),根据某个人过去的消费行为推荐商品。

社会化推荐(Social recommendation),根据类似的消费者的过去的消费行为推荐商品。当前社交网络(SNS)正被热炒,提高用户注册量、增加用户活跃程度是 SNS发展的第一阶段,这个阶段也许即将结束了,下一个阶段是挖掘用户行为数据和社交关系图谱,用户在SNS系统中的活动数据是一个宝库,如果利用合适的 算法进行挖掘,社会化推荐就更有效了。

物品推荐(Item recommendation),根据物品(商品)的特性进行推荐
上述三种方式的结合
The Art, Science and Business of Recommendation Engines以使用Amazon的体验为例详细讲解了上述四类推荐的案例。Via

我的理解:

1.个性化推荐,与9中是一样的。
2.社会化推荐,此处的社会化推荐与9里面的社会化推荐的解释不太一样,感觉此处的社会化推荐更加合理一些。

3.物品推荐,应该就是基于Item的协同过滤。

5.基于内容和基于协同过滤两种方式的区别

无论从用户还是服务提供者的角度出发,这两种推荐方式都有各自明显的优劣。如果采用“基于内容的过滤”,那么在完成内容和用户互相匹配的过程中,就可能出现“越读越窄”、“越听越窄”、“越看越窄”的问题,提供的内容完全与用户兴趣点相吻合,而没有发散。

“协同过滤”在很大程度上避免了这个问题,但是他需要用户达到一定数量级之后才能发挥出网站创建者预想的效果,这种“网络效应”使得同一市场上的后来者很难找到切入的机会。而用户一旦不能得到“好处”,可能迅速离去,而来不及提“利他”的后话。

基于Amazon研究

据称,Amazon 有35%的页面销售源自于她的推荐引擎。

Amazon的推荐引擎,是一个需要用户一定参与的系统,用户的输入将对推荐的内容起到指导作用;如果指导有方,则会提供更符合个人品味的推荐。

她会记录你已在Amazon购买的历史、你最近的浏览历史(根据活跃度调整,可拒绝此类跟踪),并需要主动告知引擎你对某些商品的打分(此打分不同于评价,只用于推荐引擎、且对他人不可见),和你已拥有的商品(用于排除这个推荐)。根据这些数据来做出判断

另外,Amazon的推荐引擎并不只有这一块内容,在浏览、tag、商品页面都有很多推荐,可以说推荐无处不在。从她的功能点来看,似乎可以分为三块内容:以人为着眼点、以物为着眼点以购物过程为着眼点。同时还采用了跨类推荐,对不同类的按热度排列。

基于豆瓣的研究

大家可以看这里http://www.slideshare.net/clickstone/ss-2756065。

基于八音盒的研究

八宝盒(www.8box.cn)是一个基于音乐分享及偏好而建立起来的SNS服务, 利用多年积累研发的推荐引擎,8box能帮你找到可能喜欢的音乐,帮你分析出哪些用户是你的音乐“同好”。八音盒通过你推荐、试听、打分、评论音乐的过程,学习你的口味,并依此帮助过滤出你喜欢的音乐。发现音乐的最好途径是通过你的同好。八音盒能够根据你的口味,推荐相似的用户给你。应该说“个性化推荐引擎 –IntelliProvider”是音乐八音盒的技术基石。

简单的来说,8box推荐音乐的依据有三种:

1.依靠音乐本身的属性信息判断音乐的相关性,做出推荐。

2.依靠听众对这个音乐的评价和反映来推断音乐的相关性,做出推荐。

3.依靠分析用户的行为,发掘出用户的音乐同好,从而做出推荐。

基于遗传学的推荐系统-潘朵拉(Pandora)

音乐染色体组项目的推出,目的在于把音乐解析成为最基本的基因组成。它的基本想法是:我们因为音乐的某些特性喜欢音乐--那么为什么不能根据音乐的某些相似之处设计出一套推荐系统呢?这类推荐系统应该属于基于产品的推荐。但具有深刻创新意义的是,产品(音乐产品)的相似性,通过“基因”组成来衡量。

这种“即刻满足感”是很难抗拒的。因为pandora 了解音乐相似性背后的因素,它不需要了解用户的好恶,就可以把用户黏住。确实,pandora 需要把握用户的口味或记忆--但这正是蕴藏在音乐本身的dna中了。当然pandora有时并不完美,会播放不对用户口味的音乐。但这很少发生。

基于标签的推荐系统-Del.icio.us

非常简明的推荐系统,它指基于一个基因--那就是一个标签。

6.当当网的推荐算法

Item to Item
Item based Personalized Recommendation
User to User
User based Personalized Recommendation
Content to Content
Content based matching
Association Rules
Classical Data Mining algorithm
Social Recommendation
Friends based Personalized Recommendation

本文固定链接: http://www.chepoo.com/recommendation-system-in-major-companies-in-the-application.html | IT技术精华网

【上一篇】
【下一篇】

推荐系统在各大公司中的应用:等您坐沙发呢!

发表评论