摘要:提出了一種基于內(nèi)容的電影推薦算法,通過分析電影的特征和用戶的興趣,實現(xiàn)更精準(zhǔn)的電影推薦。首先,研究了基于TF-IDF的向量化方法,將電影的類型和導(dǎo)演信息轉(zhuǎn)化為特征向量;然后,通過計算電影之間的相似度,使用余弦相似度來衡量電影之間的相關(guān)性;接下來,根據(jù)用戶的偏好和需求,通過加權(quán)相似度得分來提高相關(guān)電影的推薦優(yōu)先級;最后,通過篩選和排序,從候選電影中選擇出最合適的推薦結(jié)果。實驗結(jié)果表明,該算法能夠為用戶提供個性化的電影推薦,提高用戶的觀影體驗。
關(guān)鍵詞:基于內(nèi)容的推薦;TF-IDF;特征向量;余弦相似度
一、前言
隨著互聯(lián)網(wǎng)行業(yè)的快速發(fā)展帶來了購票便利,電影產(chǎn)業(yè)正經(jīng)歷著前所未有的繁榮。在這個領(lǐng)域,已經(jīng)有許多研究人員和學(xué)者致力于改進(jìn)電影推薦算法,實現(xiàn)了基于協(xié)同過濾算法、深度學(xué)習(xí)、Spark等的電影推薦。但傳統(tǒng)的電影推薦方法往往只基于用戶歷史行為數(shù)據(jù),無法提供個性化和準(zhǔn)確的推薦結(jié)果。
基于此,本文設(shè)計了內(nèi)容推薦算法。該算法將電影的特征信息,如類型、演員、導(dǎo)演等轉(zhuǎn)化為特征向量,并通過計算電影之間的相似度來實現(xiàn)個性化推薦。相比傳統(tǒng)的算法,基于內(nèi)容的推薦算法更注重電影自身的特征,能夠更準(zhǔn)確地捕捉用戶的興趣和偏好。同時,我們也希望能夠為電影推薦系統(tǒng)的開發(fā)和改進(jìn)提供參考,為電影產(chǎn)業(yè)的發(fā)展做出一定的貢獻(xiàn)。期待本文的研究成果能夠為該領(lǐng)域的發(fā)展做出積極的貢獻(xiàn)[1]。
二、研究現(xiàn)狀
(一)電影推薦系統(tǒng)
電影推薦系統(tǒng)的發(fā)展可以追溯到20世紀(jì)90年代。最早的推薦方法是基于協(xié)同過濾算法,通過分析用戶的歷史行為數(shù)據(jù),如觀影記錄和評分,來推測用戶的興趣和偏好,從而為其推薦相似的電影。隨著互聯(lián)網(wǎng)的普及和電影數(shù)據(jù)的積累,協(xié)同過濾算法得到了廣泛應(yīng)用。
隨著深度學(xué)習(xí)技術(shù)的興起,基于內(nèi)容的推薦算法開始受到關(guān)注。該算法利用電影的特征信息,如類型、演員、導(dǎo)演等,通過計算電影之間的相似度來實現(xiàn)個性化推薦。相比傳統(tǒng)的協(xié)同過濾算法,基于內(nèi)容的推薦算法更注重電影自身的特征,能夠更準(zhǔn)確地捕捉用戶的興趣和偏好。未來,我們可以期待電影推薦系統(tǒng)在電影產(chǎn)業(yè)中得到更廣泛應(yīng)用和更深入地研究。
(二)基于內(nèi)容推薦算法的原理和方法
基于內(nèi)容的推薦算法是以項目相關(guān)信息、用戶相關(guān)信息及用戶對項目的操作行為來構(gòu)建推薦算法模型,不需要依據(jù)用戶對項目的評價意見,更多地需要用機(jī)器學(xué)習(xí)的方法從關(guān)于內(nèi)容的特征描述的事例中得到用戶的興趣資料。簡單理解是根據(jù)推薦項目的屬性計算項目間的相關(guān)性,然后根據(jù)用戶的偏好記錄,推薦給用戶相似度高的物品(見圖1)。
三、方法與技術(shù)
(一)數(shù)據(jù)預(yù)處理
從電影評分?jǐn)?shù)據(jù)CSV文件中讀取電影數(shù)據(jù)(見表1),進(jìn)行缺失值的處理,將電影的類型和導(dǎo)演列的缺失值替換為空字符串。創(chuàng)建一個TF-IDF向量化器,將電影的類型和導(dǎo)演列轉(zhuǎn)換為TF-IDF矩陣,計算TF-IDF矩陣的余弦相似度,得到一個相似度矩陣。創(chuàng)建一個電影索引,以便根據(jù)電影標(biāo)題快速查找電影的索引位置。
(二)TF-IDF特征提取和矩陣構(gòu)建
TF-IDF自然語言處理領(lǐng)域中計算文檔中詞或短語的權(quán)值的方法,是詞頻(TF)和逆轉(zhuǎn)文檔頻率(IDF)的乘積。TF指的是某一個給定的詞語在該文件中出現(xiàn)的次數(shù)。IDF是一個詞語普遍重要性的度量[2]。
假設(shè)文檔集包含的文檔數(shù)為M,文檔集中包含關(guān)鍵詞ka的文檔數(shù)為ma,fab表示關(guān)鍵詞ka在文檔db中出現(xiàn)的次數(shù),fdb表示文檔db中出現(xiàn)的詞語總數(shù),ka在文檔db的詞頻TFab定義為:
TFab=fab/fdb
IDF表示某一詞語在整個文檔集中出現(xiàn)的頻率,由它計算的結(jié)果取對數(shù)得到關(guān)鍵詞ka的逆文檔頻率IDFa:
IDFa=logM/ma
由TF和IDF計算詞語的權(quán)重為:
wab=TFab·IDFa=fab/fdb·logM/ma
TF-IDF與詞語在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個文檔集中的出現(xiàn)次數(shù)成反比。在目標(biāo)文檔中,提取關(guān)鍵詞的方法就是將該文檔所有詞語的TF-IDF計算出來并進(jìn)行對比,取其中TF-IDF值最大的k個數(shù)組成目標(biāo)文檔的特征向量用以表示文檔。
(三)余弦相似度計算和推薦結(jié)果排序
首先,將文本數(shù)據(jù)轉(zhuǎn)換為特征向量表示,使用TF-IDF特征提取方法將文本數(shù)據(jù)轉(zhuǎn)換為TF-IDF矩陣。對于每個待推薦的項目,計算其特征向量與其他項目特征向量之間的余弦相似度。
余弦相似度通過夾角的距離來判斷兩個變量之間的距離。
cos(Fu,F(xiàn)i)=Fu,F(xiàn)i/∣Fu∣2×Fi∣2
Fu表示某個用戶的偏好特征; Fi表示某個推薦電影的偏好特征。余弦相似度的值越接近于1表示推薦電影越接近用戶偏好,值越接近于-1,表示推薦電影越不適合該用戶。
對于待推薦的項目,計算其與其他項目的相似度,得到一個相似度列表。根據(jù)相似度列表,選取與待推薦項目相似度最高的前N個項目作為推薦結(jié)果。可以根據(jù)相似度的大小進(jìn)行排序,將相似度高的項目排在前面[3]。
(四)用戶偏好及加權(quán)相似度的融入
在推薦系統(tǒng)中考慮用戶偏好和加權(quán)相似度的目的是更準(zhǔn)確地推薦符合用戶喜好的電影。用戶偏好是指用戶對電影的特定屬性或特征的偏好,比如喜歡某個電影類型、喜歡某個導(dǎo)演等。加權(quán)相似度是根據(jù)用戶的偏好信息對電影之間的相似度進(jìn)行加權(quán),使得與用戶喜好更相關(guān)的電影得到更高的相似度得分。
通過考慮用戶偏好,推薦系統(tǒng)可以更加精確地推薦符合用戶口味的電影。通過調(diào)整權(quán)重,可以控制用戶偏好對推薦結(jié)果的影響力,從而更好地滿足用戶的需求。
加權(quán)相似度可以提高推薦結(jié)果的準(zhǔn)確性。傳統(tǒng)的相似度計算方法是基于電影的特征向量進(jìn)行計算,沒有考慮用戶的偏好信息[4]。而加權(quán)相似度可以根據(jù)用戶的偏好對相似度得分進(jìn)行加權(quán),使得與用戶偏好更相關(guān)的電影得到更高的相似度得分。
假設(shè)有兩個對象A和B,它們的相似度得分為score(A, B),而對于不同的特征或?qū)傩裕謩e有權(quán)重weight1、weight2、...weightn。
計算公式為:
similarity(A, B) = weight1 · score1(A, B) + weight2 · score2(A, B) + ... + weightn · scoren(A, B)
其中,score1(A, B)、score2(A, B)、...、scoren(A, B) 分別表示不同特征或?qū)傩缘南嗨贫鹊梅帧?/p>
四、實驗結(jié)果與分析
(一)電影數(shù)據(jù)集的選擇和描述
本文使用IMDB電影評分作為數(shù)據(jù)集,IMDB是一個知名的電影評分網(wǎng)站,涵蓋了大量的電影作品,包括各種類型、不同年代和不同國家的電影,擁有大量的用戶評分和評論數(shù)據(jù)。評分?jǐn)?shù)據(jù)不僅包括了用戶的整體評分,還包括了用戶對電影的不同方面的評分,如劇情、演員表演、音樂等,這使得IMDB電影評分?jǐn)?shù)據(jù)具有較高的可靠性和權(quán)威性。
(二)推薦系統(tǒng)的實驗設(shè)置和參數(shù)調(diào)整
本實驗采用的python中的兩個函數(shù):get_recommendation和evaluate_recommendation。
get_recommendation函數(shù)用于根據(jù)用戶的喜好和條件獲取推薦電影列表(見表2)。
evaluate_recommendation函數(shù)用于評估推薦結(jié)果和目標(biāo)電影的指標(biāo)(見表3)。
(三)推薦結(jié)果的評估指標(biāo)
使用evaluate_recommendation函數(shù)來評估推薦結(jié)果的指標(biāo)。evaluate_recommendation函數(shù)接受兩個參數(shù):目標(biāo)電影的名稱和推薦電影列表。在函數(shù)內(nèi)部,首先根據(jù)目標(biāo)電影的名稱獲取目標(biāo)電影的索引,然后獲取目標(biāo)電影的類型、評分和投票數(shù);接下來,計算推薦電影的平均評分和平均投票數(shù)。通過使用recommendations的索引來獲取推薦電影的評分和投票數(shù),然后計算它們的平均值;最后,輸出評價指標(biāo),包括目標(biāo)電影的名稱、類型、評分和投票數(shù),以及推薦電影的平均評分和平均投票數(shù)。通過這些評價指標(biāo),我們可以評估推薦結(jié)果的準(zhǔn)確性和合理性。如果推薦電影的平均評分和平均投票數(shù)與目標(biāo)電影相似,那么可以認(rèn)為推薦結(jié)果是比較好的。
使用get_recommendation函數(shù)獲取推薦電影列表,并將其傳遞給evaluate_recommendation函數(shù)進(jìn)行評估,輸出推薦電影列表。
通過評估指標(biāo),可以了解推薦結(jié)果的質(zhì)量和性能,以便進(jìn)一步調(diào)整和優(yōu)化。
(四)實驗結(jié)果的解釋和分析
以電影《阿凡達(dá)》為例,使用了電影的類型和導(dǎo)演信息作為用戶喜好的參數(shù),并設(shè)置了最低評分和最低投票數(shù)的篩選條件。推薦的電影則是根據(jù)相似度得分排序后的前5部電影。
通過比較目標(biāo)電影的類型、評分和投票數(shù)(見表4)與推薦電影的平均評分和平均投票數(shù)(見表5),可以評估推薦系統(tǒng)的效果。如果推薦電影的平均評分和平均投票數(shù)與目標(biāo)電影相似或更好,那么可以認(rèn)為推薦系統(tǒng)是有效的。
通過調(diào)整參數(shù)和篩選條件,可以根據(jù)用戶的偏好和需求進(jìn)行個性化的推薦。例如,可以修改用戶喜好的電影類型、導(dǎo)演、最低評分和最低投票數(shù)等參數(shù),來獲得不同的推薦結(jié)果。
五、結(jié)語
基于內(nèi)容的推薦算法通過分析電影的內(nèi)容信息來進(jìn)行推薦,實現(xiàn)簡單且易于理解。由于基于內(nèi)容的推薦算法是根據(jù)電影的內(nèi)容特征進(jìn)行推薦的,因此可以向用戶解釋為什么推薦這些電影,增加用戶對推薦結(jié)果的信任度。算法允許用戶設(shè)置喜好和條件,如電影類型、導(dǎo)演、最低評分和最低投票數(shù)等,以根據(jù)用戶的需求進(jìn)行篩選。然而,基于內(nèi)容的推薦算法也存在一些局限性,如缺乏個性化、數(shù)據(jù)稀疏和新穎性等問題。為了進(jìn)一步提高推薦算法的質(zhì)量和用戶滿意度,考慮引入用戶反饋和行為數(shù)據(jù)、融合多種推薦算法、考慮時間因素和社交網(wǎng)絡(luò)信息等。
總體而言,基于內(nèi)容的電影推薦算法是推薦系統(tǒng)領(lǐng)域的一個重要研究方向。通過不斷改進(jìn)和優(yōu)化算法,可以提供更準(zhǔn)確、個性化和多樣化的電影推薦結(jié)果,提升用戶體驗和滿意度。
參考文獻(xiàn)
[1]趙輝,袁普及.推薦系統(tǒng)研究[J].科技創(chuàng)新與應(yīng)用,2023,13(19):97-100.
[2]刁羽,薛紅.基于電子資源行為數(shù)據(jù)的TF-IDF文獻(xiàn)推薦方法研究——以電子資源校外訪問系統(tǒng)為例[J].圖書館雜志,2022,41(12):45-54.
[3]駱亮.基于內(nèi)容推薦算法和余弦相似度算法的領(lǐng)導(dǎo)決策輔助信息系統(tǒng)[J].廣西科學(xué)院學(xué)報,2018,34(02):143-150.
[4]劉瑛,魏海燕,魏翠萍.一致性和特征向量驅(qū)動的個性化語義及其在稻米評價中的應(yīng)用[J].系統(tǒng)科學(xué)與數(shù)學(xué),2022,42(10):2680-2697.
作者單位:大連東軟信息學(xué)院計算機(jī)與軟件學(xué)院
責(zé)任編輯:尚丹