电影推荐系统

电影推荐系统
电影推荐系统

数学建模暑期培训论文

第1题

基于用户聚类的协同过滤电影推荐系统

姓名方向

谢瑜建模

舒浩浩建模

吴杨君编程

徐婷婷编程

黄睿论文

吴双论文

2014年7月20日

承诺书

我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写):B

我们的参赛报名号为(如果赛区设置报名号的话):

所属学校(请填写完整的全名):武汉理工大学

参赛队员(打印并签名) :1.

2.

3.

指导教师或指导教师组负责人(打印并签名):数模组

日期:2014年 7 月 20 日赛区评阅编号(由赛区组委会评阅前进行编号):

编号专用页

赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):

全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

基于用户聚类的协同过滤电影推荐系统

摘要

本文通过对网站电影推荐系统的探究,采用基于用户聚类的协同过滤分析方法[1]与Topsis(逼近理想点法)建立用户喜好模型与电影推荐模型,尝试模拟电影推荐系统的主要功能,对用户的信息与兴趣进行分析与呈现。

针对问题一,我们分析建立了两个关于用户喜好的评判指标:其观看同一类电影的数量以及对该类电影观后所给出的均分(通过统计方法求得)。其后建立用户观影类型矩阵,由此计算观看某一类的数量与对该类电影的打分,再根据对用户喜好体现程度的大小,采用Topsis法,即将每个电影打分与理想分数(5分)进行比较,如果该分数在设定条件下与理想分数距离更接近,则可以认为此电影更好。因此我们取欧氏距离得到评价函数,将两者综合后从而得到函数值大小对应用户对电影类型好恶的评价标准。

针对问题二,我们考虑寻找与目标用户喜爱电影类型相同的其他用户,其后再将其他用户观影评分高的同类电影筛选5部对目标用户进行推荐。具体而言,我们采用协同过滤分析法,即在用户群中找到指定用户的相似兴趣用户,综合这些相似用户的评价,进而对该用户的喜好进行预测。经与问题一中类似的处理,我们构建其他用户喜好矩阵(0-1化),较之于目标用户喜好矩阵(0-1化),同样采用欧氏距离比较两矩阵异同(相同则入选)。确定了相同偏好用户群后,通过设计筛选流程、算法编程,从用户群相同偏好电影中便可得到所推荐的5部电影。

针对问题三,由于用户观影信息未知,故我们将用户职业和年龄与已知观影用户信息进行整合归类,即建立职业-喜好、年龄-喜好的两个映射,得到职业喜好矩阵,并由系统聚类法中的Ward法经SPSS年龄分类得到年龄喜好矩阵,通过比较得出三种推荐电影类型,再采用问题二中的筛选流程即可得到针对用户的5部推荐电影。

综上所述,本文主要综合了基于用户的协同过滤分析法、聚类分析法、逼近理想点法等模型,结合了MATLAB、Excel、SPSS等分析软件,初步构建了模拟电影推荐系统,并结合数据对用户喜好电影类型进行了有效分析、能够结合用户喜爱电影类型对特定用户进行电影推荐、能对新用户的可能喜好电影进行预测和不完全推荐。本模型的预测结果具有代表性和通用性,虽然在制定评价指标时有一定的主观性,但对于实际电影推荐应用有较大的参考价值。

关键词:协同过滤,聚类分析,Topsis,欧氏距离,电影推荐系统

一、问题重述

1.1背景分析

随着信息时代的来临,如何在大量信息中搜寻、筛选和呈现所需信息给信息的需求者和提供者均带来不小挑战,而推荐系统[2]的出现则有效地解决了这一问题:其利用用户和信息产品间关系的建立,为信息的搜寻与呈现这两方面的问题提供了解决方案。通常而言,一个完整的推荐系统包含收集用户信息的行为记录模块,分析用户喜好的模型分析模块和推荐算法模块三个部分[3]。

电子商务网站的推荐系统作为人们最熟悉、最常用的应用,也被广泛应用于大型电子商务网站的营销之中,更有文献表明早期Amazon(亚马逊)的35%销售增量都来自它的推荐系统。除了商品,音乐、电影等也是常见的推荐对象。对合理有效的推荐模型的应用可以在较大程度上改善用户体验,因此对网站发展与改进有重要意义。

1.2问题重述

问题一,建立用户喜好模型,模型根据用户的已知喜好来分析其兴趣特点,使用所建立的模型对指定用户的喜好进行分析。

问题二,建立电影推荐模型,根据问题一的分析结果,在用户可能感兴趣的电影分类中给第一题中的用户各推荐5部电影(同等条件下电影编号最小者优先)。

问题三,针对新用户,即没有已知喜好的用户,选定合适的推荐标准,设计一个推荐系统。

二、问题分析

题中要求根据用户观看电影的统计情况、对所看电影的打分情况来分析和推测用户感兴趣的其他电影。我们使用Topsis(逼近理想点法)对两个评价指标进行综合,得到用户对各类型电影喜好程度的打分,得到用户的喜好向量。由此,我们通过聚类分析的方法找到具有相似喜好向量的用户,这些用户所看的电影形成目标群体。最后,我们在目标群体中筛选出均分最高的电影作为推荐方案。

2.1问题一分析

问题一中,为建立目标用户爱好模型,首先考虑部数对喜爱程度的影响,我们对目标用户观看的各类电影数量进行统计,得到每类电影观看总部数,并对得出数据进行标准化处理,作为第一个指标。除此以外,考虑平均分对喜爱程度的影响,计算目标用户对每一类电影打分的均值,同样进行标准化处理,得到第二个指标。为实现这两个目标的最大化,建立多目标规划模型,使用Topsis(理想解法)进行求解,得到目标用户关于喜爱程度的综合评价指标,最后通过对综合指标的排序得出其喜欢的电影类型排序。

2.2问题二分析

问题一中,为建立目标用户爱好模型,首先考虑部数对喜爱程度的影响,我们对目标用户观看的各类电影数量进行统计,得到每类电影观看总部数,并对得出数据进行标准化处理,作为第一个指标。除此以外,考虑平均分对喜爱程度的影响,计算目标用户对每一类电影打分的均值,同样进行标准化处理,得到第二个指标。为实现这两个目标的最大化,建立多目标规划模型,使用Topsis(理想解法)进行求解,得到目标用户关于喜爱程度的综合评价指标,最后通过对综合指标的排序得出其喜欢的电影类型排序。

2.3问题三分析

对于问题三,由于新用户仅有职业和年龄信息,而无该用户的观影和打分数据,故采用协同过滤算法求取与该用户是同类人的人群的喜好来推测此用户的喜好。首先,按照年龄将原有用户聚类分析,并结合问题一中已算出的每个原用户喜爱的三种类型,将每个用户的喜好类型标准化后的矩阵沿列求和,得出每个年龄段人群关于18种电影类型的喜好矩阵。将该矩阵标准化,同时将最喜欢的三类赋值为1,得出一个按年龄段分电影喜好类型的指标矩阵。同理,按照职业也可得到一个按职业分电影喜好类型的指标矩阵。然后,对于每一个新用户,依据其年龄和职业,从上述两个指标矩阵中提取出两个对应电影类别的喜好行向量。将这两个行向量取交集,交集得出的电影类别数量若小于3,则将原行向量中的交集删除后提取非交集部分的电影类别,再将这些电影类别按其原矩阵中标准化后的百分比排序,选取其前几项,直至确定该新用户喜欢的三类电影。此时,已知该新用户喜好的三种电影类型,即可采用问题二的解决方法(不需考虑用户是否看过所推荐的电影),为该目标新用户进行电影推荐。

三、基本假设

1)每个用户的打分可以反映其对电影的喜爱程度,此假设保证用户评分这一指标的合理性;

