推荐系统介绍——基于用户的协同过滤算法的电影推荐系统成员:塔娜郭静戈文豹目录一.推荐系统研究背景二.个性化推荐技术三.基于用户的协同过滤推荐算法四.电影推荐系统五.电影推荐系统实现构想1.推荐系统研究背景近年来,社会信息趋向于数字化、网络化,通过各种互联网络联系起来的人越来越多,互联网网民日益增加。互联网上的信息源越來越丰富,包括电子邮件、Web数据、客户项目等信息,这些信息构成了社会网络。我国的互联网用户数也与日俱增,已发展到一个很客观的数字。截止至2011年底,全球博客(blog)数量已经达1.81亿。在国内,拥有博客(或个人空间)的网民比例达42.3%,用户规模达1.07亿,其中活跃用户数超过7000万人。腾讯QQ的活跃账户数量达到3亿,同时在线人数达到3000万。中国网站总数为230万个。可见,在如今这个高速发展的信息时代,人们的生活与五联网的关系越来越紧密,互联网己经成为人们获取信息的一个重要途径。互联网信息的日益庞大与大量用户的需求形成了巨大矛盾。人们需要花费大量的时间去搜索和选择各自所需的项目。因此,各种知名的搜索引擎已经成为人们寻找项目的必备工具,如Google、Yahoo、Soso、Baidu、Sogou等。当用户搜索信息是,搜索引擎就在数据库中搜索,找到相应的网站,按一定顺序反馈给读者。显然,搜索引擎是一种“一对多”的工具,它只能区分不同的搜索语句,忽略了重要的用户信息,对不同的用户不会推荐不同的项目。个性化推荐服务就是针对此类问题提出来的,根据不同用户的行为、信息、习惯、喜好等特点,提供各自不司的服务。目前,各大型纯商务网站,例如Dangdang、Amazon、Taobao、Tmall等,都不同程度地使用了推荐系统,用以向用户推荐商品,提高经济效益。2.个性化推荐技术个性化推荐系统的使用对象是用户,推荐对象是项目(Item),比如音乐、电影、商品等。根据推荐对象的特点,可以将目前的推荐系统分为两类:(1)以网页为推荐对象的系统。这类推荐系统主要采用web数据挖掘的理论和技术来分析用户的行为习惯、兴趣爱好等特点,向用户推荐用户可能会喜爱的项目(网页链接)。这类推荐系统在音乐或电影类网站最常见,比如推荐相关音乐、电影、歌手、演员等,能够吸引用户兴趣,提高用户满意度。(2)以产品为主要推荐对象的系统。这类推荐系统在电子商务网络购物环境中最长使用,主要功能是向用户推荐他们可能会感兴趣的商品。这类推荐系统除了带给用户更好的购物体验,同时能提高产品销售量,增加网站收益。推荐系统首先收集用户的历史行为数据,然后通过预处理的方法得到用户-评价矩阵,再利用机器学习领域中相关推荐技术形成对用户的个性化推荐。有的推荐系统还搜集用户对推荐结果的反馈,并根据实际的反馈信息实时调粮推荐策略,产生更符合用户需求的推荐结果。个性化推荐系统流程图:3.基于用户的协同过滤算法协同过滤算法,顾名思义就是指用户可以齐心协力,通过不断的和网站互动,是自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。用户行为分析:a.用户活跃度和物品流行度分布:很多关于互联网数据的研究发现,互联网上的很多数据分布都满足一种称为PowerLaw的分布,这个分布在互联网领域也叫长尾分布。f(x)=α𝑥𝑘b.用户活跃度和物品流行度的关系:一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。3.基于用户的协同过滤推荐算法:基于邻域的方法是协同过滤算法中应用最为广泛的一种。基于邻域的方法比较直观,容易理解。这类方法使用统计技术寻找与目标用户有相同或相似兴趣偏好的邻居,根据邻居用户的评分来预测目标用户对项目的评分值,选取预测评分最高的前N个项目作为推荐集反馈给目标用户。它的中心思想是有相同兴趣或偏好的用户往往会对同样的项目感兴趣,这也非常符合人们的心理。这类方法的核心是要准确计算目标用户的邻居,也就是用户相似性,所以也称为基于用户(User-based)的协同过滤方法。类似地,可以考虑项目之间的相似性,使用目标用户评价过的项目合集来预测用户可能感兴趣的其它项目,这类方法称为基于项目(Item-based)的协同过滤方法。3.基于用户的协同过滤推荐基于用户的协同过滤[(User-basedCF)又称KNN(K-Nearest-Neighbor,K最近邻)算法,其基本思想是利用与目标用户具有相同(或相似)兴趣爱好的用户的观点向目标用户提供商品推荐或评分预测。基于用户的协同过滤算法的基本思想其基本思想是:通过计算用户对项目评分之间的相似性,搜索目标用户的最近邻居,然后根据最近邻居的评分向目标用户产生推荐。典型的协同过滤算法是基于用户的。协同过滤推荐算法的实现过程分为3步:建立用户模型、寻找最近邻居和产生推荐项目。①建立用户模型:协同过滤算法的输入数据通常表示为一个m*n的用户一评价矩阵R,m是用户数,n是项目数,其中𝑅ij表示第i个用户对第j个项目的评分值:这里的评分值可以是用户的浏览次数,购买次数等隐式的评分,还可以采用显示评分,如用户对商品的直接评分,本算法的实现是采用用户对所购买商品的直接评分作为评分矩阵中评分值的。3.基于用户的协同过滤推荐②寻找最近邻居:在这一阶段,主要完成对目标用户最近邻居的查找。通过计算目标用户与其他用户之间的相似度,算出与目标用户最相似的“最近邻居”集。即:对目标用户i产生一个以相似度sim(i,j)递减排列的“邻居”集合。该过程分两步完成:首先计算用户之问的相似度,可采用皮尔森相关系数、余弦相似性和修正的余弦相似性等度量方法,其次是根据如下方法选择“最近邻居”:(1)选择相似度大于设定阈值的用户;(2)选择相似度最大的前k个用户;(3)选择相似度大于预定阈值的k个用户。寻找最近邻居通常有三种方法余弦相似性(Cosine)每一个用户的评分都可以看作为n维项目空间上的向量,如果用户对项目没有进行评分,则将用户对该项目的评分设为0。用户间的相似性通过向量间的余弦夹角度量。设用户i和用户j在n维项目空间上的评分分别表示为向量i和向量j,则用户i和用户j之间的相似性sim(i,j)为:其中,分子为两个用户评分向量的内积,分母为两个用户向量模的乘积。相关相似性(CORRELATION)设用户i和用户j共同评分过的项目集合用𝐼𝑖𝑗表示,𝐼𝑖𝑗=𝐼𝑖⊓𝐼𝑗,则用户i和用户j之间的相似性sim(i,j)通过Pearson相关系数度量:其中,𝑅𝑖,𝑑,表示用户i对项目d的评分,,𝑅𝑖和𝑅𝑗分别表示用户i和用户j对所打分项目的平均评分。修正的余弦相似性(ADJUSTEDCOSINE)在余弦相似性度量方法中,没有考虑不同用户的评分尺度问题,修正的余弦相似性度量方法通过减去用户对项目的平均评分改善这一缺陷。设用户i和用户j共同评分过的项目集合用𝐼𝑖𝑗表示,𝐼𝑖𝑗=𝐼𝑖⊓𝐼𝑗,𝐼𝑖和𝐼𝑗分别表示用户i和用户j评分过的项目集合,则用户i和用户j之间的相似性sim(i,j)为:其中,𝑅𝑖,𝑑,表示用户i对项目d的评分,𝑅𝑖和𝑅𝑗分别表示用户i和用户j对项目的平均评分。本系统选择相似度最高的十个用户作为最近邻居。本文在原型系统中采用的是余弦相似性计算的用户相似性,选出十个最近邻居。③产生推荐项目:计算方法如下:其中sim(i,j)表示用户i与用户j之间的相似性,𝑅𝑗,𝑑表示最近邻居用户j对项目d的评分,𝑅𝑖和𝑅𝑗分别表示用户i和用户j的平均评分,公式(1)的实质是在用户的最近邻居集NESi中查找用户,并将目标用户与查找到的用户的相似度的值作为权值,然后将邻居用户对该项目的评分与此邻居用户的所有评分的差值进行加权平均。通过上述方法预测出目标用户对未评价项目的评分,然后选择预测评分最高的TOP-N项推荐给目标用户。3.基于用户的协同过滤算法存在的问题及解决方案基于用户的协同过滤虽然当给出足够清楚的偏好信息时,它通常表现出良好的性能,但随着站点结构,内容的复杂度和用户人数的不断增加,一些缺点逐渐暴露出来,主要存在稀疏性问题、可扩展性问题,也有人提出传统的协同过滤不能反映用户兴趣的变化等问题。这些问题都大大影响了系统的性能,为用户和商家带来不便,针对协同过滤表现出的各种问题,学者们提出了多种解决方案,有基于模糊聚类的可扩展的协同过滤算法,基于用户等级的协同过滤推荐算法,适应用户兴趣变化的协同过滤推荐算法,压缩稀疏用户评分矩阵的协同过滤算法,个性化服务中基于用户聚类的协同过滤推荐等。通常在电子商务网站中,用户购买或评分的商品相对于总商品数量仅占有限的百分比,为总数量的1%以下,这导致用户-项目评分数据集稀疏。在这种数据量大而评分数据又极端稀疏的情况下,一方面难以成功的定位邻居用户集,影响推荐精度;另一方面在整个用户空间上计算相似用户群的过程不可避免地成为了算法的瓶颈,继而增加了响应时间。协同过滤推荐系统存在的一些弊端:(1)数据稀疏性问题,这也是协同过滤系统目前存在的最为普遍的问题,大多数用户只评价了部分项目,这样导致用户-评分矩阵十分稀疏,这样不利于推荐系统为用户推荐信息;(2)冷启动问题。新产品没有任何用户的评分,在协同过滤中是无法推荐的。新用户没有历史信息,也是无法推荐的。当一个新项目刚加入系统的时候,由于没有任何用户对它评分,该项目便无法得到推荐。(3)同一性问题。对于那些内容相同但是名称不同的项目,协同过滤是无法发现它们内在的联系。(4)扩展性问题。越来越多的用户和电影加入系统后,增加了系统的复杂性,此时系统准确、高效地推荐都具有一定的挑战性。4.电影推荐(我们的想法)电影推荐模块的参与者是用户,用户登录时该模块启动。这个模块的功能是为登录的用户动态推荐他们感兴趣的电影。这个模块中主要的推荐算法是:基于用户的协同过滤推荐算法。5.电影推荐系统的实现构想系统模块结构概述电影管理:主要包括电影查询、修改、删除和添加。管理员根据需要搜集电影信息,然后整理综合添加到系统中,管理员还可以根据电影名査询电影信息,如果电影信息有出入可以进行修改,还可以将该电影删除。这一管理过程为系统提供了推荐信息。电影推荐:主要基于用户的协同过滤推荐,电影推荐模块会根据用户行为(打分和相似度)的不同进行不同推荐,如果是新用户没有历史信息记录那么只能显示当前热播电影;如果不是新用户那么该用户就有历史信息记录,系统根据这些历史信息为该用户推荐电影。