










摘" 要:在當(dāng)今信息爆炸的時(shí)代,用戶在選擇影視作品時(shí)面臨海量的選擇。針對(duì)當(dāng)前影視推薦系統(tǒng)在推薦精度、管理效率和擴(kuò)展性上的不足,文章提出了一種基于Spark框架的解決方案。文章采用Spring Boot和Vue框架進(jìn)行前后端分離開(kāi)發(fā),利用Scala編寫(xiě)的Spark應(yīng)用程序結(jié)合內(nèi)容推薦算法,對(duì)用戶行為數(shù)據(jù)進(jìn)行處理和分析。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在大規(guī)模數(shù)據(jù)處理方面表現(xiàn)優(yōu)異,顯著提升了推薦準(zhǔn)確率和用戶滿意度,且具備良好的可擴(kuò)展性,整體提升了系統(tǒng)的運(yùn)行效率和用戶體驗(yàn)。
關(guān)鍵詞:Spark;Spring Boot;Vue;Scala;基于內(nèi)容的影視推薦
中圖分類號(hào):TP311" 文獻(xiàn)標(biāo)識(shí)碼:A" 文章編號(hào):2096-4706(2025)01-0082-06
Design and Implementation of Film and Television Recommendation System Based on Spark
Abstract: In today's era of information explosion, users face a huge number of choices when selecting film and television works. Aiming at the shortcomings of the current film and television recommendation system in recommendation accuracy, management efficiency and scalability, this paper proposes a solution based on the Spark framework. This paper adopts the Spring Boot and Vue frameworks for front-end and back-end separation development, uses the Spark application program developed by Scala and combines with the Content-Based Recommendation to process and analyze the user behavior data. The experimental results show that the system performs well in large-scale data processing, significantly improves recommendation accuracy and user satisfaction, and has good scalability, which improves the operating efficiency and user experience of the system as a whole.
Keywords: Spark; Spring Boot; Vue; Scala; film and television recommendation based on content
0" 引" 言
隨著科技的快速發(fā)展,線上娛樂(lè)已經(jīng)成為人們生活中必不可少的一部分,電影以及電視節(jié)目也從傳統(tǒng)的頻道資源,轉(zhuǎn)戰(zhàn)到以流媒體技術(shù)為主導(dǎo)的流媒體平臺(tái)[1]。以我國(guó)主流的影視記錄平臺(tái)豆瓣為例,擁有龐大的用戶數(shù)量,并收錄了大量的影視作品。然而,豆瓣等主流平臺(tái),主要集中在影視評(píng)分以和評(píng)論,尚未為用戶提供更好的個(gè)性化服務(wù)[2],面對(duì)眾多的影視選擇,用戶難以在短時(shí)間內(nèi)做出有效抉擇,從而浪費(fèi)大量時(shí)間。推薦系統(tǒng)基于各類推薦算法,可以為用戶過(guò)濾個(gè)性化的信息,如文章、電影、游戲、音樂(lè)、商品等,找到用戶最感興趣和最有價(jià)值的信息[3]。影視推薦系統(tǒng)尤其能夠在短時(shí)間內(nèi)為用戶匹配符合其偏好的影視作品,不僅提高了用戶體驗(yàn),也有助于吸引更多用戶并提升平臺(tái)的用戶留存率[4]。
1" 國(guó)內(nèi)外研究現(xiàn)狀
推薦系統(tǒng)通過(guò)預(yù)測(cè)用戶對(duì)信息資源的喜好程度來(lái)實(shí)現(xiàn)信息過(guò)濾,并根據(jù)用戶的特殊需求,采用不同的推薦算法實(shí)現(xiàn)個(gè)性化推薦。基于這一原理,推薦系統(tǒng)演化出多種不同的算法。協(xié)同過(guò)濾推薦是迄今為止最為成功和應(yīng)用最廣泛的個(gè)性化推薦技術(shù)[5]。隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)成為互聯(lián)網(wǎng)大數(shù)據(jù)和人工智能的研究熱點(diǎn)[6]。相比傳統(tǒng)推薦算法,混合推薦算法、深度學(xué)習(xí)模型如神經(jīng)網(wǎng)絡(luò)和知識(shí)圖譜等被逐漸運(yùn)用于推薦算法中。這些新興算法不僅提高了推薦精度,還能夠更好地捕捉用戶行為,實(shí)現(xiàn)更加個(gè)性化的服務(wù),并且在實(shí)際應(yīng)用中能夠使各個(gè)推薦算法發(fā)揮其各自的優(yōu)勢(shì),同時(shí)在一定程度上避免了其各自的劣勢(shì),從而進(jìn)行高質(zhì)量推薦[7],為用戶提供更優(yōu)質(zhì)的個(gè)性化推薦體驗(yàn)。
國(guó)外的推薦系統(tǒng)發(fā)展相對(duì)國(guó)內(nèi)更早更快,國(guó)內(nèi)由于數(shù)據(jù)相對(duì)封閉,面臨更多的冷啟動(dòng)問(wèn)題,且推薦內(nèi)容同質(zhì)化現(xiàn)象明顯[8]。近幾年國(guó)內(nèi)在推薦算法上的投入也顯著增加。例如,憑借優(yōu)異的短視頻推薦功能,TikTok通過(guò)去中心化、協(xié)同過(guò)濾及流量池疊加的方式,成功占據(jù)了巨大市場(chǎng)份額[9]。國(guó)內(nèi)的推薦系統(tǒng)研究緊密結(jié)合實(shí)際應(yīng)用場(chǎng)景,涉及電商、網(wǎng)絡(luò)社交、在線影視、在線教育等領(lǐng)域。電商平臺(tái)如淘寶和京東,社交平臺(tái)如微信和微博,以及影視平臺(tái)如騰訊視頻和嗶哩嗶哩,均在積極探索和應(yīng)用推薦算法。學(xué)業(yè)界和工業(yè)界眾多的專家和學(xué)者都在積極探索更加行之有效的推薦算法[10],以適應(yīng)用戶對(duì)推薦服務(wù)的迫切需求。
然而,傳統(tǒng)的推薦系統(tǒng)在大數(shù)據(jù)環(huán)境下,推薦精度和管理效率上仍存在不足,難以滿足用戶多樣化的需求[11]。許多推薦系統(tǒng)依賴于簡(jiǎn)單的協(xié)同過(guò)濾或基于用戶評(píng)分的算法,這些方法在處理大規(guī)模數(shù)據(jù)和快速變化的用戶興趣時(shí)表現(xiàn)欠佳。此外,部分系統(tǒng)缺乏有效的管理工具,使得后臺(tái)管理煩瑣,影響整體效率。對(duì)于傳統(tǒng)的Spring項(xiàng)目,復(fù)雜煩瑣的配置以及整合第三方框架的配置,使開(kāi)發(fā)和部署效率變得低下[12]。為了解決這些問(wèn)題,本文提出了一種基于Spark框架的影視推薦系統(tǒng)解決方案,該框架擁有高效的迭代計(jì)算能力,非常適合大規(guī)模的機(jī)器學(xué)習(xí)應(yīng)用與數(shù)據(jù)處理[13],旨在通過(guò)結(jié)合內(nèi)容推薦算法、Spring Boot和Vue框架,實(shí)現(xiàn)一個(gè)具有高擴(kuò)展性和高管理效率的系統(tǒng)。
2" 需求分析
2.1" 用戶群體分析
根據(jù)前期對(duì)基于Spark的推薦系統(tǒng)的需求分析,用例圖如圖1所示。本系統(tǒng)的角色有以下3類:
1)游客。游客在未注冊(cè)登錄的情況下,可以瀏覽近期熱門(mén)影視推薦、查看各類型影視的TOP20榜單,可以搜索影視(基于名稱、導(dǎo)演、演員、影視別名等)、分享影視、瀏覽影視詳情和查看影評(píng)。
2)會(huì)員。與游客相比,會(huì)員的權(quán)限更加豐富,會(huì)員能夠登錄網(wǎng)站、編輯個(gè)人信息、獲取個(gè)性化推薦、查看影視詳情,分享影視、收藏影片、評(píng)分評(píng)價(jià)、搜索影視、查看影評(píng)和記錄觀影歷史等。
3)管理員。主要負(fù)責(zé)管理影視信息、會(huì)員信息、影視評(píng)論數(shù)據(jù),進(jìn)行系統(tǒng)監(jiān)控與維護(hù)。具體包括登錄系統(tǒng)、審核和管理評(píng)論、更新影視類型、搜索和管理用戶、發(fā)布和刪除影視信息、監(jiān)控系統(tǒng)日志、管理用戶權(quán)限和更新個(gè)人信息。
2.2" 后臺(tái)管理需求分析
影視推薦系統(tǒng)管理后臺(tái)為管理員提供了多個(gè)功能模塊。影視管理模塊:支持編輯影視基本信息(如名稱、導(dǎo)演、主演、封面、簡(jiǎn)介等)、設(shè)置分類、新增或刪除影視資源。提供IMDb精確查找功能,同時(shí)支持通過(guò)名稱或?qū)а菽:樵儭T谟脩艄芾砟K,管理員可以凍結(jié)或恢復(fù)用戶賬號(hào),支持通過(guò)賬號(hào)進(jìn)行精確查詢或通過(guò)姓名進(jìn)行模糊查詢,以便高效管理用戶信息。在評(píng)論管理模塊,管理員可以通過(guò)用戶賬號(hào)精確查詢?cè)u(píng)論信息,并對(duì)不當(dāng)評(píng)論進(jìn)行刪除操作,維護(hù)評(píng)論區(qū)內(nèi)容的規(guī)范性。在個(gè)人中心模塊,允許管理員修改自身信息,包括姓名、性別和密碼等,方便個(gè)人資料的及時(shí)更新。在推薦管理模塊,管理員可手動(dòng)更新影視相似度列表,同時(shí)維護(hù)和調(diào)整類型影視的TOP20榜單,優(yōu)化推薦內(nèi)容的質(zhì)量和用戶體驗(yàn)。
3" 系統(tǒng)設(shè)計(jì)
3.1" 總體架構(gòu)設(shè)計(jì)
圖2為本系統(tǒng)前后端分離的架構(gòu)設(shè)計(jì),前端使用Vue構(gòu)建用戶界面,ElementUI提供豐富的UI組件,Echarts用于數(shù)據(jù)可視化,Axios進(jìn)行HTTP請(qǐng)求處理。后端通過(guò)Nginx進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)和負(fù)載均衡,使用Spring Boot框架搭配Maven進(jìn)行項(xiàng)目管理,并結(jié)合Spring Security保障系統(tǒng)安全。數(shù)據(jù)持久化采用MongoDB數(shù)據(jù)庫(kù),提供高效的文檔存儲(chǔ)能力;緩存使用Redis,加速數(shù)據(jù)讀取和寫(xiě)入,提升系統(tǒng)性能。數(shù)據(jù)處理和分析由Scala結(jié)合Spark完成,實(shí)現(xiàn)大規(guī)模數(shù)據(jù)處理和快速響應(yīng)。系統(tǒng)運(yùn)行環(huán)境包括JDK 1.8用于Java開(kāi)發(fā),CentOS作為服務(wù)器操作系統(tǒng),Python 3用于開(kāi)發(fā)數(shù)據(jù)處理腳本。
這種架構(gòu)設(shè)計(jì)旨在為用戶提供優(yōu)質(zhì)的個(gè)性化推薦服務(wù),包含近期熱門(mén)推薦、個(gè)性化推薦、各類型影視推薦、影視搜索和評(píng)分評(píng)價(jià)功能。通過(guò)強(qiáng)大的數(shù)據(jù)處理能力和高效的緩存機(jī)制,系統(tǒng)能夠提供快速的響應(yīng)和高效的數(shù)據(jù)管理,同時(shí)為管理員提供便捷的數(shù)據(jù)管理和監(jiān)控工具。
3.2" 系統(tǒng)功能設(shè)計(jì)
本系統(tǒng)功能支持會(huì)員、游客和管理員三類角色,主要功能如圖3所示。
系統(tǒng)為游客提供熱門(mén)影視推薦、各類型TOP20榜單、注冊(cè)、搜索影視、查看影視詳情和推薦相關(guān)影視的功能。這些功能幫助游客快速找到并了解感興趣的影視內(nèi)容。
會(huì)員享有游客的所有功能,并額外提供個(gè)性化推薦、收藏、觀看記錄、登錄、評(píng)分評(píng)價(jià)和推薦相關(guān)影視的功能。會(huì)員服務(wù)根據(jù)用戶喜好提供更精準(zhǔn)的推薦,提升用戶體驗(yàn)。
管理員功能包括影視管理、用戶管理、影視評(píng)論管理和日志記錄。管理員可以精確或模糊查詢影視和用戶信息,編輯或刪除數(shù)據(jù),凍結(jié)違規(guī)賬號(hào),刪除違規(guī)評(píng)論,并查看敏感操作的日志記錄,確保系統(tǒng)安全穩(wěn)定運(yùn)行。
4" 系統(tǒng)實(shí)現(xiàn)與展示
4.1" 游客功能實(shí)現(xiàn)
在首頁(yè),游客可以通過(guò)影視名稱、導(dǎo)演、主演、影視又名進(jìn)行模糊查詢,搜索記錄會(huì)保存在本地以便快速查詢。游客還可以查看近期熱門(mén)影視數(shù)據(jù)和各類型影視的TOP20榜單,如圖4所示。熱門(mén)影視推薦展示了當(dāng)前最受歡迎的影視作品,類型推薦則按照不同的影視類型(如經(jīng)典劇情、經(jīng)典動(dòng)畫(huà)、經(jīng)典科幻等)提供熱門(mén)榜單,幫助游客快速找到感興趣的影視內(nèi)容。
4.2" 會(huì)員功能實(shí)現(xiàn)
在游客功能的基礎(chǔ)上,系統(tǒng)為會(huì)員提供個(gè)性化推薦。在“猜你喜歡”模塊中,系統(tǒng)根據(jù)會(huì)員的偏好和觀看記錄進(jìn)行推薦,如圖5所示。具體來(lái)說(shuō),系統(tǒng)通過(guò)分析會(huì)員的歷史觀看記錄、評(píng)分、收藏和評(píng)論內(nèi)容,結(jié)合用戶的搜索歷史、瀏覽時(shí)間和點(diǎn)擊行為,采用基于內(nèi)容的推薦算法,為會(huì)員提供個(gè)性化的影視推薦。推薦列表會(huì)動(dòng)態(tài)更新,確保內(nèi)容的時(shí)效性和相關(guān)性,同時(shí)包括近期熱門(mén)影視、高評(píng)分影視、經(jīng)典作品和新上線的影視。
在影視詳情界面,系統(tǒng)會(huì)推薦與當(dāng)前影視相似的作品,幫助用戶更快找到感興趣的內(nèi)容。會(huì)員可以對(duì)推薦的影視進(jìn)行評(píng)分和評(píng)論,在評(píng)論區(qū)分享和討論對(duì)這部影視的看法與見(jiàn)解。系統(tǒng)將根據(jù)反饋進(jìn)一步優(yōu)化推薦結(jié)果。當(dāng)用戶點(diǎn)擊進(jìn)入影視詳情頁(yè)后,系統(tǒng)會(huì)記錄這次觀看記錄。用戶再次刷新首頁(yè)時(shí),“猜你喜歡”模塊會(huì)根據(jù)觀看記錄進(jìn)行個(gè)性化推薦,進(jìn)一步提升用戶體驗(yàn)。影視詳情頁(yè)如圖6所示。
總之,會(huì)員功能不僅包括游客的所有功能,還增加了個(gè)性化推薦、影視相似推薦、評(píng)分評(píng)論以及觀看記錄等高級(jí)功能,旨在為用戶提供更豐富和個(gè)性化的觀影體驗(yàn)。
4.3" 影視推薦功能實(shí)現(xiàn)
首先,從MongoDB中讀取影視數(shù)據(jù)并存儲(chǔ)為DataFrame類型。為了對(duì)影視類型進(jìn)行計(jì)算與分析,創(chuàng)建了TF-IDF向量化器,將影視ID和影視類型轉(zhuǎn)為T(mén)F-IDF矩陣,其中TF(Term Frequency)為詞頻,IDF(Inverse Document Frequency)為逆轉(zhuǎn)文檔頻率,設(shè)M表示影視數(shù)據(jù)的總量,包含某類型關(guān)鍵詞ka的影視數(shù)量為ma,fab表示類型關(guān)鍵詞ka在某影視類型db中出現(xiàn)的次數(shù),fdb表示某影視類型db中出現(xiàn)的詞語(yǔ)總數(shù),那么ka在某影視類型db的詞頻TFab定義為:
IDF通過(guò)上述計(jì)算結(jié)果取對(duì)數(shù)得到類型關(guān)鍵詞ka的逆文檔頻率IDFa:
由TF和IDF計(jì)算詞語(yǔ)的權(quán)重Wab為:
在計(jì)算出每個(gè)詞的權(quán)重后,為每部影視作品計(jì)算其特征向量。然后,使用笛卡爾積對(duì)所有影視進(jìn)行相互匹配,排除自匹配情況。使用余弦相似度計(jì)算匹配影視之間的相似度,其公式如下:
為了確保匹配的精確性,去除了相似度低于0.6的影視對(duì)。最終,獲取的影視相似列表被保存回?cái)?shù)據(jù)庫(kù)。
此過(guò)程通過(guò)TF-IDF向量化和余弦相似度計(jì)算,為每個(gè)影視作品生成了精確的特征向量,確保了推薦系統(tǒng)的準(zhǔn)確性和高效性。通過(guò)這些步驟,系統(tǒng)能夠?yàn)橛脩籼峁└邆€(gè)性化和相關(guān)性的影視推薦。
4.4" 管理員功能實(shí)現(xiàn)
后臺(tái)管理系統(tǒng)是一個(gè)專為管理員設(shè)計(jì)的服務(wù)平臺(tái),其核心目標(biāo)是確保系統(tǒng)的平穩(wěn)高效運(yùn)行。如圖7所示,本系統(tǒng)集成了影視管理、用戶管理、評(píng)論管理和日志記錄四大功能模塊,提供了全面的統(tǒng)計(jì)與管理功能。管理員可以通過(guò)系統(tǒng)對(duì)影視資源進(jìn)行精細(xì)化分類和管理,監(jiān)控和管理用戶行為與信息,審核和處理用戶評(píng)論,同時(shí)記錄并審計(jì)所有操作日志,確保管理活動(dòng)的透明性和可追溯性。
系統(tǒng)首頁(yè)通過(guò)大數(shù)據(jù)可視化圖表直觀展示關(guān)鍵統(tǒng)計(jì)數(shù)據(jù),包括各類影視資源的分布情況、用戶活躍度、評(píng)論情感分析等。通過(guò)餅圖、折線圖、柱狀圖等多種形式,管理員能夠準(zhǔn)確把握系統(tǒng)整體運(yùn)行狀態(tài)和用戶偏好。此類數(shù)據(jù)驅(qū)動(dòng)的可視化分析不僅為管理決策提供了堅(jiān)實(shí)的數(shù)據(jù)支撐,同時(shí)顯著提升了管理效率和服務(wù)質(zhì)量,有助于實(shí)現(xiàn)更加科學(xué)化、精細(xì)化的系統(tǒng)管理。
5" 結(jié)" 論
本系統(tǒng)采用Spring Boot框架和Vue框架進(jìn)行快速開(kāi)發(fā),代碼更加簡(jiǎn)潔,提高了開(kāi)發(fā)效率和便捷性。使用MongoDB進(jìn)行數(shù)據(jù)持久化,通過(guò)Spark進(jìn)行大數(shù)據(jù)計(jì)算,基于內(nèi)容推薦算法計(jì)算出影視相似列表,幫助用戶更快找到自己喜歡的內(nèi)容,提升了用戶的使用體驗(yàn)。同時(shí),系統(tǒng)為管理員提供了便捷的管理后臺(tái),管理員可以高效管理會(huì)員、影視數(shù)據(jù)以及影視評(píng)論,增強(qiáng)了系統(tǒng)的健壯性。管理員還能通過(guò)大數(shù)據(jù)可視化圖表直觀了解系統(tǒng)的運(yùn)行狀態(tài),進(jìn)一步優(yōu)化系統(tǒng)性能和用戶體驗(yàn)。
未來(lái)我們將進(jìn)一步完善系統(tǒng),加強(qiáng)推薦算法的優(yōu)化和智能化,提升系統(tǒng)的推薦精度和個(gè)性化服務(wù)水平。同時(shí),不斷探索新的技術(shù)和方法,以應(yīng)對(duì)不斷增長(zhǎng)的用戶和數(shù)據(jù)規(guī)模,確保系統(tǒng)能夠持續(xù)穩(wěn)定、高效地運(yùn)行,為用戶提供更優(yōu)質(zhì)的影視推薦服務(wù)。
參考文獻(xiàn):
[1] 陳接峰.泛景觀:電影業(yè)余化的屏幕美學(xué) [J].上海師范大學(xué)學(xué)報(bào):哲學(xué)社會(huì)科學(xué)版,2024,53(2):75-85.
[2] 王旭東.基于SparkALS的電影推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D].重慶:重慶大學(xué),2022.
[3] PARHI P,PAL A. A Survey of Methods of Collaborative Filtering Techniques [C]//2017 International Conference on Inventive Systems and Control(ICISC).Coimbatore:IEEE,2017:1-7.
[4] 周蔚生.基于機(jī)器學(xué)習(xí)的混合電影推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:首都經(jīng)濟(jì)貿(mào)易大學(xué),2021.
[5] 張全富.基于位置情境的英語(yǔ)資源個(gè)性化推薦系統(tǒng)研究 [D].昆明:云南師范大學(xué),2023.
[6] 李鑫,韓仁坤,劉子揚(yáng),等.基于卷積神經(jīng)網(wǎng)絡(luò)的三維流場(chǎng)重構(gòu)研究 [J].航空計(jì)算技術(shù),2023,53(5):11-14+19.
[7] ONDREJ K,MICHAL K,MáRIA B. Personalized Hybrid Recommendation for Group of Users: TOP-N Multimedia Recommender [J].Information Processing and Management,2016,52(3):459-477.
[8] 袁星潔,石子玉.算法推薦在健康傳播中的實(shí)踐進(jìn)路、問(wèn)題表征與應(yīng)對(duì)策略 [J].湖南人文科技學(xué)院學(xué)報(bào),2022,39(3):68-75.
[9] 藍(lán)曉燕.基于智能算法的抖音短視頻推薦模式分析 [J].電視技術(shù),2023,47(6):152-154+158.
[10] 張文龍.融合注意力機(jī)制的深度協(xié)同過(guò)濾推薦算法研究 [D].合肥:安徽大學(xué),2021.
[11] 侯力鐵.基于情景感知的移動(dòng)圖書(shū)館個(gè)性化推薦服務(wù)研究 [D].長(zhǎng)春:吉林大學(xué),2019.
[12] ZHANG D D,WEI Z Q,YANG Y Q. Research on Lightweight MVC Framework Based on SpringMVC and Mybatis [C]//2013 Sixth International Symposium on Computational Intelligence amp; Design.Hangzhou:IEEE,2013:350-253.
[13] MENG X R,BRADLEY J,YAVUZ B,et al. MLlib: Machine Learning in Apache Spark [J].Journal of Machine Learning Research,2016,17(1):1235-1241.
[14] 宋瑜輝,張俠,艾琳,等.基于Mongodb的智能電網(wǎng)大數(shù)據(jù)存儲(chǔ)設(shè)計(jì) [J].電子制作,2020(19):64-67.