2)每个用户观看某类电影的数量可以反映其对此类电影的喜爱程度,此假设保证各类电影观看数量这一指标的合理性;

3)相同年龄段和相同职业的用户有相似的电影偏好,此假设保证对新注册用户偏好预测的合理性;

4)每部电影所得的均分可以反映其优劣,此假设保证对同类推荐电影选择的合理性;5)用户的喜好在一定时间范围内是不变的,此假设保证模型的可信性;

6)问题三中新用户的年龄和职业属于原始数据,此假设保证推荐模型的准确性;

7)用户之间互不相关,此假设保证每一个原始数据都是有效而且准确的。

四、符号说明

符号符号说明

A 用户观影类型矩阵 X 全体用户电影类型喜好矩阵

N 用户所看电影总数 M 用户对各电影打分列向量

n j

用户所看第j 类电影数

m j

用户所看第j 类电影均分

y j

综合评价函数

五、模型建立与求解

5.1 问题一

由题设,统计出用户观看每种电影的数量、对每种电影打的均分,再由Topsis 方法得出综合评价模型对各种类型电影打出综合分值,最后通过对综合分值的排序得出用户最偏爱的类别。

5.1.1基于理想点法的用户喜好模型的建立

分别提取出108,133,228,232,336,338,545,613,696,777用户的观影数据,得到用户观影类型矩阵A 如下:

00...000...0110...0?? ? ? ? ???

矩阵A 为N ?18的矩阵,N 为该用户所看电影总数,18列从左至右对应所给数据文件中的电影类别,0,1分别代表不属于或属于该类别。

观看的第j 种电影的数量n j 为:

j n =1

n

ij i A =∑,j ∈[1,18],j ∈Z

(1)

观看的第j 类电影的均分m j 为:

j m =1

()(5)n

ij i j i A M n =∑,j ∈[1,18] ,j ∈Z

(2)

其中为用户对第i行对应电影M i的打分。

现在我们已经得到了两个指标,都可以评判用户喜爱某种类型电影的程度,我们要把每类电影根据用户喜爱程度排序就需要将两个指标综合起来,这里我们使用了Topsis[4]方法。

Topsis即逼近理想点法,实际中,经常会遇到这样的一类综合评价问题,即首先设定系统的一个理想(样本)点,然后对于每一个被评价对象与理想点进行比较。如果某一个被评价对象在某种意义下与理想点距离最接近,则可以认为被评价对象就是最好的。这里我们取简单的欧氏距离计算评价对象与理想点的距离,这里两项权值均取1,得到综合评价函数

y=(3)

j

由此我们就得到了评判用户对电影类型喜爱程度的标准,函数值越小对应的电影类型越受用户偏爱。

5.1.2问题一的求解

我们使用Excel和MATLAB进行数据处理及求解,由综合评价函数得到了108,133,228,232,336,338,545,613,696,777 号用户的电影类型喜好表,见附录1.问题一电影喜好表。

我们从表中提取了这10个用户喜好的前五种电影类型,如下表:

表1 用户偏好类型

用户号第一类型第二类型第三类型第四类型第五类型

108 Drama Romance Action Comedy War

133 Drama Thriller Action Comedy Romance

288 Drama War Romance Action Adventure 232 Drama Romance Comedy Action Comedy

336 Comedy Romance Drama Action Thriller

338 Comedy Drama Romance Thriller Mystery

545 Action Adventure Comedy Sci-Fi Thriller

613 Drama Action Comedy Romance Thriller

696 Drama Thriller Mystery Crime War

777 Drama Comedy War Thriller Romance

5.1.3 用户喜好模型的结果分析

利用综合评价函数,我们顺利得出了10个用户的电影类型偏好。对于用户偏好的准确性问题需要用户反馈才能验证[5],这里由于缺少反馈信息,对结果的准确性无法做出绝对的正误判断。

5.2 问题二

由问题一的结果,通过聚类分析[6]的方法可找出与目标用户有相似偏好的其他用户,即前三个偏好的电影类型相同的用户,他们观看的此三类电影作为备选电影,计算目标用户的打分均值,先将得分低于此均值的电影排除,在剩下的电影中根据综合评价指标选出5个最优电影进行推荐。

5.2.1基于用户聚类的协同过滤推荐模型的建立 我们选取用户喜好前三的电影类型作为分类的依据,在用户最喜欢的电影类型中选取推荐电影,可以提高推荐结果的针对性。分类方法为聚类分析的方法。

所谓聚类分析是将相似个体分组归类的分析过程,通过对某一标准相似度的判断可以将研究对象区分开来,从而使研究对象数量减小。

首先,我们对所有用户信息进行问题一中的处理,得到全体用户的偏好类型矩阵。然后我们将矩阵0-1化:

0,()1,()ij t ij ij t x x x x x >?=?

≤?

(4)

其中矩阵X 为全体用户电影类型喜好矩阵,x t 为每个用户第三偏好类型对应的综合评价函数值。

我们得到的新矩阵中用户喜好的前三类电影对应值为1,其他类别电影对应值为0。同样的,我们对目标用户的喜好矩阵也进行0-1化处理,得到包含三个1元素和十五个0元素的行向量。

通过与其他用户喜好0-1矩阵的匹配,我们将与目标用户行向量完全相同的行取出,即对所有用户进行聚类分析,分类条件为:

(目标用户0-1矩阵)-(其他用户0-1矩阵)

若结果为零矩阵则保留,否则舍去,这里其实是用欧氏距离的思想加以判断,我们提取了与目标用户0-1矩阵欧氏距离为0的用户。这样就找到了与目标用户前三个偏好类型完全相同的所有用户。他们所看过的电影中属于三种共同偏好的电影为待选的电影。 筛选待选电影流程如下图:

图1 筛选推荐电影流程图

由图1所示的流程我们就从待选电影里筛选出了五部推荐给用户。

5.2.2问题二的求解

我们使用Excel和MATLAB对数据进行处理和求解,将待选电影根据图一流程选出了5部合适电影和对应的所选用户均分,运算结果见附件2用户推荐电影及均分,用户推荐电影方案如下表:

表2 用户推荐电影

用户 108 133 228 232 336 338 545 613 696 777 推荐电影

313 28 483 170 170 170 173 173 191 430 172 855 172 512 512 512 257 435 124 211 207 917 286 936 936 936 385 186 135 69 631 54 631 517 517 517 201 257 855 502 720 244 549

692 692 692 184 385 587 235

5.2.3 推荐模型的结果分析

我们使用建立的电影推荐模型最终为10个用户得出了5部推荐电影。可以看到,有些电影在多个用户推荐当中出现,如170,512,692等,而这些用户之间是有共同喜好类型的,这就反映了模型二结果的合理性。

5.3 问题三

由于新用户的信息匮乏,喜好分析模型不再是根据用户观影信息建立,而是根据同类人群的观影信息来建立。本文首先根据年龄、职业对已知用户进行筛选,找出新用户的同类人,再根据找出同类人群利用问题一中的方法推测其偏好类型。得出新用户的偏好类型后即可根据问题二的解决方法,为该新用户进行较准确的电影推荐。

5.3.1 基于新用户的推荐模型的建立 我们要用已知用户的职业、年龄来推断新用户的喜好,首先需要对已知数据进行预处理。我们取前900个用户信息进行处理,其他用户信息用作检验。

我们先建立用户职业与用户前三偏好类型的映射关系,对不同职业的人群分组,得到其喜好0-1矩阵,例如

010001100

1??

? ? ?

???

对矩阵列项求和即得到一个长度为18的职业类型偏好向量,将其按问题二中方法0-1化即为职业喜好0-1向量,整合所有职业的向量组成职业喜好0-1矩阵,如下表:

