大数据技术电影推荐系统设计与实现

时间:2022-10-23 02:48:20

大数据技术电影推荐系统设计与实现

【摘要】在大数据时代,智能推荐系统为我们生活带来了极大的便利,根据用户的浏览信息可以为用户提供相对应的功能、产品和服务,使得用户能够更高效地从海量数据中得到自己期望的信息数据。电影是很多人娱乐生活中不可缺少的一部分,电影推荐也是互联网推荐内容中重要的一种。本文将依托此为背景,通过数据挖掘相关算法来构建一个智能的电影推荐系统,根据用户过去观影喜好来为之个性化提供多个电影作品。

【关键词】电影推荐;数据挖掘;机器学习

1前言

随着现代科技生产力的发展,人们在空闲时间中逐渐开始追求更高要求的娱乐活动,而电影就是最为普遍的娱乐方式之一。不管是喜剧还是悲剧,都能勾起你纯真的眼泪;不管是动作片还是恐怖片,都能让你的肾上腺大开大合;不管是科幻片还是纪录片,都能让你云游古今中外。不管是去电影院,或是购买影碟,或是在网上观赏影片前,人们总是有选择性地去寻找一些更符合自己喜好的、内容精致的、更受欢迎的电影去观看。但是,如今影片的拍摄逐渐走向高产化,佳片许多,烂片也层出不穷,如果采用人工方法,在大量电影影片中找到自己真正喜欢的电影是一个耗费精力的事情。本文通过大数据挖掘技术构建了一个智能的电影推荐系统,针对不同用户,提供多个与其过去的观影信息相似度较高的符合该用户喜好的电影,满足用户的观影需求。本文使用了kaggle网站中TMDB5000MovieDataset的电影数据集,主要结合应用分类统计(ClassStatistics)、样本相似度(Correlation)分析等经典数据挖掘算法,剖析数据间的关系,从而完成电影推荐系统的相关功能。用户为系统提供一个电影的名称,该系统提供与这部电影在类型、内容、受欢迎程度、年代等综合程度最相似的五部影片。

2数据预处理

本文所使用的电影数据集,包含:电影类型(genres)、关键字(keywords)、导演(director)、演员(actor)、发行公司(compa-ny)、电影评分(IMDB)、成本(budget)、评分人数(count)、电影的发行年份(year)、发行国(country)、语言(language)等字段,共计5000多部电影详细信息。本文的智能推荐系统主要依赖电影和电影之间的“相似度”(similarity)来为用户推荐电影,在计算相似度的过程中会使用描述该电影的“关键字”(keywords)作为计算的主要因素之一。但是在这些关键字中有大量的低频词,会对计算过程产生噪音影响;关键词中还有大量的同义词,如“shadow”和“dark”,同根词,如“music”和“musical”、“train”和“training”、“apple”和“apples”,在计算相似度应该被视为同一个词。因此,我们使用以下的预处理方法对关键字进行了清洗。①本文应用python的NLTKpackage合并了同义词和同根词。②本文对频次小于五次或出现在少于三个电影的关键字进行了过滤。数据集中有一些属性需要进行离散化处理,如发行年份(releasedate),本文应用了EXCEL的YEAR()函数和ROUND-DOWN()函数以10年为间隔,将其分为了1930s、1940s一直到2010s(代表2010年及以后)的年代制。

3电影推荐系统的设计

