电影推荐系统_第1页
电影推荐系统_第2页
电影推荐系统_第3页
电影推荐系统_第4页
电影推荐系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、方向 建模 建模 编程 编程 论文 论文数学建模暑期培训论文第1题基于用户聚类的协同过滤电影推荐系统姓名谢瑜舒浩浩吴杨君徐婷婷黄睿吴双2014年7月20日全国大学生数学建模竞赛承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮 件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问 题。我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他 公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正 文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性

2、。如有违反 竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写):B我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):武汉理工大学参赛队员(打印并签名):1.2.3.指导教师或指导教师组负责人(打印并签名):数模组日期:2014年7月20日赛区评阅编号(由赛区组委会评阅前进行编号):全国大学生数学建模竞赛编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):基于用户聚类的协同过滤电影推荐系统摘要本

3、文通过对网站电影推荐系统的探究,采用基于用户聚类的协同过滤分析方法1与 Topsis (逼近理想点法)建立用户喜好模型与电影推荐模型,尝试模拟电影推荐系统的 主要功能,对用户的信息与兴趣进行分析与呈现。针对问题一,我们分析建立了两个关于用户喜好的评判指标:其观看同一类电影的 数量以及对该类电影观后所给出的均分(通过统计方法求得)。其后建立用户观影类型 矩阵,由此计算观看某一类的数量与对该类电影的打分,再根据对用户喜好体现程度的 大小,采用Topsis法,即将每个电影打分与理想分数(5分)进行比较,如果该分数在 设定条件下与理想分数距离更接近,则可以认为此电影更好。因此我们取欧氏距离得到 评价函

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

5、信息未知,故我们将用户职业和年龄与已知观影用户信 息进行整合归类,即建立职业-喜好、年龄-喜好的两个映射,得到职业喜好矩阵,并由 系统聚类法中的Ward法经SPSS年龄分类得到年龄喜好矩阵,通过比较得出三种推荐电 影类型,再采用问题二中的筛选流程即可得到针对用户的5部推荐电影。综上所述,本文主要综合了基于用户的协同过滤分析法、聚类分析法、逼近理想点 法等模型,结合了 MATLAB、Excel、SPSS等分析软件,初步构建了模拟电影推荐系统, 并结合数据对用户喜好电影类型进行了有效分析、能够结合用户喜爱电影类型对特定用 户进行电影推荐、能对新用户的可能喜好电影进行预测和不完全推荐。本模型的预测结

6、 果具有代表性和通用性,虽然在制定评价指标时有一定的主观性,但对于实际电影推荐 应用有较大的参考价值。关键词:协同过滤,聚类分析,Topsis,欧氏距离,电影推荐系统问题重述1.1背景分析随着信息时代的来临,如何在大量信息中搜寻、筛选和呈现所需信息给信息的需求 者和提供者均带来不小挑战,而推荐系统的出现则有效地解决了这一问题:其利用用户 和信息产品间关系的建立,为信息的搜寻与呈现这两方面的问题提供了解决方案。通常 而言,一个完整的推荐系统包含收集用户信息的行为记录模块,分析用户喜好的模型分 析模块和推荐算法模块三个部分。电子商务网站的推荐系统作为人们最熟悉、最常用的应用,也被广泛应用于大型电子

7、商 务网站的营销之中,更有文献表明早期Amazon(亚马逊)的35%销售增量都来自它的推 荐系统。除了商品,音乐、电影等也是常见的推荐对象。对合理有效的推荐模型的应用 可以在较大程度上改善用户体验,因此对网站发展与改进有重要意义。1.2问题重述问题一,建立用户喜好模型,模型根据用户的已知喜好来分析其兴趣特点,使用所 建立的模型对指定用户的喜好进行分析。问题二,建立电影推荐模型,根据问题一的分析结果,在用户可能感兴趣的电影分 类中给第一题中的用户各推荐5部电影(同等条件下电影编号最小者优先)。问题三,针对新用户,即没有已知喜好的用户,选定合适的推荐标准,设计一个推 荐系统。二、问题分析题中要求根

