****第一页****
目录
四篇文章
****第二页****
背景 为了解决 信息过载
解决方法
1.信息分类 导航网站
2.搜索引擎
3.推荐系统
不同点就是,推荐系统,用户不知道他想要什么,也没法关键词描述
****历史*****
推荐系统的:发展历程
亚马逊
NETFLIX
****内容的过滤*****
1. 基于内容,是最早出现的推荐系统算法, 简要介绍下原理,,优缺点
这里不在详细的介绍,通过这个例子来大体了解下
2. Item Profiles (movie attributes: genre(类型)actors (参与的演员)
box office(它的票房的受欢迎程度)-so forth.)
先我们需要对电影的元数据有一个建模(电影的类型,演员,票房);
然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影;
对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。
这就实现推荐,
这种基于内容的推荐机制的好处在于它能很好的建模用户的口味,能提供更加精确的推荐。但它也存在以下几个问题:
1. 需要对物品进行分析和建模,推荐的质量依赖于物品模型的完整和全面程度。在现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。
2. 物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。
3. 因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。
虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点
***协同过滤*****
协同过滤的解释:协同过滤是利用集体智慧的一个典型方法。
要理解什么是协同过滤,首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,那我们会怎么做呢?
大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。
协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。或者你喜欢东西的相似物品。
协同过滤相对于集体智慧而言,它从一定程度上保留了个体的特征,就是你的品位偏好,所以它更多可以作为个性化推荐的算法思想。
******长尾*******
而且也很符合web2.0时代的“长尾理论”
根据维基百科,长尾(The Long Tail)这一概念是由“连线”杂志主编克里斯·安德森(Chris Anderson)在2004最早提出,用来描述诸如亚马逊和Netflix之类网站的商业和经济模式。“长尾”实际上是统计学中幂律(Power Laws)和帕累托分布(Pareto distributions)特征的一个口语化表达。
以往,我都知道二八定律,20%的产品带来80%的利润,80%的产品带来20%的利润
而在网络时代,由于关注的成本大大降低,人们有可能以很低的成本关注 “尾部”产品,关注“尾部”产生的总体效益甚至会超过“头部”。推荐系统就有利于发挥“长尾”效益。
涓涓细流,汇聚成河,可以说,长尾理论终结以往的二八定律
国内最典型的就是,豆瓣网。
(不像传统图书馆那样的标准分类办法,列出“文学”、“少儿”之类的目录,你可以为一本书增加 “青春”、“适合雨天阅读”、“他的生日礼物”。这样的信息过滤机制,不仅可以向用户提供适合自己口味和喜爱的东西,而且还可以帮助用户探索和发现新的兴趣爱好,寻找志同道合者,获得更多价值)。
****基于用户的推荐****
在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,
原理也较为简单。
该算法1992年提出并用于邮件过滤系统,
两年后1994年被明尼苏达大学的 GroupLens 用于新闻过滤。
这个小组是推荐系统领域的最知名,最前沿的团队
那么,一直到2000年,该算法都是推荐系统领域最著名的算法。
下面就基于这篇文章说一下user-base CF实现
********grouplens************
GroupLens在这篇文章当中,提出了一个新的基于协同过滤的架构。
文章的结构先说了基本的假设就是,过去喜欢一个东西,在遇到类似的东西也会喜欢。
其实就是协同过滤的就基本思想,但是还没有用协同过滤这个词。
这应该是,最早提出这种想法了。
该推荐算法最终通过计算目标用户和其他用户的兴趣相似度进行项目的推荐。
除了基本假设,另外介绍了GroupLens体系结构概述,是如何与原有的系统结合的,怎么收集信息,系统运行的平台,win98都没出,缓存数据处理。
动态和快节奏的新系统,讨论数据量、延迟、评级稀疏性、性能问题等
给我的感觉,冗余信息很多,更像科普类的文章。距今已经20年了,读起来很生硬,因为很多专业术语现在都不用或者改名了吧,读着很不舒服,
现在看来应该没啥特别的内容,但是应该在当时是个很厉害的文章。
我基于对文章的理解,抽象出的模型就是这样的
*******模型开始******
首先使用打分服务器收集用户的评分数据,
我们把收集到的用户的评分数据做成一个矩阵,每一行代表了一个用户对不同的新闻的打分,每一列代表不同用户对一个新闻的打分
然后我们找最相似的用户,通过这几种常见的方法
欧几里德距离,又称欧氏距离,在n维欧式空间中,计算欧几里德距离的公式,如下所示其中,x、y表示两个点的坐标,d(x,y)表示点x和y之间的距离。
其中下边的
函
关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函
数sim(i,j)表示用户i与用户j之间的相似性,
皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在 [-1,+1] 之间。
Cosine 相似度被广泛应用于计算文档数据的相似度:
Jaccard 系数,是 Cosine 相似度的扩展,也多用于计算文档数据的相似度
介绍完相似度的计算方法,下面我们看看如何根据相似度找到用户的邻居,
常用的挑选邻居的原则可以分为两类(个数,或者阈值)
图中给出了二维平面空间上点集的示意图。
这些都是后来
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
的,论文里并没有很清晰的表示出来。
最后运用寻找相似用户推荐的办法,首先计算出相似度分布如图
这里分了一些组,不同组之间的新闻类型是不同的。
为什么要分组呢,分组原因
1打分的稀疏性,一个用户关注的领域是有限的,评分是非常稀疏的,GroupLens提出一个解决办法就是分成不同的新闻类型,分成娱乐笑话,美食菜谱,编程版块,在每个领域领面,相对没那么稀疏。
2还有一方面是为了优化性能:按照新闻不同分组或者不同的用户,设置不同服务器再或者把用户定义成几种模版类型,对某个具体的人进行模版组合,而不是针对个人的推荐计算。
其中给出三个新闻组的用户对,皮尔森相关系数分布图。娱乐幽默新闻组中,存在许多高的相关性的用户,表示关于该领域的新闻大家的评判准则比较一致。而在食物菜谱一组中的相关性几乎均匀分布,这就说明在这个领域中个人口味十分重要。
最后经过七个周的公开测试,最后他们得出结论:这个系统的预测是有意义的。他们还做了回顾性分析,即使用户没有得知预测评分之前,他们倾向于阅读那些预测值高的文章。验证了预测打分是有意义的。最后给出的图,基于同一个新闻组的其他用户的打分,得分高的文章的阅读数也更高。现在看起来感觉没有什么东西,在当时应该是很厉害。
因为这都是20年前的文章了,是为了做综述采访这里讲的。思想虽然简单,但是有非常重要的意义,深远的影响。
**********下面我们来了解下,另一种协同过滤的方法,基于物品的协同*****
那么就基于这篇文章,这是(2001)亚马逊提出
其实基于item-based CF是 Amazon 在基于用户的过滤的机制上改良的一种策略
因为基于用户的过滤,有一个问题,算法不能很好的适应大规模用户和物品数据。
这篇文章呢,98提交的专利,2001发表的。
虽然说得不很具体,也没有给出具体的公式,但是在推荐系统的发展中有很大的影响。
因为本身就是一种改进算法,而且还有专利问题,就没有说太多东西。
文章一开始讲了以前算法的优缺点,他们算法的实现,给出了一段伪代码。还有他们算法的性能分析,还有就是他们算法的可以处理的数量级。
亚马逊的方法呢,就是事先构建一个物品相似度矩阵,描述所有物品两两之间的相似度。这里不再是用户与用户的相似度计算了,计算相似度的方法呢,还是之前提到的那些,欧式距离,余弦相似度等。
找到某个用户购买物品找到最相似物品后,计算这些相邻物品的评分的加权和,来对物品进行预测评分。因为这样的物品数量一般都比较少,因此计算预测值可以短时间完成。
****矩阵图**
文章中提到。
给定了M个用户和N个物品,在最坏的情况下,必须评估最多包含着N个物品的所有M个用户的记录。
当用户的数量到达几百万,线上环境要求必须在极短的时间内返回结果,实时计算仍然是不可行的。但是还有一个情况是大多数用户只评分或者购买了非常少量的物品,实际复杂度非常低。
这个相似商品表格的离线计算极费时间,最糟糕时需要O(N2M)。但在实际运行中,它接近O(NM),因为大多数顾客只有很少的购买。
因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于项目的机制比基于用户的实时性更好一些。
由于没有具体的例子,这里我就找了一个可以表示基于物品过滤思想的例子,我们一起来看一看
**小人图***
这就是基于物品的协同过滤的思想了
***亚马逊的性能介绍**
结论就是他的系统性能的介绍。
网站当时的用户数量是2900W,而产品将数量是百万级别。他们的算法呢,对如此大的用户数量产生推荐,仅仅需要秒级时间。
其中的一个主要原因就是对于一个在线网站,用户的数量往往大大超过物品的数量,因此计算物品的相似度计算量较小,同时物品的数据相对稳定,那也就是说我的相似度矩阵也不必频繁更新。
*****算法比较****
比较一下
相同点:基于邻域的算法
(1)计算复杂度. Item CF 也是从Amazon 的论文和专利发表之后(2001 年左右)开始流行,大家都觉得 Item CF 从性能和复杂度上比 User CF 更优,产品数量小于用户数量,而且产品变化不大。