賈忠濤
摘要:隨著互聯(lián)網與移動終端的普及,網絡上的電影娛樂信息數(shù)量海量增加,用戶對電影個性化服務的需求日益旺盛。設計電影個性化推薦系統(tǒng),該系統(tǒng)基于B/S模式,采用JavaEE體系架構。個性化電影推薦服務能夠挖掘用戶信息、電影項目信息間隱藏的關聯(lián)性,從而發(fā)現(xiàn)用戶的潛在興趣,將用戶可能感興趣的影視片推薦給用戶。
關鍵詞:個性化推薦;電影推薦;協(xié)同過濾;JavaEE架構
DOIDOI:10.11907/rjdk.143727
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:16727800(2015)001008603
0 引言
隨著互聯(lián)網技術的飛速發(fā)展,當今社會已進入了信息爆炸時代。便利的互聯(lián)網和日益普及的移動終端極大地提高了人們的生活質量。網絡上供用戶觀看的電影數(shù)量龐大、類型多樣[1],從海量的影片資源中找到一部自己喜歡的電影變的越來越困難,海量影片信息的利用率很低。
個性化推薦技術是一種信息過濾的手段,可以挖掘用戶的興趣偏好[2],根據(jù)用戶的興趣向用戶推薦感興趣的信息,提供針對用戶的個性化服務,解決了信息過載的問題。協(xié)同過濾算法是一種應用廣泛的個性化推薦算法,能根據(jù)用戶對項目的評價找出用戶與用戶之間以及電影與電影之間的相似性,從相似的用戶或電影中找到目標的最近鄰居,根據(jù)最近鄰居的信息作出推薦。
搭建一個基于協(xié)同過濾算法的電影個性化推薦系統(tǒng),能幫助用戶挑選喜歡的電影,節(jié)省用戶尋找資源的時間,提高用戶的體驗,同時還能提高用戶和系統(tǒng)的粘著度。同時,用戶能快速找到感興趣的資源,也能減輕一個站點的網絡負載[3]。
1 個性化推薦
個性化推薦是根據(jù)用戶的興趣特點和購買行為,向用
戶推薦感興趣的信息,幫助用戶決定應該選擇什么對象,模擬銷售人員幫助客戶完成購買過程[4]。電影推薦系統(tǒng)則根據(jù)用戶的興趣特點和行為,向用戶推薦其感興趣的電影信息[5]。通過建立用戶與電影之間的二元關系,根據(jù)用戶的歷史記錄發(fā)掘用戶潛在興趣,從而針對用戶提供推薦服務。如:①根據(jù)用戶的歷史記錄,包括用戶對電影的瀏覽記錄和用戶電影的評價,找出用戶的相似用戶或者某部電影的相似電影;②針對目標用戶,向用戶推薦用戶可能喜歡的電影。本文電影個性化推薦主要包括熱門大片推薦、新片推薦、冷門佳片推薦和關聯(lián)電影推薦。
2 協(xié)同過濾算法
協(xié)同過濾算法的基本思想是將興趣相似用戶所感興趣的信息推薦給目標用戶。如音樂推薦、電影推薦等。協(xié)同過濾算法分為:基于用戶的協(xié)同過濾和基于項目的協(xié)同過濾[6]。
基于用戶(Userbased)協(xié)同過濾利用歷史數(shù)據(jù)尋找用戶鄰居,根據(jù)評分相似的最近鄰居的評分數(shù)據(jù)向目標用戶生成推薦。其原理為:最近鄰居對項目的評分與目標用戶非常相似,因此可以通過最近鄰居對項目評分的加權平均值來接近目標用戶對未評分項目的評分,以最近鄰居的已評分信息對目標用戶生成推薦。
基于項目(Itembased)協(xié)同過濾推薦[7]依賴項目間的關聯(lián)來決定推薦。根據(jù)目標用戶已經評價過的項目,計算該項目與其它項目的相似性,選擇一系列最相似的項目生成推薦。由于項目間的相似性,對已知項目的評分可以推斷出其它項目的評分范圍,以已評分項目相似的項目作為推薦。
本文采用基于用戶的協(xié)同過濾算法實現(xiàn)熱門大片推薦,利用基于項目的協(xié)同過濾算法實現(xiàn)關聯(lián)電影的推薦。此外,還可以根據(jù)電影的訪問與評價情況,作出新片推薦和冷門佳片的推薦。
3 電影個性化推薦系統(tǒng)設計
3.1 架構設計
系統(tǒng)基于B/S模式,架構采用JavaEE體系,整個系統(tǒng)部署在tomcat服務器上。其架構如圖1所示。
圖1 系統(tǒng)架構
用戶UI采用html+css+javascript解決方案。后臺采用Struts2,Hibernate和Spring。該架構采用面向對象的分析與設計方法,利用SSH的成熟架構,保障系統(tǒng)高內聚、低耦合的系統(tǒng)邏輯,分層清晰,穩(wěn)定性好。
3.2 系統(tǒng)功能
電影個性化推薦系統(tǒng)的功能模塊分為接口層、業(yè)務邏輯層、核心數(shù)據(jù)層等3個層次。接口層提供對外的服務接口;業(yè)務邏輯層實現(xiàn)相應的各種算法和信息管理功能,可分為用戶信息管理與電影信息管理兩部分;核心數(shù)據(jù)層存放整個系統(tǒng)的核心業(yè)務數(shù)據(jù),如計算推薦列表需要的用戶信息和電影信息、用戶相似度列表、電影相似度列表等。功能模塊設計如圖2所示。
圖2 系統(tǒng)功能模塊
(1)用戶接口。推薦系統(tǒng)用戶接口主要包括查看推薦、注冊登錄、觀看、評分和瀏覽。新用戶注冊過程中需要填寫基本信息,如年齡、性別、職業(yè)等,注冊后填寫個人興趣愛好標簽信息,用戶即可進行正常的評分瀏覽等操作。隨著系統(tǒng)與用戶的交互,系統(tǒng)記錄用戶的信息并逐漸獲取用戶的興趣愛好。用戶可以對喜愛的電影進行評分,系統(tǒng)將用戶的評分和瀏覽行為存入日志,并調用數(shù)據(jù)分析引擎對用戶的行為進行分析,更新用戶存儲信息。
(2)電影信息管理。電影信息管理模塊包括:分類管理、排行榜、基本信息管理和核心推薦。分類管理和排行榜是為用戶挑選自己喜歡的電影而設置,作為電影個性化推薦的補充。常見的排行榜有熱門電影排行榜、高分大片排行榜、票房榜等。熱門電影根據(jù)電影被瀏覽和觀看的記錄計算得到;高分大片排行榜從平均評分較高的電影中挑選得到。
(3)個性化推薦算法。此模塊是電影推薦系統(tǒng)的核心,利用協(xié)同過濾算法計算出用戶、電影的近鄰數(shù)據(jù),存入到數(shù)據(jù)庫中。這些數(shù)據(jù)是個性化推薦的直接信息來源,例如用戶的K個最近鄰居、推薦給某個用戶的N部電影。當用戶的興趣發(fā)生變化時,系統(tǒng)能捕捉到,并重新作出推薦。由于該模塊需要大量的計算空間,可設置為線下運行。
3.3 數(shù)據(jù)庫設計
數(shù)據(jù)庫是整個推薦系統(tǒng)的基礎。數(shù)據(jù)庫主要包括用戶表(users)、電影表(movie)、打分表(rate)、電影類型表(movieType)、類型表(type)、用戶相似度表(similar)和電影相似度表(movieSimilar)。其相互關系如圖3所示。
圖3 數(shù)據(jù)庫設計
用戶表(users)存儲用戶的基本信息:用戶名、年齡、性別、職業(yè)等。電影表(movie)存儲電影的基本信息,包括名字、類型、發(fā)布日期等。打分表(rate)記錄用戶對電影的評分,是協(xié)同過濾算法的基礎,也是整個推薦系統(tǒng)的基礎。電影類型表(movieType)和類型表(type)存儲電影的類型,方便用戶檢索。用戶相似度表(similar)和電影相似度表(movieSimilar)通過協(xié)同過濾算法計算得到信息,是個性化推薦的直接信息來源。
4 系統(tǒng)運行效果
電影推薦站點負責與普通用戶直接交互,收集用戶的行為,主要由Jsp和Ajax等技術實現(xiàn),采用Struts2框架。推薦站點由注冊頁面、登錄頁面、電影列表、已評價影片頁
面、影片推薦頁面和個人信息統(tǒng)計頁面等組成。
用戶注冊后,系統(tǒng)會捕捉用戶顯式和隱式行為特征,并將這些特征保存在用戶的數(shù)據(jù)庫中。系統(tǒng)根據(jù)采集到的信息,向用戶進行個性的電影推薦。
系統(tǒng)在Windows平臺下運行,使用LoaderRunner 9.5進行壓力測試,通過模擬50個用戶對系統(tǒng)進行20分鐘的壓力測試,測試表明用戶可以在該系統(tǒng)上完成的所有業(yè)務,系統(tǒng)穩(wěn)定。
5 結語
本文針對當前信息過載和用戶對個性化電影推薦需求,提出一種基于協(xié)同過濾算法的電影個性化推薦系統(tǒng)。該系統(tǒng)采用JavaEE架構,通過記錄用戶的行為,挖掘用戶的潛在興趣,對用戶作出個性化電影推薦。實驗結果表明,該系統(tǒng)具有很好的穩(wěn)定性。本文對于類似個性化推薦技術開發(fā)亦具有參考借鑒意義。