











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