林錦發,程良倫,應稼田
(1.廣東工業大學計算機學院,廣州510006;2.廣東工業大學自動化學院,廣州510006)
社交網絡(例如Facebook、Flickr 和微博)的流行度預測旨在利用在線系統中傳播的媒體信息(例如照片、視頻)或社交網絡元數據(例如媒體信息的發布時間、觀看次數和轉發次數等)預測某些事物在未來一段時間內的流行度。隨著移動互聯網的興起,社交網絡也變得越來流行。人們在這些社交網絡平臺上即時發布文字、圖片、視頻等內容,促使社交網絡信息的爆炸式增長。如此規模巨大的社交網絡信息無疑給流行度預測帶來了新挑戰與新難度。
目前,國內外學者對在線社交網絡流行度預測已有一定的成果且研究方向大致可以分為兩大類。第一類則通過時間因素或具有固有時間信息的屬性來估計某一事物的受歡迎程度。Wu 等人提出通過展開用戶社交媒體信息的背景動態并將時間背景納入其中來預測受歡迎程度[1]。He 等人將用戶評論建模為時間感知的二分圖,提出了一種基于正則化的排序算法[2]。雖然這些模型成功地使用了時間信息來預測流行度,但只使用了關于時間信息的元數據特征,基本的非時間信息元數據特征(如觀看次數、轉發次數)缺乏考慮。如何將多種元數據特征納入社交網絡流行度預測研究仍然是一個值得研究的問題。
第二類側重于研究整體流行變化的演變趨勢,即關注于內容的統計量分析。在早期,Szabo 和Huber?man 利用一種稱為模式特征分析的方法來預測社交網絡人氣趨勢[3]。Roy 等人提出了一種新穎的學習框架,利用來自社交流的背景知識來捕捉突然流行的趨勢[4]。Mathioudakis 和Koudas 通過社交網絡中的突發關鍵詞來檢測社交媒體的流行趨勢[5]。雖然以上模型可以成功地理解流行度趨勢的一般演變進化機制,但是面對大規模社交網絡信息,其數據量巨大與復雜,存在許多不同因素的影響,例如內容的質量、內容與用戶個體的相關性,這些都難以衡量,這將促使前期特征工程巨大。其次,真實世界中事件之間的關系和事件本身都很難提取,也很難建模。從微觀層面來看,整體流行度的演變可能通過復雜的用戶行為和內容屬性描述,這些行為也很難提取出具有代表的特征。
為了解決上述問題,本文提出一種基于One-DCNN 的多特征社交網絡流行度預測方法。這也是首次使用卷積神經網絡進行社交網絡流行度預測的特征提取任務中。該方法首先使用先驗知識規則對多種元數據進行先驗特征預處理,接著搭建One-DCNN 對預處理后數據進行特征提取,最后使用基于直方圖算法的LightGBM 對其進行回歸分析與預測。
提出的基于One-DCNN 的多特征社交網絡流行度預測方法由三部分組成:先驗特征構造、基于One-DCNN 的多特征提取和LightGBM 回歸分析。整體框架如圖1 所示,具體如下:
(1)先驗特征構造:首先對輸入的社交網絡元數據根據先驗知識進行預處理,接著采用獨熱碼(One-Hot Code)編碼機制將映射值轉為0-1 特征表。
(2)基于One-DCNN 的深度特征提取:考慮到預處理后的數據為1*N 的一維向量,使用三個卷積層和三個全連接層組成的One-DCNN 來提取特征。
(3)LightGBM 回歸分析:使用LightGBM 對上一階段倒數第二層全卷積層提取的特征進行回歸與預測。

