“泰迪杯”挑战赛 - 基于用户协同过滤算法的电影推荐系统(附算法代码)

目录

第 1 章 绪论

1.1、研究背景
1.2、国际发展形势第 2 章 基于用户协同过滤推荐技术

第 2 章 基于用户协同过滤推荐技术

2.1 电子商务推荐系统概述
2.2 协同过滤推荐技术

第 3 章 基于用户的协同过滤推荐算法

3.1 基于用户协同过滤算法的介绍
3.2、基于用户喜好值推荐算法的思路
3.2.1 建立用户模型
3.2.2 寻找最近邻居

  1. 余弦相似性(Cosine)
  2. 相关相似性(Correlation)

3.2.2 产生推荐项目
3.3 算法的实现
3.4 电影推荐系统界面实现
3.4.1 用户输入界面
3.4.2 推荐电影界面

第 4 章 算法推荐质量的实验分析

4.1 算法推荐质量的衡量方法
4.2 验证推荐方法采用的数据集
4.3 实验结果分析
4.3.1 余弦相似性
4.3.2 相似相关性
4.3.3 基于用户评分次数的相似相关性计算方法
4.3.4 两种算法的对比分析

第五章 总结

参考文献

附录

第 1 章 绪论

1.1、研究背景

随着互联网技术的迅猛发展,人们逐渐走入了信息过载的时代。面对大量的信息,我们都显得有些无所适从。作为信息需求者,从大量信息中找到自己感兴趣的信息往往是一件非常困难的事情;而对于信息提供者,让自己的信息脱颖而出,受到大家的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统通过建立用户和信息产品之间的关系,利用已有的选择过程或相似性关系,一方面挖掘用户潜在感兴趣的信息,另一方面让信息能够展现在对它感兴趣的用户面前。一个完整的推荐系统通常包含收集用户信息的行为记录模块,分析用户喜好的模型分析模块和推荐算法模块。

我们身边最熟悉的例子要数电子商务网站的推荐系统,几乎每个大型电子商务网站都把个性化推荐作为重要的营销手段之一。更有文献表明早期 Amazon 的35%销售增量都来自它的推荐系统。除了商品,音乐、电影等也是常见的推荐对象。

在众多的个性化推荐算法中,协同过滤被广泛应用,也是最成功的推荐算法。本课题旨在研究基于用户的协同过滤推荐算法在电子商务个性化商品推荐中的应用。

研究电子商务推荐系统对企业和社会具有很高的经济价值。电子商务个性化推荐系统的关键是建立用户模型。推荐系统的热点问题是推荐技术和推荐算法的研究。推荐算法是整个推荐系统的核心,它的性能决定了最终推荐结果的好坏。为了建立合理的用户模型,满足不同用户对实时性、推荐方式等的要求,产生了一系列的推荐技术和算法。涉及的技术包括基于内容的过滤技术、协同过滤技术、关联规则挖掘技术、分类和聚类技术、神经网络技术等等。

个性化的服务在商家与顾客之间建立起了一条牢固的纽带。顾客越多地使用推荐系统。推荐系统可以更适合顾客的需要,将顾客更多地吸引到自己的网站,与顾客建立长期稳定的关系。从而能有效保留用户,防止用户流失。

个性化推荐技术是电子商务推荐系统中最核心最关键的技术,很大程度上决定了电子商务推荐系统性能的优劣[4].

1.2、国际发展形势

随着互联网的普及以及电子商务的发展,推荐系统渐渐成为电子商务技术的一个重要研究内容,得到了越来越多的研究者的关注[5]。

国外在这方面的研究起步较早。1997 年 Resnick&Varian 给出了电子商务推荐系统的正式定义[6]。从 1999 年开始,计算机协会 ACM(Association for Computing Machinery)每年召开一次电子商务的研讨会,研究文章中关于电子商务 推 荐 系 统 的 占 据 了 很 大 比 重 ; 该 协 会 下 面 的 数 据 挖 掘 特 别 兴 趣 组SIGKDD(Special Interest Group on KDD)和信息检索兴趣小组 SIGIR(Special Interest Group on Information Retrieval)也分别在 1999 年和第 24 届研究发展会议上,开始把推荐系统作为一个专门的研究主题。同时,第十五届人工智能会议、第一届知识管理应用会议等也纷纷将电子商务推荐系统作为研究主题。

