劉林慧 王慧
摘? 要:電影評(píng)分是電影質(zhì)量的一個(gè)直觀反映,對(duì)未上映的電影評(píng)分進(jìn)行預(yù)測(cè)是非常重要的。文章在電影本身屬性的基礎(chǔ)上,定義所有特征量化方式,同時(shí)利用電影相似度新增相似電影評(píng)分屬性,結(jié)果表明,加入該因子之后,模型的均方誤差降低了35.3%。在此基礎(chǔ)上,使用選擇性隨機(jī)森林優(yōu)化算法對(duì)電影評(píng)分進(jìn)行預(yù)測(cè),模型的均方誤差為0.102 5,預(yù)測(cè)較準(zhǔn)確。
關(guān)鍵詞:相似電影評(píng)分;特征量化;隨機(jī)森林;電影評(píng)分預(yù)測(cè)
中圖分類(lèi)號(hào):TP391.4? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)16-0083-04
Prediction of Film Score Based on Random Forest Theory
LIU Linhui, WANG Hui
(College of Modern Manufacturing Engineering, Heilongjiang University of Technology, Jixi? 158100, China)
Abstract: Film score is an intuitive reflection of film quality. It is very important to predict the score of unreleased films. Based on the attributes of the film itself, this paper defines all feature quantization methods, at the same time, the film similarity is used to add the scoring attribute of similar films. The results show that after adding this factor, the mean square error of the model is reduced by 35.3%. On this basis, the selective random forest optimization algorithm is used to predict the film score, the mean square error of the model is 0.102 5, which is more accurate.
Keywords: similar film score; feature quantification; random forest; prediction of film score
0? 引? 言
隨著信息時(shí)代的大踏步發(fā)展,人們生活方式的大幅度變革,電影成了人們休閑娛樂(lè)的重要方式之一。在電影領(lǐng)域,不管是哪種片型,都包含著一個(gè)國(guó)家、一個(gè)民族、一個(gè)社會(huì)的交往方式,反映了一個(gè)特定時(shí)期的人文精神。越來(lái)越多的人會(huì)在休閑之余選擇去觀看電影,渴望通過(guò)電影獲取這個(gè)時(shí)代的重要信息,渴望通過(guò)電影釋放自己的精神壓力。電影是拍給觀眾看的,沒(méi)有觀眾的電影是不存在的,因此電影要適應(yīng)觀眾的需要。
近年來(lái),越來(lái)越多的電影在大眾視野中出現(xiàn),但是電影的質(zhì)量卻是參差不齊。電影評(píng)分是電影質(zhì)量最直觀的反映,它成為觀眾選擇電影消費(fèi)的一個(gè)重要依據(jù)。預(yù)測(cè)電影評(píng)分問(wèn)題[1,2]對(duì)于電影領(lǐng)域未來(lái)的發(fā)展和地區(qū)經(jīng)濟(jì)發(fā)展非常重要,因此對(duì)即將上映的電影評(píng)分進(jìn)行預(yù)測(cè)是非常有必要的。
1? 數(shù)據(jù)處理
本文所使用的實(shí)驗(yàn)數(shù)據(jù)來(lái)自豆瓣網(wǎng)站[3],詳見(jiàn)https://movie.douban.com/。共包含8個(gè)屬性,15 000條電影數(shù)據(jù)。電影本身屬性包括:電影名稱(chēng)、類(lèi)型、時(shí)長(zhǎng)、劇情簡(jiǎn)介、導(dǎo)演、編劇、主演、評(píng)分,數(shù)據(jù)形式如表1所示。
1.1? 相似電影評(píng)分屬性
本部分新增相似電影評(píng)分屬性,根據(jù)電影本身特征,導(dǎo)演、編劇、主演、劇情簡(jiǎn)介、類(lèi)型,設(shè)置權(quán)重,計(jì)算電影之間相似度,每部電影尋找與它相似度最高的10部相似電影,取10部電影評(píng)分的平均值作為新增屬性值。
1.1.1? 特征到向量的轉(zhuǎn)化
1.1.1.1? 導(dǎo)演、編劇、演員、類(lèi)型
從表1可知導(dǎo)演、編劇、演員和類(lèi)型都是字符型數(shù)據(jù),處理方式相同。將每部電影的導(dǎo)演、編劇、演員、類(lèi)型、劇情簡(jiǎn)介轉(zhuǎn)化為0,1向量,實(shí)現(xiàn)字符型數(shù)據(jù)到向量轉(zhuǎn)化的算法如算法1所示:
文本特征到向量的轉(zhuǎn)化
輸入:電影文本特征
輸出:每個(gè)電影文本特征對(duì)應(yīng)的二進(jìn)制向量
過(guò)程:
1.將所有電影的文本信息存入新列表中
2.遍歷新列表
3. 遍歷每個(gè)電影文本信息
4.? ?如果該電影信息在列表中出現(xiàn),列表對(duì)應(yīng)位置賦值為1,其他位置賦值為0
1.1.1.2? 劇情簡(jiǎn)介
劇情是對(duì)電影的簡(jiǎn)單描述,觀眾可以通過(guò)劇情簡(jiǎn)介了解電影的大概內(nèi)容。尋找相似電影時(shí),劇情屬性是非常重要的。判斷兩個(gè)電影是否相似,可以通過(guò)電影劇情中的關(guān)鍵字來(lái)判斷。
電影劇情中的關(guān)鍵詞通過(guò)關(guān)鍵詞提取得到,所謂關(guān)鍵詞提取,就是從一段給定的文本中自動(dòng)抽取出能夠反映文本信息的特征詞。本文使用TextRank關(guān)鍵詞提取方法,TextRank算法是可以脫離語(yǔ)料庫(kù)的背景,僅對(duì)單篇文檔進(jìn)行分析就可以提取出該文檔的關(guān)鍵詞的一種提取方法[4]。
以電影《銀河補(bǔ)習(xí)班》為例。使用TextRank算法提取到的關(guān)鍵詞如表2所示。
提取關(guān)鍵詞之后,將關(guān)鍵詞轉(zhuǎn)化為二進(jìn)制向量,同樣應(yīng)用算法1實(shí)現(xiàn)。
1.1.2? 電影相似度計(jì)算
1.1.2.1? 余弦相似度
余弦相似度是一種相似度的度量標(biāo)準(zhǔn),用向量之間的夾角來(lái)計(jì)算相似度。
已知兩個(gè)向量α,β,兩向量之間的夾角用θ表示。余弦相似度公式為:
(1)
以類(lèi)型為例,利用上述公式計(jì)算兩電影的類(lèi)型相似度。假設(shè)電影1的類(lèi)型向量為α,電影2的類(lèi)型向量為β。
α=(1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)? ?(2)
β=(1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)? ?(3)
則兩部電影類(lèi)型的相似度為:
(4)
1.1.2.2? 特征權(quán)重相似度
定義:在余弦相似度的基礎(chǔ)上,乘上相應(yīng)的特征的權(quán)重,得到特征權(quán)重相似度。
本論文為屬性設(shè)定權(quán)重值如表3所示。
(5)
1.1.3? 相似電影評(píng)分屬性值計(jì)算
得到的基于電影信息的相似電影評(píng)分屬性值計(jì)算方法如算法2所示:
def binary(attribute_list,newList):# 將所有文本特征轉(zhuǎn)化為二進(jìn)制向量
binaryList = []
for attribute in newList:
if attribute in attribute _list:
binaryList.append(1)
else:
binaryList.append(0)
return binaryList
def Similarity(movie_name):#求兩個(gè)電影之間的特征權(quán)重相似度
A_Similarity List = []
for index, movie in f.iterrows():? ?#f文件為包含二進(jìn)制向量的數(shù)據(jù)
a = f.iloc[movie_name]
b = f.iloc[movie[‘name’]
attribute_Distance = similar(a[‘a(chǎn)ttribute_vec’], b[attribute_vec’])
A_Similarity=0.5*director_Distance+0.5*scriptwriter_Distance+0.5*actor_Distance+ type_Distance+1.5*words_Distance? ?#特征權(quán)重相似度公式
A_Similarity List.append(A_Similarity)
returnA_SimilarityList
def Subject(movie_name):
#取特征權(quán)重相似度最大的前10位電影,輸出電影的相似電影評(píng)分屬性值
A_SimilarityList=Similarity(movie_name)
A_Similarity_ten=A_SimilarityList[0:10]
subject=sum(A_Similarity_ten)/len(A_Similarity_ten)
return subject
1.2? 電影屬性處理
本部分給出第一導(dǎo)演、第一編劇、第一、二主演、時(shí)長(zhǎng)、類(lèi)型等屬性的定義量化特征的方式:
(1)第一導(dǎo)演:
(6)
其中Ri表示該部電影的第一導(dǎo)演導(dǎo)過(guò)的第i部電影的評(píng)分,n表示該導(dǎo)演導(dǎo)過(guò)的全部電影的數(shù)目。
(2)第一編劇:
(7)
其中Rj表示該部電影的第一編劇編寫(xiě)過(guò)的第j部電影的評(píng)分,n表示該編劇參與過(guò)的全部電影的數(shù)目。
(3)第一、二主演:
,α=0.6,β=0.4? ? ? ? ? ? ?(8)
其中第一主演與第二主演的計(jì)算方式相同。Bi表示主演作為第一主演出演的第i部電影的評(píng)分,Cj表示主演不作為第一主演出演的第j部電影的評(píng)分,n為主演參演過(guò)的全部電影數(shù)。α和β為權(quán)重。如果一位主演只作為第一主演,或者從未作為第一主演,則取他作為第一主演所演過(guò)的電影的平均分或者作為其他主演所演過(guò)的電影的平均分。
(4)時(shí)長(zhǎng)。對(duì)于時(shí)長(zhǎng)這一屬性,在數(shù)據(jù)預(yù)處理過(guò)程中保留原數(shù)值,不對(duì)其進(jìn)行處理。
(5)類(lèi)型:
(9)
其中Wi、Wj、Wk分別代表各個(gè)類(lèi)型全部電影的平均分。
2? 新加入特征的有效性檢驗(yàn)
將數(shù)據(jù)集進(jìn)行拆分,75%作為訓(xùn)練集數(shù)據(jù),25%作為測(cè)試集數(shù)據(jù)。
分別計(jì)算100棵樹(shù)、300棵樹(shù)、500棵樹(shù)以及1 000棵樹(shù)在兩種情況下的得到的隨機(jī)森林的均方誤差。兩種情況分別是原始六個(gè)因子和加入相似電影評(píng)分因子。圖1是兩種情況下隨機(jī)森林均方誤差值的對(duì)比圖,橫坐標(biāo)表示森林的規(guī)模,縱坐標(biāo)表示均方誤差。圖2是在使用隨機(jī)森林預(yù)測(cè)過(guò)程中得到的變量重要性情況,用條形圖進(jìn)行展示??v坐標(biāo)表示各屬性所占的權(quán)重,橫坐標(biāo)表示各屬性名稱(chēng)。
圖1表明,一方面,加入相似電影評(píng)分因子能減小模型的均方誤差。圖2可以看出,對(duì)電影評(píng)分影響最大的特征是相似電影評(píng)分因子,雖然其他因子對(duì)評(píng)分的影響沒(méi)有相似電影評(píng)分因子影響大,但是依然對(duì)預(yù)測(cè)結(jié)果做出貢獻(xiàn)。因此從實(shí)驗(yàn)結(jié)果可以得出結(jié)論,新加入的因子有效。
3? 基于選擇性隨機(jī)森林的電影評(píng)分預(yù)測(cè)
3.1? 算法理論基礎(chǔ)
3.1.1? 隨機(jī)森林
隨機(jī)森林[5-7]是一種集成學(xué)習(xí)算法,隨機(jī)森林的基學(xué)習(xí)器是決策樹(shù),每棵決策樹(shù)沒(méi)有關(guān)聯(lián)。隨機(jī)森林相對(duì)于決策樹(shù)來(lái)說(shuō),模型有更低的泛化誤差。在回歸問(wèn)題中,所有決策樹(shù)輸出結(jié)果的平均值就是隨機(jī)森林最終的輸出值。
3.1.2? 選擇性隨機(jī)森林優(yōu)化算法
選擇性集成[8]是指從所有現(xiàn)有的基學(xué)習(xí)器中,剔除對(duì)結(jié)果作用不大或者對(duì)結(jié)果起反作用的基學(xué)習(xí)器,然后基于某種準(zhǔn)則選擇出一部分性能好的學(xué)習(xí)器作為一個(gè)新的集成,通常,使用新的集成模型能夠使分類(lèi)或者回歸的結(jié)果更準(zhǔn)確。
隨機(jī)森林的泛化誤差與決策樹(shù)的平均泛化誤差和決策樹(shù)之間的平均相關(guān)性有關(guān)[5]。對(duì)隨機(jī)森林子集進(jìn)行優(yōu)化,就是在保證森林規(guī)模的前提下,考慮單棵樹(shù)的平均泛化誤差、樹(shù)與樹(shù)之間的相關(guān)關(guān)系和集成的規(guī)模三者關(guān)系,讓隨機(jī)森林的泛化誤差更加接近極限值[9]。
3.2? 基于選擇性隨機(jī)森林的電影評(píng)分預(yù)測(cè)
在本部分中使用選擇性隨機(jī)森林優(yōu)化算法對(duì)電影評(píng)分進(jìn)行預(yù)測(cè)。將隨機(jī)森林的規(guī)模設(shè)為1 000,迭代次數(shù)為設(shè)為100,種群個(gè)數(shù)設(shè)為50,最終得到的實(shí)驗(yàn)結(jié)果如表4所示。
優(yōu)化后森林的規(guī)模從原來(lái)1 000棵樹(shù)壓縮到了498棵樹(shù),壓縮率達(dá)到了50.2%,且有更低的均方誤差為0.102 5。由于實(shí)驗(yàn)所用的數(shù)據(jù)集較大,無(wú)法完全展示。因此本文采用隨機(jī)抽樣的方式,在樣本中抽取5部電影,并把5部電影的預(yù)測(cè)結(jié)果進(jìn)行輸出,電影評(píng)分的真實(shí)值和預(yù)測(cè)值如表5所示。
4? 結(jié)? 論
本文選擇編劇、演員、導(dǎo)演、類(lèi)型、劇情簡(jiǎn)介、時(shí)長(zhǎng)等六個(gè)屬性進(jìn)行電影評(píng)分預(yù)測(cè)。并根據(jù)其中的編劇、演員、導(dǎo)演、類(lèi)型、劇情簡(jiǎn)介五個(gè)特征新建“相似電影評(píng)分”屬性,使用隨機(jī)森林算法優(yōu)化算法進(jìn)行預(yù)測(cè),模型的均方誤差達(dá)到0.102 5,預(yù)測(cè)較準(zhǔn)確。
本文考慮的影響未上映電影評(píng)分的因素有限,在后續(xù)的工作中會(huì)結(jié)合本次試驗(yàn)的屬性重要性程度再考慮加入更多的因素,給出更精準(zhǔn)的預(yù)測(cè)。
參考文獻(xiàn):
[1] 劉明昌.豆瓣網(wǎng)站電影在線評(píng)分的混合預(yù)測(cè)模型研究 [D].保定:河北大學(xué),2017.
[2] 張紅麗,劉濟(jì)郢,楊斯楠,等.基于網(wǎng)絡(luò)用戶評(píng)論的評(píng)分預(yù)測(cè)模型研究 [J].數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn),2017,1(8):48-58.
[3] 豆瓣.豆瓣電影 [EB/OL].[2021-05-04].https://movie.douban.com/.
[4] 涂銘,劉祥,劉樹(shù)春.Python自然語(yǔ)言處理實(shí)戰(zhàn):核心技術(shù)與算法 [M].北京:機(jī)械工業(yè)出版社,2018:88-91.
[5] BREIMAN. Random Forests [J].Machine Learning,2001,45(1):5-32.
[6] 周志華.機(jī)器學(xué)習(xí) [M].北京:清華大學(xué)出版社,2016:171-181.
[7] 李航.統(tǒng)計(jì)學(xué)習(xí)方法 [M].北京:清華大學(xué)出版社,2012:67-72.
[8] ZHOU Z H,WU J X,TANG W. Ensembling neural networks:Many could be better than all [J].Artificial Intelligence,2002,137 (1):239-263.
[9] 姚明煌. 隨機(jī)森林及其在遙感圖像分類(lèi)中的應(yīng)用 [D]. 廈門(mén):華僑大學(xué),2014.
作者簡(jiǎn)介:劉林慧(1996.02—),女,漢族,黑龍江雞東人,助教,碩士研究生,主要研究方向:數(shù)據(jù)分析;王慧(1985.10—),女,漢族,黑龍江雞西人,講師,碩士研究生,主要研究方向:數(shù)學(xué)機(jī)械化。