大數(shù)據(jù)技術(shù)電影推薦系統(tǒng)設(shè)計與實現(xiàn)

時間:2022-10-23 02:48:20

導(dǎo)語:大數(shù)據(jù)技術(shù)電影推薦系統(tǒng)設(shè)計與實現(xiàn)一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

大數(shù)據(jù)技術(shù)電影推薦系統(tǒng)設(shè)計與實現(xiàn)

【摘要】在大數(shù)據(jù)時代,智能推薦系統(tǒng)為我們生活帶來了極大的便利,根據(jù)用戶的瀏覽信息可以為用戶提供相對應(yīng)的功能、產(chǎn)品和服務(wù),使得用戶能夠更高效地從海量數(shù)據(jù)中得到自己期望的信息數(shù)據(jù)。電影是很多人娛樂生活中不可缺少的一部分,電影推薦也是互聯(lián)網(wǎng)推薦內(nèi)容中重要的一種。本文將依托此為背景,通過數(shù)據(jù)挖掘相關(guān)算法來構(gòu)建一個智能的電影推薦系統(tǒng),根據(jù)用戶過去觀影喜好來為之個性化提供多個電影作品。

【關(guān)鍵詞】電影推薦;數(shù)據(jù)挖掘;機器學(xué)習(xí)

1前言

隨著現(xiàn)代科技生產(chǎn)力的發(fā)展,人們在空閑時間中逐漸開始追求更高要求的娛樂活動,而電影就是最為普遍的娛樂方式之一。不管是喜劇還是悲劇,都能勾起你純真的眼淚;不管是動作片還是恐怖片,都能讓你的腎上腺大開大合;不管是科幻片還是紀錄片,都能讓你云游古今中外。不管是去電影院,或是購買影碟,或是在網(wǎng)上觀賞影片前,人們總是有選擇性地去尋找一些更符合自己喜好的、內(nèi)容精致的、更受歡迎的電影去觀看。但是,如今影片的拍攝逐漸走向高產(chǎn)化,佳片許多,爛片也層出不窮,如果采用人工方法,在大量電影影片中找到自己真正喜歡的電影是一個耗費精力的事情。本文通過大數(shù)據(jù)挖掘技術(shù)構(gòu)建了一個智能的電影推薦系統(tǒng),針對不同用戶,提供多個與其過去的觀影信息相似度較高的符合該用戶喜好的電影,滿足用戶的觀影需求。本文使用了kaggle網(wǎng)站中TMDB5000MovieDataset的電影數(shù)據(jù)集,主要結(jié)合應(yīng)用分類統(tǒng)計(ClassStatistics)、樣本相似度(Correlation)分析等經(jīng)典數(shù)據(jù)挖掘算法,剖析數(shù)據(jù)間的關(guān)系,從而完成電影推薦系統(tǒng)的相關(guān)功能。用戶為系統(tǒng)提供一個電影的名稱,該系統(tǒng)提供與這部電影在類型、內(nèi)容、受歡迎程度、年代等綜合程度最相似的五部影片。

2數(shù)據(jù)預(yù)處理

本文所使用的電影數(shù)據(jù)集,包含:電影類型(genres)、關(guān)鍵字(keywords)、導(dǎo)演(director)、演員(actor)、發(fā)行公司(compa-ny)、電影評分(IMDB)、成本(budget)、評分人數(shù)(count)、電影的發(fā)行年份(year)、發(fā)行國(country)、語言(language)等字段,共計5000多部電影詳細信息。本文的智能推薦系統(tǒng)主要依賴電影和電影之間的“相似度”(similarity)來為用戶推薦電影,在計算相似度的過程中會使用描述該電影的“關(guān)鍵字”(keywords)作為計算的主要因素之一。但是在這些關(guān)鍵字中有大量的低頻詞,會對計算過程產(chǎn)生噪音影響;關(guān)鍵詞中還有大量的同義詞,如“shadow”和“dark”,同根詞,如“music”和“musical”、“train”和“training”、“apple”和“apples”,在計算相似度應(yīng)該被視為同一個詞。因此,我們使用以下的預(yù)處理方法對關(guān)鍵字進行了清洗。①本文應(yīng)用python的NLTKpackage合并了同義詞和同根詞。②本文對頻次小于五次或出現(xiàn)在少于三個電影的關(guān)鍵字進行了過濾。數(shù)據(jù)集中有一些屬性需要進行離散化處理,如發(fā)行年份(releasedate),本文應(yīng)用了EXCEL的YEAR()函數(shù)和ROUND-DOWN()函數(shù)以10年為間隔,將其分為了1930s、1940s一直到2010s(代表2010年及以后)的年代制。

3電影推薦系統(tǒng)的設(shè)計