第 2 章 基于用户协同过滤推荐技术

2.1 电子商务推荐系统概述

电子商务对传统的商务交易产生了革命性的变化,从而要求“以产品为中心”向“面向客户”、“以客户为中心”的新的商业模式的转变,要求电子商务网站按客户群划分产品,围绕客户进行服务,为客户提供所需要的东西,所以对每个顾客提供个性化的服务成为必要。在这种背景下,推荐系统(Recommender System)应运而生,它是根据用户个人的喜好、习惯来向其推荐信息、商品的程序[7]。电子商务网站可以使用推荐系统分析客户的消费偏好,向每个客户具有针对性地推荐产品,帮助用户从庞大的商品目录中挑选真正适合自己需要的商品,尽可能为每个顾客提供个性化的服务。

个性化推荐(personalized recommendation)技术通过研究不同用户的兴趣,主动为用户推荐最需要的资源,从而更好地解决互联网信息日益庞大与用户需求之间的矛盾。目前,推荐技术被广泛应用到电子商务、数字图书馆、新闻网站等系统中[8]。各种适用于推荐系统的技术应运而生,如协同过滤技(CF)、bayesian 网技术、聚类分析技术、关联规则技术、神经网络技术和图模型技术等[9],其中,协同过滤是应用最为广泛的个性化推荐技术[10]。协同过滤推荐又分为基于模型(Model-based)的协同过滤和基于用户的协同过滤。后来,sarwr 教授在 2001 年提出基于项目的协同过滤算法[4]。

推荐技术的分类标准:文献[11]给出了区别推荐技术的两维属性:① 自动化程度(degree of automation),客户要得到推荐系统的推荐是否需要显式的输入信息;②持久性程度(degree of persistence),推荐系统产生推荐是基于客户当前的单个会话(session)还是基于客户的多个会话。也有学者认为,除了上述两个特征外,个性化程度(degree of personalization)也是评价推荐技术的重要指标,可以用来反映推荐结果符合用户兴趣爱好的程度。

2.2 协同过滤推荐技术

协同过滤主要是以属性或兴趣相近的用户经验与建议作为提供个性化推荐的基础。透过协同过滤,有助于搜集具有类似偏好或属性的用户,并将其意见提供给同一集群中的用户作为参考,以满足人们通常在决策之前参考他人意见的心态。

协同过滤推荐(collaborative filtering recommendation)是目前研究最多的个性化推荐技术,它基于邻居用户的资料得到目标用户的推荐,推荐的个性化程度高。著名的系统有 GroupLens/ Net Percep2tions,Ringo/ Firefly 及 Tapest ry 等。协同过滤的最大优点是对推荐对象没有特殊要求,能处理非结构化的复杂对象,如音乐、电影。

协同过滤推荐主要分为两类:一是基于内存的协同过滤(memory - based collaborative filtering),先用相似统计的方法得到具有相似兴趣爱好的邻居用户,所以该方法也称基于用户的协同过滤( user -based collaborative filtering)或基于邻居的协同过滤(neighbor - based collaborative filtering);二是基于模型的协同过滤(model - based collaborative fil2tering),先用历史数据得到一个模型,再用此模型进行预测。基于模型的推荐广泛使用的技术包括神经网络等学习技术、潜在语义检索(latent seman2tic indexing)和贝叶斯网络( bayesian networks),训练一个样本得到模型。Breese 教授认为基于用户的协同推荐比基于模型的协同推荐方法更好[4]。

本文主要研究的是基于用户的协同过滤推荐算法的实现。

基于用户的协同推荐算法随着用户数量的增多,计算量成线性加大,其性能越来越差 ,并且不能对推荐结果提供很好的解释。为此,在 2001 年 Sar2wr 教授提出了第三种协同过滤推荐算法,即基于项目的协同推荐算法(item - based collaborative filter2ing algorithms)。该算法通过先计算已评价项目和待预测项目的相似度,以相似度作为权重,加权各已评价项目的评价分,得到预测项目的预测值,并指出基于项目的推荐算法比基于用户的推荐算法还要好,且能解决基于用户的协同推荐的两个问题。但 Mild 教授从批判的角度重新审视了各种推荐算法,指出基于项目的协同推荐并不一定好,算法准确度与采用的实验规模数据有关,大多数情况下还是基于用户的协同推荐好[12]。