表3 职业喜好0-1矩阵

职业类型 电影种类

administrator 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0

artist 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 doctor 1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 educator 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 engineer 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 entertainment 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0

executive 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 healthcare 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 homemaker 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 lawyer 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 librarian 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 marketing 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 none 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 programmer 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 retired 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 salesman 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 scientist 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 student 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 technician 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 writer 0 0 0 0 1 0

0 1 0 0 0 0 0 0 0 1 0 0

然后建立用户年龄段与用户前三偏好类型的映射关系,对不同年龄的人群分组,这里我们使用进行年龄合理分组,使用的方法是系统聚类方法,经过多次拟合,我们选择了Ward 法作为分类条件,Ward 法使用的是样本的离差平方和(Sumof Squares of Deviations ),即:

2

1

()

n

i

i x x =-∑

(5)

我们规定将年龄段分为10组,得到SPSS 年龄分组结果如下表:

表2 年龄分组

年龄组编号 年龄区间 人数 1 23-25

99 2 46-53 123 3 33-36 91 4 41-45

82 5 54-73 67 6 26-29 137 7 37-40 79 8 19-22 119 9 30-32 92 10 7-18 54

类似地,我们整理得到了年龄段喜好0-1矩阵,如下表:

表4年龄喜好0-1矩阵

年龄区间电影种类

23-25 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 46-530 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 33-36 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 41-45 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 54-730 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 26-29 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 37-40 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 19-22 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 30-32 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 7-18 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0

当新用户提供了年龄和职业信息后,我们取出职业喜好0-1矩阵和年龄段喜好0-1矩阵分别对应的三种电影类型,通过比较得到三种推荐类型,比较步骤如下:1)优先取两矩阵中均为1的类型;

2)剩余类型中取观看百分比最大的类型;

3)百分比相同类型取序号较小者。

这样,我们就得到了针对新用户的三种推荐电影类型。确定推荐电影的类型之后接下来的工作与问题二中无异,根据图1流程筛选后可以得到针对用户的5部推荐电影。

5.3.2 问题三的求解

我们使用Excel和MATLAB对数据进行处理和求解,我们使用已知的用户来代替新用户,由于我们只使用已知用户的年龄和职业信息,得到的结果就是输入新用户所得到的结果,最后我们将结果与此用户真实喜好进行比对,这样就可以达到对推荐结果检验的目的。

以932号用户为例,我们只输入他的年龄和职业得到的推荐电影如下:

5.3.3 模型三的结果分析

所给的推荐电影中,电影类型全部符合932号用户的偏好类型,且170,517,778三部电影为本用户看过的,所给评分分别为4,5,4。可以看到,模型三的求解效果比较合理,是与用户真实偏好基本吻合的。

六、模型优缺点

6.1 模型的优点

模型综合考虑了用户个人喜好和电影的总体评价两个方面,推荐电影类型与用户的喜好类型一致,且为同类人群中得分最高的电影,推荐结果具有代表性和针对性。

模型具有通用性,载入用户数据后,输入任意用户编号都可得出针对此用户的推荐方案。

算法上,我们通过先筛选后处理的方法减小了数据处理的工作量,加快了程序运行的速度。

6.2 模型的缺点

制定综合评价指标时,对两个指标权重的选取有一定主观性。

模型对数据给出的格式有严格要求,难以完全推广。

七、模型改进方向

模型缺少对一些特殊情况的考虑,如不存在与目标用户前三偏好类型完全相同的用户时,电影推荐模型就无法确定待选电影,此时可以适当放宽条件,将前三偏好类型中只有两类与目标用户相同的用户找出,从而可以延续之后的处理方法。

另外,综合评价函数中对两个评价指标的权值的选取可以进行适当调整,在有用户反馈的条件下,可以根据用户的反馈信息来修改权值,使函数的输出结果与反馈结果有更高的准确度,这里可以使用平均绝对误差(MAE)[5],经过拟合即可得出最佳权值。

参考文献:

[1]HAMEED M A, JADAAN O A, RAMACHANDRAM S. Collaborative FilteringBased Rec ommendation System: A survey [J].,IJCSE, 2012.

[2] HOSSEINPOUR M J, MOSALANEZHAD M, BADROOH I, et al, An intelligent fuzzy-based recommendation system for consumer electronic products [J]. ECDC, 22:2-17,2008.

[3] 刘建国, 周涛, 汪秉宏,个性化推荐系统的研究方法 [M],自然科学进展,19:1-4, 2009.

[4] IBEG. TOPSIS [G/OL]//IBEG, Wiki,2014.7.18.

[5]建国刘, 涛周, 强郭, et al, 个性化推荐系统评价方法综述 [J], 复杂系统与复杂性科学, 2009.

[6]孙守义, 王蔚, 一种基于用户聚类的协同过滤个性化图书推荐系统 [M]. 现代情报,11:139-140,2007.

附件

1.问题一电影喜好表

2.用户推荐电影及均分

3.使用程序

a=load('gj.txt');

y=pdist(a);

yc=squareform(y)

z=linkage(y)

[h,t]=dendrogram(z)

T=cluster(z,'maxclust',5);

for i=1:5

tm=find(T==i);

tm=reshape(tm,1,length(tm));

fprintf('第%d类的有%s\n',i,int2str(tm));

end

第一问

A=[];% A 为用户名,电影编号,评分构成的矩阵,需导入M=zeros(900,18);

Z=A(:,1);

for i=1:900

[I,J]=find(Z==i);

n=length(I);

B=zeros(n,2);

for j=1:n

B(j,1)=A(I(j),2);

B(j,2)=A(I(j),3);

end

C=zeros(length(B),18);

for k=1:length(B)

C(k,:)=T(B(k,1),:);

end

D=C;

for j=1:length(D)

D(j,:)=D(j,:)*B(j,2);

end

count=zeros(1,18);

sum=zeros(1,18);

for k=1:18

for j=1:length(C)

count(k)=count(k)+C(j,k); sum(k)=sum(k)+D(j,k);

end

end

count1=count;

sum1=sum;

for j=1:18

if count1(j)==0

count1(j)=0;

else

sum1(j)=sum(j)/(5*count1(j)); count1(j)=count(j)/length(C); end

end

ss=zeros(1,18);

for j=1:18

ss(j)=sqrt((sum1(j)-1)^2+(count1(j)-1)^2);

end

M(i)=ss;

end

ss=zeros(1,18);

for j=1:18

ss(j)=sqrt((sum1(j)-1)^2+(count1(j)-1)^2);

end

M(i)=ss;

end

第二问

function PPSS=li(V,B,A,T) %V为要输入的个人喜好程度矩阵,B为所有人的喜好程度矩阵,

F=zeros(900,1) %A 为用户名,电影编号,评分构成的矩阵,T为电影名编号与类别矩阵

for i=1:900

F(i)=norm(B(i,:)-V);

if F(i)==0;

F(i)=1;

else

F(i)=0;

end

end

for i=1:900

F(i)=F(i)*i;

个性化推荐系统分析与设计

课程设计报告 课程名称系统分析设计与开发方法 课题名称个性化推荐系统的分析与设计 专业信息管理与信息系统 班级1002 学号201003110215 姓名黄天玲 指导教师唐志航 2014年元月4 日

一、设计内容与设计要求 1.设计内容: 见附录 2.设计要求: 1).设计正确,方案合理。 2).界面友好,使用方便。 3).建模语言精炼,结构清晰。 4).设计报告4000字以上,含建模语言说明,用户使用说明,UML建模图。 5).上机演示。 二、进度安排 第十七周星期四下午:课题讲解,查阅资料、系统分析 星期五上午:总体设计、详细设计 第十八周星期一:建模,上机调试、撰写课程设计报告 星期二下午:答辩 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

