姜祿瑤,曲麗萍
1(上海市崇明區融媒體中心廣播電視部,上海 202158)
2(上海大學 上海電影學院規劃辦公室,上海 200444)
近年來,中國電影市場迅速發展,無論其銀幕數量還是票房收入均逐年上升.2017年,中國電影市場的票房收入達到559.1 億人民幣,正式成為僅次于北美的全球第二大電影市場.同時,2017年中國電影銀幕數量新增銀幕9597 塊,總共達到50 776 塊,穩居世界電影銀幕數量第一位.
在電影上映過程中,觀影數據可以體現觀眾對于相關電影的評價,以及這些觀眾向他人推薦該電影的傾向.因此,實時觀影數據與電影最終的票房及觀眾評分均高度相關[1].在電影上映過程中,合理的挖掘和分析實時觀影數據有助于電影營銷方了解觀眾動向,從而有針對性的調整影片營銷和發行的戰略.其中,準確的預知電影上映時期票房,觀影人數和其它觀影數據的走勢將能為電影營銷,院線排片等提供有效的指導和幫助,提升電影單場平均上座率和場均收益.近年來,得益于機器學習技術的快速發展,電影票房預測模型被廣泛提出和應用.Hossein 等[2]利用86 部電影上映前四天的動態推特數據作為特征,并利用多種機器學習模型對電影票房進行預測.文獻[3]對用戶評論進行分析,提取其中的情緒信息作為特征,并利用非線性回歸器,如:決策樹,人工神經網絡,支持向量機等對票房收入進行評估.文獻[4]利用特征交叉組合網絡和稠密跳接網絡對電影上映前信息進行深度特征提取,并預測上映后的票房.文獻[5,6]均利用機器學習算法對電影周邊信息進行分析,并預測電影票房.
上述研究雖可通過社交數據,演員信息,電影類型、上映日期等電影上映前的信息來預測電影觀影數據,卻忽略了電影上映時期實時變化的動態信息(dynamic information),因此目前僅應用于電影總票房預測,而非每日票房預測.文獻[7]雖然利用深度神經網絡(DNN)對電影每日票房進行預測,但仍未使用實時動態信息.
目前,許多動態信息編碼算法,如LSTM,馬爾科夫鏈等被提出和應用在各個預測領域,例如:車輛軌跡預測[8]以及與本文目標類似的金融數據預測[9]等,并取得了優異的效果.
在電影數據分析中,動態信息可以有效表征和編碼由電影上映時期不可控因素(如主要演員違法,國家出臺新政策等)對各觀影數據所帶來的影響和變化.在文獻[10]中,作者基于高斯混合模型(Gaussian Mixture Model,GMM)對電影上映首日的數據進行分析.其研究結果表明,每日票房均對下一日票房具有顯著影響,利用該信息可有效提高預測精度.因此,相對于僅利用電影上映前的靜態信息,同時分析上映前的靜態信息和上映時期的動態信息來對電影觀影數據進行預測將理論上取得更精確的結果.為了有效利用電影上映時期的動態信息,本文提出一種基于傅里葉變換的動態信息編碼算法.該算法將已上映日期的動態數據(由于已上映日數的差別,原始數據的長度將不同)編碼至一對大小固定的頻譜圖中,作為后續特征提取器和分類器的輸入.
生成式對抗網絡[11]是一類近年來被廣泛應用[12]的深度學習模型,其思想是通過學習生成器的生成能力和判別器的判別能力,優化尋找二者的納什均衡.由于生成式對抗訓練算法(generative adversarial training)在近年來顯示出的優異的性能,生成式對抗網絡被改進并應用到多種生成和預測任務中,如圖像翻譯(imageto-image translation)[13],圖像修復[14],行為預測[15,16]等.雖然該類方法在計算機視覺各領域取得了成功,然而其在電影觀影數據分析上的應用卻未被系統的研究.考慮到本文的目標為利用給定日期的電影觀影數據預測余下日期的電影觀影數據,其輸入和輸出均為矩陣形式,與圖像翻譯類似.因此,本文基于生成式對抗網絡(GAN)對電影觀影數據進行預測.該系統的總流程如圖1所示.