8、据用户观看电影的统计情况、对所看电影的打分情况来分析和推测用户 感兴趣的其他电影。我们使用Topsis (逼近理想点法)对两个评价指标进行综合,得到 用户对各类型电影喜好程度的打分,得到用户的喜好向量。由此,我们通过聚类分析的 方法找到具有相似喜好向量的用户,这些用户所看的电影形成目标群体。最后,我们在 目标群体中筛选出均分最高的电影作为推荐方案。2.1问题一分析问题一中,为建立目标用户爱好模型,首先考虑部数对喜爱程度的影响,我们对目 标用户观看的各类电影数量进行统计,得到每类电影观看总部数,并对得出数据进行标 准化处理,作为第一个指标。除此以外,考虑平均分对喜爱程度的影响,计算目标用户 对每

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

10、sis (理想解法)进行求解,得到目标用户关 于喜爱程度的综合评价指标,最后通过对综合指标的排序得出其喜欢的电影类型排序。2.3问题三分析对于问题三,由于新用户仅有职业和年龄信息,而无该用户的观影和打分数据,故 采用协同过滤算法求取与该用户是同类人的人群的喜好来推测此用户的喜好。首先,按 照年龄将原有用户聚类分析,并结合问题一中已算出的每个原用户喜爱的三种类型,将 每个用户的喜好类型标准化后的矩阵沿列求和,得出每个年龄段人群关于18种电影类 型的喜好矩阵。将该矩阵标准化,同时将最喜欢的三类赋值为1,得出一个按年龄段分 电影喜好类型的指标矩阵。同理,按照职业也可得到一个按职业分电影喜好类型的指标

11、 矩阵。然后,对于每一个新用户,依据其年龄和职业,从上述两个指标矩阵中提取出两 个对应电影类别的喜好行向量。将这两个行向量取交集,交集得出的电影类别数量若小 于3,则将原行向量中的交集删除后提取非交集部分的电影类别,再将这些电影类别按 其原矩阵中标准化后的百分比排序,选取其前几项,直至确定该新用户喜欢的三类电影。 此时,已知该新用户喜好的三种电影类型,即可采用问题二的解决方法(不需考虑用户 是否看过所推荐的电影),为该目标新用户进行电影推荐。三、基本假设1)每个用户的打分可以反映其对电影的喜爱程度,此假设保证用户评分这一指标的合 理性;2)每个用户观看某类电影的数量可以反映其对此类电影的喜爱程

12、度,此假设保证各类 电影观看数量这一指标的合理性;3)相同年龄段和相同职业的用户有相似的电影偏好,此假设保证对新注册用户偏好预 测的合理性;4)每部电影所得的均分可以反映其优劣,此假设保证对同类推荐电影选择的合理性;5)用户的喜好在一定时间范围内是不变的,此假设保证模型的可信性;6)问题三中新用户的年龄和职业属于原始数据,此假设保证推荐模型的准确性;7)用户之间互不相关,此假设保证每一个原始数据都是有效而且准确的。四、符号说明符号符号说明A X N M n.j mj yj用户观影类型矩阵全体用户电影类型喜好矩阵用户所看电影总数用户对各电影打分列向量用户所看第j类电影数用户所看第j类电影均分综合

13、评价函数五、模型建立与求解5.1问题一由题设,统计出用户观看每种电影的数量、对每种电影打的均分,再由Topsis方 法得出综合评价模型对各种类型电影打出综合分值,最后通过对综合分值的排序得出用 户最偏爱的类别。5.1.1基于理想点法的用户喜好模型的建立分别提取出 108,133,228,232,336,338,545,613,696,777 用户的观影数 据,得到用户观影类型矩阵A如下:。0 . 0、0 003 观看的第j类电影的均分m.为: 1 0 . 0)矩阵A为NX 18的矩阵,N为该用户所看电影总数,18列从左至右对应所给数据 文件中的电影类别,0,1分别代表不属于或属于该类别。,j