圖1 整體模型框架
本文使用圖片分享網站Flickr 公開的超大規模數據集,包含超過432000 條元數據。一條元數據為一張照片對應的基本屬性與社交活動的統計描述等元數據,每一種元數據將其視為一個特征屬性,其中包括唯一標識號(pid)、關聯的用戶標識號(uer_id)、發布日期(postdate)、評論計數(commentcount)、人物數(haspeo?ple)、標題和標題的字符長度(titlelen 和deslen)、帖子中標簽的數量(tagcount)等。同時,也包括了以用戶為中心的信息,如平均觀看次數(avgview),組數(group?count)和參看照片的平均成員數量(avgmembercount)等。在訓練集數據集中,每條數據都有一個標簽,即社交網絡流行度值,值越大,表明該照片在Flickr 平臺上越熱門。本文最終預測的結果也是一個數值,數值越大則該事件越熱門。
One-Hot 編碼是指用N 位狀態寄存器來對N 個狀態進行編碼。例如將[0,0.3],(0.3,0.6],(0.6,1]表示為100,010,001,此時N 為3。One-Hot 編碼將離散特征的取值擴展到了歐氏空間,離散特征的某個取值就對應歐氏空間的某個點。在回歸、分類、聚類等機器學習算法中,特征之間距離的計算或相似度的計算是非常重要的,而常用的距離或相似度的計算都是在歐氏空間的相似度計算。
因為特征屬性中含有與時間相關的特征和與時間不相關的的特征,在進行One-Hot 編碼前,需要使用先驗知識規則對其進行預處理。
(1)處理與時間不相關的屬性:使用特征映射方法來獲得原始特征的統計信息。特征映射步驟如圖2 所示,即在同一區間相同數值大小間隔中,元數據映射到相同的值中。這樣就能成功減小每個屬性所占用的區間值即數據的跨度,減少后續的計算量。然后采用獨熱碼編碼機制將映射值轉化為具有0 和1 的特征表。經過獨熱編碼之后,屬性的特征變成稀疏了。這樣做的好處有:
①解決分類器不好處理屬性數據的問題;
②在一定程度上也起到了擴充屬性特征的作用;
③連續變量經過編碼后,從一個權重變為多個權重,提升了模型的非線性能力;
④隨著將大權重拆分成幾個小權重管理特征,降低了異常值對模型的影響,增加了模型穩定性。
映射規則如公式(1):

其中j0為k0到k1+C0區間的映射,以此類推到整個k 區間。Ci>=0,該值決定了圖2 中兩個區間之間重疊區域的大小,這個重疊區域避免區間分界處的特征出現偏差。

圖2 與時間無關的元數據特征的數據預處理
對于與時間無關的元數據特征,可以靈活地選擇適當的時間間隔。于是,設計了三條基于元數據觀測值的先驗知識規則,如下所示:
●規則1:每個間隔應覆蓋數據樣本的一些特征值,以使每個特征更具代表性。
●規則2:每個間隔的大小被設置為使得每個間隔大致包含相似數量的數據樣本。
●規則3:間隔的大小與每個元數據特征的平均值有關。例如,第一個區間的范圍可以設置為某個特征的平均值的1/3,而第二個區間的范圍可以設置為1/2的平均值。
在對與時間無關的元數據特征進行分析之后,發現相當多的特征值在相鄰區間的分界點附近。這些特征值可能具有兩個相鄰區間的特征。所以我們將圖2虛線框所示的重疊區域的值同時映射到兩個相鄰區間。
與時間無關的元數據特征預處理偽代碼如下:

(2)處理與時間相關的屬性。時間特征在預測任務中起著重要作用。不少文獻[15-16]通過時間對上下文語境進行建模來預測事物的流行度,并提出了在多時間尺度上研究社交網絡流行度。受到這些論文的啟發,將元數據中的時間戳,即“發布日期(postdate)”這個屬性轉換為具有不同時間尺度的新特征,包括年轉為季、月、周;月轉為周、天;周轉為天;天轉為時刻,等等。對于“時間區域”這個屬性,我們將它們中的每一個都視為一個特征。另外地,考慮到用戶上網行為具有時段性,人們正常使用網絡的高峰期為8 點-12 點;14 點-17 點;20 點-22 點。所以在特征映射階段,將24 小時進行錯分,使其時間特性更加精確,即:與時間相關的元數據特征預處理偽代碼如下:

