协同过滤CF推荐介绍

 

 

一:定义

根据一组用户的的喜好去推荐和预测其它用户的的未知喜好选择。

协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。

协同过滤是基于这样的假设:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,我们往往会利用好朋友的推荐来进行一些选择。协同过滤正是把这一思想运用到电子商务推荐系统中来,基于其他用户对某一内容的评价来向目标用户进行推荐。

 基于协同过滤的推荐系统可以说是从用户的角度来进行相应推荐的,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。

 

二:分类

内存依赖,模型依赖,混合CF

(1) 基于内存的协同过滤。这种类型的协同过滤的思想是假设人与人之间的行为具有某种程度的相似性,也就是说行为类似的顾客会购买相类似的产品。基于内存的推荐算法推荐速度快,能反映最新的商品评分。但是由于算法需要将整个用户数据库调入内存,因此产生推荐非常耗时,而且推荐实时性难以保证。

(2) 基于模型的协同过滤。此算法首先通过聚类,贝叶斯网络,关联规则或者机器学习方法来构建使用者兴趣模型,进而利用此模型来产生推荐。由于建立的模型比原始数据集要小的多,因此算法的实时性问题得到很大的改善。但是该模型并不能反映最新的数据库情况,因为在建立模型后,数据库的商品以及评分信息可能已经出现较大变化,因此为了保证模型的有效性,必须周期性地对模型进行更新。协同过滤技术依据所使用的事物之间的关联性,可分为基于用户的协同过滤与基于项目的协同过滤两种:①基于用户的协同过滤:其核心思想是假设人与人之间的行为具有某种程度的相似性,即购买行为类似的顾客,会购买相类似的产品。②基于项目的协同过滤:其主要假设是项目与项目间具有某种程度的关联,即顾客在购买时,其所购买的产品通常具有关联性,如顾客在购买电子游戏机时,还会购买电池及游戏卡带或者游戏软件。

三:协同过滤算法特点:

优点:

和基于内容的过滤方法相比,协同过滤具有如下的优点:

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

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

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

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

 

缺点:

1)数据稀疏:出现新的商品和新的用户的时候,直到有些用户评估了新商品才可以推荐,但是由于没有历史评估,所以顾客不可能给新商品很好的评价。解决方法:SVD,减少一些不重要的商品和用户,但是有用的推荐信息会丢失掉了。混合协同过滤算法使用大容量的分类信息去解决数据稀疏问题。也可以使用内容过滤和协同过滤。或者使用概率模型区解决数据稀疏问题。

2)可扩展性:用户和商品的增长已经使得CF的复杂度增加。SVD可以解决可扩展性问题,但是,必须经历昂贵的矩阵分解过程,当新的集合加入到数据库中的时候,使用折叠投影技术,不用从0开始。基于内存的CF算法:比如:item-basedPearson correlation CF可以解决可扩张性问题,不是计算所有商品之间的相似性,仅仅计算被同一个客户都选过的商品,在他们之间计算相似性;simple Bayesian CF algorithm,通过观察到的评估信息做预测。

3)同义性: 不同名字和不同实体但相似的商品之间的趋势,许多系统不能看到他们之间的相似性,所以选择了不同的对待他们。同义性,降低了推荐系统的性能。原来尝试解决同义词问题的方法是:取决于智能或者自动词库匹配,或者同义词库的构建。缺陷是:增加的词汇可能有不同的意思,那样推荐系统的性能就可能下降了。

4)SVD技术:特别是潜力语义索引(LSI),可以解决同义词问题。SVD构建一个term和document的矩阵库和构建一个语义空间(term和document紧密相关的),SVD应许重点显示数据中的主要关联模式,而不重要的或者次要的忽略显示。LSI方法在高召回级别的(精度比较低)是比较有影响力的,但是在低召回级别的却是不那么起作用。

5)灰色群体: 这些群体的趋向可能会发生变化,不是一直是一种类型的人。相对来说黑色群体,他们的趋向很特别,不会猜测到,所以推荐系统不适和该人群,作为推荐系统,我们接受这个失败。

 

问题:

(1)数据稀疏型问题:在系统初期,用户稀少或者评分信息稀少,难以找到相似用户集,导致推荐效果大大降低。

(2)算法的实时型问题:当用户数目增大到一定程度,推荐结果的计算时间是算法实时性的巨大挑战。如果系统过长时间无响应,网站将会失去客户。

(3)新用户的“冷启动”问题:在数据稀疏的极端情况下,一个新的项目首次出现,没有用户对他做过评价,那么基于用户的协同过滤算法根本无法进行。

四:CF推荐系统的4个过程

CF推荐系统包括4个过程:数据表示,建立最近邻居集,产生推荐,性能评估。

(1) 数据标识:

客户评分数据可用一个m×n阶客户-项目评估矩阵R(m,n)表示,其中第i行第j列的元素r(i,j)代表客户i对项目j的评分。

(2) 最近邻居的建立:

 最近邻居的建立是CF推荐系统的核心。设客户i和客户j的相似度为sim(i,j)。对一个客户c,寻找C的最近邻居集,即要产生客户C的按相似度降序排列的邻居集合Nc={n1,n2,…,nk},c Nc,其中,sim(c,nl)≥sim(c,n2)≥…≥sim(c,nk)。

在CF推荐系统中,度量客户i和客户j之间相似度的方法是:首先得到客户i和客户j共同评分的所有项目,然后通过不同的相似度方法计算客户i和客户j之间的相似度。传统的CF推荐算法通常采用相关相似度和余弦相似度两种度量方法。

(3)产生推荐:

预测型推荐和TOP-N型推荐。

预测型推荐:产生一个预测值R(a,j),R(a,j)表示目标客户a对商品j的预测评分值,其值域范围由客户a决定。

Top-N型推荐: 产生一个目标客户a最喜欢的N个商品的集合,即Top-N推荐集,记作TPa={tp1,tp2,...,tpN},该集合中的每一个商品通常包含的是目标客户a没有购买的,但是值得给客户推荐的商品。

(4) 性能评估

为了评价CF推荐系统算法的性能,一般采用平均绝对偏差MAE(Mean Absolute Error)进行度量。对于测试样本中的一对评分值的真实-预测值对(pi,qi),取两者的绝对误差作偏差,即|pi-qi|。也可以采用召回率、准确率等作为评估。

 

posted @ 2014-09-21 20:38  appboling  阅读(470)  评论(0编辑  收藏  举报