大數據技術電影推薦系統設計與實現

時間: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.

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