在對時間相關和時間無關的元數據特征進行上述數據預處理之后,可以通過前后連接來自上述處理過程的結果來獲得數據樣本的特征表示。獲得的特征表示為一個一維的向量。
卷積神經網絡主要部分是卷積層和采樣層。

圖3 卷積神經網絡基本結構
如圖3 所示:mi×ni,mc×nc,ms×ns分別為輸入層、卷積層和采樣層中特征圖的維度大小,C1×C2為卷積核的維度大小,S1×S2是兩個維度上下采樣的比例。卷積層中的特征圖大小是由上一層特征圖和卷積核的大小共同決定的,而采樣層的特征圖大小由上一層特征圖和下采樣的比例決定。具體關系如下:

卷積層通過卷積核對輸入信號的卷積操作進行特征提取。卷積核的形狀和個數直接決定了網絡的整體性能:卷積核越小,提取的特征會越細致,但是會喪失輸入信號的相關性信息,使得網絡的泛化性降低.相反,卷積核越大,雖然會保留相關性信息,但是會造成信號的細節缺失。同時,卷積核的形狀也應與輸入信號的特征相匹配。卷積核個數的不同代表著輸入信號的特征提取方式的不同,即觀察輸入信號的角度不同。一般情況下,卷積核個數和網絡整體性能呈正相關關系,但是在增長到一定的上限后,在增加網絡計算規模的同時,其給性能帶來的提升會變得非常有限[6]。所以,卷積層的設計是針對不同目標任務的調優過程。
采樣層會對卷積層提取出的特征進行下采樣,采樣方法有均值采樣(Mean_Pooling)、最大值采樣(Max_Pooling)等。采樣比例的增大會提高網絡泛化能力,降低網絡規模,但是過大的降采樣比例會丟失大量特征信息,造成網絡性能的下降,所以采樣比例的選擇要適中。這種對提取出的特征進行高層聚合的行為是除了局部卷積以外,提高網絡泛化能力的第二個重要途徑。最后,在輸出層之前會添加一個全網絡層,用以將之前的局部觀察結果進行整合連接,進而在輸出層得出分類回歸結果或后驗概率。
卷積神經網絡起初被廣泛應用在圖像等領域,網絡的輸入大多是圖像等二維矩陣。卷積核、特征圖等網絡內部結構也都是二維的。隨后卷積神經網絡被應用于語音識別任務中,因為語音是典型的一維信號,為了適應語音信號的一維特性,文獻[7]提出一維卷積神經網絡用于語音信號的處理。因為一維卷積神經網絡中的輸入是一維向量,所以網絡內部的卷積核、特征圖也都是一維的即圖3 中的mi、mc、ms和C1、S1均等于1。表示第i 層第j 個特征圖上第y 個位置的值,該值可以通過上一層的一維向量和一維卷積核進行卷積得到:

式中,max(0,x)為激活函數,bij是偏置項,k 為在(i-1)層中連接到此特征圖的特征圖集合的序號,表示連接到序號為k 的特征圖的卷積核中第l 位置的值,Li 第i 層中卷積核的長度。
受到語音識別在一維卷積神經網絡任務中獲得成功的啟發,在保留卷積神經網絡的局部觀察、權值共享以及高層聚合等特性[8]的同時,為了適應先驗特征構造后的一維特征向量,本文構建出One-DCNN,用于提取元數據特征,如圖4 所示。