圖1 本文算法流程圖
傅里葉變換(Fourier Transform,FT)是一種線性積分變換,可將時間信號轉換到頻率域.轉換后的頻譜信號將時間信號分解為一個基波和多個諧波的和,從而可獲得時間信號各個同頻率范圍內的信號強度,其定義如下:

其中,S(t)為初始時間信號,H(w)為轉換后的頻譜信號.在實際應用中,由于時間信號一般為離散且長度有限的序列,因此之前大部分時頻轉換算法采用離散傅里葉變換(Discrete Fourier Transform,DFT)對時間信號進行處理.如圖2所示,假定離散時間信號S(t)長度為n幀,則其進行離散傅里葉變換后的頻譜信號可表示為:

其中,N為頻率點采樣個數.通過控制參數N,文獻[17,18]提出了一種時間信號降維算法.當利用DFT 處理長度不同的時間信號時,其將頻率點采樣個數設置為相同的值N從而使得轉換后的信號具有相同個數的諧波分量.其中,各諧波分量的幅值M(k)和相位信息P(k)(k=0,1,2,···,N–1)可通過式(5)和式(6)計算獲得.

圖2 傅里葉降維算法[18]
因此,不同長度的離散時間信號均可轉換為兩個長度為N的一維信號(N個幅值和N個相位值).相比于降采樣和重采樣法會使得信號發生畸變,直方圖法導致信號動態信息丟失,該算法的優勢在于:①可在大幅縮減信號長度,以利于基于CNNs的全局特征的提取;②可將不同長度的信號轉化為同樣長度的;③同時保留信號幅值信息(幅值)和上下文動態信息(相位),同時保持這些信息不發生畸變.
生成式對抗網絡(Generative Adversarial Networks,GAN)于2014年由Goodfellow 等[11]提出,是一種非監督學習方式.該類網絡一般由兩個卷積神經網絡組成:生成網絡和判別網絡.生成網絡對原始輸入進行特征提取和重建以生成與訓練集中目標盡可能類似的輸出,以欺騙判別網絡.與此同時,訓練集中的真實樣本和生成樣本將用于訓練判別網絡,使得該網絡可以盡可能地區分真實樣本和生成樣本.兩個網絡在訓練過程中將進行多輪博弈,對抗,同時不斷調整各自參數.該過程的最終目的是使得生成網絡的性能達到極限,使得由其生成的樣本可以最大限度地欺騙已經訓練好的,性能已達極限的判別網絡,讓其難以區分真實樣本和生成樣本.
基于上述傅里葉降維算法和生成式對抗網絡,本文提出一種電影實時觀影數據預測算法.針對指定電影,該算法根據已上映各日的電影票房,上座率,排片量等公開信息預估之后各日的上座率,票房等.首先,算法將基于傅里葉降維算法對電影已上映日各信息進行預處理,將其由多通道時域信號轉化為固定大小的多通道頻譜信號.然后,基于生成式對抗網絡對轉換后的信號進行動態深度特征提取,并對后續日期的電影數據進行預測.本文算法框架如圖1所示.
在一般情況下,卷積神經網絡的輸入層尺寸保持固定,因此訓練和測試樣本數據的尺寸也需通過預處理使其保持一致.由于電影數據的尺寸會根據已上映日數的改變而發生變化,本節首先將各部電影不同日期的數據進行轉換,以保證各個數據尺寸大小一致.
假設給定電影的數據包含n日信息,每日信息維度為k維,則該數據等同于通道數為k,幀數為n的多通道時間信號.如圖2所示,通過將上述傅里葉降維算法的采樣點數設置為N(N 相比于傳統手工特征,卷積神經網絡可以根據任務目標對提取輸入信號的最優特征,從而在近年來許多模式識別任務上都取得了更好的效果.因此,本文利用卷積神經網絡對轉換后的頻譜數據提取深度特征. 雖然上述轉換后的頻譜信號已經包含原始信號全局的幅值和動態信息,但卻無法提供其中一小段日期的動態信息.考慮到在一般情況下,每日的上座率和票房均與前一日和后一日的相應數據有著緊密的聯系.因此,在一般情況下,已上映日中最后幾日的觀影數據的動態信息將與待預測數據有著最緊密的聯系.為了提取這幾日的局部動態信息,本文同時將多日的數據頻譜圖進行編碼作為卷積神經網絡的輸入以提取深度動態頻譜特征.假設給定電影的數據包含n日信息,d(1,t)為給定電影從上映第1日至第t日多通道電影數據(t≤n),為了獲取動態特征,連續k日的信息d(1,n),d(1,n–1),···,d(1,n–k+1)將基于公式被轉換為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日的動態深度頻譜特征. 在將高維的電影頻譜數據進過特征提取轉換為低維的深度特征之后,本文通過再次通過卷積神經網絡(G)對得到的低維特征進行反卷積以此預測后續日期的電影數據,其過程可表示為公式: 其中,d(n+1,30)為預測得到的,從第n+1日至第30日觀影數據,f(1,n)為作為輸入的已上映日期的觀影數據.為了提取多層次信息,本文利用Unet 深度網絡[19]進行深度特征提取(f)和數據預測(G).Unet 于2015年提出,并在圖像分割上取得了優異的效果.Unet 結構簡單,且可以提取多層次特征,因此被成功用于圖像動態信息(temporal modeling)預測[15].同時,由于生成式判別網絡在預測任務中的良好效果,本文利用類似結構對電影觀影數據進行預測.其中,生成網絡為修改后的Unet,其需要優化的參數數量為7.3 M.同時,由于Residual Network 目前在多個公開的圖像分類數據集上均取得優異的分類效果,因此本文選擇的的判別網絡為Residual Network 101[20].其參數量為42.6 M.該網絡使用單個12 G GPU 完成訓練時間大約為5 小時. 在訓練時,Unet 首先將輸入的動態頻譜數據進行編碼,并生成預測數據.接著,該預測數據將輸入Residual Network 進行分類,若判別為假,則Unet 將繼續訓練,直到其生成的數據被Residual Network 判別為真.此時,我們再利用生成數據和真實數據對Residual Network進行訓練,直到其能判別出生成數據為假.根據該方式訓練多輪后,直到Residual Network 無論如何訓練都無法判別生成數據為假時,訓練停止,并利用此時的生成網絡進行數據預測. 本文所提出的算法具體步驟如圖3所示.假設原始數據包含前k日的觀影信息,算法首先將編碼后的頻譜數據輸入生成網絡進行特征提取和第k+1日到第30日的觀影數據生成.接著,將生成網絡的輸入(編碼后的頻譜數據)和輸出(生成的觀影數據)基于公式X進行配對后得到的數據將為一個包含X層的二維矩陣組VF.該步驟的目的是為判別網絡提供限制條件,使其能根據生成網絡的輸入來對預測數據進行判別,從而避免訓練好的生成網絡錯誤收斂,使其在不同輸入時的輸出為一個相同的電影觀影數據.在訓練過程中,包含生成數據的二維矩陣組的標簽為0.同時,本文將真實的第k+1日到第30日觀影數據與對應的編碼后的頻譜數據基于公式X進行配對得到VT,并將其標記為1.之后,利用所有標記好的真實數據和生成數據對判別網絡進行訓練.在生成式判別網絡的訓練過程中,生成網絡和判別網絡會相互博弈,調整各自的參數,使兩者性能都不斷提升.因此,訓練完成后的生成網絡將具有良好的預測性能. 圖3 預測算法框架 為了驗證所設計模型的預測效果,本文收集了近三年在國內上映的電影數據進行分析.該電影集包含2018年國內票房前60,2017年票房前70和2016年票房前70的共200 部電影.對于每部電影,其上映前30日內的15 種信息被統計,包括:上映日期,上映日數,排片占比(%),觀影人次(萬),人次占比(%),場均人次(個),平均票價(元),排座總量(萬),排座占比(%),上座率(%),用戶退票率(%)和是否法定節假日.其中最后一項中的法定節假日定義為周末和國家公共假日,其值為0 (非法定節假日)或1 (法定節假日).一般情況下,由于節假日觀影人數較工作日有著顯著上升,因此該信息對電影觀影數據有著巨大影響.在本文實驗中,200 部電影信息被分為3 個不重復的子集.其中訓練集(training set)包含100 部,用于訓練網絡;驗證集(development set)包含40 部,用于調整網絡的超參數(hyper-parameters);剩余60 部組成測試集(test set),用于展示模型效果.為了方便廣大學者,該數據集已經公開,可通過鏈接進行下載(https://drive.google.com/drive/folders/1NhZtK601 JSbTzX5kR060qkiKOd58gq5?usp=sharing). 本文利用3 種常用于時間信號的度量方式來計算預測值與真實值的相似度:均方誤差(Mean Square Error,MSE),皮爾遜相關系數(Pearson Correlation Coefficient,PCC)以及相對誤差.均方根誤差用于度量預測值xi與真實值yi之間差異程度,其定義如式(7)所示: 在本文實驗中,i代表第i日,i的值固定為30.與此同時,皮爾遜相關系數定義為: 其中,X為預測的時間信號,Y為真實的時間信號,cov(X,Y)為兩者的協方差,σX和σY分別為兩者的標準差.而相對誤差定義為: 本文利用修改后的Unet 提取深度頻譜特征和電影觀影數據預測.在訓練中,該網絡利用隨機梯度下降(Stochastic Gradient Descent,SGD)法對參數進行優化,其中學習速率為0.005,學習速率衰減為0.000 01,沖量(momentum)為0.5.與此同時,本文采用Residual Net 作為分類器,其同樣利用隨機梯度下降法對網絡參數進行優化,其中學習速率為0.001,學習速率衰減為0.000 01,沖量為0.9. 實驗結果如表1所示,表中所示為各日預測結果的平均值.當僅給定前5日數據時,4 個指標的后25日的預測結果平均相對誤差均較大,分別達到26.8%,23.0%,17.0%和19.6%.而當獲取前15日數據或更多日期的數據后,本文算法對未上映日期的觀影數據預測能力將較為精確且趨于穩定,其預測誤差均接近甚至小于10%.圖4為基于動態算法的電影“侏羅紀世界”的預測結果示例. 為了驗證本文算法對于給定日期不同情況下的適用性,表2比較了5 種不同情況下本文算法的預測效果,分別為:(1)給定各部電影前5日觀影數據,預測各電影之后25日的觀影數據;(2)給定各部電影前10日觀影數據,預測各電影之后20日的觀影數據;(3)給定各部電影前15日觀影數據,預測各電影之后15日的觀影數據;(4)給定各部電影前20日觀影數據,預測各電影之后10日的觀影數據;(5)給定各部電影前25日觀影數據,預測各電影之后5日的觀影數據. 為了比較本文動態算法與傳統靜態算法的優劣,表2展示了由本文方法預測得到的觀影數據結果和僅用靜態數據預測得到第k日后的總票房或總觀影人數預測結果.其中,用于預測靜態數據包括:導演獲獎次數,男女主角的人氣(國內演員定義為百度貼吧粉絲數,國外演員定義為Twitter 粉絲數),男女主角的獲獎次數等.最后利用支持向量機(Support Vector machine Regression,SVR)對這些數據進行學習和預測.其具體算法可參考文獻[21].根據結果可知,相比于利用靜態數據進行預測,本文所提出的動態算法預測效果顯著提升.相對于使用靜態數據,在各個預測實驗中,使用動態算法使得預測誤差均下降超過45%.其中,在預測上映15日至第30日的總票房和總觀影人數時,利用動態算法所得到的結果誤差分別下降高達51.6%和57.7%. 表1 日觀影數據預測平均結果 圖4 侏羅紀世界觀影數據預測結果示例 針對當前電影觀影數據預測方法未利用上映時動態信息的缺點,本文提出一種基于生成式對抗網絡的電影觀影數據預測算法.該算法首先提取各電影已上映日期的15 種數據構成基本特征向量,然后利用傅里葉變換對這些特征向量進行動態編碼.最后利用生成式對抗網絡對編碼后的頻譜圖進行分析,從而預測和生成未上映日期的電影觀影數據.實驗結果表明,本文提出的預測算法相對于基于靜態數據的預測算法精度顯著提升.由于訓練數據數量所限,本文暫時未使用更加復雜的深層次網絡結構,因此預測效果仍有提升空間.未來的工作將著重于采集更多相關數據,并設計更加適合用于觀影數據預測的深度網絡. 表2 預測算法MSE 對比3.2 動態頻譜數據編碼

3.3 上座率和票房預測


4 實驗
4.1 數據庫
4.2 實驗設定



4.3 實驗結果


5 結束語
