王佳斐,范伊紅,宋永旗,王帥杰,付炳威
(河南科技大學軟件學院,河南洛陽 471000)
近年來,隨著移動智能設備、通信設備的快速發展和5G技術的迅速普及,在移動設備上看電影、看電視已經成為人們休閑娛樂的最流行方式之一。隨著用戶對觀影過程中信息需求越來越多,影視行業也開始注重從多個角度提供更為全面的服務。其中影視推薦系統作為一種重要手段為觀眾和影視創作者之間架起了橋梁。但是,影視推薦的結果卻面臨著嚴重的單一化問題,如何提高影視推薦的內容多樣化,避免內容的單一化,給用戶帶來更好的體驗,是當今所有的影視平臺面臨的首要問題。
個性化推薦是一種功能,它會通過用戶的個性化需求來推薦符合其需求的內容。推薦系統一般有三種分離技術:一是基于內容,即對信息的內容進行建模;二是基于用戶,按相似人群的興趣進行建模;三是混合方法,即集成多種方法達成實際效果。本系統采用基于用戶數據的建模方法,主要提取了用戶對電影的評分數據及觀看歷史數據、用戶好友喜好的電影數據,并進行篩選,為推薦系統的構建提供了重要數據。
本系統采用分層的架構方法,首先將預先準備好的電影數據存儲到MySQL中;應用層包括:精彩推薦、歷史記錄、添加好友、電影詳細、用戶操作等;業務層包括:處理請求、數據交互、返回結果、推薦反饋等;算法層包括:協同過濾、基于評分推薦、基于歷史記錄推薦、基于用戶好友推薦;管理層包括:數據監控和數據維護等,如圖1所示。

圖1 個性化推薦系統流程
協同過濾算法作為一種結構簡單的推薦算法被廣泛地應用于各類推薦系統中,在1994年作為“信息過濾”被提出研究[1],又在2002年被PremMel-ville稱為“協同過濾”并進行了進一步研究[2]。其算法核心是通過尋找集合中最近的“鄰居”,并通過用戶彼此之間的相似度來提供對于相應電影的推薦。目前則采用啟發式或基于模型的協同過濾算法[3]。推薦內容精準度是一個推薦框架的重要指標,為了正確地給客戶推薦電影。本文提出了一種多個指標混合的方法,該方法通過使用兩個分類器來解決推薦內容多樣化問題并降低錯誤率。本文算法流程圖如圖2所示。

圖2 算法流程圖
2.1.1 頂級K推薦
經典的推薦系統是根據用戶對于某一部電影的評價或者評分和用戶的相關屬性對推薦的內容中進行排序,這種推薦系統推薦的內容會過于單一化,本文考慮到用戶可能喜好的類型不同,所以提出了一種交叉方法依照不同的屬性產生的推薦結果進行排序,以提高推薦的準確性。通過這種排序,推薦的電影類型可能會超過用戶所期望的類型。
這里,在公式(1)中,客戶u對電影i和j的評分分別為Ni和Nj,電影i和j的普遍性(電影熱度和觀看時長)分別為Mi和Mj。

第一類推薦,基于與推薦相關的用戶評分數據,系統設置了電影評分功能和用戶行為記錄功能,數據庫記錄所有的用戶評分數據。采用五分制打分,推薦之前找到目標用戶與其他各個用戶有過相同評分的電影。把目標用戶與其他用戶以及電影構成一個user-score二維矩陣M如表1,利用公式(2)計算目標用戶與其他用戶的相似度:

表1 二維矩陣

其中R(u,i)是第u個用戶對第i個電影的評分,R(i)是第i個電影的平均得分。計算目標用戶和其他用戶之間的相似度,使用此公式,并找出前三個,把前三名評分過的電影中目標用戶未評分的電影,作為待推薦商品。最后向目標用戶推薦前20名電影,這是推薦電影的主要方式。
第二類推薦,系統根據用戶的歷史瀏覽記錄來進行推薦電影并通過電影的各種屬性進行了不同的推薦。根據電影的發布時間實現了最新電影推薦;根據電影的平均評分數據實現了最熱電影推薦;根據電影的類型實現了相似電影推薦。對于新用戶,由于缺少其相關的歷史數據,所以本文先采集用戶的一些基本信息,如喜歡什么類型的電影,并且以最熱電影為基礎,為其進行初步的類型模型構建,并最終進行推薦。
第三類推薦,系統通過用戶與他的好友的相關聯系數據。尋找和目標用戶有相同偏好的朋友,然后根據目標用戶朋友的偏好為目標用戶生成推薦。基本原理就是利用用戶訪問行為的相似性來互相推薦用戶可能感興趣的資源,如圖3所示。

圖3 根據好友推薦
上圖示意出基于好友間協同過濾推薦機制的基本原理,首先A和C之間互為好友,并且假定用戶A喜歡電影A、電影C、用戶B喜歡電影B、用戶C喜歡影片A、電影C、電影D;當用戶A在觀看電影時,A會根據用戶的反饋對電影進行評分。如果我們想知道用戶是否有規律地收看電影的話,就需要了解每個用戶在一段時間內觀看的電影數量。根據這些用戶的歷史偏好,我們可以看出用戶A和用戶C有相似的喜好,用戶C也喜歡電影D,所以我們可以推斷用戶A也可能喜歡電影D。并且A和C之間互為好友,比A與B非好友之間更具有推薦的可能,因此可以將電影D推薦給用戶A。
根據上述三類不同的推薦方式,我們最終將它們進行頂級K推薦,這樣可以擴展可能喜好的電影類型并將其在頁面上進行推薦,同時也降低了推薦的錯誤率,提升了用戶的體驗。
與傳統的電影推薦系統相比,協同過濾算法集成了標簽,提高了電影推薦系統網站平臺用戶的觀看體驗。優化了對電影的評估策略。本系統在傳統協同過濾算法的基礎上增加了根據電影屬性的推薦,如:最熱電影推薦、最新電影推薦與相似電影推薦,使得用戶的觀影體驗得到進一步提高。
本系統采用EuclideanDistanceSimilarity(歐氏距離相似度)算法[4],分別進行了三種不同方式的推薦,并最終進行頂級k推薦,最后經過一系列的測試將參數NNEIGHBORHOOD_NUM(鄰居數目)設置為4,能達到較好的推薦效果,準確率與召回率[5]測試如表2所示:

表2 準確率與召回率測試數據
在本文中,我們設計了一個依賴于交叉方法的推薦模型,該系統將協同過濾(Collaborative Filtering,簡稱CF)與用戶相關提取屬相結合,從而使推薦的電影更加符合用戶的需求。精確評估表明,所提出的系統完全繞過了傳統的基于用戶的CF和基于電影的CF,并減少所推薦的單一化電影的數量。在真實用戶的數據集基礎上,通過一系列篩選,推薦結果表明,該方法在保持高精度的同時,有效地提高了推薦電影的總體多樣性和特征多樣性。用戶可以在第一時間內尋找所需求的電影。