不同的人在挑選電影的時候往往有不同的選擇,但是大抵都會考慮以下幾個方面。電影的導(dǎo)演和演員以及制作公司可能是觀眾會著重考慮的部分。著名導(dǎo)演例如姜文、JamesCameron,作品雖少但精品居多,他們的電影上映后可能會吸引大量觀眾。演員也是電影的一個重要載體,如RobertDowney這樣擁有優(yōu)秀的演技、帥氣外表的演員收攬了眾多的狂熱粉絲,帶來了票房大賣。電影公司也在觀眾的選擇中有著重要的影響,像MarvelStudios、DCEntertainment這類公司靠超級英雄系列吸引了許多觀眾,該系列的每一部新片上映都會快速引起觀影熱潮。我們稱這部分因素為創(chuàng)作(cast)因素。電影內(nèi)容、電影類型、發(fā)型年份、語言在不同程度上也是影響觀眾選擇電影時的因素之一,觀眾會優(yōu)先去看符合自己口味的電影。換句話說,一個喜歡看動作片的人,會在眾多電影中選擇如敢死隊、警察故事這類以動作取勝的影片;而一個人若喜歡愛情片,泰坦尼克號這樣唯美的作品將成為其首選。我們稱這部分屬性為內(nèi)容(content)因素。影片在同檔期中的受歡迎程度、電影評分、評分人數(shù)也是決定觀眾是否選擇這個電影的原因之一。我們稱這部分因素為口碑(popularity)因素。為了探究這些因素對于觀眾在選擇電影時的影響,本文首先對某幾個因素進行了定量分析。3.1電影類型。數(shù)據(jù)集中一部影片可能為多種電影類型,本文統(tǒng)計了不同類型電影的受歡迎程度。首先,使用EXCEL的計數(shù)功能,統(tǒng)計不同電影類型的樣本數(shù)量。統(tǒng)計結(jié)果顯式,本數(shù)據(jù)集中主要的電影類型有劇情片(drama)(2297部)、喜劇片(comedy)(1722部)、驚悚片(thriller)(1274部)、動作片(action)(1154部)、愛情片(romance)(894部),除此之外還有冒險片(adven-ture)(790部)、科幻片(sciencefiction)(506部)、動畫片(ani-mation)(234部)等等。然后,本文又使用了EXCEL的“分類匯總”功能,將電影類型作為“分類字段”,將“電影評分”作為“匯總方式”,使用“平均值”作為匯總項。根據(jù)統(tǒng)計結(jié)果,受歡迎程度最高的三類影片是冒險片、動畫片、科幻片;然而,數(shù)量最多的影片類型———劇情片、喜劇片、驚悚片并不是最受歡迎的;反觀,雖然奇幻片(fantasy)、推理片(mystery)等類電影的數(shù)量并不占優(yōu)勢,但其受歡迎程度依然較高。因此,在電影市場中,并不是出現(xiàn)頻率越高的電影類型,就越受大眾喜愛。3.2電影年代和電影成本。本文使用同3.1相似的統(tǒng)計方法,依據(jù)數(shù)據(jù)集,生成了從1930~2017年不同年代電影的平均預(yù)算以及受歡迎程度的折線圖,如圖1所示。根據(jù)圖1可知,電影成本與受歡迎程度在21世紀前并沒有太大的關(guān)聯(lián)性,而到了21世紀后便出現(xiàn)相當(dāng)明顯的正相關(guān)單,布景、道具也并不復(fù)雜,更多是以劇情表演展現(xiàn)其魅力。因此,影片投資金額并不會成為影響電影觀感的重要影響因素。加上20世紀戰(zhàn)爭偏多,尤其40年代二戰(zhàn)過后全球經(jīng)濟整體倒退,娛樂方面的投資相對也低很多,所以成本都偏低??v觀21世紀,隨著計算機技術(shù)的蓬勃發(fā)展,觀眾也更愛看滿屏特效的大片,這類電影的受歡迎程度自然上升且遠超過去的作品。但特效的制作都需要許多的資金,換句話說,投入的資金越多,特效的制作便越真實、酷炫,影片的觀影體驗越好,受歡迎程度也會隨之增長。于是成本便和受歡迎程度不可割舍了,也說明了成本在不同年代也體現(xiàn)了不同的價值。3.3電影推薦系統(tǒng)的設(shè)計。電影類型是影響觀眾選擇電影的一個重要的因素,同一個觀眾往往會對某種類型的電影情有獨鐘。電影市場中有大量的動作片、驚悚片、愛情片,會因為制作的精良程度、劇情的飽滿程度等出現(xiàn)口碑的兩極化。因此,電影本身的內(nèi)容也是電影制作人不能忽視的一個方面此外,希望票房大賣的電影制作人可以更多的考慮拍攝冒險片、動作片、科幻片這幾種類型的影片。隨著電影技術(shù)的發(fā)展,觀眾越來越傾向于有高額投資的影片。電影成本在21世紀后成為電影制作過程中不可分割的一個部分,直接決定著電影的制作效果、演員的選擇等重要方面,也因此成為影響電影受歡迎程度的重要原因之一。本文在設(shè)計電影推薦系統(tǒng)的過程中,要著重考慮創(chuàng)作(cast)、內(nèi)容(content)和口碑(popularity)三部分因素對電影的影響。我們將電影推薦系統(tǒng)模型的推薦過程拆分成兩個步驟:第一步,通過電影與電影之間在創(chuàng)作和內(nèi)容上的相似度篩選出與用戶所選電影最相似的30部電影;第二步,根據(jù)電影的口碑以及發(fā)行年份,在第一步所選的30部電影中選出5個綜合評價最高的電影成為最終推薦給用戶的電影。

