席一鍇
(江蘇省新海高級中學(xué),江蘇連云港,222000)
隨著我國經(jīng)濟的快速發(fā)展,人們的生活水平穩(wěn)步提升,在追求物質(zhì)生活的同時,也不斷追求著精神層面的滿足,觀看電影是當下大眾消遣娛樂的基本形式,好的影視作品不僅能帶來歡樂,也能帶來不錯的票房促進影視企業(yè)的發(fā)展。據(jù)統(tǒng)計,2018年我國電影票房高達417億美元,電影行業(yè)比以往任何時候都更受歡迎,每年的內(nèi)地影市,都有五六百部影片上映。雖然影片的票房不能代表一切,但是票房收入則是衡量一部商業(yè)片是否成功的最重要的指標,沒有之一。了解電影票房的影響因素,有利于企業(yè)提前做好預(yù)判,有效抵御風(fēng)險,因此對于電影票房的預(yù)測顯得格外重要。80年代,美國的BarryLitman提出了票房收入預(yù)測模型,該模型能分析預(yù)測不同種類電影的票房價值,對之后美國電影投資界產(chǎn)生了顛覆性的影響。2012年我國企業(yè)也研究推出第一套票房預(yù)測系統(tǒng),推動了我國影視產(chǎn)業(yè)的進一步發(fā)展。本文利用線性回歸及xgboost算法,建立電影票房預(yù)測模型,取得了良好的實驗結(jié)果。
本文研究意義如下:
(1)本文根據(jù)理論證明了相關(guān)電影票房預(yù)測模型的可用,證明了基于機器學(xué)習(xí)的預(yù)測模型的可行性,以及基于電影市場各種復(fù)雜因素進行預(yù)測的效果。
(2)為以后制作一款電影票房預(yù)測系統(tǒng)提供制作算法,制作理念和制作核心,為以后開發(fā)一個完整的電影票房預(yù)測系統(tǒng)做基礎(chǔ)。
(3)鼓勵電影從業(yè)者打造出符合大眾審美的具有良好社會影響力的影視文化作品,提高國內(nèi)影視產(chǎn)業(yè)水平。
機器學(xué)習(xí)可以使計算機模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)使之不斷改善自身的算法。機器學(xué)習(xí)能夠讓計算機實現(xiàn)數(shù)據(jù)驅(qū)動的決策,是人工智能的核心。利用機器學(xué)習(xí),可以迅速的訓(xùn)練出預(yù)測模型,應(yīng)用到實際場景中。在電影票房的預(yù)測中,我們能在一定的數(shù)據(jù)集中挖掘出影響一部電影票房的潛在影響因素,發(fā)現(xiàn)并總結(jié)出電影各種特征的內(nèi)在聯(lián)系,從而適用于現(xiàn)實世界的真實場景進行票房預(yù)測,并對行業(yè)發(fā)展起到一定的指導(dǎo)作用。本文討論的票房預(yù)測適用于機器學(xué)習(xí)中的回歸問題,我們將采用相應(yīng)的回歸算法嘗試建立模型擬合真實場景。
回歸算法是機器學(xué)習(xí)中最常用的算法之一,分為線性回歸和邏輯回歸,在本文的業(yè)務(wù)場景中,我們需要通過數(shù)據(jù)分析一部電影的票房走勢,即最終預(yù)測出一部電影的總票房收入,這是典型的回歸模型。我們需要通過數(shù)據(jù)特征,諸如一部電影的多種信息來探索影響票房的因素,從而建模進行票房預(yù)測。在回歸問題中,實際上是我們在建立數(shù)學(xué)方程對數(shù)據(jù)進行擬合的一個過程,我們利用機器學(xué)習(xí)通過大量數(shù)據(jù)進行學(xué)習(xí)的特點,不斷讓計算機通過建立好的回歸模型不斷優(yōu)化和調(diào)節(jié)模型參數(shù),從而達到預(yù)測值越來越接近真實值的目的。通過不斷的迭代更新,最終我們可以利用算法模型得到一個能夠近似反映真實世界規(guī)律的模型,這也就是本文中我們的目標。
我們已經(jīng)知道票房預(yù)測是一個典型的回歸問題,我們可以嘗試一些基本的回歸問題模型來對數(shù)據(jù)進行建模。相關(guān)的模型有很多,并且對每個模型,當嘗試不同的參數(shù),所表達出來的效果也是千差萬別。這時候,我們要考慮的不僅僅是要構(gòu)建模型,而且還需要對我們建立好的模型進行準確的評估,因為一個預(yù)測效果和真實情況差距很大的模型,或者是不穩(wěn)定的模型都是遠遠不夠甚至是包含風(fēng)險的。
在機器學(xué)習(xí)算法的評估中,我們利用損失函數(shù)來評估建立好的模型。損失函數(shù)可以衡量模型預(yù)測的好壞,用來表現(xiàn)預(yù)測與實際數(shù)據(jù)的差距程度。通常損失函數(shù)最小,對應(yīng)模型參數(shù)最優(yōu)。比如在線性回歸中,實際值和預(yù)測值肯定會有誤差,那么我們找到一個函數(shù)表達這個誤差就是損失函數(shù)。比如在本研究中,根據(jù)機器學(xué)習(xí)算法進行的電影票房預(yù)測難免與實際票房存在差距。機器所給出的票房是預(yù)測值,而電影實際在市場中所取得的票房就是實際值。通過模型和損失函數(shù)來進行模型構(gòu)建的流程圖如圖1所示。
圖1 模型構(gòu)建
上文已經(jīng)提到,我們完成模型的初步構(gòu)建之后將會尋求一個用于評估模型是否接近真實物理模型的函數(shù)表達式,即損失函數(shù)。我們希望在模型訓(xùn)練的過程中最小化這個損失,一旦我們可以找到一個全局的最小損失,也將意味著模型達到了一個比較好的效果。
機器學(xué)習(xí)模型訓(xùn)練中由于涉及到大量的高維度數(shù)據(jù),數(shù)學(xué)模型十分復(fù)雜,我們很難直接求得損失函數(shù)的這個最小值,因此一般我們采用多次迭代不斷接近的方式去逼近這個最優(yōu)解。這種方式即為梯度下降算法,也稱為最速下降法。它在機器學(xué)習(xí)中應(yīng)用非常廣泛,主要通過不斷迭代找到最小值,或者逼近最小偏差。
梯度下降算法如同下山,每走一步需要進行計算當前位置的梯度,沿著梯度負方向,進一步向下走。所以通過不斷的迭代計算,就可以找到令損失函數(shù)最小化的參數(shù),確定最優(yōu)模型,用梯度下降算法循環(huán)更新模型參數(shù),就可以找到一組最優(yōu)參數(shù),使損失函數(shù)得到一個接近最優(yōu)解的結(jié)果,通過這組比較好的參數(shù),我們可以構(gòu)建一個接近真實的模型。
本實驗數(shù)據(jù)集來源于電影數(shù)據(jù)庫TMDB,在這個數(shù)據(jù)集中包括7398部電影和從電影數(shù)據(jù)庫(TMDB)獲得的各種元數(shù)據(jù)。數(shù)據(jù)特征包括演員陣容、攝制組、劇情關(guān)鍵詞、預(yù)算、海報、上映日期、語言、制片公司和國家等相關(guān)信息。
我們首先對數(shù)據(jù)集進行預(yù)處理,預(yù)處理是機器學(xué)習(xí)建模的關(guān)鍵步驟,我們需要在預(yù)處理過程中將拿到的數(shù)據(jù)進行一定的清洗和篩選,并轉(zhuǎn)換為我們的算法模型能夠識別的數(shù)據(jù)類型。針對缺失值的數(shù)據(jù),我們采用均值填充,即取其所在列中的其他數(shù)據(jù)的平均值來代替,而對離散型數(shù)據(jù)則采用眾數(shù)填充。
在進行簡單的處理之后,我們對數(shù)據(jù)的幾個主要特征進行了探索,通過可視化工具我們觀察了特征之間的相關(guān)性,以及我們的預(yù)測標簽revenue(票房收入)與特征之間的關(guān)系。
圖2 預(yù)算,網(wǎng)站投票數(shù)與票房收入分布圖
我們通過類似的方式對數(shù)據(jù)特征進行了一些探索,發(fā)現(xiàn)預(yù)算,投票數(shù),電影主題,演員等幾類特征和票房收入是正相關(guān)的,同時我們也篩選出了一些沒有顯著正相關(guān)的特征進行舍棄,如電影ID,語言等影響比較小或者比較不具備規(guī)律性的特征。通過圖3的特征相關(guān)性我們認為特征之間沒有顯著的關(guān)聯(lián)性,故認為不存在特征相似性過大的冗余特征
圖3 特征之間的相關(guān)性
數(shù)據(jù)的預(yù)處理及數(shù)據(jù)分析之后,我們接下來可以對數(shù)據(jù)進行機器學(xué)習(xí)算法建模,本實驗數(shù)據(jù)集相對較?。ㄓ?xùn)練集4398,測試集3000),我們先后嘗試簡單的回歸預(yù)測模型線性回歸,以及各種時下比較流行的集成算法如xgboost,lightGBM,模型的訓(xùn)練結(jié)束之后我們采用均方誤差對預(yù)測結(jié)果進行了測試,結(jié)果如下:
LightGBM MSE: 1.8184;xgboost MSE:1.8320;linear model MSE:1.8819。
集成算法模型相對較為復(fù)雜,在大多數(shù)時候具有較好的效果,線性回歸模型相對來說較為簡單,并且從實驗結(jié)果來看效果雖然略微弱于集成算法,但也具備了良好實驗效果,因此具體的模型選擇還需要結(jié)合業(yè)務(wù)場景。
本論文基于機器學(xué)習(xí)算法建立了對實際場景下的電影票房預(yù)測模型,在構(gòu)建模型的過程中通過對TMDB數(shù)據(jù)集進行了詳細的分析和處理,并建立回歸模型進行了預(yù)測并得到了較好的效果。我們的模型尚可發(fā)掘更多的信息,比如我們可以在模型建立完成之后進一步查看分析特征的重要程度,這也能夠指導(dǎo)我們在實際場景中對票房收入有更完善的理解。我們也可進一步調(diào)整模型并適用于更大規(guī)模和復(fù)雜的數(shù)據(jù)集上,得到更為全面的預(yù)測功能,使算法起到更多的作用。