14、e 1,18,j e Zm = (Ei=1观看的第j种电影的数量n.为:其中为用户对第i行对应电影Mj的打分。现在我们已经得到了两个指标,都可以评判用户喜爱某种类型电影的程度,我们要 把每类电影根据用户喜爱程度排序就需要将两个指标综合起来,这里我们使用了 Topsis4 方法。Topsis即逼近理想点法,实际中,经常会遇到这样的一类综合评价问题,即首先 设定系统的一个理想(样本)点,然后对于每一个被评价对象与理想点进行比较。如果 某一个被评价对象在某种意义下与理想点距离最接近,则可以认为被评价对象就是最好 的。这里我们取简单的欧氏距离计算评价对象与理想点的距离,这里两项权值均取1, 得到综合评

15、价函数(3)由此我们就得到了评判用户对电影类型喜爱程度的标准,函数值越小对应的电影类 型越受用户偏爱。5.1.2问题一的求解我们使用Excel和MATLAB进行数据处理及求解,由综合评价函数得到了 108, 133, 228,232,336,338,545,613,696,777号用户的电影类型喜好表,见附录1.问题 一电影喜好表。我们从表中提取了这10个用户喜好的前五种电影类型,如下表:表1用户偏好类型用户号第一类型第二类型第三类型第四类型第五类型108DramaRomanceActionComedyWar133DramaThrillerActionComedyRomance288Drama

16、WarRomanceActionAdventure232DramaRomanceComedyActionComedy336ComedyRomanceDramaActionThriller338ComedyDramaRomanceThrillerMystery545ActionAdventureComedySci-FiThriller613DramaActionComedyRomanceThriller696DramaThrillerMysteryCrimeWar777DramaComedyWarThrillerRomance5.1.3用户喜好模型的结果分析利用综合评价函数,我们顺利得出了 10

17、个用户的电影类型偏好。对于用户偏好的 准确性问题需要用户反馈才能验证,这里由于缺少反馈信息,对结果的准确性无法做 出绝对的正误判断。5.2问题二由问题一的结果,通过聚类分析6的方法可找出与目标用户有相似偏好的其他用户, 即前三个偏好的电影类型相同的用户,他们观看的此三类电影作为备选电影,计算目标 用户的打分均值,先将得分低于此均值的电影排除,在剩下的电影中根据综合评价指标 选出5个最优电影进行推荐。5.2.1基于用户聚类的协同过滤推荐模型的建立我们选取用户喜好前三的电影类型作为分类的依据,在用户最喜欢的电影类型中选 取推荐电影,可以提高推荐结果的针对性。分类方法为聚类分析的方法。所谓聚类分析是

18、将相似个体分组归类的分析过程,通过对某一标准相似度的判断可 以将研究对象区分开来,从而使研究对象数量减小。首先,我们对所有用户信息进行问题一中的处理,得到全体用户的偏好类型矩阵。 然后我们将矩阵0-1化:(4)0,( x x ) 1,(x x)其中矩阵X为全体用户电影类型喜好矩阵,为每个用户第三偏好类型对应的综合评价 函数值。我们得到的新矩阵中用户喜好的前三类电影对应值为1,其他类别电影对应值为0。同 样的,我们对目标用户的喜好矩阵也进行0-1化处理,得到包含三个1元素和十五个0 元素的行向量。通过与其他用户喜好0-1矩阵的匹配,我们将与目标用户行向量完全相同的行取出,即 对所有用户进行聚类分

19、析,分类条件为:(目标用户0-1矩阵)-(其他用户0-1矩阵)若结果为零矩阵则保留,否则舍去,这里其实是用欧氏距离的思想加以判断,我们提取 了与目标用户0-1矩阵欧氏距离为0的用户。这样就找到了与目标用户前三个偏好类型 完全相同的所有用户。他们所看过的电影中属于三种共同偏好的电影为待选的电影。筛选待选电影流程如下图:图1筛选推荐电影流程图由图1所示的流程我们就从待选电影里筛选出了五部推荐给用户。5.2.2问题二的求解我们使用Excel和MATLAB对数据进行处理和求解,将待选电影根据图一流程选出 了5部合适电影和对应的所选用户均分,运算结果见附件2用户推荐电影及均分,用户 推荐电影方案如下表:

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

21、果的合理性。5.3问题三由于新用户的信息匮乏,喜好分析模型不再是根据用户观影信息建立,而是根据同 类人群的观影信息来建立。本文首先根据年龄、职业对已知用户进行筛选,找出新用户 的同类人,再根据找出同类人群利用问题一中的方法推测其偏好类型。得出新用户的偏 好类型后即可根据问题二的解决方法,为该新用户进行较准确的电影推荐。5.3.1基于新用户的推荐模型的建立我们要用已知用户的职业、年龄来推断新用户的喜好,首先需要对已知数据进行预 处理。我们取前900个用户信息进行处理,其他用户信息用作检验。我们先建立用户职业与用户前三偏好类型的映射关系,对不同职业的人群分组,得 到其喜好0-1矩阵,例如 010、

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

23、hcare000010010000000100homemaker100000010000000100lawyer000010010000010000librarian000010010000010000marketing100000010000000100none100000010000000100programmer100010010000000000retired000010010000000100salesman100010010000000000scientist100000010000000100student100010010000000000technician100010010

24、000000000writer000010010000000100然后建立用户年龄段与用户前三偏好类型的映射关系,对不同年龄的人群分组,这 里我们使用进行年龄合理分组,使用的方法是系统聚类方法,经过多次拟合,我们选择 了 Ward法作为分类条件,Ward法使用的是样本的离差平方和(Sumof Squares of Deviations),即:才 3 一 无)2(5)I i=1我们规定将年龄段分为10组,得到SPSS年龄分组结果如下表:表2年龄分组年龄组编号年龄区间人数123-2599246-53123333-3691441-4582554-7367626-29137737-4079819-22

