如何从无到有建立推荐系统讲述.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何从无到有建立推荐系统讲述

【Resys】如何从无到有建立推荐系统推荐系统广泛应用于各类网站,电子商务中的商品推荐、博客网站的文章推荐,以及帮助人们寻找音乐和影片的各类应用。但如何才能从无到有的给网站配备一个推荐系统呢?针对这个问题,我在搜索引擎中遍寻多时,但始终没有找到满意的答案。这期间我也加入了国内推荐系统高手聚集的推荐系统邮件列表,其中不乏当当、卓越亚马逊、豆瓣等业内在推荐系统上领先的产品、技术高手,但浸淫多日却始终无法在脑海中形成一个以内容推荐为最终目的的产品框架或产品路线图。这种状态一直持续到我购买了集体智慧编程(Programming Collective Intelligence)后才得以改观,现在我将此书的部分读书笔记予以整理,希望能给同样对推荐系统感兴趣的朋友整理出一个可操作的、适合内容型网站推荐系统产品框架。——————–正文分割线——————–我们知道,要想了解内容网站的推荐信息,最没有技术含量的方法莫过于向朋友询问。我们也知道,这其中有一部分人的品位会比其他人的高一些,通过观察这些人是否通常也和我们一样喜欢同样的东西,可以逐渐对这些情况有所了解。不过随着选择越来越多,要想通过询问一小群人来确定我们想要的东西,将会变得越来越不切实际,因为他们可能并不了解所有的选择。这就是为什么人们要发展出一套被称为协同过滤(collaborative filtering)的技术。从实际的情况看,目前我们所能接触到的领先推荐系统,包括Netfilx、豆瓣、Amazon等等都是利用协同过滤技术来实现的。协同过滤又分成几种:基于用户的协同过滤、基于项目的协同过滤、基于模型的协同过滤。那么到底什么是协同过滤?它需要产品设计者做哪些事情才能实现?(为了让问题简化,这里着重介绍基于用户的协同过滤)一个基于用户的协同过滤过滤算法通常的做法是对一大群人进行搜索,并从中找出与我们品位相近的一小群人。算法会对这些人所偏爱的其他内容进行考察,并将它们组合起来构成一个经过排名的推荐列表。因此产品设计者需要理解你的网站需要依次做以下这几件事情:1.搜集偏好(Collecting Preferences)要搜集偏好意味着要寻找一种表达不同人及其偏好的方法。例如,豆瓣会要求用户对每部电影用1到5颗星来评分,以此来体现包括本人在内的每位影评者对某一给定影片的喜爱程度。假如你正在设计一个购物网站,那不妨用数字1来代表有人过去购买过某件商品,用数字0来代表未曾购买过任何商品。而对于一个新闻故事投票网站,我们可以分别用数字-1、0和1来表达“不喜欢”、“没有投票”、“喜欢”。不管偏好如何表达的,你要做的是建立一种方法来使得你的用户来参与表达,并把他们表达的内容对应到数字以形成相应的数据集合。2.寻找相近的用户(Finding Similar Users)有了人们偏好的数据集后,我们需要有一种方法来确定人们在品位方面的相似程度。为此,我们可以将每个人与所有其他人进行对比,并计算他们的相似度评价值。有若干种方法可以达到此目的:欧几里德距离(Euclidean Distance Score)、皮尔逊相关度(Person Correlation Coefficient)、余弦相似性(Cosine-based Similarity)、调整余弦相似性(Adjusted Cosine Similarity)、Jaccard系数或曼哈顿距离算法等。请记住,各种相似度的计算方法各有所长,要根据具体的应用场景来选取一种或几种综合使用。下面以实际例子简单介绍两种:欧几里德距离(Euclidean Distance Score):它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考察他们彼此间的距离远近。x轴、y轴分别代表电影Dupree和Snake,而在第一象限偏好空间里的则是每个人对这两部电影的评分。不难发现,Toby对Snakes和Dupree这两部电影的评分是4.5和1.0,而LaSalle的则是4.0和2.0。按照欧几里德距离的结论,偏好越相似的人,其在偏好空间的距离就越短。至于如何计算两者的距离,运用你初中学的几何知识就行,计算两点每个坐标的差值,求平方后再相加,最后对总和取平方根。值得一提的是此方法对于数量多于两项的评分也同样适用。因此,你可以设计一个函数来计算2个用户间的相似度,当然前提是两者需要有一定重合的评分项。皮尔逊相关度(Pearson Correlation Score):它的原理是通过判断两组数据与某一直线拟合程度来判断相似度。它在数据不是很规范(normalized)的时候,如影评者对影片的评价总是相对于平均水平偏离很大时,会倾向于给出更好的结果。如下图是Mick LaSalle和Gene Seymour分别对5部电影的评分(与上图不同,x轴和y轴对应的是两个人

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档