姜祿瑤,曲麗萍
1(上海市崇明區(qū)融媒體中心廣播電視部,上海 202158)
2(上海大學 上海電影學院規(guī)劃辦公室,上海 200444)
近年來,中國電影市場迅速發(fā)展,無論其銀幕數(shù)量還是票房收入均逐年上升.2017年,中國電影市場的票房收入達到559.1 億人民幣,正式成為僅次于北美的全球第二大電影市場.同時,2017年中國電影銀幕數(shù)量新增銀幕9597 塊,總共達到50 776 塊,穩(wěn)居世界電影銀幕數(shù)量第一位.
在電影上映過程中,觀影數(shù)據(jù)可以體現(xiàn)觀眾對于相關(guān)電影的評價,以及這些觀眾向他人推薦該電影的傾向.因此,實時觀影數(shù)據(jù)與電影最終的票房及觀眾評分均高度相關(guān)[1].在電影上映過程中,合理的挖掘和分析實時觀影數(shù)據(jù)有助于電影營銷方了解觀眾動向,從而有針對性的調(diào)整影片營銷和發(fā)行的戰(zhàn)略.其中,準確的預知電影上映時期票房,觀影人數(shù)和其它觀影數(shù)據(jù)的走勢將能為電影營銷,院線排片等提供有效的指導和幫助,提升電影單場平均上座率和場均收益.近年來,得益于機器學習技術(shù)的快速發(fā)展,電影票房預測模型被廣泛提出和應用.Hossein 等[2]利用86 部電影上映前四天的動態(tài)推特數(shù)據(jù)作為特征,并利用多種機器學習模型對電影票房進行預測.文獻[3]對用戶評論進行分析,提取其中的情緒信息作為特征,并利用非線性回歸器,如:決策樹,人工神經(jīng)網(wǎng)絡,支持向量機等對票房收入進行評估.文獻[4]利用特征交叉組合網(wǎng)絡和稠密跳接網(wǎng)絡對電影上映前信息進行深度特征提取,并預測上映后的票房.文獻[5,6]均利用機器學習算法對電影周邊信息進行分析,并預測電影票房.
上述研究雖可通過社交數(shù)據(jù),演員信息,電影類型、上映日期等電影上映前的信息來預測電影觀影數(shù)據(jù),卻忽略了電影上映時期實時變化的動態(tài)信息(dynamic information),因此目前僅應用于電影總票房預測,而非每日票房預測.文獻[7]雖然利用深度神經(jīng)網(wǎng)絡(DNN)對電影每日票房進行預測,但仍未使用實時動態(tài)信息.
目前,許多動態(tài)信息編碼算法,如LSTM,馬爾科夫鏈等被提出和應用在各個預測領域,例如:車輛軌跡預測[8]以及與本文目標類似的金融數(shù)據(jù)預測[9]等,并取得了優(yōu)異的效果.
在電影數(shù)據(jù)分析中,動態(tài)信息可以有效表征和編碼由電影上映時期不可控因素(如主要演員違法,國家出臺新政策等)對各觀影數(shù)據(jù)所帶來的影響和變化.在文獻[10]中,作者基于高斯混合模型(Gaussian Mixture Model,GMM)對電影上映首日的數(shù)據(jù)進行分析.其研究結(jié)果表明,每日票房均對下一日票房具有顯著影響,利用該信息可有效提高預測精度.因此,相對于僅利用電影上映前的靜態(tài)信息,同時分析上映前的靜態(tài)信息和上映時期的動態(tài)信息來對電影觀影數(shù)據(jù)進行預測將理論上取得更精確的結(jié)果.為了有效利用電影上映時期的動態(tài)信息,本文提出一種基于傅里葉變換的動態(tài)信息編碼算法.該算法將已上映日期的動態(tài)數(shù)據(jù)(由于已上映日數(shù)的差別,原始數(shù)據(jù)的長度將不同)編碼至一對大小固定的頻譜圖中,作為后續(xù)特征提取器和分類器的輸入.
生成式對抗網(wǎng)絡[11]是一類近年來被廣泛應用[12]的深度學習模型,其思想是通過學習生成器的生成能力和判別器的判別能力,優(yōu)化尋找二者的納什均衡.由于生成式對抗訓練算法(generative adversarial training)在近年來顯示出的優(yōu)異的性能,生成式對抗網(wǎng)絡被改進并應用到多種生成和預測任務中,如圖像翻譯(imageto-image translation)[13],圖像修復[14],行為預測[15,16]等.雖然該類方法在計算機視覺各領域取得了成功,然而其在電影觀影數(shù)據(jù)分析上的應用卻未被系統(tǒng)的研究.考慮到本文的目標為利用給定日期的電影觀影數(shù)據(jù)預測余下日期的電影觀影數(shù)據(jù),其輸入和輸出均為矩陣形式,與圖像翻譯類似.因此,本文基于生成式對抗網(wǎng)絡(GAN)對電影觀影數(shù)據(jù)進行預測.該系統(tǒng)的總流程如圖1所示.
圖1 本文算法流程圖
傅里葉變換(Fourier Transform,FT)是一種線性積分變換,可將時間信號轉(zhuǎn)換到頻率域.轉(zhuǎn)換后的頻譜信號將時間信號分解為一個基波和多個諧波的和,從而可獲得時間信號各個同頻率范圍內(nèi)的信號強度,其定義如下:
其中,S(t)為初始時間信號,H(w)為轉(zhuǎn)換后的頻譜信號.在實際應用中,由于時間信號一般為離散且長度有限的序列,因此之前大部分時頻轉(zhuǎn)換算法采用離散傅里葉變換(Discrete Fourier Transform,DFT)對時間信號進行處理.如圖2所示,假定離散時間信號S(t)長度為n幀,則其進行離散傅里葉變換后的頻譜信號可表示為:
其中,N為頻率點采樣個數(shù).通過控制參數(shù)N,文獻[17,18]提出了一種時間信號降維算法.當利用DFT 處理長度不同的時間信號時,其將頻率點采樣個數(shù)設置為相同的值N從而使得轉(zhuǎn)換后的信號具有相同個數(shù)的諧波分量.其中,各諧波分量的幅值M(k)和相位信息P(k)(k=0,1,2,···,N–1)可通過式(5)和式(6)計算獲得.
圖2 傅里葉降維算法[18]
因此,不同長度的離散時間信號均可轉(zhuǎn)換為兩個長度為N的一維信號(N個幅值和N個相位值).相比于降采樣和重采樣法會使得信號發(fā)生畸變,直方圖法導致信號動態(tài)信息丟失,該算法的優(yōu)勢在于:①可在大幅縮減信號長度,以利于基于CNNs的全局特征的提取;②可將不同長度的信號轉(zhuǎn)化為同樣長度的;③同時保留信號幅值信息(幅值)和上下文動態(tài)信息(相位),同時保持這些信息不發(fā)生畸變.
生成式對抗網(wǎng)絡(Generative Adversarial Networks,GAN)于2014年由Goodfellow 等[11]提出,是一種非監(jiān)督學習方式.該類網(wǎng)絡一般由兩個卷積神經(jīng)網(wǎng)絡組成:生成網(wǎng)絡和判別網(wǎng)絡.生成網(wǎng)絡對原始輸入進行特征提取和重建以生成與訓練集中目標盡可能類似的輸出,以欺騙判別網(wǎng)絡.與此同時,訓練集中的真實樣本和生成樣本將用于訓練判別網(wǎng)絡,使得該網(wǎng)絡可以盡可能地區(qū)分真實樣本和生成樣本.兩個網(wǎng)絡在訓練過程中將進行多輪博弈,對抗,同時不斷調(diào)整各自參數(shù).該過程的最終目的是使得生成網(wǎng)絡的性能達到極限,使得由其生成的樣本可以最大限度地欺騙已經(jīng)訓練好的,性能已達極限的判別網(wǎng)絡,讓其難以區(qū)分真實樣本和生成樣本.
基于上述傅里葉降維算法和生成式對抗網(wǎng)絡,本文提出一種電影實時觀影數(shù)據(jù)預測算法.針對指定電影,該算法根據(jù)已上映各日的電影票房,上座率,排片量等公開信息預估之后各日的上座率,票房等.首先,算法將基于傅里葉降維算法對電影已上映日各信息進行預處理,將其由多通道時域信號轉(zhuǎn)化為固定大小的多通道頻譜信號.然后,基于生成式對抗網(wǎng)絡對轉(zhuǎn)換后的信號進行動態(tài)深度特征提取,并對后續(xù)日期的電影數(shù)據(jù)進行預測.本文算法框架如圖1所示.
在一般情況下,卷積神經(jīng)網(wǎng)絡的輸入層尺寸保持固定,因此訓練和測試樣本數(shù)據(jù)的尺寸也需通過預處理使其保持一致.由于電影數(shù)據(jù)的尺寸會根據(jù)已上映日數(shù)的改變而發(fā)生變化,本節(jié)首先將各部電影不同日期的數(shù)據(jù)進行轉(zhuǎn)換,以保證各個數(shù)據(jù)尺寸大小一致.
假設給定電影的數(shù)據(jù)包含n日信息,每日信息維度為k維,則該數(shù)據(jù)等同于通道數(shù)為k,幀數(shù)為n的多通道時間信號.如圖2所示,通過將上述傅里葉降維算法的采樣點數(shù)設置為N(N 相比于傳統(tǒng)手工特征,卷積神經(jīng)網(wǎng)絡可以根據(jù)任務目標對提取輸入信號的最優(yōu)特征,從而在近年來許多模式識別任務上都取得了更好的效果.因此,本文利用卷積神經(jīng)網(wǎng)絡對轉(zhuǎn)換后的頻譜數(shù)據(jù)提取深度特征. 雖然上述轉(zhuǎn)換后的頻譜信號已經(jīng)包含原始信號全局的幅值和動態(tài)信息,但卻無法提供其中一小段日期的動態(tài)信息.考慮到在一般情況下,每日的上座率和票房均與前一日和后一日的相應數(shù)據(jù)有著緊密的聯(lián)系.因此,在一般情況下,已上映日中最后幾日的觀影數(shù)據(jù)的動態(tài)信息將與待預測數(shù)據(jù)有著最緊密的聯(lián)系.為了提取這幾日的局部動態(tài)信息,本文同時將多日的數(shù)據(jù)頻譜圖進行編碼作為卷積神經(jīng)網(wǎng)絡的輸入以提取深度動態(tài)頻譜特征.假設給定電影的數(shù)據(jù)包含n日信息,d(1,t)為給定電影從上映第1日至第t日多通道電影數(shù)據(jù)(t≤n),為了獲取動態(tài)特征,連續(xù)k日的信息d(1,n),d(1,n–1),···,d(1,n–k+1)將基于公式被轉(zhuǎn)換為2k個大小為頻譜熱圖(k個幅值譜熱圖Am(1,n),Am(1,n–1),···,Am(1,n–k+1),k個相位譜熱圖Ph(1,n),Ph(1,n–1),···,Ph(1,n–k+1)). 其中,f(1,n)為給定電影從上映第1日至第n日的動態(tài)深度頻譜特征. 在將高維的電影頻譜數(shù)據(jù)進過特征提取轉(zhuǎn)換為低維的深度特征之后,本文通過再次通過卷積神經(jīng)網(wǎng)絡(G)對得到的低維特征進行反卷積以此預測后續(xù)日期的電影數(shù)據(jù),其過程可表示為公式: 其中,d(n+1,30)為預測得到的,從第n+1日至第30日觀影數(shù)據(jù),f(1,n)為作為輸入的已上映日期的觀影數(shù)據(jù).為了提取多層次信息,本文利用Unet 深度網(wǎng)絡[19]進行深度特征提取(f)和數(shù)據(jù)預測(G).Unet 于2015年提出,并在圖像分割上取得了優(yōu)異的效果.Unet 結(jié)構(gòu)簡單,且可以提取多層次特征,因此被成功用于圖像動態(tài)信息(temporal modeling)預測[15].同時,由于生成式判別網(wǎng)絡在預測任務中的良好效果,本文利用類似結(jié)構(gòu)對電影觀影數(shù)據(jù)進行預測.其中,生成網(wǎng)絡為修改后的Unet,其需要優(yōu)化的參數(shù)數(shù)量為7.3 M.同時,由于Residual Network 目前在多個公開的圖像分類數(shù)據(jù)集上均取得優(yōu)異的分類效果,因此本文選擇的的判別網(wǎng)絡為Residual Network 101[20].其參數(shù)量為42.6 M.該網(wǎng)絡使用單個12 G GPU 完成訓練時間大約為5 小時. 在訓練時,Unet 首先將輸入的動態(tài)頻譜數(shù)據(jù)進行編碼,并生成預測數(shù)據(jù).接著,該預測數(shù)據(jù)將輸入Residual Network 進行分類,若判別為假,則Unet 將繼續(xù)訓練,直到其生成的數(shù)據(jù)被Residual Network 判別為真.此時,我們再利用生成數(shù)據(jù)和真實數(shù)據(jù)對Residual Network進行訓練,直到其能判別出生成數(shù)據(jù)為假.根據(jù)該方式訓練多輪后,直到Residual Network 無論如何訓練都無法判別生成數(shù)據(jù)為假時,訓練停止,并利用此時的生成網(wǎng)絡進行數(shù)據(jù)預測. 本文所提出的算法具體步驟如圖3所示.假設原始數(shù)據(jù)包含前k日的觀影信息,算法首先將編碼后的頻譜數(shù)據(jù)輸入生成網(wǎng)絡進行特征提取和第k+1日到第30日的觀影數(shù)據(jù)生成.接著,將生成網(wǎng)絡的輸入(編碼后的頻譜數(shù)據(jù))和輸出(生成的觀影數(shù)據(jù))基于公式X進行配對后得到的數(shù)據(jù)將為一個包含X層的二維矩陣組VF.該步驟的目的是為判別網(wǎng)絡提供限制條件,使其能根據(jù)生成網(wǎng)絡的輸入來對預測數(shù)據(jù)進行判別,從而避免訓練好的生成網(wǎng)絡錯誤收斂,使其在不同輸入時的輸出為一個相同的電影觀影數(shù)據(jù).在訓練過程中,包含生成數(shù)據(jù)的二維矩陣組的標簽為0.同時,本文將真實的第k+1日到第30日觀影數(shù)據(jù)與對應的編碼后的頻譜數(shù)據(jù)基于公式X進行配對得到VT,并將其標記為1.之后,利用所有標記好的真實數(shù)據(jù)和生成數(shù)據(jù)對判別網(wǎng)絡進行訓練.在生成式判別網(wǎng)絡的訓練過程中,生成網(wǎng)絡和判別網(wǎng)絡會相互博弈,調(diào)整各自的參數(shù),使兩者性能都不斷提升.因此,訓練完成后的生成網(wǎng)絡將具有良好的預測性能. 圖3 預測算法框架 為了驗證所設計模型的預測效果,本文收集了近三年在國內(nèi)上映的電影數(shù)據(jù)進行分析.該電影集包含2018年國內(nèi)票房前60,2017年票房前70和2016年票房前70的共200 部電影.對于每部電影,其上映前30日內(nèi)的15 種信息被統(tǒng)計,包括:上映日期,上映日數(shù),排片占比(%),觀影人次(萬),人次占比(%),場均人次(個),平均票價(元),排座總量(萬),排座占比(%),上座率(%),用戶退票率(%)和是否法定節(jié)假日.其中最后一項中的法定節(jié)假日定義為周末和國家公共假日,其值為0 (非法定節(jié)假日)或1 (法定節(jié)假日).一般情況下,由于節(jié)假日觀影人數(shù)較工作日有著顯著上升,因此該信息對電影觀影數(shù)據(jù)有著巨大影響.在本文實驗中,200 部電影信息被分為3 個不重復的子集.其中訓練集(training set)包含100 部,用于訓練網(wǎng)絡;驗證集(development set)包含40 部,用于調(diào)整網(wǎng)絡的超參數(shù)(hyper-parameters);剩余60 部組成測試集(test set),用于展示模型效果.為了方便廣大學者,該數(shù)據(jù)集已經(jīng)公開,可通過鏈接進行下載(https://drive.google.com/drive/folders/1NhZtK601 JSbTzX5kR060qkiKOd58gq5?usp=sharing). 本文利用3 種常用于時間信號的度量方式來計算預測值與真實值的相似度:均方誤差(Mean Square Error,MSE),皮爾遜相關(guān)系數(shù)(Pearson Correlation Coefficient,PCC)以及相對誤差.均方根誤差用于度量預測值xi與真實值yi之間差異程度,其定義如式(7)所示: 在本文實驗中,i代表第i日,i的值固定為30.與此同時,皮爾遜相關(guān)系數(shù)定義為: 其中,X為預測的時間信號,Y為真實的時間信號,cov(X,Y)為兩者的協(xié)方差,σX和σY分別為兩者的標準差.而相對誤差定義為: 本文利用修改后的Unet 提取深度頻譜特征和電影觀影數(shù)據(jù)預測.在訓練中,該網(wǎng)絡利用隨機梯度下降(Stochastic Gradient Descent,SGD)法對參數(shù)進行優(yōu)化,其中學習速率為0.005,學習速率衰減為0.000 01,沖量(momentum)為0.5.與此同時,本文采用Residual Net 作為分類器,其同樣利用隨機梯度下降法對網(wǎng)絡參數(shù)進行優(yōu)化,其中學習速率為0.001,學習速率衰減為0.000 01,沖量為0.9. 實驗結(jié)果如表1所示,表中所示為各日預測結(jié)果的平均值.當僅給定前5日數(shù)據(jù)時,4 個指標的后25日的預測結(jié)果平均相對誤差均較大,分別達到26.8%,23.0%,17.0%和19.6%.而當獲取前15日數(shù)據(jù)或更多日期的數(shù)據(jù)后,本文算法對未上映日期的觀影數(shù)據(jù)預測能力將較為精確且趨于穩(wěn)定,其預測誤差均接近甚至小于10%.圖4為基于動態(tài)算法的電影“侏羅紀世界”的預測結(jié)果示例. 為了驗證本文算法對于給定日期不同情況下的適用性,表2比較了5 種不同情況下本文算法的預測效果,分別為:(1)給定各部電影前5日觀影數(shù)據(jù),預測各電影之后25日的觀影數(shù)據(jù);(2)給定各部電影前10日觀影數(shù)據(jù),預測各電影之后20日的觀影數(shù)據(jù);(3)給定各部電影前15日觀影數(shù)據(jù),預測各電影之后15日的觀影數(shù)據(jù);(4)給定各部電影前20日觀影數(shù)據(jù),預測各電影之后10日的觀影數(shù)據(jù);(5)給定各部電影前25日觀影數(shù)據(jù),預測各電影之后5日的觀影數(shù)據(jù). 為了比較本文動態(tài)算法與傳統(tǒng)靜態(tài)算法的優(yōu)劣,表2展示了由本文方法預測得到的觀影數(shù)據(jù)結(jié)果和僅用靜態(tài)數(shù)據(jù)預測得到第k日后的總票房或總觀影人數(shù)預測結(jié)果.其中,用于預測靜態(tài)數(shù)據(jù)包括:導演獲獎次數(shù),男女主角的人氣(國內(nèi)演員定義為百度貼吧粉絲數(shù),國外演員定義為Twitter 粉絲數(shù)),男女主角的獲獎次數(shù)等.最后利用支持向量機(Support Vector machine Regression,SVR)對這些數(shù)據(jù)進行學習和預測.其具體算法可參考文獻[21].根據(jù)結(jié)果可知,相比于利用靜態(tài)數(shù)據(jù)進行預測,本文所提出的動態(tài)算法預測效果顯著提升.相對于使用靜態(tài)數(shù)據(jù),在各個預測實驗中,使用動態(tài)算法使得預測誤差均下降超過45%.其中,在預測上映15日至第30日的總票房和總觀影人數(shù)時,利用動態(tài)算法所得到的結(jié)果誤差分別下降高達51.6%和57.7%. 表1 日觀影數(shù)據(jù)預測平均結(jié)果 圖4 侏羅紀世界觀影數(shù)據(jù)預測結(jié)果示例 針對當前電影觀影數(shù)據(jù)預測方法未利用上映時動態(tài)信息的缺點,本文提出一種基于生成式對抗網(wǎng)絡的電影觀影數(shù)據(jù)預測算法.該算法首先提取各電影已上映日期的15 種數(shù)據(jù)構(gòu)成基本特征向量,然后利用傅里葉變換對這些特征向量進行動態(tài)編碼.最后利用生成式對抗網(wǎng)絡對編碼后的頻譜圖進行分析,從而預測和生成未上映日期的電影觀影數(shù)據(jù).實驗結(jié)果表明,本文提出的預測算法相對于基于靜態(tài)數(shù)據(jù)的預測算法精度顯著提升.由于訓練數(shù)據(jù)數(shù)量所限,本文暫時未使用更加復雜的深層次網(wǎng)絡結(jié)構(gòu),因此預測效果仍有提升空間.未來的工作將著重于采集更多相關(guān)數(shù)據(jù),并設計更加適合用于觀影數(shù)據(jù)預測的深度網(wǎng)絡. 表2 預測算法MSE 對比3.2 動態(tài)頻譜數(shù)據(jù)編碼
3.3 上座率和票房預測
4 實驗
4.1 數(shù)據(jù)庫
4.2 實驗設定
4.3 實驗結(jié)果
5 結(jié)束語