基于内容的协同过滤电影推荐系统比
较
姓名 :程思敏
学号:SA12011074
一.引言
随着信息技术和网络技术的飞速发展,一些视频网站有大量的电影资源,一个好
的电影推荐系统能为用户提供个性化服务,本报告是根据 movielens 上 100k 的数
据,实现了基于内容的推荐系统,其中用皮尔逊系数 欧几里得距离 余弦函数三
种方法分别计算了电影相似矩阵,并用 RMSE 值作为目标参数对三种方法的效果进
行了比较。
二.各种推荐系统简介
推荐系统是网络信息个性化服务的实现方式和未来的发展方向。随着国际互
联网的迅速发展,网络用户对 Internet 所提供的信息和服务也提出了新的要求,
浏览信息不再是他们上网的唯一目的,他们希望随时随地地掌握对他们有价值的
信息,从而获得更好的用户体验。这要求互联网提供的是一种经过筛选 、整合、
优化之后的个性化服务。
推荐系统根据其采用的技术可分为: 基于内容的推荐系统、基于用户的推荐
系统、协作过滤推荐系统和基于数据挖掘的推荐系统。也有混合使用上述方法的
混合推荐系统。
基于内容的推荐系统
基于内容过滤的推荐系统是利用项目内容和用户兴趣的相似性来进
行推荐。其基本思想是: 对每个 用户都用一个用户的兴趣模型 ( User
Profile)的文件构 成数据结构来描述其喜爱偏好; 对每个项目内容都
进 行特征提取, 形成特征向量; 当需要对某个用户进行 推荐时, 把该
用户的用户兴趣模型同所有项目的特征 矩阵进行比较得到二者的相似
度, 而后通过相似度行推荐。
基于用户的推荐系统
基于用户行为的个性化推荐系统算法思想 基于用户行为的个性化
推荐系统主要使用于面向 用户的电子商务网站,列如传统的B2C、
C2C等。主 要以网站销售的商品为推荐对象,如食品、衣服、电
影和新闻等。 本系统以用户浏览网站时经常带有明确目的性, 用户
很多浏览行为都能很好地反映用户兴趣爱好为依 据,从服务器日志中
挖掘出代表用户兴趣的模型,利 用路经聚类方法进行聚类,将大规模
用户集合转变为 具有近似爱好的用户簇。 用户行为聚类后,在每个
聚类簇中应用改进的协 同过滤技术。这种前向融合技术,能够通过缩
小协同 过滤的输入规模,减少用户评分矩阵纵向的深度,将 评分矩
阵中用户之间没有任何关系,转变为具有一定 相似性的用户集合,提
高了相似性度量结果的准确性。 改进的协同过滤技术是将用户对某个
商品的评分转变 为对某类商品的评分,减小了用户评分横向的宽度,
并通过公式计算出用户的评分值,避免了用户显示评 分难获得和真实
性问题,从而进一度降低了数据稀疏 性,提高了推荐精度
协同过滤推荐系统
协同过滤推荐是应用最成功的推荐技术, 它通过 分析用户兴趣, 在
用户集合中寻找指定用户的相似 用户, 综合相似用户对某一项目的评价,
形成对该指 定用户对此项目的评分预测。协同过滤的推荐过程 可分为 3
个部分: 用户兴趣文件表示; 计算当前用户与其它用户的相似度生成 最
近邻居集; 产生推荐数据集。
协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与
传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,
在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一
信息的评价,形成系统对该指定用户对此信息的喜好程度预测。
与传统文本过滤相比,协同过滤有下列优点:
1)能够过滤难以进行机器自动基于内容分析的信息。如艺术品、音乐;
2)能够基于一些复杂的,难以表达的概念(信息质量、品位)进行过滤;
3)推荐的新颖性。 正因为如此,协同过滤在商业应用上也取得了不错的
成绩。Amazon,CDNow,MovieFinder,都采用了协同过滤的技术来提高服
务质量。
协同过滤推荐算法,可进一步细分为基于用户的协同过滤(user-based
collaborative filtering)和基于物品的协同过滤(item-based
collaborative filtering)。
基于用户的协同过滤的基本思想是:根据所有用户对物品或者信息的偏好,
发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采
用计算“K- 邻居”的算法;然后,基于这 K 个邻居的历史偏好信息,为
当前用户进行物品的推荐。
基于物品的协同过滤的基本原理也类似,该方法根据用户和物品直接历史
点击或购买记录,来计算物品和物品之间的相似度,然后根据用户的历史
偏好的物品信息,将挖掘到的类似的物品推荐给用户
基于用户的协同过滤和基于物品的协同过滤各自有其适用场景。总的来看,
协同过滤方法的缺点是:
1)冷启动问题:如果用户对商品的评价非常稀疏,这样基于用户的评价
所得到的用户间的相似性可能不准确(即稀疏性问题);
2)随着用户和商品的增多,系统的性能会越来越低(即可扩展性问题);
3)最初评价问题(first rater):如果从来没有用户对某一商品加以评
价,则这个商品就不可能被推荐
三.个性化推荐系统的作用以及前景
个性化推荐的最大的优点在于,它能收集用户特征资料并根据用户特征,
如兴趣偏好,为用户主动作出个性化的推荐。而且,系统给出的推荐是可以
实时更新的,即当 系统中的商品库或用户特征库发生改变时,给出的推荐
序列会自动改变。这就大大提高了电子商务活动的简便性和有效性,同时也
提高了企业的服务水平。
总体说来,一个成功的个性化推荐系统的作用主要表现在以下三个方面:
1) 将电子商务网站的浏览者转变为购买者:电子商务系统的访问者在浏览
过程中经常并没有购买欲望,个性化推荐系统能够向用户推荐他们感兴趣的
商品,从而促成购买过程。
2)提高电子商务网站的交叉销售能力:个性化推荐系统在用户购买过程中
向用户提供其他有价值的商品推荐,用户能够从系统提供的推荐列表中购买
自己确实需要但在购买过程中没有想到的商品,从而有效提高电子商务系统
的交叉销售。
3)提高客户对电子商务网站的忠诚度:与传统的商务模式相比,电子商务
系统使得用户拥有越来越多的选择,用户更换商家极其方便,只需要点击一
两次鼠标就可以在不同的电子商务系统之间跳转。个性化推荐系统分析用户
的购买习惯,根据用户需求向用户提供有价值的商品推荐。如果推荐系统的
推荐质量很高,那么用户会对该推荐系统产生依赖。因此,个性化推荐系统
不仅能够为用户提供个性化的推荐服务,而且能与用户建立长期稳定的关系,
从而有效保留客户,提高客户的忠诚度,防止客户流失。
个性化推荐系统具有良好的发展和应用前景。目前,几乎所有的大型电子商
务系统,如 Amazon、eBay 等不同程度的使用了各种形式的推荐系统。国内
方面,知名购物网站麦包包、凡客诚品、库巴网、红孩子等都率先选择了本
土最先进的百分点推荐引擎系统构建个性化推荐服务系统。在日趋激烈的竞
争环境下,个性化推荐系统能有效的保留客户,提高电子商务系统的服务能
力。成功的推荐系统会带来巨大的效益。 另一方面,各种提供个性化服务
的 Web 站点也需要推荐系统的大力支持,国内推荐系统领航者百分点科技就
Web 站点个性化内容推荐方面也做出了贡献,在信息爆棚的今天,实施个性
化阅读势在必行。
四.本推荐系统思想
数据格式
UserID::MovieID::Rating::Timestamp 分别对应 用户 id::电影 id::评分::
时间戳。
实验中使用的数据时将整个数据集按 8:2 划分,分别用作训练集(u1.base)
和测试集(u1.test)。
KNN 最近邻思想
1.具体步骤
该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本
距离最近(最相似)的 K 篇文本,根据这 K 篇文本的得分来预测新文本
大致的得分,具体的算法步骤如下:
a) STEP ONE:根据特征项集合重新描述训练文本向量
b) STEP TWO:在新文本到达后,根据特征词分词新文本,确定新文本的
向量表示
c) STEP THREE:在训练文本集中选出与新文本最相似的 K 个文本,计
算公式为:
其中,K 值的确定目前没有很好的方法,一般采用先定一个初始值,
然后根据实验测试的结果调整 K 值,一般初始值定为几百到几千之
间。本实验室中 K 值为一个比例值,如总文本的 1/k,这样动态的
设定可以解决每个人看过电影不一样多的问题。
d) STEP FOUR:在新文本的 n 个邻居中,依次计算每部电影的权重,计
算公式如下:
公式1.预测评分公式
其中, Smn 为电影 m 和 n 的相似度,ru,n 为用户 u 对电影 n 的评分,
这样利用用户看过的相似度最高的 n 部电影对用户未看过的电影 m
进行预测评分。
e) STEP FIVE:比较用户对各个电影的预测评分,将预测得分最高的 t 个
电影推荐给用户。
2.算法的本质描述
kNN(k-nearest neighbor)的思想简单来说就是,要评价一个未
知的东西 U,只需找 k 个与 U 相似的已知的东西,并通过 k 个已知的,
对 U 进行评价。假如要预测我对 一部电影 M 的评分,根据 kNN 的思
想,我们可以先找出 k 个与我相似的,并且对 M 进行过评分的用户,
然后再用这 k 个用户的评分预测我对 M 的评分。又 或者先找出 k 个
与 M 相似的,并且我评价过的电影,然后再用这 k 部电影的评分预测
我对 M 的评分。在这个例子中,找相似用户的方法叫做 user- based
kNN,找相似物品的方法叫做 item-based kNN。这两种方法的思想和
实现都大同小异,因此下文只讨论 item-based kNN,并且将其简称
为 kNN。
根据 kNN 的思想,我们可以将 kNN 分为以上三个步骤,假设
预测用户 u 对物品 i 的评分。
四.电影相似度的计算方法
基于内容推荐系统的关键就是要填充电影的相似矩阵,一个优良的相似矩阵
直接影响到推荐的效果和 rmse 值。
推荐系统中常用的相似度有:Pearson correlation,Cosine,Squared
Distance,其中 Pearson correlation 的运用最为普遍,因此本文介绍并且比较这
三种方法的性能。
电影评分向量
对于电影 m 和 n 要计算其相似度,则要筛选出所有看过这两部电影的人
数 k,根据这些人对这两部电影的评分,得出两部电影的得分向量
x=(a1,a2,……,ak) 和 y=(b1,b2,……,bk)。对于相似度可以用以下方法计
算。
1. 欧几里得距离(欧氏距离)
公式:
欧氏距离
朴素相似度
改进 1
改进 2
公式2.欧式距离
公式3.欧氏距离相似度
公式4.欧式距离相似度改进1
公式5.欧式距离相似度改进2
典型场景:用户-物品,用户对物品打分,基于打分计算用户/物品之间的相
似度。
2.皮尔逊相关度
对于电影 m 和 n 要计算其相似度,则要筛选出所有看过这两部电影的人
数 k,根据这些人对这两部电影的评分,得出两部电影的得分向量
X=(a1,a2,……,ak) 和 Y=(b1,b2,……,bk)。
判断两组数据与某一直线拟合程度的一种度量。在数据不是很规范的时
候(如对物品的评价总是相对平均水平偏离很大时),效果更好。需要找出
共同
评分的用户。
皮尔逊相关度可定义为两个变量之间的协方差和标准差的商。即
公式6.X与Y相关度
具体到本系统,则公式如下:
公式7.电影i和j相似度
其中 Ru,i 为用户 u 对项目 i 的评分,对应带横杠的为这个用户集 U
对项目 i 的平均评分。
皮尔逊相关度的范围是[-1,1]。当值为-1 时,表示两组变量负相关,
为 0 时则表示两组变量不相关,为 1 时表示两组变量正相关。
典型场景:博客数据集(聚类)。
3.余弦相似度
就是两个向量之间的夹角的余弦值。