陸君之
中國(guó)電子科技集團(tuán)第二十八研究所
隨著人民生活水平的不斷提高,觀(guān)看電影已經(jīng)成為了大家日常生活中不可或缺的娛樂(lè)方式之一。我國(guó)作為全球第二大電影市場(chǎng),電影產(chǎn)業(yè)規(guī)模一直保持著每年30%左右的增長(zhǎng),煥發(fā)出旺盛的生命力和巨大的可持續(xù)發(fā)展?jié)摿?。然而整個(gè)市場(chǎng)的電影質(zhì)量卻是參差不齊,每年都會(huì)有大量大家俗稱(chēng)的“爛片”上映,并且各大電影評(píng)分網(wǎng)站存在制片公司雇傭“水軍”刷評(píng)分的現(xiàn)象,導(dǎo)致觀(guān)眾在觀(guān)看前沒(méi)有信息渠道真正判斷一部電影的好壞,電影評(píng)分預(yù)測(cè)模型可以對(duì)尚未上映的電影做出客觀(guān)的評(píng)分,供觀(guān)眾進(jìn)行參考。
本文主要結(jié)構(gòu)如下:第1節(jié)介紹本實(shí)驗(yàn)所使用的相關(guān)技術(shù)和資源介紹;第2節(jié)介紹基于隨機(jī)森林算法的電影評(píng)分預(yù)測(cè)模型的建模過(guò)程;第3節(jié)是實(shí)驗(yàn)內(nèi)容與結(jié)果的分析,最后一節(jié)是總結(jié)與展望。
Spark是一個(gè)用來(lái)實(shí)現(xiàn)快速而通用的集群計(jì)算的開(kāi)源簇運(yùn)算框架。它擴(kuò)展了廣泛使用的MapReduce計(jì)算模型,適用于各種原先需要不同分布式平臺(tái)的場(chǎng)景,大大減輕了原先需要對(duì)各種平臺(tái)分別管理的負(fù)擔(dān)。spark可以在內(nèi)存中進(jìn)行計(jì)算,因而它比MapReduce更加高效,即使在硬盤(pán)上進(jìn)行運(yùn)算,它也比MapReduce更快。
MLlib是Spark中提供機(jī)器學(xué)習(xí)函數(shù)的庫(kù),它是專(zhuān)為在集群上運(yùn)行的情況而設(shè)計(jì)的。MLlib可使用許多常見(jiàn)的機(jī)器學(xué)習(xí)和統(tǒng)計(jì)算法,這些算法用來(lái)在集群上針對(duì)分類(lèi)、回歸、聚類(lèi)、協(xié)同過(guò)濾等,簡(jiǎn)化大規(guī)模機(jī)器學(xué)習(xí)時(shí)間。其中一些算法也可以應(yīng)用到流數(shù)據(jù)上,例如使用普通最小二乘法或者K均值聚類(lèi)(還有更多)來(lái)計(jì)算線(xiàn)性回歸。
豆瓣電影網(wǎng)是國(guó)人最常用的對(duì)電影進(jìn)行打分,寫(xiě)影評(píng)的數(shù)據(jù)網(wǎng)站,相比于IMDB更能體現(xiàn)國(guó)人對(duì)于電影文化的理解。雖然近年來(lái)豆瓣電影也開(kāi)始出現(xiàn)“水軍”刷分的現(xiàn)象,但是從“水軍”現(xiàn)象的根源來(lái)看這并不影響豆瓣電影以往評(píng)分的真實(shí)性和有效性,并且雖然有延時(shí)性,豆瓣電影網(wǎng)也會(huì)將“非正常打分”的行為進(jìn)行判斷并不計(jì)入評(píng)分。
豆瓣電量評(píng)分的主旨和原則是“盡力還原普通觀(guān)影大眾對(duì)一部電影的平均看法”,是國(guó)內(nèi)最公平公正的電影評(píng)分網(wǎng)站之一。國(guó)內(nèi)相當(dāng)多的電影評(píng)論節(jié)目,例如“暴走看啥片兒”,也將豆瓣電影評(píng)分作為衡量標(biāo)準(zhǔn)向觀(guān)眾推薦電影。它的電影數(shù)據(jù)也是符合本實(shí)驗(yàn)需要的,本實(shí)驗(yàn)用于數(shù)據(jù)分析實(shí)驗(yàn)的數(shù)據(jù)從豆瓣電影網(wǎng)上爬蟲(chóng)獲取。
本文選用隨機(jī)森林回歸算法來(lái)做實(shí)驗(yàn)基于以下原因:
(1)電影中導(dǎo)演的評(píng)分、演員的評(píng)分、編劇的評(píng)分等輸入特征之間可能存在潛在的相關(guān)性,但對(duì)于這些相關(guān)性很難正確的去進(jìn)行衡量,因此對(duì)于特征之間多重共線(xiàn)性十分敏感的算法是不適用的。隨機(jī)森林算法對(duì)于特征之間相關(guān)性并不敏感,也不需要對(duì)特征進(jìn)行選擇,非常適用于本次回歸實(shí)驗(yàn)。
(2)隨機(jī)森林算法魯棒性很好,對(duì)于離散數(shù)據(jù)點(diǎn)相對(duì)而言不敏感,由于電影信息多樣性,難免會(huì)有噪音數(shù)據(jù),隨機(jī)森林算法可以有效的避免這些數(shù)據(jù)對(duì)于最終模型的影響。
(3)隨機(jī)森林算法可以評(píng)估所有輸入特征的重要性,為下一步研究向大眾推薦高質(zhì)量電影打下基礎(chǔ)。
特征工程是大規(guī)模機(jī)器學(xué)習(xí)中非常重要的一步,特征選取的好壞直接影響到算法的效率。信息豐富的輸入特征與將現(xiàn)有特征轉(zhuǎn)換為合適的向量都能夠極大的改進(jìn)實(shí)驗(yàn)結(jié)果。本實(shí)驗(yàn)的特征選擇結(jié)合中國(guó)內(nèi)地電影市場(chǎng)實(shí)際情況,選取導(dǎo)演、編劇、主演、類(lèi)型、國(guó)家地區(qū)作為特征,如公式(1)所示:
其中:Director表示導(dǎo)演執(zhí)導(dǎo)水平特征,Writer表示編劇水平特征,Cast表示主演水平特征,Type表示影片類(lèi)型特征,Country表示國(guó)家地區(qū)特征,Rate表示電影評(píng)分。
本節(jié)具體闡釋影響電影評(píng)分的重要因素并給出相應(yīng)定義,為隨機(jī)森林回歸模型的建立做好準(zhǔn)備。
(1)導(dǎo)演執(zhí)導(dǎo)水平特征
導(dǎo)演是電影創(chuàng)作團(tuán)隊(duì)的領(lǐng)導(dǎo)者和組織者,決定了電影藝術(shù)風(fēng)格,對(duì)電影質(zhì)量起到了非常重要的影響因素。本實(shí)驗(yàn)中以導(dǎo)演之前執(zhí)導(dǎo)電影所獲得的評(píng)分以及評(píng)分人數(shù)作為導(dǎo)演執(zhí)導(dǎo)水平特征??紤]到雖然電影評(píng)分人數(shù)也是非常重要的維度,但是將電影評(píng)分人數(shù)單獨(dú)作為一個(gè)輸入特征引入的話(huà),特征之間scale差距過(guò)大,會(huì)對(duì)收斂速度造成嚴(yán)重影響,所以我們將電影評(píng)分和電影評(píng)分人數(shù)作為一個(gè)特征組合來(lái)引入特征集中,作為對(duì)影人水平的綜合評(píng)分,如公式(2)所示:
n表示導(dǎo)演參與拍攝的所有電影作品中,距離該部電影上映最近的n部電影,n取值小于等于5;
Rk表示導(dǎo)演拍攝的第k部電影的評(píng)分;
Pk表示導(dǎo)演拍攝的第k部電影的評(píng)分人數(shù)。
(2)編劇水平特征
編劇是電影劇本的創(chuàng)作者,劇本是電影拍攝的基礎(chǔ),決定了電影的上限。本實(shí)驗(yàn)取編劇主創(chuàng)的所有電影劇本中,距離該部電影上映最近的n部電影,n取值小于等于5,如公式(3)所示:
Rk表示編劇創(chuàng)作的第k部電影的評(píng)分;
Pk表示編劇創(chuàng)作的第k部電影的評(píng)分人數(shù)。
(3)主演水平特征:
演員具有獨(dú)特的個(gè)人魅力,演員的發(fā)揮直接影響到一部電影口碑的好壞??紤]到大部分演員每年參演電影作品數(shù)量很多,對(duì)于演員的特征字段,本實(shí)驗(yàn)會(huì)參考演員參與拍攝的所有電影作品中,距離該部電影上映時(shí)間最近的n部相同類(lèi)型且由他主演的電影,n取值小于等于5,主演水平特征計(jì)算公式(見(jiàn)公式(4))及說(shuō)明如下:
Rik表示第i位主演拍攝第k部電影的評(píng)分;
Pik表示第i位主演拍攝第k部電影的評(píng)分人數(shù);
Wi表示第i位主演在此部電影的權(quán)重,這里本實(shí)驗(yàn)權(quán)重設(shè)置如表1所示,參演人數(shù)多于4位,則從第5位開(kāi)始不考慮其對(duì)電影的影響。
(4)影片類(lèi)型
電影有愛(ài)情片、動(dòng)作片、喜劇片等多種類(lèi)型組合,觀(guān)眾在不同時(shí)期可能對(duì)電影的類(lèi)型有不同的喜好。因此電影類(lèi)型對(duì)于其口碑是非常重要的特征,電影類(lèi)型決定了它內(nèi)容的表現(xiàn)形式,觀(guān)眾基礎(chǔ)和影響力。因?yàn)橐徊侩娪敖?jīng)常會(huì)被貼上多種類(lèi)型標(biāo)簽,所以對(duì)于該特征本實(shí)驗(yàn)需要綜合考慮各個(gè)類(lèi)型的權(quán)重計(jì)算得到它的評(píng)分。本實(shí)驗(yàn)取上一年此類(lèi)型電影平均得分作為參考值,比如電影《寒戰(zhàn)》于2012年11月08號(hào)上映,則分別選取類(lèi)型為劇情、動(dòng)作、犯罪且上映時(shí)間范圍應(yīng)該為
2011年11月08號(hào)到2012年11月08號(hào)的電影,計(jì)算得到此 類(lèi)型電影的參考評(píng)分,見(jiàn)公式(5)與(6):
Rik表示第k部類(lèi)型為i的電影的評(píng)分;
Pik表示第k部類(lèi)型為i電影的評(píng)分人數(shù);
Ri表示第i種類(lèi)型電影綜合評(píng)分;
Wi表示第i種類(lèi)型在此部電影中的權(quán)重。
(5)國(guó)家地區(qū)
根據(jù)制片公司所在國(guó)家或地區(qū)的不同,觀(guān)眾受個(gè)人的文化背景和社會(huì)背景影響對(duì)于該地區(qū)的電影的看法也是不同的,因此國(guó)家地區(qū)也是電影口碑重要的特征之一。本實(shí)驗(yàn)取上一年此國(guó)家地區(qū)電影平均得分作為參考值,比如電影《寒戰(zhàn)》于2012年11月08號(hào)上映,則選取同為香港制作且上映時(shí)間范圍應(yīng)該為2011年11月08號(hào)到2012年11月08號(hào)的電影,計(jì)算得到此電影的參考評(píng)分,見(jiàn)公式(7):
Rk表示第k部電影的評(píng)分;
Pk表示第k部電影的評(píng)分人數(shù)。
本實(shí)驗(yàn)基于SCRAPY框架,采用“深度優(yōu)先”算法,爬蟲(chóng)收集豆瓣電影網(wǎng)從2000年至2016年上映的所有電影數(shù)據(jù)作為本次實(shí)驗(yàn)的數(shù)據(jù)集,首先從豆瓣電影網(wǎng)的各個(gè)標(biāo)簽下的電影列表爬取獲取電影信息,然后獲取每一部電影相關(guān)推薦和影人代表作品中的電影加入到爬取隊(duì)列中去,最終共收集到8萬(wàn)多條電影數(shù)據(jù)。經(jīng)過(guò)整理,電影屬性如表2所示:
表2 電影屬性表
(1)隨機(jī)森林算法回歸建模:
本實(shí)驗(yàn)利用spark mllib的randomforest包實(shí)現(xiàn)隨機(jī)森林回歸算法。首先將2015年以前出品的電影的評(píng)分?jǐn)?shù)據(jù)作為訓(xùn)練數(shù)據(jù),2016年出品的電影數(shù)據(jù)作為測(cè)試數(shù)據(jù)。我們將處理好的特征字段和電影評(píng)分處理成Labeledpoint,LabeledPoint是spark中用來(lái)表示帶標(biāo)簽的數(shù)據(jù)點(diǎn),包含一個(gè)特征向量和一個(gè)標(biāo)簽(由一個(gè)浮點(diǎn)數(shù)表示),本實(shí)驗(yàn)中標(biāo)簽為電影的評(píng)分,特征向量為上述特征工程所處理的,構(gòu)造的LabeledPoint,見(jiàn)公式(8)
使用mllibtree.RandomForest的trainRegressor()方法來(lái)建立起隨機(jī)森林回歸模型。TrainRegressor()方法會(huì)返回一個(gè)weightedEnsembleModel對(duì)象,本實(shí)驗(yàn)使用此對(duì)象的predict()方法對(duì)測(cè)試集預(yù)測(cè)對(duì)應(yīng)的值,即電影評(píng)分。接下來(lái)的實(shí)驗(yàn)中,將測(cè)試數(shù)據(jù)輸入到建立好的隨機(jī)森林中進(jìn)行測(cè)試。
(2)誤差對(duì)比
本實(shí)驗(yàn)除了給出使用隨機(jī)森林回歸算法模型的誤差,還采用了DT算法、GBDT算法、Isontonic算法進(jìn)行對(duì)比,誤差比較如表3所示:
表3 算法誤差對(duì)照表
從上述對(duì)預(yù)測(cè)的誤差對(duì)比試驗(yàn)可以看出,本文所使用的隨機(jī)森林回歸算法建立的模型預(yù)測(cè)性能明顯優(yōu)于其他算法模型,在預(yù)測(cè)電影評(píng)分時(shí)相對(duì)誤差遠(yuǎn)低于其他算法,同時(shí)它的確定系數(shù)也是最高的,說(shuō)明這個(gè)模型在數(shù)據(jù)擬合上的表現(xiàn)是最好的。
本實(shí)驗(yàn)部分電影預(yù)測(cè)結(jié)果如下表4所示:
表4 部分電影評(píng)分預(yù)測(cè)結(jié)果表
本文從實(shí)際的中國(guó)電影產(chǎn)業(yè)市場(chǎng)出發(fā),提出一種基于隨機(jī)森林回歸算法的電影評(píng)分預(yù)測(cè)模型,將機(jī)器學(xué)習(xí)應(yīng)用于電影評(píng)分預(yù)測(cè)領(lǐng)域,通過(guò)將導(dǎo)演、編劇、主演、類(lèi)型、發(fā)行國(guó)家地區(qū)作為影響電影評(píng)分的特征,對(duì)其進(jìn)行特征工程處理。通過(guò)對(duì)比試驗(yàn),隨機(jī)森林回歸算法模型確實(shí)比其他算法在預(yù)測(cè)電影評(píng)分的相對(duì)誤差更低,同時(shí)預(yù)測(cè)的確定系數(shù)也更高。綜上所述,本文提出的基于隨機(jī)森林回歸算法的評(píng)分預(yù)測(cè)模型解決了電影評(píng)分預(yù)測(cè)精度不高的問(wèn)題,能夠?yàn)榇蟊娡扑]電影提供有價(jià)值的參考,具有實(shí)際的意義。