设计课题:个性化推荐系统的分析与设计 一、问题描述: 对网络购物个性化推荐系统进行分析与设计,对购物流程进行分析,对购物中关键环节进行设计,实现对商品的录入、显示、修改、排序、保存、销售、售后服务以及客户管理等操作实现推荐结果准确性、推荐结果多样性、用户交互度、系统界面设计、系统交互设计、推荐透明度(推荐解释)。 二、功能要求: 1、用UML完成一个小型团购系统的分析、设计。 2、写出系统需求报告,说明系统的功能。 3、通过面向对象的分析和设计建立系统模型。 4、画出完整的用例图、类图、对象图、包图;及时序图、协作图、状态图、活动图;及组件图和配置图) 三、建模提示: 1、使用Enterprise Architect 8.0建模。 2、使用 Ration Rose 或StarUML建模。 四、其它 对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能,特别是售后以及客户关系管理。

改进了协同过滤推荐算法的推荐系统的制作流程

图片简介:

本技术介绍了一种改进了协同过滤推荐算法的推荐系统,属于推荐系统技术相关领域。该推荐系统包括输入模块、推荐算法和输出模块三个部分,输入模块用于输入用户个人基本信息、用户对项目的评分和用户历史信息等;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目。其中改进部分是对推荐算法中冷启动问题进行优化。针对新用户、新项目和新系统不同的冷启动问题,提出了优化解决方法。 技术要求 1.一种改进了协同过滤推荐算法的推荐系统,其特征在于,包括输入模块、推荐算法和输出模块;输入模块用于输入用户个人基本信息、用户对项目的评分、用户历史信息和当 前的点击操作;推荐算法根据输入信息分析用户兴趣爱好,寻找最相似用户和项目,给 出预测的评分结果;输出模块依据用户输入请求,输出相应的推荐项目到客户端。 2.如权利要求1所述的一种改进了协同过滤推荐算法的推荐系统,其特征在于,所述推荐算法为协同过滤推荐算法,所述协同过滤推荐算法冷启动实现方式为:一、提供非个性 化的推荐,非个性化推荐的最简单例子就是热门排行榜,可以给用户推荐热门排行榜, 然后等到用户的反馈足够多,数据收集到一定的时候,再转换为个性化推荐;二、利用 用户的注册信息,提供的年龄、性别、职业等数据做粗粒度的个性化;三、利用用户的 社交网络账号登录,导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的 物品;四、利用物品的内容信息计算物品相关表,利用专家进行标注。 3.如权利要求2所述的一种改进了协同过滤推荐算法的推荐系统,其特征在于,在所述推荐算法中,用户点击商品链接后,推荐系统会记录用户的点击行为,然后系统计算用户 间相似度,找出与当前用户最相似的前N个用户,接着在这前N个用户中找出当前用户没有点击的商品,将点击率最高的几个商品加入推荐列表,最后将推荐列表发往客户端向 用户展示推荐的商品。

个性化音乐推荐系统设计与实现

个性化音乐推荐系统设计与实现 摘要 21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,与人们的日常生活早已建立了离不开的联系。对网络音乐服务来说,不管是音乐下载服务,或者是网络音乐电台服务,都需要用到优秀的内容推荐系统去辅助整个系统。个性化音乐推荐系统是目前最流行的应用方法之一。同时音乐成为重要的媒介与朋友交流文化,所以很多SNS应用当中将音乐服务添加到里面。 本系统采用SSH框架组合进行设计,基于Java Web技术,系统使用UML建模。本系统的功能模块主要包括:音乐上传、单曲管理、个人信息维护、收集歌曲信息、音乐检索以及系统推荐等。音乐上传利用JavaScript脚本定义了一个函数,单曲管理在action中定义一个方法,系统推荐是利用协同过滤算法来进行的。 整个系统主要实现了从用户注册和登录、检索音乐到收听音乐、评分音乐,个性化推荐的整个音乐系统,管理员可使用系统后台对音乐歌曲信息进行修改、会员信息修改、系统推荐等进行有效的管理。很大程度上提高了对音乐管理的效率,符合了广大用户们的基本需求。 关键词:SSH框架,音乐系统,协同过滤,MVC模式

DESIGN AND INPLEMENTATION OF PERSONALIZED MUSIC RECOMMENDATION SYSTEM Abstract The 21st century is the era of information, with the development of information technology and network technology, it has penetrated into every aspect of daily life, with people in daily life has been inextricably linked to the the Internet music service, whether it is music download service, or network music radio service, all need to use the excellent content recommendation system to support the whole system. Personalized music recommendation system is one of the most popular applications. At the same time music has become an important medium of communication with friends culture, so many SNS applications when the music services added to the inside. The system uses a combination of SSH framework design, based on Java Web technology,system used UML modeling. Site function modules include: Music upload, music management,personal information maintenance, collecting music information, music search and system recommend. The entire site is simple, user-friendly, flexible and practical. The main achievement of the user registration and login, retrieve music to listen to music, the whole comment is called online music listening processes, and system administrators can use the background information on the goods, membership information, message information, and effective management. Greatly improving the efficiency of music management, in line with the needs of customers. Keywords: SSH Framework,Music System,Collaborative Filtering,MVC Pattern

基于协同过滤算法的电影推荐系统设计

高级数据挖掘期末大作业

基于协同过滤算法的电影推荐系统 本电影推荐系统中运用的推荐算法是基于协同过滤算法(Collaborative Filtering Recommendation)。协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。 电影推荐系统中引用了Apache Mahout提供的一个协同过滤算法的推荐引擎Taste,它实现了最基本的基于用户和基于内容的推荐算法,并提供了扩展接口,使用户方便的定义和实现自己的推荐算法。 电影推荐系统是基于用户的推荐系统,即当用户对某些电影评分之后,系统根据用户对电影评分的分值,判断用户的兴趣,先运用UserSimilarity计算用户间的相似度.UserNeighborhood根据用户相似度找到与该用户口味相似的邻居,最后由Recommender提供推荐个该用户可能感兴趣的电影详细信息。将用户评过分的电影信息和推荐给该用户的电影信息显示在网页结果页中,推荐完成。 一、Taste 介绍 Taste是Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce 编程模式转化,从而可以利用hadoop的分布式架构,提高推荐算法的性能。 在Mahout0.5版本中的Taste,实现了多种推荐算法,其中有最基本的基于用户的和基于内容的推荐算法,也有比较高效的SlopeOne算法,以及处于研究阶段的基于SVD和线性插值的算法,同时Taste还提供了扩展接口,用于定制化开发基于内容或基于模型的个性化推荐算法。 Taste 不仅仅适用于Java 应用程序,还可以作为内部服务器的一个组件以HTTP 和Web Service 的形式向外界提供推荐的逻辑。Taste 的设计使它能满足企业对推荐引擎在性能、灵活性和可扩展性等方面的要求。 下图展示了构成Taste的核心组件:

个性化推荐系统研究综述

