协同过滤

1.1      算法简介

协同过滤 (Collaborative Filtering, 简称 CF)简单来说就是利用与使用者兴趣相投、品味相同的群体的喜好,来对使用者产生他所“可能”感兴趣的信息。首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

协同过滤分为基于用户的协同过滤和基于项目的协同过滤两种不同的方法。

基于用户的协同过滤,如下图所示,大概思想是因为用户A和用户C都购买了物品A和物品C,所以认为用户A和用户C是兴趣相投的用户。由于用户C购买了物品D,所以认为用户A也会对物品D感兴趣,于是便给用户A推荐物品D。


基于项目的协同过滤,如下图所示,大概思想是因为物品A和物品C都被用户A和用户B所购买,所以认为物品A和物品C是相似物品。由于用户C购买了物品A,所以认为用户C也会喜欢物品C,于是便给用户C推荐物品C。

 

1.2      算法应用

协同过滤是关联算法,可用于推荐系统使用。根据已有的用户评分记录或者用户订购记录,给用户推荐他们可能感兴趣的其他物品。

协同过滤有如下优点:

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

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

(3)       有推荐新资讯的能力。可以发现内容上完全不相似的资讯,使用者对推荐资讯的内容事先是预料不到的。可以发现使用者潜在的但自己尚未发现的兴趣偏好。

(4)       推荐个性化、自动化程度高。能够有效的利用其他相似使用者的回馈资讯。加快个性化学习的速度。

同时,协同过滤算法也有如下缺点:

(1)             用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题)

(2)             随着用户和商品的增多,系统的性能会越来越低(即系统延伸性问题

(3)             如果从来没有用户对某一商品加以评价,则这个商品就不可能被推荐(即新项目问题

(4)             如果新注册一个用户从来没有对任何商品进行评分,则该用户就不可能被推荐到商品(即新使用者问题

协同过滤对形如“用户,物品,评分”(评分字段为数字型)的数据进行建模,生成形如“用户,用户,相似度”,或“物品,物品,相似度”的结果数据,也能直接生成形如“用户,推荐物品,预测评分”的结果数据(选择“协同推荐”)。对于输入数据,也可以是形如“用户,物品”的不带评分的数据,对于这样的数据,算法认为每一条“用户,物品”记录都代表用户对物品的一个好评,默认评分为1,然后按照上面提到的“用户,物品,评分”数据的格式进行计算,并得出相应的结果。

在选择是基于用户的协同过滤还是基于项目的协同过滤时,可以根据不同的场景进行选择,在非社交网络的网站中,如购书网站上,内容内在的联系是很重要的推荐原则,因此基于项目的协同过滤比基于用户的协同过滤更加有效。在现今很流行的社交网络站点中,基于用户的协同过滤加上了社会网络信息,可以增加用户对推荐解释的信服程度,是一个更不错的选择。当然,也可以同时使用两种推荐算法,得出更全面的推荐。




你可能感兴趣的:(协同过滤)