圖4 One-DCNN結構
由三個卷積層和三個全連接層組成:
(1)對于卷積層,它是提取數據結構特征的必不可少的層。每個卷積層后面都有一個Max_Pooling 層,并由ReLU 函數激活。Max_Pooling 有效地減少了網絡的大小,加快了計算速度。
(2)對于全連接層,緊隨其后的是Dropout 操作,并由ReLU 函數激活。Dropout 操作可以有效避免過度擬合。先前的卷積層提取相對具體的特征,而全連接層提取相對抽象的特征。依據U-Net[9]神經網絡的思想,將第二個卷積層的輸出與最后一個卷積層的輸出拼接為第一個全線性層。這樣能更好地融合高低層特征。
為了說明One-DCNN 在大規模社交網絡數據集中能有效提取出多種元數據特征,展示了One-DCNN 提取到的一些特征例子,如圖5 所示,其中子圖(a)和(b)是兩個數據樣本的特征直方圖,其標簽值都為1.0,而子圖(c)是標簽值為2.0 的數據樣本的特征直方圖。從這三個直方圖的形狀中,可以觀察到樣本1 和樣本2的直方圖分布非常相似。相比之下,樣本2 和樣本3的直方圖分布差異很大。因此,可以得出這樣的結論:One-DCNN 可以提取出有效的特征表示,從而很容易地區分具有不同標簽值的樣本。在數學上,可以計算它們的特征向量之間的歐氏距離。如表3 中的距離矩陣所示,樣本1 和樣本2 的特征值之間的歐幾里得距離為0.10,而樣本1 和樣本3 的特征值之間的距離為11.47。同樣地,歐幾里得距離越大,獲取的特征區分度大,說明One-DCNN 在本模型中提取特征的有效性。

圖5 One-DCNN提取不同樣本獲得的特征分布
此外,表2 中繪制了另一個距離矩陣。如表2 所示,其歐幾里得距離值是直接在先驗特征構造階段獲得的特征計算的,而表1 中的值是根據One-DCNN 提取特征后計算得來的。對于具有相同標簽值的數據樣本(即樣本1 和2),表1 和表2 中的距離值分別是0.10和1.41。對于具有不同標簽值的數據樣本,例如樣本1和3,表1 和表2 中的距離值分別是11.47 和1。從表2 可以看出,具有相同標簽值的樣本sample1 與sam?ple2 之間的歐氏距離大于具有不同標簽值的樣本sam?ple1 與samlpe3。這更加表明了使用One-DCNN 對大規模數據集進行多特征提取的重要性。

表1 One-DCNN 獲取不同樣本特征的歐幾里得距離

表2 先驗特征構造階段不同樣本特征的歐幾里得距離
LightGBM 是一個梯度boosting 框架,采用直方圖算法,其思想是將連續的浮點特征離散成k 個離散值,并構造寬度為k 的直方圖。使用直方圖算法的Light?GBM 具有降低內存消耗的優點,直方圖算法不僅不用額外存儲預排序的結果,而且可以只保存特征離散化后的值,這值一般用8 位整型存儲就足夠了,內存消耗可以降低為原來的1/8。LightGBM 還使用按層生長(level-wise)的決策樹生長策略,level-wise 過一次數據可以同時分裂同一層的葉子,容易進行多線程優化,也好控制模型復雜度,不容易過擬合。
將One-DCNN 的第二層全連接層(即圖3 中的Full-linear2)的輸出接入到了LightGBM 作為其輸入,因為第二層全連接層提取了輸入數據的具體和抽象的特征,經One-DCNN 統一處理后得到的特征向量數據量大且具有稀疏性,而這些特征可以被LightGBM 模型無縫地用于網絡熱點的預測。
本文采用深度學習框架PyTorch 進行實驗研究,PyTorch 能夠在強大的GPU 加速基礎上實現張量和動態神經網絡。服務器配置如下:Ubuntu-16.04LTS,CPU為Intel 酷睿i7-8700K 處理器,主頻3.70 GHz,64 GB內存,GPU 為NVIDIA GeForce GTX 1080ti,11GB 顯存。
根據時間順序將數據分成訓練集和測試集,訓練集包含389155 個樣本和一個測試集包含43235 個樣本。因為每條數據都有一個真實的標簽,在訓練階段會得到一個預測結果,所以使用Mean Absolute Error(MAE)和Mean Squared Error(MSE)進行性能評估。實驗結果如下:MAE:0.7862,MSE:1.1386,SPR:0.8524。
對于One-DCNN 網絡的參數優化,首先正常的卷積神經網絡模型通常會出現過度擬合。因此,引入Dropout 和L2-regularization 技術。然后嘗試兩種卷積核組合,一種是“3,5,4”的卷積核,另一種是“2,3,2”。并且做了對比試驗,如圖6 所示,分別測試了CNN,CNN+Dropout,CNN+L2-regularization,CNN+Dropout+L2-regularization 的性能。從圖中可以看出,CNN+Dropout+L2-regularization 可以獲得更好的性能。特別是“3,5,4”的卷積核優于“2,3,2”的卷積核,這表明更大的卷積核往往適用于大規模的數據集。

