大數(shù)據(jù)技術(shù)電影推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
時(shí)間:2022-10-23 02:48:20
導(dǎo)語(yǔ):大數(shù)據(jù)技術(shù)電影推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
【摘要】在大數(shù)據(jù)時(shí)代,智能推薦系統(tǒng)為我們生活帶來(lái)了極大的便利,根據(jù)用戶的瀏覽信息可以為用戶提供相對(duì)應(yīng)的功能、產(chǎn)品和服務(wù),使得用戶能夠更高效地從海量數(shù)據(jù)中得到自己期望的信息數(shù)據(jù)。電影是很多人娛樂(lè)生活中不可缺少的一部分,電影推薦也是互聯(lián)網(wǎng)推薦內(nèi)容中重要的一種。本文將依托此為背景,通過(guò)數(shù)據(jù)挖掘相關(guān)算法來(lái)構(gòu)建一個(gè)智能的電影推薦系統(tǒng),根據(jù)用戶過(guò)去觀影喜好來(lái)為之個(gè)性化提供多個(gè)電影作品。
【關(guān)鍵詞】電影推薦;數(shù)據(jù)挖掘;機(jī)器學(xué)習(xí)
1前言
隨著現(xiàn)代科技生產(chǎn)力的發(fā)展,人們?cè)诳臻e時(shí)間中逐漸開始追求更高要求的娛樂(lè)活動(dòng),而電影就是最為普遍的娛樂(lè)方式之一。不管是喜劇還是悲劇,都能勾起你純真的眼淚;不管是動(dòng)作片還是恐怖片,都能讓你的腎上腺大開大合;不管是科幻片還是紀(jì)錄片,都能讓你云游古今中外。不管是去電影院,或是購(gòu)買影碟,或是在網(wǎng)上觀賞影片前,人們總是有選擇性地去尋找一些更符合自己喜好的、內(nèi)容精致的、更受歡迎的電影去觀看。但是,如今影片的拍攝逐漸走向高產(chǎn)化,佳片許多,爛片也層出不窮,如果采用人工方法,在大量電影影片中找到自己真正喜歡的電影是一個(gè)耗費(fèi)精力的事情。本文通過(guò)大數(shù)據(jù)挖掘技術(shù)構(gòu)建了一個(gè)智能的電影推薦系統(tǒng),針對(duì)不同用戶,提供多個(gè)與其過(guò)去的觀影信息相似度較高的符合該用戶喜好的電影,滿足用戶的觀影需求。本文使用了kaggle網(wǎng)站中TMDB5000MovieDataset的電影數(shù)據(jù)集,主要結(jié)合應(yīng)用分類統(tǒng)計(jì)(ClassStatistics)、樣本相似度(Correlation)分析等經(jīng)典數(shù)據(jù)挖掘算法,剖析數(shù)據(jù)間的關(guān)系,從而完成電影推薦系統(tǒng)的相關(guān)功能。用戶為系統(tǒng)提供一個(gè)電影的名稱,該系統(tǒng)提供與這部電影在類型、內(nèi)容、受歡迎程度、年代等綜合程度最相似的五部影片。
2數(shù)據(jù)預(yù)處理
本文所使用的電影數(shù)據(jù)集,包含:電影類型(genres)、關(guān)鍵字(keywords)、導(dǎo)演(director)、演員(actor)、發(fā)行公司(compa-ny)、電影評(píng)分(IMDB)、成本(budget)、評(píng)分人數(shù)(count)、電影的發(fā)行年份(year)、發(fā)行國(guó)(country)、語(yǔ)言(language)等字段,共計(jì)5000多部電影詳細(xì)信息。本文的智能推薦系統(tǒng)主要依賴電影和電影之間的“相似度”(similarity)來(lái)為用戶推薦電影,在計(jì)算相似度的過(guò)程中會(huì)使用描述該電影的“關(guān)鍵字”(keywords)作為計(jì)算的主要因素之一。但是在這些關(guān)鍵字中有大量的低頻詞,會(huì)對(duì)計(jì)算過(guò)程產(chǎn)生噪音影響;關(guān)鍵詞中還有大量的同義詞,如“shadow”和“dark”,同根詞,如“music”和“musical”、“train”和“training”、“apple”和“apples”,在計(jì)算相似度應(yīng)該被視為同一個(gè)詞。因此,我們使用以下的預(yù)處理方法對(duì)關(guān)鍵字進(jìn)行了清洗。①本文應(yīng)用python的NLTKpackage合并了同義詞和同根詞。②本文對(duì)頻次小于五次或出現(xiàn)在少于三個(gè)電影的關(guān)鍵字進(jìn)行了過(guò)濾。數(shù)據(jù)集中有一些屬性需要進(jìn)行離散化處理,如發(fā)行年份(releasedate),本文應(yīng)用了EXCEL的YEAR()函數(shù)和ROUND-DOWN()函數(shù)以10年為間隔,將其分為了1930s、1940s一直到2010s(代表2010年及以后)的年代制。
3電影推薦系統(tǒng)的設(shè)計(jì)
不同的人在挑選電影的時(shí)候往往有不同的選擇,但是大抵都會(huì)考慮以下幾個(gè)方面。電影的導(dǎo)演和演員以及制作公司可能是觀眾會(huì)著重考慮的部分。著名導(dǎo)演例如姜文、JamesCameron,作品雖少但精品居多,他們的電影上映后可能會(huì)吸引大量觀眾。演員也是電影的一個(gè)重要載體,如RobertDowney這樣擁有優(yōu)秀的演技、帥氣外表的演員收攬了眾多的狂熱粉絲,帶來(lái)了票房大賣。電影公司也在觀眾的選擇中有著重要的影響,像MarvelStudios、DCEntertainment這類公司靠超級(jí)英雄系列吸引了許多觀眾,該系列的每一部新片上映都會(huì)快速引起觀影熱潮。我們稱這部分因素為創(chuàng)作(cast)因素。電影內(nèi)容、電影類型、發(fā)型年份、語(yǔ)言在不同程度上也是影響觀眾選擇電影時(shí)的因素之一,觀眾會(huì)優(yōu)先去看符合自己口味的電影。換句話說(shuō),一個(gè)喜歡看動(dòng)作片的人,會(huì)在眾多電影中選擇如敢死隊(duì)、警察故事這類以動(dòng)作取勝的影片;而一個(gè)人若喜歡愛(ài)情片,泰坦尼克號(hào)這樣唯美的作品將成為其首選。我們稱這部分屬性為內(nèi)容(content)因素。影片在同檔期中的受歡迎程度、電影評(píng)分、評(píng)分人數(shù)也是決定觀眾是否選擇這個(gè)電影的原因之一。我們稱這部分因素為口碑(popularity)因素。為了探究這些因素對(duì)于觀眾在選擇電影時(shí)的影響,本文首先對(duì)某幾個(gè)因素進(jìn)行了定量分析。3.1電影類型。數(shù)據(jù)集中一部影片可能為多種電影類型,本文統(tǒng)計(jì)了不同類型電影的受歡迎程度。首先,使用EXCEL的計(jì)數(shù)功能,統(tǒng)計(jì)不同電影類型的樣本數(shù)量。統(tǒng)計(jì)結(jié)果顯式,本數(shù)據(jù)集中主要的電影類型有劇情片(drama)(2297部)、喜劇片(comedy)(1722部)、驚悚片(thriller)(1274部)、動(dòng)作片(action)(1154部)、愛(ài)情片(romance)(894部),除此之外還有冒險(xiǎn)片(adven-ture)(790部)、科幻片(sciencefiction)(506部)、動(dòng)畫片(ani-mation)(234部)等等。然后,本文又使用了EXCEL的“分類匯總”功能,將電影類型作為“分類字段”,將“電影評(píng)分”作為“匯總方式”,使用“平均值”作為匯總項(xiàng)。根據(jù)統(tǒng)計(jì)結(jié)果,受歡迎程度最高的三類影片是冒險(xiǎn)片、動(dòng)畫片、科幻片;然而,數(shù)量最多的影片類型———?jiǎng)∏槠?、喜劇片、驚悚片并不是最受歡迎的;反觀,雖然奇幻片(fantasy)、推理片(mystery)等類電影的數(shù)量并不占優(yōu)勢(shì),但其受歡迎程度依然較高。因此,在電影市場(chǎng)中,并不是出現(xiàn)頻率越高的電影類型,就越受大眾喜愛(ài)。3.2電影年代和電影成本。本文使用同3.1相似的統(tǒng)計(jì)方法,依據(jù)數(shù)據(jù)集,生成了從1930~2017年不同年代電影的平均預(yù)算以及受歡迎程度的折線圖,如圖1所示。根據(jù)圖1可知,電影成本與受歡迎程度在21世紀(jì)前并沒(méi)有太大的關(guān)聯(lián)性,而到了21世紀(jì)后便出現(xiàn)相當(dāng)明顯的正相關(guān)單,布景、道具也并不復(fù)雜,更多是以劇情表演展現(xiàn)其魅力。因此,影片投資金額并不會(huì)成為影響電影觀感的重要影響因素。加上20世紀(jì)戰(zhàn)爭(zhēng)偏多,尤其40年代二戰(zhàn)過(guò)后全球經(jīng)濟(jì)整體倒退,娛樂(lè)方面的投資相對(duì)也低很多,所以成本都偏低。縱觀21世紀(jì),隨著計(jì)算機(jī)技術(shù)的蓬勃發(fā)展,觀眾也更愛(ài)看滿屏特效的大片,這類電影的受歡迎程度自然上升且遠(yuǎn)超過(guò)去的作品。但特效的制作都需要許多的資金,換句話說(shuō),投入的資金越多,特效的制作便越真實(shí)、酷炫,影片的觀影體驗(yàn)越好,受歡迎程度也會(huì)隨之增長(zhǎng)。于是成本便和受歡迎程度不可割舍了,也說(shuō)明了成本在不同年代也體現(xiàn)了不同的價(jià)值。3.3電影推薦系統(tǒng)的設(shè)計(jì)。電影類型是影響觀眾選擇電影的一個(gè)重要的因素,同一個(gè)觀眾往往會(huì)對(duì)某種類型的電影情有獨(dú)鐘。電影市場(chǎng)中有大量的動(dòng)作片、驚悚片、愛(ài)情片,會(huì)因?yàn)橹谱鞯木汲潭?、劇情的飽滿程度等出現(xiàn)口碑的兩極化。因此,電影本身的內(nèi)容也是電影制作人不能忽視的一個(gè)方面此外,希望票房大賣的電影制作人可以更多的考慮拍攝冒險(xiǎn)片、動(dòng)作片、科幻片這幾種類型的影片。隨著電影技術(shù)的發(fā)展,觀眾越來(lái)越傾向于有高額投資的影片。電影成本在21世紀(jì)后成為電影制作過(guò)程中不可分割的一個(gè)部分,直接決定著電影的制作效果、演員的選擇等重要方面,也因此成為影響電影受歡迎程度的重要原因之一。本文在設(shè)計(jì)電影推薦系統(tǒng)的過(guò)程中,要著重考慮創(chuàng)作(cast)、內(nèi)容(content)和口碑(popularity)三部分因素對(duì)電影的影響。我們將電影推薦系統(tǒng)模型的推薦過(guò)程拆分成兩個(gè)步驟:第一步,通過(guò)電影與電影之間在創(chuàng)作和內(nèi)容上的相似度篩選出與用戶所選電影最相似的30部電影;第二步,根據(jù)電影的口碑以及發(fā)行年份,在第一步所選的30部電影中選出5個(gè)綜合評(píng)價(jià)最高的電影成為最終推薦給用戶的電影。
4電影推薦系統(tǒng)的實(shí)現(xiàn)
設(shè)計(jì)推薦模型時(shí),本文充分考慮了電影的創(chuàng)作、內(nèi)容和口碑這三類因素。下面我們將具體闡述如何實(shí)現(xiàn)電影推薦系統(tǒng)。4.1相似度(similarity)本文所提出的電影推薦系統(tǒng),在篩選與用戶所選電影最相近的30個(gè)電影時(shí),需要充分考慮兩部電影之間的相似度(similarity)。根據(jù)電影的創(chuàng)作和內(nèi)容類屬性,本文將電影是否擁有相同的導(dǎo)演、演員、制作公司、關(guān)鍵字作為主要的評(píng)測(cè)指標(biāo),構(gòu)建表1所示的相似度距離矩陣(distancematrix)。構(gòu)建過(guò)程如下:(1)用戶給推薦系統(tǒng)提供一個(gè)自己喜歡的電影j,取出電影j的導(dǎo)演、三位最重要的演員、電影所屬的各個(gè)電影類型、各個(gè)預(yù)處理后的關(guān)鍵字。(2)計(jì)算電影數(shù)據(jù)庫(kù)中的每個(gè)電影和電影j的距離值,取距離值最小的前30個(gè)電影。在計(jì)算推薦候選電影i和用戶所選電影j的距離值dij時(shí),首先我們根據(jù)i和j是否有相同的導(dǎo)演、演員、制作公司、電影類型、關(guān)鍵字,得到各個(gè)a的值。舉例:如果i和j的導(dǎo)演相同,那ai1值為1,否則ai1值值為0;同理其他屬性的距離值ai2,ai3,...,aik也是這么求得。然后使用歐幾里得距離公式計(jì)算dij,公式如下:dij=kn=1Σ(ain-ajn)2,姨ajn=1(1)4.2電影的綜合質(zhì)量(Quantity)在得到于創(chuàng)作和內(nèi)容上與用戶所選電影j最相似的Top30個(gè)電影之后,我們認(rèn)為評(píng)判一個(gè)電影是否能帶給用戶最好的享受,更取決于電影自身的優(yōu)秀程度。在本文中,我們使用電影評(píng)分(IMDB)和打分人數(shù)(count),以及發(fā)行年代(year)作為綜合質(zhì)量(Quantity)來(lái)表示進(jìn)一步篩選電影,縮小范圍。首先,電影評(píng)分IMDB作為最具官方性的評(píng)分,其所占比例自然最大,我們函數(shù)中給予的影響也應(yīng)最多,COUNT所表示的打分次數(shù)影響次之。最后,發(fā)行年代在不同時(shí)期有著不同價(jià)值,本文將利用高斯函數(shù)公式(3)來(lái)進(jìn)行處理,用YEAR表示這部分值。Quantity=IMDB2•COUNT•YEAR(2)YEAR=exp-(x-c)22σ222(3)其中,σ1=20,c為所選電影j的發(fā)行年份。從第一步中得到的30個(gè)電影中,找出Quantity得分最大的5個(gè)電影,然后作為最終推薦給用戶的電影。
5總結(jié)
本文通過(guò)大數(shù)據(jù)挖掘技術(shù)構(gòu)建了一個(gè)智能的電影推薦系統(tǒng),針對(duì)不同用戶,通過(guò)相似度篩選內(nèi)容上更相近的電影,并計(jì)算綜合質(zhì)量得分篩選質(zhì)量更好的電影兩個(gè)步驟的篩選,最終選出符合該用戶喜好的電影。
參考文獻(xiàn)
[1]許海玲,吳瀟,李曉東,等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報(bào),2009,20(2):350~362.
[2]劉建國(guó),周濤,郭強(qiáng),等.個(gè)性化推薦系統(tǒng)評(píng)價(jià)方法綜述[D].2009.
[3]汪靜,印鑒,鄭利榮,等.基于共同評(píng)分和相似性權(quán)重的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)科學(xué),2010(2):99~104.
作者:呂晟凱 單位:武漢鋼鐵公司第三子弟中學(xué)