4電影推薦系統(tǒng)的實現(xiàn)

設(shè)計推薦模型時,本文充分考慮了電影的創(chuàng)作、內(nèi)容和口碑這三類因素。下面我們將具體闡述如何實現(xiàn)電影推薦系統(tǒng)。4.1相似度(similarity)本文所提出的電影推薦系統(tǒng),在篩選與用戶所選電影最相近的30個電影時,需要充分考慮兩部電影之間的相似度(similarity)。根據(jù)電影的創(chuàng)作和內(nèi)容類屬性,本文將電影是否擁有相同的導(dǎo)演、演員、制作公司、關(guān)鍵字作為主要的評測指標(biāo),構(gòu)建表1所示的相似度距離矩陣(distancematrix)。構(gòu)建過程如下:(1)用戶給推薦系統(tǒng)提供一個自己喜歡的電影j,取出電影j的導(dǎo)演、三位最重要的演員、電影所屬的各個電影類型、各個預(yù)處理后的關(guān)鍵字。(2)計算電影數(shù)據(jù)庫中的每個電影和電影j的距離值,取距離值最小的前30個電影。在計算推薦候選電影i和用戶所選電影j的距離值dij時,首先我們根據(jù)i和j是否有相同的導(dǎo)演、演員、制作公司、電影類型、關(guān)鍵字,得到各個a的值。舉例:如果i和j的導(dǎo)演相同,那ai1值為1,否則ai1值值為0;同理其他屬性的距離值ai2,ai3,...,aik也是這么求得。然后使用歐幾里得距離公式計算dij,公式如下:dij=kn=1Σ(ain-ajn)2,姨ajn=1(1)4.2電影的綜合質(zhì)量(Quantity)在得到于創(chuàng)作和內(nèi)容上與用戶所選電影j最相似的Top30個電影之后,我們認為評判一個電影是否能帶給用戶最好的享受,更取決于電影自身的優(yōu)秀程度。在本文中,我們使用電影評分(IMDB)和打分人數(shù)(count),以及發(fā)行年代(year)作為綜合質(zhì)量(Quantity)來表示進一步篩選電影,縮小范圍。首先,電影評分IMDB作為最具官方性的評分,其所占比例自然最大,我們函數(shù)中給予的影響也應(yīng)最多,COUNT所表示的打分次數(shù)影響次之。最后,發(fā)行年代在不同時期有著不同價值,本文將利用高斯函數(shù)公式(3)來進行處理,用YEAR表示這部分值。Quantity=IMDB2•COUNT•YEAR(2)YEAR=exp-(x-c)22σ222(3)其中,σ1=20,c為所選電影j的發(fā)行年份。從第一步中得到的30個電影中,找出Quantity得分最大的5個電影,然后作為最終推薦給用戶的電影。

5總結(jié)

本文通過大數(shù)據(jù)挖掘技術(shù)構(gòu)建了一個智能的電影推薦系統(tǒng),針對不同用戶,通過相似度篩選內(nèi)容上更相近的電影,并計算綜合質(zhì)量得分篩選質(zhì)量更好的電影兩個步驟的篩選,最終選出符合該用戶喜好的電影。

參考文獻

[1]許海玲,吳瀟,李曉東,等.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報,2009,20(2):350~362.

[2]劉建國,周濤,郭強,等.個性化推薦系統(tǒng)評價方法綜述[D].2009.

[3]汪靜,印鑒,鄭利榮,等.基于共同評分和相似性權(quán)重的協(xié)同過濾推薦算法[J].計算機科學(xué),2010(2):99~104.

作者:呂晟凱 單位:武漢鋼鐵公司第三子弟中學(xué)