个性化推荐系统研究综述 【摘要】个性化推荐系统不仅在社会经济中具有重要的应用价值,而且也是一个非常值得研究的科学问题。给出个性化推荐系统的定义,国内外研究现状,同时阐述了推荐系统的推荐算法。最后对个性化推系统做出总结与展望。 【关键词】推荐系统;推荐算法;个性化 1.个性化推荐系统 1.1个性化推荐系统的概论 推荐系统是一种特殊形式的信息过滤系统(Information Filtering),推荐系统通过分析用户的历史兴趣和偏好信息,可以在项目空间中确定用户现在和将来可能会喜欢的项目,进而主动向用户提供相应的项目推荐服务[1]。传统推荐系统认为推荐系统通过获得用户个人兴趣,根据推荐算法,并对用户进行产品推荐。事实上,推荐系统不仅局限于单向的信息传递,还可以同时实现面向终端客户和面向企业的双向信息传递。 一个完整的推荐系统由3个部分组成:收集用户信息的行为记录模块,分析用户喜好的模型分析模块和推荐算法模块,其中推荐算法模块是推荐系统中最为核心的部分。推荐系统把用户模型中兴趣需求信息和推荐对象模型中的特征信息匹配,同时使用相应的推荐算法进行计算筛选,找到用户可能感兴趣的推荐对象,然后推荐给用户。 1.2国内外研究现状 推荐系统的研宄开始于上世纪90年代初期,推荐系统大量借鉴了相关领域的研宄成果,在推荐系统的研宄中广泛应用了认知科学、近似理论、信息检索、预测理论、管理科学以及市场建模等多个领域的知识。随着互联网的普及和电子商务的发展,推荐系统逐渐成为电子商务IT技术的一个重要研究内容,得到了越来越多研究者的关注。ACM从1999年开始每年召开一次电子商务的研讨会,其中关于电子商务推荐系统的研究文章占据了很大比重。个性化推荐研究直到20世纪90年代才被作为一个独立的概念提出来。最近的迅猛发展,来源于Web210技术的成熟。有了这个技术,用户不再是被动的网页浏览者,而是成为主动参与者[2]。 个性化推荐系统的研究内容和研究方向主要包括:(1)推荐系统的推荐精度和实时性是一对矛盾的研究;(2)推荐质量研究,例如在客户评价数据的极端稀疏性使得推荐系统无法产生有效的推荐,推荐系统的推荐质量难以保证;(3)多种数据多种技术集成性研究;(4)数据挖掘技术在个性化推荐系统中的应用问题,基于Web挖掘的推荐系统得到了越来越多研究者的关注;(5)由于推荐系统需要分析用户购买习惯和兴趣爱好,涉及到用户隐私问题,如何在提供推荐服务的

个性化推荐知识汇总

一 基于协同过滤(collaborative filtering,CF)的推荐系统通过收集来自其他相似用户或项目的评价信息,自动预测当前用户的兴趣偏好。协同过滤的基本假设是用户会更喜欢那些相似用户偏爱的商品,已被广泛应用在一些大型的商业系统,如亚马逊和阿里巴巴等。 目前,协同过滤算法主要包括基于内存的、基于模型的以及二者相混合的推荐技术”。使用最多的模型是k最近邻(k-nearest neighbor,kNN)协同过滤技术,包括基于用户推荐和基于项目推荐两种技术。 一般说来,本体描述了某个应用领域的概念和概念之间的关系,使得它们具有唯一确定的含义,获得该领域的相关知识,提供对该领域知识的共同理解,便于用户和计算机之间进行交流。 OntoECRec推荐模型 二 1995年,卡内基·梅隆大学的A.RDben等人在美国人工智能协会上提出了个性化导航系统we-watcher,真正标志着个性化服务的开始;1997年3月,(communications of the AcM)。组织了个性化推荐系统的专题报道,标志着个性化服务已经被技术界高度重视;1999年,德国Dresden技术大学的J.Tania 实现了个性化电子商务原型系统TELLIM,标志着个性化服务开始向全球发展;2000年,NEc研究院的D.B.Kurt等人为搜索引擎atesecr增加了个性化推荐功能,实现citeseer的个性化。2001年,纽约大学的GediminaS Adomavicius 和Alexander Tuzhilin实现了个性化电子商务网站的用户建模系统1:1Pro。 个性化推荐服务体系结构中,信息收集模块是个性化服务系统的基础模块。用户的信息包括了用户的个人基本资料、购买的历史记录及浏览记录等。个人基本资料可以从用户注册表单中获得;购买的历史记录主要存放于电子商务网站的后台交易数据库中,包含了每位用户以前历次购物的详细情况记录,如购物时间、商品清单、价格、折扣等,同时也可以收集用户放入购物篮而未购买的商品记录,以及用户过去浏览过的商品信息等。当然要搜集用户的行为信息,日志文件是必不可少的,如要收集服务器日志,则要在服务器端获取,抽取出特定用户的访问记录;如要收集用户浏览的页面和浏览行为,则既可以在用户端获得,也可以在服务器端从用户记录中获得。

个性化推荐系统的文献综述

个性化推荐系统在电子商务网站中的应用研究 一、引言 随着Internet的普及,信息爆炸时代接踵而至,海量的信息同时呈现,使用户难以从中发现自己感兴趣的部分,甚至也使得大量几乎无人问津的信息称为网络总的“暗信息”无法被一般用户获取。同样,随着电子商务迅猛发展,网站在为用户提供越来越多选择的同时,其结构也变得更加复杂,用户经常会迷失在大量的商品信息空间中,无法顺利找到自己需要的商品。 个性化推荐,被认为是当前解决信息超载问题最有效的工具之一.推荐问题从根本上说就是从用户的角度出发,代替用户去评估其从未看过的产品,使用户不只是被动的网页浏览者,而成为主动参与者。准确、高效的推荐系统可以挖掘用户的偏好和需求,从而成为发现用户潜在的消费倾向,为其提供个性化服务。在日趋激烈的竞争环境下,个性化推荐系统已经不仅仅是一种商业营销手断,更重要的是可以增进用户的黏着性。本文对文献的综述包括个性化推荐系统的概述、常用的个性化推荐系统算法分析以及个性化推荐系统能够为电子商务网站带来的价值。 二、个性化推荐系统概述 个性化推荐系统是指根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。它是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。购物网站的推荐系统为客户推荐商品,自动完成个性化选择商品的过程,满足客户的个性化需求,推荐基于:网站最热卖商品、客户所处城市、客户过去的购买行为和购买记录,推测客户将来可能的购买行为。 1995年3月,卡内基 梅隆大学的Robert Armstrong等人在美国人工智能协会首次提出了个性化导航系统Web-Watcher,斯坦福大学的Marko Balabanovic 等人在同一次会议上推出了个性化推荐系统LIRA。同年8月,麻省理工学院的

基于混合推荐的电影推荐系统设计

基于混合推荐的电影推荐系统设计 绪论 随着经济的快速发展,人们的娱乐生活越来越丰富。电影,作为娱乐的重要组成部分,越来越受到大众的欢迎,特别是受到年轻人的喜爱。但是,如何在海量的电影中找到满足自己喜爱的电影却成为一个难题。电影个性化推荐应运而生,它就是来解决如何在海量信息中寻找关键点,向用户推荐出符合用户要求的电影。 本文,基于内容和协同过滤混合的推荐算法,建立一个个性化的电影推荐系统。电影作为推荐给用户的一种产品,其对特定的时间依赖性并不强。基于内容的推荐系统可以有效地克服冷启动和数据稀疏性问题,在系统初运行阶段和有新用户进入阶段可以提供较高的准确性。当数据评估到达一定程度后,使用协同过滤推荐系统进行推荐。协同过滤技术,不仅可以提供同类型的优质产品给用户,还可以根据近邻集的不同进行跨类型的推荐。并且随着时间的增加,用户评价数的增多,更多的用户加入到系统中后,会找到更匹配的近邻用户,使得推荐质量得到提升。 系统设计 一、总体构架设计 电影推荐系统采用B/S模式的三层框架设计,分为表示层、业务层和数据层。这样的设计模式达到了分散关注、松散耦合、逻辑复用和标准定义的目的。系统总体框架结构图如图1所示。 二、对象关系及动态模型 a)对象关系 电影管理中的主要对象有:管理员和电影。管理员对电影的操作有:查询、修改、删除、添加等。管理员与电影是一对多的关系。 电影推荐中的对象是电影,系统在这些电影信息的基础上进行推荐,系统和电影的关系是多对多的关系。用户对象可以细分为普通用户和管理员。对象详细关系图如图2所示。

