您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于用户的协同过滤算法
基于用户的协同过滤算法作者:罗沐阳(2012101020028)指导教师:张勇【摘要】:随着网络技术的应用和普及、电子商务的迅猛发展,越来越多的信息充斥在网络之上。如何在众多的资源中找到适合自己需求的信息,成为众多学者、专家和网络用户火心的核心问题之一。个性化推荐技术在这样的背景下应运而生。协同过滤技术是个性化推荐技术最为核心的技术之一,也是目前应用最为广泛和成功的技术。本文主要研究的是基于用户的协同过滤推荐算法的实现。【关键词】:协同过滤,相似度,个性化推荐1.电子商务个性化推荐技术1.1个性化推荐技术电子商务对传统的商务交易产生了革命性的变化,从而要求“以产品为中心”向“面向客户”、“以客户为中心”的新的商业模式的转变,要求电子商务网站按客户群划分产品,围绕客户进行服务,为客户提供所需要的东西,所以对每个顾客提供个性化的服务成为必要。在这种背景下,推荐系统(RecommenderSystem)应运而生,它是根据用户个人的喜好、习惯来向其推荐信息、商品的程序。电子商务网站可以使用推荐系统分析客户的消费偏好,向每个客户具有针对性地推荐产品,帮助用户从庞大的商品目录中挑选真正适合自己需要的商品,尽可能为每个顾客提供个性化的服务。个性化推荐(personalizedrecommendation)技术通过研究不同用户的兴趣,主动为用户推荐最需要的资源,从而更好地解决互联网信息日益庞大与用户需求之间的矛盾。目前,推荐技术被广泛应用到电子商务、数字图书馆、新闻网站等系统中。因此,各种适用于推荐系统的技术应运而生,如协同过滤技(CF)、bayesian网技术、聚类分析技术、关联规则技术、神经网络技术和图模型技术等,其中,协同过滤是应用最为广泛的个性化推荐技术。协同过滤推荐又分为基于模型(Model-based)的协同过滤和基于用户的协同过滤。后来,sarwr教授在2001年提出基于项目的协同过滤算法1.2协同过滤协同过滤推荐技术是用“相似统计”的方法发现具有相似偏好或是兴趣特征的“相邻用户”。“协同过滤”的思想最早由美国明尼苏达州大学的学者PaulResnick在1994年,发表的《GroupLens:AnOpenArchitectureforCollaborativeFilteringofNetnews》一文中提出的。迄今为止,协同过滤是在个性化推荐系统中应用最广泛和最被人们所认可的一种推荐技术。协同过滤的基本原理是:根据用户对信息产品的评分情况,对其他用户进行检索,找出与该用户“品味”相似的一小群人,也就是“邻居”,然后再基于这些相似性进行信息产品评分预测,产生Top-N的推荐结果。协同过滤具有以下几个主要优点:第一,可以处理非结构化的信息产品,对非结构化如电影、音视频等复杂对象进行推荐;第二,奇异兴趣发现。协同过滤推荐技术可以根据如信息产品的质量,用户的品味等一些复杂的、不易表达的概念进行信息过滤,并发现用户的潜在兴趣;第三,推荐的个性化、自动化程度较高。本文主要研究的是基于用户的协同过滤推荐算法的实现。2.基于用户的协同过滤推荐算法2.1算法简介基于用户的协同过滤是个性化推荐中应用最为广泛的方法,它是基于邻居用户的兴趣爱好预测目标用户的兴趣偏好。算法先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的偏好产生向目标用户的推荐。它的基本原理是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源对当前用户,系统通过其历史访问记录及特定相似度函数,计算出与其访问行为(购买的产品集合、访问的网页集等)最相近的N个用户作为用户的最近邻居集,统计的近邻用户访问过而目标用未访问的资源生成候选推荐集,然后计算候选推荐集中每个资源对用户的推荐度,取其中K个排在最前面的资源作为用户的推荐集。2.2算法步骤2.2.1发现兴趣相似的用户通常用Jaccard公式或者余弦相似度计算两个用户之间的相似度。设N(u)为用户u喜欢的物品集合。N(v)为用户v喜欢的物品集合,那么u和v的相似度是多少呢:Jaccard公式:余弦相似度:假设目前共有4个用户:A、B、C、D;共有5个物品:a、b、c、d、e。用户与物品的关系(用户喜欢物品)如下所示:AabdBacCbeDcde如何一下子计算所有用户之间的相似度呢?为计算方便,通常首先需要建立“物品—用户”的倒排表,如下所示:abcdeAABACBCDDD然后对于每个物品,喜欢他的用户,两两之间相同物品加1。例如喜欢物品a的用户有A和B,那么在矩阵中他们两两加1。如下所示:0111100110011110DCBADCBA计算用户两两之间的相似度,上面的矩阵仅仅代表的是公式的分子部分。以余弦相似度为例,对上进行进一步计算:023123123123100231231002312312312310DCBADCBA到此,计算用户相似度就大功告成,可以很直观的找到与目标用户兴趣较相似的用户。2.2.2推荐物品首先需要从矩阵中找出与目标用户u最相似的K个用户,用集合S(u,K)表示,将S中用户喜欢的物品全部提取出来,并去除u已经喜欢的物品。对于每个候选物品i,用户u对它感兴趣的程度用如下公式计算:其中rvi表示用户v对i的喜欢程度,在本例中都是为1,在一些需要用户给予评分的推荐系统中,则要代入用户评分。举个例子,假设我们要给A推荐物品,选取K=3个相似用户,相似用户则是:B、C、D,那么他们喜欢过并且A没有喜欢过的物品有:c、e,那么分别计算p(A,c)和p(A,e):看样子用户A对c和e的喜欢程度可能是一样的,在真实的推荐系统中,只要按得分排序,取前几个物品就可以了。3.总结我觉得关于协同过滤的推荐算法是一个很有趣的课题,但这个需要我们有很大的耐心,因为中间可能会出现很多错,即使是一个小的误区,可能导致结论相差很多,只有通过不断试验,得出一些数据,才有可能发现自己存在的问题,然后再改进。经过本次试验,虽然对基于用户的协同过滤推荐算法的研究没有深入到能提出一些建设性的改进,但对于算法已经有了一定的了解,对以后更深入的研究打下了扎实的基础。参考文献[1]范波,程久军.用户间相似度协同过滤推荐算法.计算机科学,2012(1).[2]吴月萍,郑建国.协同过滤推荐算法[J].计算机工程与设计,2011,(09).[3]周强.基于用户的协同过滤推荐算法研究[J].南昌高专学报.2006.
本文标题:基于用户的协同过滤算法
链接地址:https://www.777doc.com/doc-7614574 .html