读书频道 > 网站 > 网页设计 > 数据挖掘:你必须知道的32个经典案例
5.5 协同过滤——构建个性化推荐系统的经典算法
15-12-22    奋斗的小年轻
收藏    我要投稿   
本书是为广大数据分析师量身定做的入门读物,它旨在帮助读者站到大数据时代的制高点。数据分析处于统计学、计算机信息科学、运筹学、数据库等多种领域的交叉地带,大数据时代的到来更是大大丰富了数据分析的内涵立即去当当网订购
协同过滤是最经典也是最著名的一类推荐算法,现如今流行于市面上的推荐算法大部分都是协同过滤算法或协同过滤算法的升级版。本小节的着重点在于协同过滤是如何依靠集体智慧工作的,以及几种不同的相似度计算方法对协同过滤算法效果的影响。通过阅读本小节,读者将完全掌握协同过滤算法的理论和应用。

5.5.1  协同过滤算法为什么这么流行

推荐系统和搜索引擎的作用十分相似,都用于替用户在浩瀚的网页中抓取用户感兴趣的内容。个性化推荐系统总是被应用在各类购物网站和新闻网站上,它也可以用于推荐电影和广告。考虑到如今的互联网上充斥着各种各样的广告,而其中一大部分都是基于协同过滤做出的推荐,我们大概可以想象到协同过滤算法应用的范围之广。
协同过滤算法起源于1992年,被Xerox公司用于个性化定制邮件系统。类似于如今知乎、果壳会为你发送个性化的邮件那样,Xerox公司也想知道它的用户对什么感兴趣,好给每个人发送个性化的邮件。为了达到这个目的,Xerox公司的用户需要在数十种主题中选择三到五种主题,协同过滤算法根据不同的主题过滤邮件,最终达到个性化的目的。
1994年时,协同过滤算法中第一次引入了集体智慧的概念。集体智慧指的是利用大基数人群和数据获取知识。比如维基百科就是一个典型的集体智慧案例,它允许用户贡献自己的知识,从而建造了世界上最全面的百科网站,比任何一本百科大全都要全面且准确。
协同过滤算法尝试在算法中加入集体智慧的元素。根据这一想法完成的GroupLens系统主要用于新闻筛选,在这个系统中,每一个用户阅读完一条新闻后都会给出一个评分,GroupLens系统负责将这些评分收集起来,并根据这些评分确定新闻要不要推送出去,以及应该推送给谁。
Xerox公司人为的确定邮件主题,工程师需要明确的告诉程序每封邮件的主题是什么,再将邮件发给对这些主题感兴趣的人。而GroupLens系统则首次利用了集体数据,即根据用户的反应让程序自主学习每条新闻的主题是什么。这两种做法有本质上的差别,前者要耗费更多的人力资源,同时准确度也不高,基本属于硬编程的范畴;而后者对人力资源的需求并不高,同时拥有较高的准确度,已经跨入机器学习的行列。
继GroupLens系统后,协同过滤算法迅速占领了推荐系统的市场。推荐系统需要同时具备速度快和准确度高两个特点,它必须在用户打开网站的几秒钟内做出反应,同时推荐的东西必须是用户感兴趣的。这两个条件无论哪一个得不到满足,推荐系统都是没有意义的。而协同过滤算法同时满足了这两个条件,这就是为什么协同过滤算法经久不衰的原因。

5.5.2  基于用户和基于产品的协同过滤

协同过滤的核心思想十分简洁,可以简单概括为如下两道逻辑推理题:已知用户A喜欢的品牌用户B都喜欢,又知用户A喜欢品牌C,推理可知用户B也喜欢品牌C;已知喜欢品牌X的用户都喜欢品牌Y,又知用户Z喜欢品牌X,推理可知用户Z也会喜欢品牌Y。 
这两种协同过滤的思想都在于通过相似性来过滤产品,完成个性化推荐。前者的核心在于寻找相似的用户,也称为基于用户的协同过滤;后者的核心在于寻找相似的产品,也称为基于产品的协同过滤。
  真维斯 伊莎贝尔 阿迪达斯 达芙妮 森马