图1 总体构架设计 图2 对象间关系图 b)动态模型 电影推荐模块是系统主要的动态模型。电影推荐系统的状态转化图如3所示。 电影信息,用户信息,用户浏览信息等 数据层 实时业务数据数据仓库(历史数据) 电影查阅,电影修改,电影删除,电影添加等 业务层 电影管理业务 电影推荐系统算法 注册,登陆,浏览,观看,添加,删除,修改等 表示层 页面浏览器 网络应用客户端 用户 管理员 普通用户 电影管理 浏览 观看 电影信息 推荐算法

推荐系统的常用算法原理和实现

推荐系统的出现 推荐系统的任务就是解决,当用户无法准确描述自己的需求时,搜索引擎的筛选效果不佳的问题。联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对他感兴趣的人群中,从而实现信息提供商与用户的双赢。 推荐算法介绍 基于人口统计学的推荐 这是最为简单的一种推荐算法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。 系统首先会根据用户的属性建模,比如用户的年龄,性别,兴趣等信息。根据这些特征计算用户间的相似度。比如系统通过计算发现用户A和C比较相似。就会把A喜欢的物品推荐给C。 优缺点: ?不需要历史数据,没有冷启动问题 ?不依赖于物品的属性,因此其他领域的问题都可无缝接入。 ?算法比较粗糙,效果很难令人满意,只适合简单的推荐 基于内容的推荐 与上面的方法相类似,只不过这次的中心转到了物品本身。使用物品本身的相似度而不是用户的相似度。

系统首先对物品(图中举电影的例子)的属性进行建模,图中用类型作为属性。 在实际应用中,只根据类型显然过于粗糙,还需要考虑演员,导演等更多信息。 通过相似度计算,发现电影A和C相似度较高,因为他们都属于爱情类。系统还会发现用户A喜欢电影A,由此得出结论,用户A很可能对电影C也感兴趣。 于是将电影C推荐给A。 优缺点: ?对用户兴趣可以很好的建模,并通过对物品属性维度的增加,获得更好的推荐精度 ?物品的属性有限,很难有效的得到更多数据 ?物品相似度的衡量标准只考虑到了物品本身,有一定的片面性 ?需要用户的物品的历史数据,有冷启动的问题 协同过滤 协同过滤是推荐算法中最经典最常用的,分为基于用户的协同过滤和基于物品的协同过滤。那么他们和基于人口学统计的推荐和基于内容的推荐有什么区别和联系呢? 基于用户的协同过滤——基于人口统计学的推荐 基于用户的协同过滤推荐机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。 基于物品的协同过滤——基于内容的推荐

电影推荐系统

数学建模暑期培训论文 第1题 基于用户聚类的协同过滤电影推荐系统 姓名方向 谢瑜建模 舒浩浩建模 吴杨君编程 徐婷婷编程 黄睿论文 吴双论文

2014年7月20日

承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写):B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名):武汉理工大学 参赛队员(打印并签名) :1. 2. 3. 指导教师或指导教师组负责人(打印并签名):数模组 日期:2014年 7 月 20 日赛区评阅编号(由赛区组委会评阅前进行编号):

编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

基于用户聚类的协同过滤电影推荐系统 摘要 本文通过对网站电影推荐系统的探究,采用基于用户聚类的协同过滤分析方法[1]与Topsis(逼近理想点法)建立用户喜好模型与电影推荐模型,尝试模拟电影推荐系统的主要功能,对用户的信息与兴趣进行分析与呈现。 针对问题一,我们分析建立了两个关于用户喜好的评判指标:其观看同一类电影的数量以及对该类电影观后所给出的均分(通过统计方法求得)。其后建立用户观影类型矩阵,由此计算观看某一类的数量与对该类电影的打分,再根据对用户喜好体现程度的大小,采用Topsis法,即将每个电影打分与理想分数(5分)进行比较,如果该分数在设定条件下与理想分数距离更接近,则可以认为此电影更好。因此我们取欧氏距离得到评价函数,将两者综合后从而得到函数值大小对应用户对电影类型好恶的评价标准。 针对问题二,我们考虑寻找与目标用户喜爱电影类型相同的其他用户,其后再将其他用户观影评分高的同类电影筛选5部对目标用户进行推荐。具体而言,我们采用协同过滤分析法,即在用户群中找到指定用户的相似兴趣用户,综合这些相似用户的评价,进而对该用户的喜好进行预测。经与问题一中类似的处理,我们构建其他用户喜好矩阵(0-1化),较之于目标用户喜好矩阵(0-1化),同样采用欧氏距离比较两矩阵异同(相同则入选)。确定了相同偏好用户群后,通过设计筛选流程、算法编程,从用户群相同偏好电影中便可得到所推荐的5部电影。 针对问题三,由于用户观影信息未知,故我们将用户职业和年龄与已知观影用户信息进行整合归类,即建立职业-喜好、年龄-喜好的两个映射,得到职业喜好矩阵,并由系统聚类法中的Ward法经SPSS年龄分类得到年龄喜好矩阵,通过比较得出三种推荐电影类型,再采用问题二中的筛选流程即可得到针对用户的5部推荐电影。 综上所述,本文主要综合了基于用户的协同过滤分析法、聚类分析法、逼近理想点法等模型,结合了MATLAB、Excel、SPSS等分析软件,初步构建了模拟电影推荐系统,并结合数据对用户喜好电影类型进行了有效分析、能够结合用户喜爱电影类型对特定用户进行电影推荐、能对新用户的可能喜好电影进行预测和不完全推荐。本模型的预测结果具有代表性和通用性,虽然在制定评价指标时有一定的主观性,但对于实际电影推荐应用有较大的参考价值。 关键词:协同过滤,聚类分析,Topsis,欧氏距离,电影推荐系统

基于协同过滤算法的电影推荐系统

基于协同过滤算法的电影推荐系统

————————————————————————————————作者:————————————————————————————————日期:

高级数据挖掘期末大作业

基于协同过滤算法的电影推荐系统 本电影推荐系统中运用的推荐算法是基于协同过滤算法(Collaborative Filtering Recommendation)。协同过滤是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。 电影推荐系统中引用了Apache Mahout提供的一个协同过滤算法的推荐引擎Taste,它实现了最基本的基于用户和基于内容的推荐算法,并提供了扩展接口,使用户方便的定义和实现自己的推荐算法。 电影推荐系统是基于用户的推荐系统,即当用户对某些电影评分之后,系统根据用户对电影评分的分值,判断用户的兴趣,先运用UserSimilarity计算用户间的相似度.UserNeighborhood根据用户相似度找到与该用户口味相似的邻居,最后由Recommender提供推荐个该用户可能感兴趣的电影详细信息。将用户评过分的电影信息和推荐给该用户的电影信息显示在网页结果页中,推荐完成。 一、Taste 介绍 Taste是Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce 编程模式转化,从而可以利用hadoop的分布式架构,提高推荐算法的性能。 在Mahout0.5版本中的Taste,实现了多种推荐算法,其中有最基本的基于用户的和基于内容的推荐算法,也有比较高效的SlopeOne算法,以及处于研究阶段的基于SVD和线性插值的算法,同时Taste还提供了扩展接口,用于定制化开发基于内容或基于模型的个性化推荐算法。 Taste 不仅仅适用于Java 应用程序,还可以作为内部服务器的一个组件以HTTP 和Web Service 的形式向外界提供推荐的逻辑。Taste 的设计使它能满足企业对推荐引擎在性能、灵活性和可扩展性等方面的要求。 下图展示了构成Taste的核心组件:

基于用户协同过滤算法的电影推荐系统