25、119930-3292107-1854类似地,我们整理得到了年龄段喜好0-1矩阵,如下表:表4年龄喜好0-1矩阵年龄区间电影种类23-2510001001000000000046-5300001001000001000033-3610001001000000000041-4510001001000000000054-7300001001000001010026-2910001001000000000037-4010001001000000000019-2210000001000000010030-321000100100000000007-18100010010000000000当新用户提供了

26、年龄和职业信息后,我们取出职业喜好0-1矩阵和年龄段喜好0-1 矩阵分别对应的三种电影类型,通过比较得到三种推荐类型,比较步骤如下:优先取两矩阵中均为1的类型;剩余类型中取观看百分比最大的类型;百分比相同类型取序号较小者。这样,我们就得到了针对新用户的三种推荐电影类型。确定推荐电影的类型之后接 下来的工作与问题二中无异,根据图1流程筛选后可以得到针对用户的5部推荐电影。5.3.2问题三的求解我们使用Excel和MATLAB对数据进行处理和求解,我们使用已知的用户来代替新 用户,由于我们只使用已知用户的年龄和职业信息,得到的结果就是输入新用户所得到 的结果,最后我们将结果与此用户真实喜好进行比对

27、,这样就可以达到对推荐结果检验 的目的。以932号用户为例,我们只输入他的年龄和职业得到的推荐电影如下:表5 932号用户模拟求解编号推荐电影932170512517692731775778936110011155.3.3模型三的结果分析所给的推荐电影中,电影类型全部符合932号用户的偏好类型,且170,517,778 三部电影为本用户看过的,所给评分分别为4,5,4。可以看到,模型三的求解效果比较 合理,是与用户真实偏好基本吻合的。六、模型优缺点6.1模型的优点模型综合考虑了用户个人喜好和电影的总体评价两个方面,推荐电影类型与用户的 喜好类型一致,且为同类人群中得分最高的电影,推荐结果具有代

28、表性和针对性。模型具有通用性,载入用户数据后,输入任意用户编号都可得出针对此用户的推荐 方案。算法上,我们通过先筛选后处理的方法减小了数据处理的工作量,加快了程序运行 的速度。6.2模型的缺点制定综合评价指标时,对两个指标权重的选取有一定主观性。模型对数据给出的格式有严格要求,难以完全推广。七、模型改进方向模型缺少对一些特殊情况的考虑,如不存在与目标用户前三偏好类型完全相同的用 户时,电影推荐模型就无法确定待选电影,此时可以适当放宽条件,将前三偏好类型中 只有两类与目标用户相同的用户找出,从而可以延续之后的处理方法。另外,综合评价函数中对两个评价指标的权值的选取可以进行适当调整,在有用户 反馈