协同过滤的出发点是:兴趣相近的用户可能会对同样的东西感兴趣。所以,只要维护关于用户喜好的数据,从中分析得出具有相似口味的用户,然后就可以根据相似客户的意见来向其进行推荐。另一种可能的出发点是:用户可能较偏爱与其已购买的东西相类似的商品。可以根据用户对各种东西的评价来判断商品之间的相似程度,然后推荐与用户兴趣最接近的那些商品。前一种思路以客户与客户之间的关系为中心,而后一种思路则以项目与项目之间的关系为着眼点。协同过滤推荐的个性化程度高,目前有许多网站采用了基于该技术的推荐系统,如Amazon.com,CDNow.com, MovieRinder.com 等。

基于“兴趣相近的用户可能会对同样的东西感兴趣”这一出发点,本文主要研究基于用户的协同过滤推荐算法。

第 3 章 基于用户的协同过滤推荐算法

3.1 基于用户协同过滤算法的介绍

基于用户的协同过滤是个性化推荐中应用最为广泛的方法,它是基于邻居用户的兴趣爱好预测目标用户的兴趣偏好。算法先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户的邻居的偏好产生向目标用户的推荐[13]。

它的基本原理是利用用户访问行为的相似性来互相推荐用户可能感兴趣的资源对当前用户,系统通过其历史访问记录及特定相似度函数,计算出与其访问行为(购买的产品集合、访问的网页集等)最相近的 N 个用户作为用户的最近邻居集,统计的近邻用户访问过而目标用未访问的资源生成候选推荐集,然后计算候选推荐集中每个资源对用户的推荐度,取其中 K 个排在最前面的资源作为用户的推荐集。

3.2、基于用户喜好值推荐算法的思路

其基本思想是:通过计算用户对项目评分之间的相似性,搜索目标用户的最近邻居,然后根据最近邻居的评分向目标用户产生推荐[8]。

典型的协同过滤算法是基于用户的。协同过滤推荐算法的实现过程分为3 步:建立用户矩阵模型、通过用户相似度寻找最近邻居和产生推荐项目[8]。

3.2.1 建立用户模型

如表 2.1,协同过滤算法的输入数据通常表示为一个 m*n 的用户一评价矩阵 R,m 是用户数,n 是项目数,其中 R i j R_{ij} Rij 表示第 i个用户对第 j 个项目的评分值;

在这里插入图片描述

3.2.2 寻找最近邻居

在这一阶段,主要完成对目标用户最近邻居的查找。通过计算目标用户与其他用户之间的相似度,算出与目标用户最相似的“最近邻居”集。即: 对 目标用户 u 产生一个以相似度 sim(u,v)递减排列 的“ 邻居” 集合。该过程分两步完成: 首先计算用户之问的相似度,可采用皮尔森相关系数、余弦相似性和修正的余弦相似性等度量方法[9] ,其次是根据如下方法选择“ 最近邻居”:(1)选择相似度大于设定阈值的用户;(2)选择相似度最大的前 k 个用户;(3) 选择相似度大于预定阈值的 k 个用户。

1. 余弦相似性(Cosine)

每一个用户的评分都可以看作为n维项目空间上的向量,如果用户对项目没有进行评分,则将用户对该项目的评分设为 0。用户间的相似性通过向量间的余弦夹角度量。设用户i和用户j 在n维项目空间上的评分分别表示为向量 i ⃗ \vec {i} i 和向量 j ⃗ \vec{j} j ,则用户i和用户j之间的相似性sim(i, j)为:

s i m ( i , j ) = i ⃗ ⋅ j ⃗ ∣ ∣ i ⃗ ∣ ∣ ⋅ ∣ ∣ j ⃗ ∣ ∣ sim(i,j)=\frac{\vec{i} \cdot \vec{j}}{||\vec{i} || \cdot ||\vec{j}||} sim(i,j)=i j i j

其中,分子为两个用户评分向量的内积,分母为两个用户向量模的乘积。

2. 相关相似性(Correlation)

设用户i和用户j共同评分过的项目集合用 I i j I_{ij} Iij表示, I i j = I i ⋂ I j I_{ij}= I_{i} \bigcap I_j Iij=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的数据喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值