葉長青



摘要:互聯網大數據時代下,網絡中的信息呈爆炸式增長,例如用戶日常觀看的影視內容每天都在大量更新,這使得用戶在選擇時出現了一定的困難,影視推薦系統可以幫助用戶解決這個問題。該文對影視推薦算法進行了研究,對現今流行的協同過濾推薦算法加以改進,同時利用SpringBoot框架,設計并實現了一種個性化影視推薦系統,對用戶感興趣的影視內容進行分析預測,提供檢索、個性化推薦等服務。
關鍵詞: 大數據;影視推薦;SpringBoot
中圖分類號:TP311.5? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)01-0085-03
1 推薦系統的介紹
互聯網中的信息呈爆炸式增長,人們很難從紛繁復雜的信息中獲取自己想要的部分,這種現象被稱作為信息過載(Information Over-load) 。為了解決這個問題,推薦系統(Recommendation System, RS) 應運而生,它可以根據用戶的需求、興趣、習慣等將海量信息快速地篩選至用戶可接受的數量,以便用戶迅速準確地找到自己想要的部分。
與以往傳統的搜索引擎不同的是,推薦系統是根據用戶歷史記錄,通過一些算法來分析用戶的個人興趣從而得到結果,而不是僅僅通過用戶輸入的關鍵字進行搜索。如今個性化推薦系統已經成了網絡上的一種標準產品,它不但可以為使用者進行內容搜索,同時也向用戶提供內容推薦,這種推薦是基于用戶平時的使用習慣。推薦系統已經成了提升用戶使用感受和黏度的重要方式,因此無論在學術界還是在工業界,對于它的研究和應用已經越來越深入和普遍。
在影視內容的應用領域,個性化推薦算法已在國內外實踐中得到廣泛使用。經典的推薦算法包括基于內容的推薦、基于用戶或者項目的協同過濾推薦以及混合推薦方法等。
2 協同過濾推薦算法
2.1 推薦算法基本原理介紹
個性化推薦系統利用算法和技術精準地確定目標受眾,向使用者提供推薦建議。在生成結果的過程中,充分關注到了使用者的個性需要,使得推薦的效果更加符合使用者的偏好,從而提升了推薦的效果。
推薦系統的核心是推薦算法。Adomavicius等人提出了推薦算法的形式化定義:
2.2 協同過濾算法
協同過濾(Collaborative Filtering, CF) 算法綜合考慮當前用戶的歷史偏好以及其他偏好相近用戶的意見來為當前用戶推薦新物品或者預測當前用戶對特定物品的偏好。本系統的協同過濾算法采用最近鄰推薦,用戶的相似程度稱為“距離”,距離相近的用戶被稱為“鄰居”,該模型的原理是:具有類似喜好的使用者在未來也極有可能有相似的偏好,通過“鄰居”的評價來預測目標用戶對該項目的喜愛程度。該方法又可分為基于用戶的算法和基于項目的算法,以用戶為中心尋找用戶之間的相似點或者以項目為中心尋找用戶偏好項目的相似點。該方法利用如圖1所示的“用戶—項目評分矩陣”進行推薦。
基于內存的協同過濾算法的一般步驟可分為如下幾步:1) 構建用戶-項目評分矩陣;2) 計算用戶之間或項目之間的相似度;3) 找出相似用戶集合或相似項目群;4) 生成推薦候選集給用戶。在上述幾個步驟中,相似度計算是整個流程最為核心的步驟。
3 系統設計與實現
3.1 SpringBoot框架與SSM框架
本系統的實現采用了SpringBoot作為基礎框架,業務實現則采用了流行的SSM框架。SpringBoot框架是對傳統的Spring MVC框架的封裝改進,摒棄了傳統Spring MVC相對復雜的xml配置,只保留了極簡的配置方式,同時它也有很靈活的其他配置方式。SpringBoot已經成了當今流行的微服務框架形式,對于快速開發、部署、上線等都起到了很大的幫助。
SSM框架包含了三個技術:Spring、Spring MVC和MyBatis,是一套完整的Web開發解決方案,其中Spring和Spring MVC已經集成在上面提到的SpringBoot框架中,而MyBatis是一個較流行的持久層框架,利用它可以進行Java對象與數據庫對象的相互轉化以及SQL語句、存儲過程等的靈活表示。
3.2 需求分析
本系統具有的需求功能設計如下:
1) 信息維護。影視資源是本系統的基礎數據,是各類分析結果的來源。本功能的主要任務是保存影視資源的基本信息、資源的關聯信息、資源的來源以及用戶評分反饋的信息。其中最后一個用戶反饋信息尤其重要,它包括影視資源的來源網站、觀看數量、點贊數量、彈幕數量、評價評分、收藏數量、付費觀看數量等,是進行影視資源評分的重要參考。同時該模塊功能還負責維護用戶本身的信息,包括用戶名密碼、手機號、關聯社交賬號等。
2) 用戶管理。該模塊負責記錄用戶自己的觀看瀏覽歷史、收藏、點贊等信息,這些信息是進行興趣愛好偏向的最重要的依據之一,同時也方便用戶觀看自己曾經的瀏覽內容,快速找到感興趣的資源以便回看。同時用戶管理也針對新老用戶設計不同的權限加以管理。
3) 偏好管理。用戶可以自己根據興趣設定想收到的推薦內容,設定系統界面的布局風格,設定自己習慣觀看影片的瀏覽方式,屏蔽自己不感興趣的影視內容或演員等。用戶的這種行為可以更好地為推薦系統提供參考。
4) 影視內容檢索和推薦。這是本系統的核心功能,首先在信息維護的基礎之上,系統會對影視內容做分類匯總,根據不同的標準來歸類各種影視作品,給予多種標簽和優先級,便于用戶進行影視內容搜索。在此基礎之上,再結合用戶自己設定的偏好、用戶的內容瀏覽歷史、用戶屏蔽內容等采用一定的算法推算出用戶感興趣的內容或者演員,積極展示在用戶檢索的結果中或者用戶觀看界面的旁邊。在用戶使用系統的過程中,根據用戶的數據對模型進行不斷地更新,挖掘預測用戶進一步可能的偏好,修正模型過期和不合理的地方,以得到最合理的推薦結果。
3.3 系統體系結構
本系統的系統架構設計如圖2所示,可以從用戶接口層(前端UI) 、業務邏輯層(業務服務)、推薦算法層和數據持久層幾個層次對系統架構進行設計。
系統可以很明顯地分為界面層、業務邏輯層、算法層和數據層,這是一種很清晰的設計思路。界面層用來提供用戶使用的界面,推薦列表和分類列表放在顯眼的位置,方便用戶使用。使用成熟的HTML+CSS+JavaScript實現;業務邏輯層提供絕大部分的業務功能,包括數據管理、用戶管理等,并成為界面層和數據、算法層的中間接口層;算法層提供核心的影視內容推薦算法,具體算法在后面會提及,這是一個單獨的模塊,它被設計成可以方便地替換,以便及時地更新算法模型;數據層負責基礎數據的存儲,包括影視內容、用戶信息、用戶行為等。
3.4 系統功能設計
系統主要包括三大功能模塊:
1) 用戶信息模塊:主要負責用戶信息的管理與維護,分為登錄注冊模塊、信息維護模塊和歷史管理模塊。用戶在登錄時輸入用戶名密碼,服務端檢查是否符合,如不符合給出錯誤提示。用戶在注冊時可以簡單地通過手機號碼來注冊,也可以使用其他社交賬號關聯登錄。在登錄成功后可以自己查看修改用戶信息。同時在用戶管理界面上,還可以看到自己的觀看歷史、影片收藏、感興趣內容設置等功能。
2) 影視信息模塊:主要包括影視片庫查詢、影視榜單列表、影視個性化推薦等功能。影視查詢可以采用模糊關鍵字查詢,在收到關鍵字后,系統在自己的片庫中查詢符合條件的影片,并根據算法的預測,給出用戶可能感興趣的影片;影視個性化推薦采用離線和在線的方式,在線方式負責實時更新影視資源,而離線方式則利用算法對影視庫的資源進行計算分析,這個操作相對比較耗時。
3) 后臺管理模塊是為后臺管理員設計的,包括基本的電影信息管理、會員信息管理,對評論、評價的審核以及標簽分類等。
4 協同過濾算法的改進
基于協同過濾算法的推薦過程可以分為三步:1) 建立用戶-電影評分矩陣;2) 計算用戶相似度,然后使用該相似度進一步計算,得到用戶的最近目標鄰居集合;3) 在上一步的基礎上,最后對目標用戶計算得到預測結果。
針對協同過濾算法存在的一些不足,進行以下改進:
1) 權重的增設,增設權重的方式用于調整皮爾森相關系數,形式為:
2) 加權累計,應對冷啟動問題,可以將基于內容等推薦算法納入考慮,使用加權和的方法,利用電影屬性計算兩部電影間相似性的方法:
5 小結
本文對影視推薦算法進行了一些研究,對傳統的協同過濾算法進行了一些改進,使其具有更好的推薦效果。本文利用當今流行的SpringBoot框架和SSM框架把推薦算法應用到實際場景中去,實現了影視內容的搜索和個性化推薦服務,并能根據用戶的行為預測他們可能感興趣的影視內容。
參考文獻:
[1] Resnick P,Varian H R.Recommender systems[J].Communications of the ACM,1997,40(3):56-58.
[2] 侯林坤.電影個性化推薦系統的構建[J].電腦知識與技術,2020,16(27):41-42.
[3] 陽翼,朱筠麗,萬依柳.中國新生代電影大片消費偏好調查報告[J].現代傳播(中國傳媒大學學報),2012,34(1):92-97.
[4] 李曉菊.協同過濾推薦系統中的數據稀疏性及冷啟動問題研究[D].上海:華東師范大學,2018.
[5] 孫鑫.詳解Spring Boot——從入門到企業級開發實戰[M].北京:電子工業出版社, 2021.
【通聯編輯:代影】