29、的条件下,可以根据用户的反馈信息来修改权值,使函数的输出结果与反馈结果有 更高的准确度,这里可以使用平均绝对误差(MAE)5经过拟合即可得出最佳权值。参考文献:HAMEED M A, JADAAN O A, RAMACHANDRAM S. Collaborative FilteringBased Rec ommendation System: A survey J.,IJCSE, 2012.HOSSEINPOUR M J, MOSALANEZHAD 虬 BADROOH I, et al, An intelligent fuzzy-based recommendation system for

30、consumer electronic products J. ECDC, 22:2-17,2008.刘建国,周涛,汪秉宏,个性化推荐系统的研究方法M,自然科学进展,19:1-4, 2009.IBEG. TOPSIS G/OL/IBEG, Wiki,2014.7.18.建国刘,涛周,强郭,et al,个性化推荐系统评价方法综述J,复杂系统与复 杂性科学,2009.孙守义,王蔚,一种基于用户聚类的协同过滤个性化图书推荐系统M.现代情 报,11:139-140,2007.附件1.问题一电影喜好表1234567891011121314151617180.74270.88360.99010.98610

31、.78250.96041.41420.60951.41421.41421.41420.96040.98610.72740.8710.89660.86051.41420.81240.94531.41420.95840.81971.0061.41420.63060.98211.41421.13341.41421.00920.85220.90130.80330.94531.41420.91030.91031.41420.95240.97591.14391.41420.42331.41421.41420.97321.41421.24380.86051.0330.97590.85971.41420.86

32、460.93021.00930.95660.78560.95021.00380.43451.00930.98921.06710.93060.96870.74770.90030.91650.86861.02350.92550.98141.06991.13340.49511.02021.41420.85791.06991.41421.1131.13991.1530.85570.99990.9791.00471.05560.96760.99310.95851.09420.62061.01621.41420.62641.41420.9480.99371.14340.89470.72540.96760.

33、84260.90241.00670.5750.74590.96830.93750.78180.99681.41420.84731.00171.07130.96220.96991.00170.88360.81360.83980.91151.0130.80320.90280.98480.98480.82530.87021.41420.52411.41420.96431.13571.41420.96430.83010.85710.83010.8630.96430.95670.95231.41421.41420.95650.86781.41420.28181.41420.96550.93641.414

34、20.83140.88731.41420.8010.86781.41420.92340.97220.99260.99260.6310.99631.41420.40871.41421.41420.99261.14251.05130.91110.96540.84560.831.41422.用户推荐电影及均分用户编号推荐电影电影评分用户编号推荐电影电影评分1083134.2457142863381704.1735537191081724.20435967333851241082073.8181818183389363.93751086313.6218487393385173.769230769108

35、7203.0232558143386923.62804878133283.931159425451734.1728395061338553.7272727275452573.7458745871339173.4285714295453853.5625133543.2403846155452013.5168539331332443.1666666675451843.4310344832284834.4567901236131734.1728395062281724.2043596736134353.9490740742282863.6569646576131863.836653386228631

36、3.6218487396132573.7458745872285493.5652173916133853.56252321704.1735537196961914.16304347823251246961244.0534759362329363.93756961353.9691119692325173.7692307696968553.7272727272326923.628048786965873.5714285713361704.173553719777430433651247772113.9126213593369363.9375777693.8535825553365173.76923

37、07697775023.7017543863366923.628048787772352.8479262673.使用程序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:5tm=find(T=i);tm=reshape(tm,1,length(tm);fprintf(第d 类的有sn,i,int2str(tm);end第一问A=;% A为用户名,电影编号,评分构成的矩阵,需导入M=zeros(900,18);Z=A(:,1);for i=1:900I,J=find(Z=i);n=length(I);B=zeros(n,2);for j=1:nB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论