圖6 不同卷積核在不同優化模型中的性能表現
One-DCNN 網絡結構的參數如表3 所示。其中卷積層的值以“input,output,kernel,stride”格式表示,即輸入通道的大小,輸出通道的大小,卷積核大小和每個卷積層的步長。Max_Pooling 層的值為“kernel,stride”,即Max_Pooling 層的卷積核大小和步長。Dropout 的值是一個概率。全連接層表示神經元的數量。
LightGBM 中有許多參數,如“num_leaves”、“max_bin”、“learning_rate”、“min_data_in_leaf”、“min_child_weight”、“feature_fraction”和“bagging_fraction”等。該實驗使用交叉驗證來調整參數以尋求最佳參數組合。
特別對于“num_leaves”(即葉節點數),這是控制樹模型復雜性的重要參數之一。理論上,可以通過設定num_leaves=2(max_depth)。但這樣容易過擬合,因為當這兩個參數相等時,leaf-wise-tree 的深度要遠超depthwise-tree。因此在調參時,往往會把num_leaves 的值設置得小于2(max_depth)。如圖7 所示,“num_leaves”值對LightGBM 性能的影響。從圖中可以看到,較大的“num_leaves”值往往會獲得更好的性能。但是,較大的“num_leaves”會導致更多的時間成本。

圖7 不同的“num_leaves”在LightGBM模型的表現
LightGBM 是一個非常復雜的模型,有很多參數。其參數設置如表4 所示。

圖8 與單一模型對比
采用時間序列分析法(ARIMA)、多項式核函數相關向量機(Kpoly-RVM)作為對比模型。如圖8 所示,展示了不同模型的性能。從對比結果可以得到如下結論:
(1)相對于ARIMA 模型,本文模型針對大規模網絡熱點事件的預測性能更優,這表明本文模型克服了ARIMA 只能描述網絡熱點事件線性變化、周期性變化的特點,具有較好的非線性預測能力。

表3 One-DCNN 網絡結構參數

表4 參數設置
(2)相對于單一函數的Kpoly-RVM 模型,預測值與真實值吻合得相當得好,預測誤差明顯低于單一核函數預測誤差,能夠達到理想的預測效果。這表明One-DCNN 在特征提取階段可以進一步挖掘隱含于社交網絡動態變化信息,促使預測結果更加可靠。
由于預測社交網絡流行度可被視為回歸問題,因此現有機器學習模型可直接應用于Flickr 數據集的元數據特征。因此,將本文的模型與一些常用方法,包括線性回歸(Linear Regression,LR),決策樹回歸器(Deci?sion Tree Regression,DTR),AdaBoost 回歸器(AdaBoost Regression,ADR)和梯度提升回歸器(Gradient Boosting Regression,GBR)進行比較。如圖9 所示,本文模型在所有三種性能指標方面均優于其他方法。
針對傳統的社交網絡流行度預測模型只考慮了少數的特征,致使預測結果在大規模數據集中表現不好,提出基于一維卷積神經網絡的多特征預測模型。該模型充分考慮了10 種元數據特征,首先進行先驗特征構造,形成具有一維特性的0-1 向量,接著搭建一維卷積神經網絡,以卷積核作為觀察窗,提取數據的深層特征。隨后,使用LightGBM 對倒數第二層的全卷積層提取到的特征進行回歸。最后,選取多種常見社交網絡流行度預測模型進行對比實驗,實驗結果驗證了該模型較其他模型在大規模數據集上效果更好。未來工作需要對一維卷積網絡結構進行改進與完善,進一步提升網絡訓練速度。

圖9 與其他回歸模型對比