基于用户协同过滤算法的电影推荐系统 摘要 随着电子商务的高速发展和普及应用,个性化推荐的推荐系统已成为一个重要研究领域。个性化推荐算法是推荐系统中最核心的技术,在很大程度上决定了电子商务推荐系统性能的优劣。协同过滤是应用最为广泛的一种个性化推荐技术。协同过滤主要分为基于用户的协同过滤和基于项目的协同过滤。 本文研究了基于用户的协同过滤推荐算法及其在电影推荐系统中的应用,设计开发了相应的电影推荐系统中个性化推荐原型系统,并对该算法的推荐质量进行了深入的实验分析。本文也介绍了协同过滤推荐的基本思想。在介绍电影推荐系统推荐技术研究与应用现状的基础上,详细说明了基于用户的协同过滤推荐算法及其具体实现步骤。采用Java Web 实现了原型系统。对于挖掘结果从算法效率及应用意义上进行比较分析 关键词:电影基于用户的协同过滤推荐余弦相似性相关相似性

目录 基于用户协同过滤算法的电影推荐系统 (1) 摘要 (1) 第 1 章绪论 (3) 1.1、研究背景 (3) 1.2、国际发展形势 (4) 第 2 章基于用户协同过滤推荐技术 (5) 2.1 电子商务推荐系统概述 (5) 2.2 协同过滤推荐技术 (5) 第 3 章基于用户的协同过滤推荐算法 (7) 3.1 基于用户协同过滤算法的介绍 (7) 3.2、基于用户喜好值推荐算法的思路 (7) 3.2.1 建立用户模型 (7) 3.2.2 寻找最近邻居 (8) 3.3 算法的实现 (9) 3.4 电影推荐系统界面实现 (10) 第 4 章算法推荐质量的实验分析 (11) 4.1 算法推荐质量的衡量方法 (11) 4.2 验证推荐方法采用的数据集 (11) 4.3 实验结果分析 (12) 4.3.1 余弦相似性 (12) 4.3.2 相似相关性 (13) 4.3.3 基于用户评分次数的相似相关性计算方法 (14) 4.3.4 两种算法的对比分析 (15) 第五章总结 (16) 参考文献 (17) 附录 (18)

个性化推荐系统在当当网中的运用分析

目录 一、摘要 二、当当网概述 1)当当网简介 三、个性化推荐系统营销理论综述及原因 1)个性化推荐系统营销概念及分类 a 基于内容的推荐系统 b 协同过滤推荐系统 c 混合推荐系统 2)个性化推荐系统的发展历程 3)当当网使用个性化推荐系统的原因 四、个性化推荐系统的结构及在当当网运用中的具体表现 1)个性化推荐系统在电子商务网站中的结构 a 输入功能模块 b推荐引擎模块 c输出功能模块 2)个性化推荐系统在当当网中的具体运用 a商品信息页面 b购物车、收藏夹 c Email邮件 d独立的个性化页面 3)个性化推荐系统在当当网中的新运用 4)个性化推荐系统在当当网未来的发展趋势 五、个性化推荐系统在当当网运用中的特点 1)“当当推荐”系统功能分析及推荐效果评价 a 当当推荐系统功能 b 推荐效果评价 2)当当网特性化推荐2.0 六、个性化推荐系统在当当网运用中的不足与风险 1)个性化推荐系统在当当网运用中的不足 2)当当网个性化推荐运用中的风险

3)在个性化推荐上当当网和亚马逊的对比分析 七、通过当当网浅谈个性化推荐系统对电子商务发展的影响 1)电子商务新时代的到来 2)由推网的兴起 八、结语与建议 九、注解与参考文献

个性化推荐系统在当当网中的运用分析 摘要:在完善用户购物体验方面,当当网还针对用户需求推出了“为你推荐”功能,通过对顾客历史数据的分析,根据不同顾客的购物习惯向他们推荐针对其个人的商品。这样的定制推荐把用户从海量的商品信息中解放出来,极大的减少了用户的时间成本,通过强大的系统分析,实际上做到了顾客给自己推荐商品,成为自己的顾问。一个好的个性化推荐就好像网站里的智能导购员一样,只不过它是隐形的,对于购物者来说,它是无处不在的。它能将隐形而无处不在的特性发挥到极致,让购物者不讨厌它,也时刻能使用到它,最终,它能够为网站创造更多的销量。 关键词:个性化推荐;当当网;应用;电子商务;信息超载。 Personalized recommendation system in dangdang network analysis of the application Abstract: To improve the user shopping experience,dangdang also according to user needs introduced a \"recommend\" function,through the analysis of the historical data of customers,according to different customers' shopping habits to their recommended according to the personal goods.This custom recommend the user from mass of commodity information liberate, greatly reduce the user's time cost, through the powerful system analysis, in fact do the customer to recommend commodities, to become their own advisers. A good personalized recommend like website intelligent shopping guide,only it is invisible, for shoppers for, it is everywhere. It can store and the ubiquity of characteristics to acme, let shoppers don't hate it, time can be used to it, eventually, it can create more sales for the web site Key words:Personalized recommendation ; dangdang; apply ; electronic commerce;information overload

基于图数据库的电影推荐系统设计

龙源期刊网 https://www.360docs.net/doc/793047532.html, 基于图数据库的电影推荐系统设计 作者:字凤芹牛进毕柱兰沈加敏 来源:《软件导刊》2016年第01期 摘要摘要:随着互联网的快速发展,信息过载现象越来越严重,当通过搜索引擎输入的内容关键词较模糊时,很难找到真正需要的信息。为了解决信息过载导致难以查询的问题,将图数据库应用于电影推荐系统,采用图数据库进行存储,通过余弦相似度和KNN算法找到适合的电影。 关键词关键词:图数据库;电影推荐;余弦相似度;KNN算法 DOIDOI:10.11907/rjdk.1511121 中图分类号:TP392 文献标识码:A文章编号文章编号:16727800(2016)001014403 0引言 在淘宝购物时,当点击一件商品后,会在网页上出现很多同类商品的图片,还会附加“看过该件商品的人还看过些什么”,这是一种很有效的营销方式。这样的推荐方式也可以用到其它地方,比如美国超市里奶粉和啤酒的搭配,看似毫无关系的两件商品能被有效搭配,究其原因就是相似度。因为在美国,买奶粉的基本是奶爸,美国男性喜欢喝啤酒,这种相似度使得这两种搭配给商家带来了商机。当需要将某些数据与另一些数据建立关系时,首先需要存储这些数据,然后建立数据关系,在关系数据库中,用外键将不同的表格联系到一起,当关系较多时,数据库会越来越大、越来越复杂,当对某个关系进行操作时,就会出现很多问题,所以不能完全依赖于关系型数据库,可以把目标转向NoSQL。 1NoSQL 在信息技术高速发展的今天,数据被赋予了更大的价值。面对庞大的数据,首先考虑的是如何存储,其次才是如何挖掘、如何分析,最后得到需求价值。对于数据存储,选择一个好用的数据库是关键。传统的关系型数据库伸缩性不强,不能有效处理阻抗失谐带来的问题。NoSQL的出现并没有取代传统的关系型数据库,只是采用了一种非关系型的方式来解决数据的存储和计算问题。[1] NoSQL是一项全新的数据库革命性运动,其核心是运用非关系型的数据存储。需要注意的是NoSQL不是NO SQL,而是Not Only SQL,意思是“不仅仅是SQL”。两者显著的不同点是NoSQL不使用SQL作为查询语言。目前,NoSQL数据库有很多,如Cassandra、MongooDB、Neo4J和Riak等。

个性化推荐系统