A 4 5 4 5 4
B 3 4 4 2 3
C 2 3 3 4 3
D 3 5 4 - 3
E 4 3 3 4
图5.10  用户对服装品牌的评分
图5.10是五个用户对五种服装品牌的评分,其中用户D对达芙妮的评分是一个缺失值。我们想要根据这张表预测用户E对品牌森马的评分。为了找出用户之间或产品之间的相似度,我们使用余弦相似度作为衡量标准,余弦相似度的计算公式为
首先尝试基于用户的协同过滤算法。根据真维斯、伊莎贝尔,阿迪达斯和达芙妮这四个品牌,可以计算得到用户A、B、C与用户E的余弦相似度分别是。用户D对于达芙妮的缺失值我们使用平均值来代替,即,则用户D与用户E的相似度为。将相似度作为权重求用户A、B、C、D对森马评分的平均值,则用户E对于森马的评分为
然后尝试基于产品的协同过滤算法。也就是根据用户A、B、C、D对五个品牌的评分,找出每个品牌和森马的相似度,再将相似度作为权重计算用户E对其他品牌的平均分。此时,用户D对达芙妮的评分应为。品牌真维斯、伊莎贝尔、阿迪达斯、达芙妮和森马的相似度分别为0.99,0.98,0.98,0.97,则最终计算得到用户E对森马的评分为
由于用户对服装品牌的评分标准并不相同,有的用户对所有的品牌打分都比较高,这就会造成误差,因此我们在余弦相似度的计算中减去用户评分的平均数,从而得到使用修正的余弦相似度,此外皮尔逊相关系数等指标也可以用来衡量产品之间或用户之间的相关度。
用途 公式名称 对用户偏好关注度
预测评分准确度 平均绝对误差
平均平方误差
均方根误差
标准平均绝对误差
预测评分关联度 皮尔逊相关
斯皮尔曼相关
Kendall’s Tau
基于距离的标准指标
图5.11  相关度计算方法一览表
图5.11给出了八种相关度计算方法在用途和用户偏好度方面的比较表。其中,前四种方法适用于对评分精确度要求较高的系统,后四种方法则适用于不要求评分精确度的系统。对用户偏好的关注度则指推荐系统是倾向于给用户提供较小众化但用户较可能感兴趣的东西(如果猜对了用户会非常高兴),还是提供较热门且用户很可能感兴趣的东西(就算猜对了用户也不会感到惊喜)。
对图5.10中的数据,基于用户计算余弦相关度时和基于产品计算余弦相关度时所得到的评分有较大的差异,同样的,使用其他计算方式时也会得到差异较大的结果。因此我们需要根据具体情景来选择相关度的计算公式。除了考虑公式是否对于评分精确度要求较高外,还可以考虑系统是否较为稳健,即对异常值是否不敏感,以及是否依赖于推荐列表的长度。

5.5.3  协同过滤算法小结

协同过滤算法是利用集体智慧编程的一个典型算法,但它不同于普通集体智慧算法的地方在于协同过滤算法保留了一定的个体特征,因此它可以用于预测每个人的品味偏好。它的优点主要在于它能够基于抽象概念和信息来过滤某些难以分析的内容,这可以提高电商网站服务的质量,长尾效应证明了这种算法有巨大的市场。
在以往,经济学家认为大部分人的品牌偏好都是类似的,即市场被几个大品牌占据,通常是20%的大品牌占据了80%的市场,而其他众多小品牌则占据剩下的20%市场,这就是著名的“二八法则”。但长尾效应认为其实每个人的品牌偏好都或多或少的与主流有所不同,如果能正确地引导每一个人找到最适合自己的品牌,那么众多小品牌所占据的市场份额将会增大,甚至可能超过50%。这种效应在电商网站上更加明显,这是因为顾客在电商网站上能够更容易地浏览更多的品牌。
协同过滤算法和长尾效应之间的关系值得让人联想,协同过滤算法为用户浏览到更多用户感兴趣的品牌提供了可能,因此协同过滤算法将会极大地改变市场上的规则。
但协同过滤算法也不是没有缺点,相反,它的缺点简直数不胜数。除了相关度计算公式琳琅满目、难以选择外,协同过滤算法最大的问题在于冷启动问题和算法模式中固有的问题。
协同过滤算法分为基于用户和基于产品两种,绝大部分网站的用户数目都多于产品数目,因此使用基于用户的模式时,协同过滤算法面对的是较大的计算量,和较稀疏的数据,此时计算的准确度可能不会太高;而使用基于产品的模式时,协同过滤算法就会忽略用户购买行为之间的关联性,从而犯一些很蠢的错误,比如你买了一个锤子后,接下来的两个月它都会坚持不懈的给你推荐锤子。
冷启动问题则是指协同过滤算法必须收集一定量的数据后,才能开始推荐,因此它一般不会推荐新产品。这对于具有时效性的产品来说非常要命,比如电影院会希望在新电影上线时赶快推荐给用户,如果等到累积够数据后才开始推荐,那也就没有推荐的意义了。
此外一个好的推荐系统想要奏效,还必须将用户所处的情景考虑进去。比如一个用户总是在晚上九点到十点之间浏览新闻,那在下午五点时为他推荐新闻显然就很傻了,用户是不会看的。再比如用户浏览上班地点或住所地点附近的餐厅时,做推荐的意义不太大,因为用户可能本来就非常了解这附近的餐厅,而当用户突然浏览起较远地方的餐厅时,此时狂推某餐厅则很有可能奏效。
这些都对数据分析师的分析能力提出了挑战,分析师必须能够根据用户的不同意图为用户推荐不同的产品,这需要在一个系统中集合不同的算法,同时还要求数据分析师具有丰富经验,并了解业务中的逻辑性。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站