摘要:電影評分是反映觀眾對電影喜愛程度的重要依據(jù)。針對當(dāng)前電影評分預(yù)測模型涵蓋影響電影評分特征因素不足、預(yù)測準(zhǔn)確率不高、模型過于簡化等問題。為解決這些問題提出了一種基于貝葉斯優(yōu)化XGBoost算法預(yù)測模型。該模型整合了影響電影評分的13個關(guān)鍵因素。首先收集電影網(wǎng)站數(shù)據(jù),并進行數(shù)據(jù)預(yù)處理和文本向量化等操作,然后結(jié)合優(yōu)化的貝葉斯算法篩選出與電影評分高度相關(guān)的特征,并進行最佳參數(shù)確定,最后根據(jù)最佳參數(shù)評估模型。實驗表明,評價指標(biāo)中的決定系數(shù)由優(yōu)化前的0.577提升到0.763,增加了32.2%,均方誤差和平均絕對誤差分別降低了44.1%和29.7%。因此該模型具有較高的預(yù)測準(zhǔn)確性,有望在實際應(yīng)用中取得良好效果。
關(guān)鍵詞:電影評分;機器學(xué)習(xí);貝葉斯優(yōu)化;XGBoost算法
中圖分類號:TP391.1 文獻標(biāo)識碼:A
文章編號:1009-3044(2024)17-0015-04 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID) :
0 引言
在數(shù)字化時代,中國電影產(chǎn)業(yè)展示出更加繁榮的景象,逐漸嶄露頭角成為全球電影市場的焦點。隨著互聯(lián)網(wǎng)技術(shù)的深度普及,觀眾可以通過各種平臺觀看和評價電影,而電影評分是觀眾對電影的綜合評價,也是對電影效果最直觀的反映。因此電影評分預(yù)測的重要性日益凸顯,這不僅對電影的制作和市場策略產(chǎn)生影響,同時也直接關(guān)系到觀眾的觀影體驗。
目前,電影評分預(yù)測模型還存在以下問題:如模型使用的數(shù)據(jù)特征不足,且對觀眾評價數(shù)據(jù)的利用不足,同時使用的算法適應(yīng)性較低,導(dǎo)致預(yù)測精度有待提高。針對以上問題,本研究旨在采用一種優(yōu)化XG?Boost算法來預(yù)測電影評分。在特征選擇方面,通過設(shè)計一種創(chuàng)新性的貝葉斯優(yōu)化算法,用于計算特征的后驗概率分布,可以更精確地篩選出與電影評分高度相關(guān)的特征,從而增強模型的預(yù)測性能[1]。在模型訓(xùn)練時,選擇大量的觀眾評價作為數(shù)據(jù)集。此外還采用了貝葉斯方法進行超參數(shù)的優(yōu)化,提高了參數(shù)選擇的速度和準(zhǔn)確性。
1 評分預(yù)測模型框架
本研究提出的基于貝葉斯優(yōu)化XGBoost電影評分預(yù)測模型主要由數(shù)據(jù)處理、算法應(yīng)用和結(jié)果分析這三部分組成。具體流程如圖1所示。
2 算法優(yōu)化原理
2.1 XGBoost 算法原理
XGBoost算法是一種強大的機器學(xué)習(xí)算法,其核心思想是通過不斷地添加樹來進行特征分裂,每次添加一棵樹,相當(dāng)于學(xué)習(xí)一個新函數(shù)f(x),去擬合上次預(yù)測的殘差[2]。XG?Boost 算法還通過正則化、并行計算等技術(shù),大大提高了訓(xùn)練速度,并且減小了過擬合的風(fēng)險。下面是核心思想執(zhí)行示意圖,如圖2所示。
結(jié)合算法的基本步驟,對XGBoost算法進行簡單推導(dǎo)[3]。
已知訓(xùn)練數(shù)據(jù)集T ={(x1,y1 ),(x2,y2 ),… ,(xn,yn ) },損失函數(shù)為L (yi,y?i ),正則化項為Ω( fk )。因此其目標(biāo)函數(shù)可以表達為:
由式(1) 所示,其中obj (t) 是目標(biāo)函數(shù)。yi 表示實際值,y?(t - 1) i 表示前t-1 棵決策樹對樣本i 的預(yù)測值。Ω( fk )表示模型的復(fù)雜項。ft (xi )表示第t 棵決策樹對樣本i 的預(yù)測值。
上面公式需要進行二階泰勒展開,正則化項展開,合并一次項系數(shù)、二次項系數(shù),得到最終目標(biāo)函數(shù)。
由式(2) 所示,Gj:葉子結(jié)點j 所包含樣本的一階偏導(dǎo)數(shù)累加之和,是一個常數(shù)。Hj :葉子結(jié)點j 所包含樣本的二階偏導(dǎo)數(shù)累加之和,是一個常數(shù)。wj 表示葉子結(jié)點的權(quán)重向量。T:表示這棵樹有T 個葉子結(jié)點。
其中一個wj 的一元二次函數(shù)(其中(Hj + λ) > 0) 。則f (wj )取得最小值時,由式(3) 所示。
XGBoost目標(biāo)函數(shù)的各個葉子結(jié)點的目標(biāo)式子是相互獨立的。即每個葉子結(jié)點的式子都達到最值點,整個目標(biāo)函數(shù)也達到最值點。則每個葉子結(jié)點的權(quán)重w,即此時達到最優(yōu)的Obj(t)目標(biāo)值。
2.2 貝葉斯優(yōu)化原理
本優(yōu)化算法是實驗核心。這是一種基于貝葉斯推理的全局優(yōu)化方法。其基本思想是選擇XGBoost 超參數(shù)樣本,擬合高斯過程回歸模型,得到R2的均值和方差。根據(jù)高斯分布特性,選擇條件概率P (R2|x) 最大的值,即μ 最大σ2 最小的x。增加新的樣本,重復(fù)上述過程,迭代接近模型的全局最優(yōu)超參數(shù)。
通過這種方式,本研究引入了概率模型,基于統(tǒng)計規(guī)律進行全局搜索,以當(dāng)前參數(shù)空間最優(yōu)解為中心進行局部搜索避免陷入局部最優(yōu)解。相比確定性算法,更具全局視角,能夠更好地解決復(fù)雜的黑盒優(yōu)化問題。
在代碼中使用XGBoost 算法進行電影評分預(yù)測,其中模型的超參數(shù)需要調(diào)優(yōu)。因此使用貝葉斯優(yōu)化進行超參數(shù)調(diào)參。具體來說,目標(biāo)函數(shù)是XGBoost 在測試集上的R2 ,表示方差得分:
由式(4) 所示。其中yi 是真實目標(biāo)值,yi 是預(yù)測目標(biāo)值,yˉ是目標(biāo)值的均值。
設(shè)目標(biāo)函數(shù)R2(x)服從高斯分布:
p(R2|x) = N ( μ (x),σ2 (x)) (5)
由式(5) 所示。其中μ (x)和σ2 (x)分別是目標(biāo)函數(shù)在參數(shù)x處的均值和方差。均值μ (x)反映目標(biāo)函數(shù)的全局特性,方差σ2 (x)反映目標(biāo)函數(shù)的局部特性。然后可以從參數(shù)空間中隨機選擇一組樣本參數(shù)X = x1,x2,...,xn,計算目標(biāo)函數(shù)在這些參數(shù)下的函數(shù)值y = y1,y2,...,yn,并用這些數(shù)據(jù)估計高斯過程,由式(6) (7) 所示:
μ?(x) = k(x)T K-1y (6)
σ?2 (x) = k(x,x) - k(x)T K-1k(x) (7)
其中k(x) = [k(x,x1), k(x,x2), ... k(x,xn)]T,k 是樣本點之間的核矩陣。μ?(x)為x 與所有樣本間的核函數(shù)向量。y 是目標(biāo)函數(shù)在所有樣本點上的觀測值向量。利用x與所有樣本點之間的相似度,結(jié)合樣本點之間的相似度矩陣k 和目標(biāo)函數(shù)值y,預(yù)測目標(biāo)函數(shù)在x 點上的均值μ?(x)。通過這個公式,建立起了x 和目標(biāo)函數(shù)值之間的關(guān)系,從而可以進行概率推斷。
k(x,x) 表示核函數(shù)k 在同一個樣本x 上的計算,即樣本點與自身的相似度。k(x)表示向量函數(shù),表示樣本x 與所有樣本點(包括自身)之間的核函數(shù)值。
得到高斯過程估計后,可以采樣新的候選參數(shù),選擇其預(yù)測效果的條件概率分布最大化的點,由式(8) 所示:
x* = argmaxx p(y?*|x)= argmaxx N ( μ?(x),σ?2 (x))σ?2 (x) (8)
表示找到使后驗分布p(y?*|x) 最大的x,也就是找到均值μ?(x) 最大且方差σ?2 (x) 最小的。argmax是數(shù)學(xué)符號,表示使函數(shù)取得最大值時對應(yīng)的自變量的值。它常用于描述優(yōu)化問題的最優(yōu)解。
重復(fù)該過程,每次用新的樣本更新高斯過程,逐步逼近全局最優(yōu)解。在代碼中選擇了幾個重要超參數(shù)作為優(yōu)化變量,定義其范圍,通過BayesianOptimiza?tion模塊實現(xiàn)了貝葉斯優(yōu)化,并得到了XGBoost的最優(yōu)超參數(shù)組合。
3 實驗
3.1 實驗數(shù)據(jù)準(zhǔn)備
1) 數(shù)據(jù)收集。本研究的數(shù)據(jù)源主要來自豆瓣電影網(wǎng)站[4]。涵蓋了從2020至2022年間在中國公開上映的電影。在綜合考慮以后,選取了電影名、導(dǎo)演、編劇、主演、語言、片長、類型、電影簡介及觀眾評論等13個評分因素。本次數(shù)據(jù)集共采集了875部影視數(shù)據(jù),每一部電影采集評論約252條,總評論數(shù)達22萬條。
2) 數(shù)據(jù)分詞。本研究采用了Jieba分詞工具的精確模式作為數(shù)據(jù)分詞的主要方法。為了提高分詞效果,還引入了目前廣泛應(yīng)用的分詞停用表,本研究整理了包括中文停用詞庫表、百度停用詞表、哈爾濱工業(yè)大學(xué)停用詞表在內(nèi)的停用詞表。如表1所示。
3) 數(shù)據(jù)集劃分與數(shù)據(jù)向量化。實施監(jiān)督學(xué)習(xí)任務(wù)時,通常會將數(shù)據(jù)集分為訓(xùn)練集和測試集。訓(xùn)練集主要用于模型的訓(xùn)練,而測試集則是評估模型對未知數(shù)據(jù)的預(yù)測能力。
在進行分詞以及訓(xùn)練集與測試集劃分后,需要對數(shù)據(jù)進行Term Frequency-Inverse Document Frequency(TF-IDF) 向量化處理。這是一種常用的統(tǒng)計方法,通過計算詞語在文本中的詞頻(TF) 和該詞語在語料庫中的反向文檔頻率(IDF) ,來反映詞語對文本主題的重要程度[5]。相比直接使用詞頻,TF-IDF向量化方法更能突出對文章主題分類有重大貢獻的詞語權(quán)重。
3.2 實驗過程
經(jīng)過對數(shù)據(jù)的采集以及預(yù)處理。現(xiàn)在關(guān)鍵的任務(wù)是使用XGBoost算法對數(shù)據(jù)進行處理,以便獲得所需要的結(jié)果。其中超參數(shù)的設(shè)定尤為關(guān)鍵。
1) XGBoost模型超參數(shù)空間設(shè)定。在XGBoost模型訓(xùn)練之前,需要設(shè)定可能影響模型性能的關(guān)鍵超參數(shù)搜索空間。它直接影響到模型的性能。因此,對超參數(shù)進行適當(dāng)?shù)恼{(diào)整就顯得尤為重要[6]。本研究選擇調(diào)節(jié)的超參數(shù)包括:樹的最大深度(max_depth) 、學(xué)習(xí)率(learning_rate) 、特征隨機采樣的比例(colsample_by?tree) 、樹的數(shù)量(n_estimators) 以確定基學(xué)習(xí)器個數(shù)等共計10個超參數(shù)。
2) 貝葉斯超參數(shù)優(yōu)化過程。在超參數(shù)空間確定后,將使用貝葉斯優(yōu)化算法來尋找最優(yōu)的參數(shù)配置。首先,定義目標(biāo)函數(shù)xgb_eval,該函數(shù)以R2作為評價指標(biāo),接收不同的超參數(shù)組合來訓(xùn)練模型,并在測試集上進行預(yù)測,返回R2。接著構(gòu)建貝葉斯優(yōu)化器,將定義的超參數(shù)范圍param_ranges 作為優(yōu)化變量,以xgb_eval 為目標(biāo)函數(shù),并設(shè)定了隨機種子ran?dom_state。
在貝葉斯優(yōu)化的迭代過程中,優(yōu)化器會根據(jù)目標(biāo)函數(shù)的歷史評估結(jié)果,利用高斯過程對未知目標(biāo)函數(shù)的先驗分布獲取后驗信息[7]。根據(jù)這個后驗信息和獲取新樣本的成本,貝葉斯規(guī)則會輸出下一個最可能產(chǎn)生最大收益的超參數(shù)組合。當(dāng)獲取新樣本后,先驗分布會使用貝葉斯定理進行更新。
本研究設(shè)定了迭代次數(shù)為10次。每次迭代都會調(diào)用目標(biāo)函數(shù)xgb_eval,輸出一個R2,并更新超參數(shù)的先驗分布。迭代結(jié)束后,可以得到一個最優(yōu)的參數(shù)配置。最后使用這組參數(shù)重新訓(xùn)練模型,并在測試集上進行評估。表2展示了使用貝葉斯算法調(diào)參前后各參數(shù)的值、電影評分值的折線圖以及算法評價指標(biāo)值,而調(diào)參后的數(shù)值保留到小數(shù)點后三位。表2中圖a和圖b分別是在調(diào)參前后,電影的真實評分與預(yù)測評分的折線圖。程序在PyCharm中尋找到的最佳參數(shù)的組合結(jié)果如圖3所示。
3.3 實驗結(jié)果對比分析
根據(jù)實驗結(jié)果分析,該算法的MAE由調(diào)參前的0.768降低到0.540,減少了29.7%。MSE由調(diào)參前的0.938 降低到0.524,降低了44.1%。R2 由調(diào)參前的0.577提升到0.763,增加了32.2%。數(shù)據(jù)表明,經(jīng)過貝葉斯優(yōu)化后的模型在預(yù)測電影評分方面有了顯著提升。MAE和MSE的顯著降低表明模型的預(yù)測誤差得到了有效減少,這意味著模型的預(yù)測結(jié)果更接近實際情況,具有更高的準(zhǔn)確性。而R2的提升則意味著模型的擬合效果更好,更能解釋目標(biāo)變量的變異性。
表3是本研究與目前其他研究者,利用不同算法來預(yù)測電影評分的對比。序號1是本研究算法,序號2是基于電影評分的推薦算法,序號3是在2的基礎(chǔ)上提出的基于共現(xiàn)潛在語義向量空間模型,序號4為基于rbf(徑向基函數(shù))的SVR支持向量回歸模型。評分預(yù)測算法采用的評價指標(biāo)為MAE[8-9]。從表格可以看出,基于貝葉斯優(yōu)化的XGBoost算法在預(yù)測電影評分中,評分的真實值與預(yù)測值之間的平均絕對誤差更小,更有優(yōu)勢。
對比貝葉斯優(yōu)化前后的實驗結(jié)果,可以看出貝葉斯優(yōu)化作為一種超參數(shù)調(diào)優(yōu)方法是有效的,能夠在有限的計算資源下搜索到更優(yōu)的模型配置。結(jié)合貝葉斯優(yōu)化,XGBoost算法在電影評分預(yù)測方面展現(xiàn)出了較高的精度和擬合能力[10]。這也表明此算法在處理類似的回歸問題時具有廣泛的應(yīng)用潛力。下面是測試集中部分電影的預(yù)測結(jié)果,如表4所示。
4 結(jié)束語
本實驗通過構(gòu)建貝葉斯算法來優(yōu)化XGBoost模型,將優(yōu)化前后的實驗結(jié)果對比,并與目前市面上其他電影評分預(yù)測模型對比,驗證了基于貝葉斯優(yōu)化的XGBoost算法在預(yù)測電影評分方面性能提升顯著。本實驗為超參數(shù)調(diào)優(yōu)提供實證案例。同時實驗結(jié)果突顯機器學(xué)習(xí)算法在實際問題中的潛力,機器學(xué)習(xí)算法可廣泛應(yīng)用于各行各業(yè),可以提高數(shù)據(jù)分析、預(yù)測和決策支持任務(wù)的效率和準(zhǔn)確性。
參考文獻:
[1] 方茜.基于XGBoost的網(wǎng)絡(luò)輿情文章預(yù)警模型建立[J].智能計算機與應(yīng)用,2023,13(6):72-77.
[2] GUPTA A,RAJPUT I S,GUNJAN,et al.NSGA-II-XGB:Metaheuristic feature selection with XGBoost framework for diabe?tes prediction[J]. Concurrency and Computation: Practice andExperience,2022,34(21).
[3] 崔遜龍.基于數(shù)據(jù)挖掘算法的個體出行行為預(yù)測[D].合肥: 安徽大學(xué),2021.
[4] 豆瓣電影網(wǎng).[EBOL].[2023-12-10].https://movie.douban.com/explore.
[5] 陳平平,耿笑冉,鄒敏,等.基于機器學(xué)習(xí)的文本情感傾向性分析[J].計算機與現(xiàn)代化,2020(3):77-81,92.
[6] NI J J,CAI Y,TANG G Y,et al.Collaborative filtering recommen?dation algorithm based on TF-IDF and user characteristics[J].Applied Sciences,2021,11(20):9554.
[7] 賈穎,趙峰,李博,等.貝葉斯優(yōu)化的XGBoost信用風(fēng)險評估模型[J/OL].計算機工程與應(yīng)用,2023:1-15.(2023-06-27).https://kns.cnki.net/kcms/detail/11.2127.TP.20230626.1704.002.html.
[8] 崔榕峰,馬海,郭承鵬,等.基于貝葉斯超參數(shù)優(yōu)化的Gradient Boosting方法的導(dǎo)彈氣動特性預(yù)測[J].航空科學(xué)技術(shù),2023,34(7):22-28.
[9] 李香君,肖小玲.基于機器學(xué)習(xí)的電影評分預(yù)測研究[J].電腦知識與技術(shù),2021,17(27):109-111.
[10] JANIZADEH S,VAFAKHAH M,KAPELAN Z,et al.Hybrid XGboost model with various Bayesian hyperparameter optimi?zation algorithms for flood hazard susceptibility modeling[J].Geocarto International,2022,37(25):8273-8292.
【通聯(lián)編輯:王力】