个性化推荐系统软件说明书 一.软件背景 随着近年来互联网的飞速发展,个性化推荐已成为各大主流网站的一项必不可少服务。提供各类新闻的门户网站是互联网上的传统服务,但是与当今蓬勃发展的电子商务网站相比,新闻的个性化推荐服务水平仍存在较大差距。一个互联网用户可能不会在线购物,但是绝大部分的互联网用户都会在线阅读新闻。因此资讯类网站的用户覆盖面更广,如果能够更好的挖掘用户的潜在兴趣并进行相应的新闻推荐,就能够产生更大的社会和经济价值。 初步研究发现,同一个用户浏览的不同新闻的内容之间会存在一定的相似性和关联,物理世界完全不相关的用户也有可能拥有类似的新闻浏览兴趣。此外,用户浏览新闻的兴趣也会随着时间变化,这给推荐系统带来了新的机会和挑战。因此,希望通过对带有时间标记的用户浏览行为和新闻文本内容进行分析,挖掘用户的新闻浏览模式和变化规律,设计及时准确的推荐系统预测用户未来可能感兴趣的新闻。 本软件就是用来实现根据用户数据,分析用户行为,为用户进行个性化推荐等功能. 二.软件环境 运行环境Windows XP/7/8 编译环境VS2010 三.运行参数 News_list:新闻列表 News_times:x新闻阅读次数 Step_correlation:一步转移数据 User_list:用户列表 Train_data:原始数据 附加数据:用户适应度 四.算法说明

人们常把事物的随机变化过程称作马尔可夫过程。它具有无后效性,即事物的将来呈什么状态、取什么值,仅与它现在的状态和取值有关,与它以前的状态和取值无关。马尔可夫链则是事物在连续一段时期内若干马尔可夫过程的总称,表明事物状态由过去到现在、由现在到将来,一环接一环,像一根链条。在预测领域,人们用其对预测对象各个状态的初始分布和各状态间的转移概率进行研究,描述状态的变化趋势,并由此来预测未来。由于新闻网页推荐方式的不同,可能导致链长不同的马尔科夫链的产生。其他不定因素诸如用户的浏览习惯也可能导致不同链长的马尔科夫链。 本软件使用了该思想,利用用户最后的阅读记录来进行推测。由于许多用户的新闻阅读数目有限,直接限制了链长的长度,所以我们从三阶马尔科夫链开始,作为尝试,但尝试后发现效果并没有提升,反而会出现因为条件过于苛刻而无法推荐的情况。 最终我们采取了一步马链的形式来作为推荐算法,流程图如下: 算法流程图

个性化推荐技术综述

个性化推荐技术综述 杨莉云 (广东商学院华商学院, 广州 511300) 摘要: Internet 的发展在给用户带来丰富信息资源的同时也给用户快速找到自己需要的信息带来了很大的困难,用户迫切需要一种能够根据自身特点组织和调整信息的服务模式,个性化服务应运而生。本文根据推荐原理的不同分别介绍了基于内容的推荐技术、协同过滤推荐技术、混合推荐技术及其它的推荐技术,分析各种技术的优缺点及适用条件,并对今后个性化推荐技术的研究热点和发展方向进行了展望。 关键词:推荐系统;基于内容的推荐;协同过滤;关联规则 0 引言 信息技术的发展和互联网的普及使用户更方便地接触到更多的信息,但用户在享受信息技术带来的便利的同时,也遇到了信息“过载”的问题,用户无法从海量的信息中提取自己所需要的信息。一些搜索引擎通过用户输入关键字可以检索出相关内容,但由于缺乏用户兴趣的知识,会把所有与之相关的信息全部呈现给用户,不能过滤掉用户不感兴趣的信息。也有一些电子商务网站会有“热点推荐”的功能,但是面向所有用户的非个性化推荐。用户如何在一个网站上快速而有效地找到自己所需要的项目和信息?个性化推荐系统是解决这一问题的有效途径。 1基于内容的推荐 基于内容的推荐起源于信息检索领域,它利用资源和用户兴趣的相似性来过滤信息。首先分析项目的内容,根据用户评价过的项目建立用户的兴趣模型,即用户描述文件。根据用户描述文件的不同又可以分为基于向量空间模型的推荐、基于关键词分类的推荐、基于领域分类的推荐和基于潜在语义索引的推荐。 1.1基于向量空间模型的的推荐 基于向量空间模型的推荐是基于内容推荐的最常用的方法。该方法将用户描述文件及项目表示成一个n 维特征向量)},),...(,(),,{(221,n n w t w t w t 。向量的每一维由一个关键词及其权重组成。权重可取布尔型和实数值,分别表示了用户是否对某个概念感兴趣及感兴趣的程度[1] 。关键词根据推荐项目的不同可以是项目不同的属性值,对文本项目来说,关键词就是从文档中抽取的单词,权重可以通过TF-IDF 技术计算得到。对目标用户进行推荐时,将用户描述文件看成目标项目,可采用多种方式(如欧氏距离、余弦相似性、相关相似性等)计算其它项目与目标项目的相似性,按相似性从大到小的顺序将项目输出给用户。 1.2基于关键词分类的推荐 Mooney 提出了基于文档特征词分类的预测思想:将推荐看成是项目分类问题。首先定义一组类(评分),并让用户对一组训练项目进行评价,基于这个评价计算每个关键词属于某个类的条件概率,从而得出用户的特征描述。然后根据这个特征描述计算推荐候选集中各个项目属于某个类的后验概率。最后将这个后验概率作为项目的推荐预测并将具有最高得分的推荐提交给用户 [2]。 用户的兴趣也是通过关键词来表达,与向量空间模型不同,用户描述文件用特征词-类别矩阵n m X 来表示,m 是特征词个数,n 是类别数,每一个元素j i x ,表示第i 个特征词属于第j 类的条件概率 )|(j i c a p ,项目通过特征词来表达,没有项目描述文件。 作者简介:杨莉云,女,1984年生,汉族,河南驻马店人,讲师;主要研究方向:电子商务、管理

个性化推荐系统代码

Newstj.h #include using namespace std; class newsdy { public: string newsid; int times; newsdy *next; newsdy(); }; class newstj { public: int sum; string newsid; newstj *next; newsdy *NDYnext; newstj(); }; Newstj.cpp #include"StdAfx.h" #include"newstj.h" newsdy::newsdy() { newsid=" "; times=0; next=NULL; } newstj::newstj() { newsid=" "; next=NULL; sum=0; NDYnext=new newsdy; } Recommend.h // Recommend.h : PROJECT_NAME 应用程序的主头文件 // #pragma once #ifndef __AFXWIN_H__ #error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件" #endif #include"resource.h"// 主符号

// CRecommendApp: // 有关此类的实现,请参阅 Recommend.cpp // class CRecommendApp : public CWinApp { public: CRecommendApp(); // 重写 public: virtual BOOL InitInstance(); // 实现? DECLARE_MESSAGE_MAP() }; extern CRecommendApp theApp; Recommend.cpp // Recommend.cpp : 定?§义°?应?|用??程¨?序¨°的ì?类¤¨¤行D为a。?ê // #include"stdafx.h" #include"Recommend.h" #include"RecommendDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CRecommendApp BEGIN_MESSAGE_MAP(CRecommendApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CRecommendApp 构造 CRecommendApp::CRecommendApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码 // 将?所¨′有?D重?要°a的ì?初?始o?化?¥放¤?置?在¨2 InitInstance 中D } // 唯?§一°?的ì?一°?个? CRecommendApp 对?象¨? CRecommendApp theApp; // Recommend.cpp : 定?§义°?应?|用??程¨?序¨°的ì?类¤¨¤行D为a。?ê // #include"stdafx.h" #include"Recommend.h" #include"RecommendDlg.h" #ifdef _DEBUG #define new DEBUG_NEW

相关文档
最新文档