不同的人在挑选电影的时候往往有不同的选择,但是大抵都会考虑以下几个方面。电影的导演和演员以及制作公司可能是观众会着重考虑的部分。著名导演例如姜文、JamesCameron,作品虽少但精品居多,他们的电影上映后可能会吸引大量观众。演员也是电影的一个重要载体,如RobertDowney这样拥有优秀的演技、帅气外表的演员收揽了众多的狂热粉丝,带来了票房大卖。电影公司也在观众的选择中有着重要的影响,像MarvelStudios、DCEntertainment这类公司靠超级英雄系列吸引了许多观众,该系列的每一部新片上映都会快速引起观影热潮。我们称这部分因素为创作(cast)因素。电影内容、电影类型、发型年份、语言在不同程度上也是影响观众选择电影时的因素之一,观众会优先去看符合自己口味的电影。换句话说,一个喜欢看动作片的人,会在众多电影中选择如敢死队、警察故事这类以动作取胜的影片;而一个人若喜欢爱情片,泰坦尼克号这样唯美的作品将成为其首选。我们称这部分属性为内容(content)因素。影片在同档期中的受欢迎程度、电影评分、评分人数也是决定观众是否选择这个电影的原因之一。我们称这部分因素为口碑(popularity)因素。为了探究这些因素对于观众在选择电影时的影响,本文首先对某几个因素进行了定量分析。3.1电影类型。数据集中一部影片可能为多种电影类型,本文统计了不同类型电影的受欢迎程度。首先,使用EXCEL的计数功能,统计不同电影类型的样本数量。统计结果显式,本数据集中主要的电影类型有剧情片(drama)(2297部)、喜剧片(comedy)(1722部)、惊悚片(thriller)(1274部)、动作片(action)(1154部)、爱情片(romance)(894部),除此之外还有冒险片(adven-ture)(790部)、科幻片(sciencefiction)(506部)、动画片(ani-mation)(234部)等等。然后,本文又使用了EXCEL的“分类汇总”功能,将电影类型作为“分类字段”,将“电影评分”作为“汇总方式”,使用“平均值”作为汇总项。根据统计结果,受欢迎程度最高的三类影片是冒险片、动画片、科幻片;然而,数量最多的影片类型———剧情片、喜剧片、惊悚片并不是最受欢迎的;反观,虽然奇幻片(fantasy)、推理片(mystery)等类电影的数量并不占优势,但其受欢迎程度依然较高。因此,在电影市场中,并不是出现频率越高的电影类型,就越受大众喜爱。3.2电影年代和电影成本。本文使用同3.1相似的统计方法,依据数据集,生成了从1930~2017年不同年代电影的平均预算以及受欢迎程度的折线图,如图1所示。根据图1可知,电影成本与受欢迎程度在21世纪前并没有太大的关联性,而到了21世纪后便出现相当明显的正相关单,布景、道具也并不复杂,更多是以剧情表演展现其魅力。因此,影片投资金额并不会成为影响电影观感的重要影响因素。加上20世纪战争偏多,尤其40年代二战过后全球经济整体倒退,娱乐方面的投资相对也低很多,所以成本都偏低。纵观21世纪,随着计算机技术的蓬勃发展,观众也更爱看满屏特效的大片,这类电影的受欢迎程度自然上升且远超过去的作品。但特效的制作都需要许多的资金,换句话说,投入的资金越多,特效的制作便越真实、酷炫,影片的观影体验越好,受欢迎程度也会随之增长。于是成本便和受欢迎程度不可割舍了,也说明了成本在不同年代也体现了不同的价值。3.3电影推荐系统的设计。电影类型是影响观众选择电影的一个重要的因素,同一个观众往往会对某种类型的电影情有独钟。电影市场中有大量的动作片、惊悚片、爱情片,会因为制作的精良程度、剧情的饱满程度等出现口碑的两极化。因此,电影本身的内容也是电影制作人不能忽视的一个方面此外,希望票房大卖的电影制作人可以更多的考虑拍摄冒险片、动作片、科幻片这几种类型的影片。随着电影技术的发展,观众越来越倾向于有高额投资的影片。电影成本在21世纪后成为电影制作过程中不可分割的一个部分,直接决定着电影的制作效果、演员的选择等重要方面,也因此成为影响电影受欢迎程度的重要原因之一。本文在设计电影推荐系统的过程中,要着重考虑创作(cast)、内容(content)和口碑(popularity)三部分因素对电影的影响。我们将电影推荐系统模型的推荐过程拆分成两个步骤:第一步,通过电影与电影之间在创作和内容上的相似度筛选出与用户所选电影最相似的30部电影;第二步,根据电影的口碑以及发行年份,在第一步所选的30部电影中选出5个综合评价最高的电影成为最终推荐给用户的电影。

4电影推荐系统的实现

设计推荐模型时,本文充分考虑了电影的创作、内容和口碑这三类因素。下面我们将具体阐述如何实现电影推荐系统。4.1相似度(similarity)本文所提出的电影推荐系统,在筛选与用户所选电影最相近的30个电影时,需要充分考虑两部电影之间的相似度(similarity)。根据电影的创作和内容类属性,本文将电影是否拥有相同的导演、演员、制作公司、关键字作为主要的评测指标,构建表1所示的相似度距离矩阵(distancematrix)。构建过程如下:(1)用户给推荐系统提供一个自己喜欢的电影j,取出电影j的导演、三位最重要的演员、电影所属的各个电影类型、各个预处理后的关键字。(2)计算电影数据库中的每个电影和电影j的距离值,取距离值最小的前30个电影。在计算推荐候选电影i和用户所选电影j的距离值dij时,首先我们根据i和j是否有相同的导演、演员、制作公司、电影类型、关键字,得到各个a的值。举例:如果i和j的导演相同,那ai1值为1,否则ai1值值为0;同理其他属性的距离值ai2,ai3,...,aik也是这么求得。然后使用欧几里得距离公式计算dij,公式如下:dij=kn=1Σ(ain-ajn)2,姨ajn=1(1)4.2电影的综合质量(Quantity)在得到于创作和内容上与用户所选电影j最相似的Top30个电影之后,我们认为评判一个电影是否能带给用户最好的享受,更取决于电影自身的优秀程度。在本文中,我们使用电影评分(IMDB)和打分人数(count),以及发行年代(year)作为综合质量(Quantity)来表示进一步筛选电影,缩小范围。首先,电影评分IMDB作为最具官方性的评分,其所占比例自然最大,我们函数中给予的影响也应最多,COUNT所表示的打分次数影响次之。最后,发行年代在不同时期有着不同价值,本文将利用高斯函数公式(3)来进行处理,用YEAR表示这部分值。Quantity=IMDB2•COUNT•YEAR(2)YEAR=exp-(x-c)22σ222(3)其中,σ1=20,c为所选电影j的发行年份。从第一步中得到的30个电影中,找出Quantity得分最大的5个电影,然后作为最终推荐给用户的电影。

5总结

本文通过大数据挖掘技术构建了一个智能的电影推荐系统,针对不同用户,通过相似度筛选内容上更相近的电影,并计算综合质量得分筛选质量更好的电影两个步骤的筛选,最终选出符合该用户喜好的电影。

参考文献

[1]许海玲,吴潇,李晓东,等.互联网推荐系统比较研究[J].软件学报,2009,20(2):350~362.

[2]刘建国,周涛,郭强,等.个性化推荐系统评价方法综述[D].2009.

[3]汪静,印鉴,郑利荣,等.基于共同评分和相似性权重的协同过滤推荐算法[J].计算机科学,2010(2):99~104.

作者:吕晟凯 单位:武汉钢铁公司第三子弟中学