王世杰,周麗華+,孔 兵,周俊華
1.云南大學 信息學院,昆明650504
2.云南大學 公共管理學院,昆明650504
Twitter、Facebook、微信和新浪微博等在線社交平臺的出現(xiàn)深刻地改變了用戶之間信息傳遞的方式,極大地促進了信息的產生與傳遞。以新浪微博為例,截至2017年1月,中國網(wǎng)民規(guī)模達7.31 億,其中新浪微博注冊用戶已超過2.67 億[1]。如此巨量的消息中蘊含著豐富的知識,比如用戶的偏好、轉發(fā)行為及用戶間的關系。這些知識的挖掘在病毒式市場營銷、在線廣告投放、信息推薦和謠言控制等方面具有極其廣泛的應用價值,因此具有非常重要的研究意義[2]。
信息級聯(lián)預測是基于信息早期的傳播特征來預測其未來的傳播范圍。然而,由于社交平臺通常是大規(guī)模的開放系統(tǒng)并且會受到外部因素的影響[3],比如網(wǎng)絡拓撲結構、關注關系、用戶興趣、發(fā)布時間、隱私保護等,加之網(wǎng)絡用戶規(guī)模大,信息動態(tài)擴散,速度快,傳播的路徑和過程存在較大的隨機性,不同信息的“流行度”不均衡,因此信息級聯(lián)的準確預測具有挑戰(zhàn)性[4]。
在信息級聯(lián)的預測中,目前的方法主要分為基于特征的方法[1-9]和生成方法[10-17],其中基于特征的方法首先基于人類的先驗領域知識提取信息的各類特征,比如時間特征、結構特征、內容特征等,通過訓練回歸/分類模型來預測信息在未來的流行度。這種方法特征選擇的難度較大,特征選擇的優(yōu)劣對于預測效果的影響也很大。雖然使用深度學習的方法能夠自動學習流行度預測的特征[3],避免人工提取特征的困難,提高了預測精度,但是這些學到的特征缺乏清晰的可解釋性,難以理解信息受歡迎的具體原因。相反,生成方法致力于表征和建模一條信息引起注意的過程,使人們很容易理解控制信息流行動態(tài)的基本機制。但是生成方法的預測能力不理想,因為它們沒有針對流行度預測進行優(yōu)化[3]。比如,Hawkes過程通過模擬新事件的到達率建模消息流行的動態(tài),通過用戶的影響(影響力大的用戶對新轉發(fā)的到達率的貢獻更大,影響力大的用戶轉發(fā)的推文往往轉發(fā)更多)、自我激勵機制(每次轉發(fā)都對未來新轉發(fā)的到達率有貢獻)和時間衰減效應(轉發(fā)的影響隨著時間的推移而衰減)三個關鍵因素很好地解釋觀察到的轉發(fā)。
為了克服流行度預測中基于特征的方法和生成方法的不足,Cao等人[3]使用消息的轉發(fā)量或轉發(fā)增量來度量消息的流行程度,將具有高理解性的Hawkes模型與具有高預測精度的深度學習相結合,提出了DeepHawkes 模型。DeepHawkes 模型不僅繼承了Hawkes 過程的高度可解釋性,而且具備深度學習方法的高準確預測能力,彌合了信息級聯(lián)的預測與理解之間的間隙。然而,DeepHawkes 模型旨在對信息的傳播過程進行建模,忽略了信息本身的文本內容對于傳播的影響。事實上,信息的文本內容對信息傳播的影響也很大,因為不同的內容涉及不同的主題,不同的用戶對不同主題的興趣不同,涉及不同主題的信息往往具有不同的流行程度。因此在對信息傳播情況進行預測時,消息的文本內容也是不可忽略的因素。
本文在DeepHawkes 模型的基礎上進一步考慮了信息的文本內容對于擴散的影響,將LDA(latent Drichlet allocation)主題模型融入DeepHawkes 模型中,提出了LDA-DeepHawkes模型。該模型分析了信息文本內容的主題,考慮了主題之間的自激機制,并將級聯(lián)和文本內容的影響融合在一起。本文的主要貢獻包括:
(1)提出了考慮主題的DeepHawkes 模型,利用LDA 主題分類模型抽取消息文本內容的主題,并用深度模型學習主題的表示向量,模擬主題之間的自激機制。
(2)提出了LDA-DeepHawkes 模型,該模型通過加和池進行池化的方式將只考慮信息級聯(lián)的Deep-Hawkes 模型與LDA 主題分類模型相融合,使得預測模型既考慮了級聯(lián)的因素,又考慮了文本內容的主題特征,從而更加全面地建模了信息擴散過程,提高流行度預測的準確度。
(3)在真實數(shù)據(jù)集上進行了充分的實驗,對多個算法在不同條件下的預測結果進行了比較,驗證了所提方法的有效性。
本章主要介紹信息流行度預測的方法,包括基于特征的方法、基于深度學習的方法、生成方法以及融合深度學習和生成方法的方法,同時簡介LDA 模型的應用。
基于特征的方法通過人工提取各種與信息流行度相關的特征,如時間特征[1-3]、結構特征[4-6]和內容特征[7-9],將流行度預測任務視為一種回歸或分類問題。朱海龍等人[4]基于微博未來流行度與早期傳播趨勢變化之間存在的正相關關系,提出了傳播加速度的概念,并基于傳播加速度和早期流行度建立了一個多元線性回歸預測模型。劉瑋等人[5]提出了基于時間衰減的用戶興趣計算模型,有效地度量了用戶興趣及其變化特性對用戶轉發(fā)行為的影響程度。Pinto 等人[6]根據(jù)流行度的歷史信息對消息的未來流行度進行了預測。Cheng 等人[7]發(fā)現(xiàn)在信息級聯(lián)預測研究中,時態(tài)和結構特征是級聯(lián)大小的關鍵預測因素。Wang 等人[8]為了建模級聯(lián)動態(tài),從觀察的級聯(lián)中學習兩個低維的用戶側(user-specific)矢量來捕捉用戶的影響和敏感性,避免了級聯(lián)動態(tài)預測中的過擬合問題。曹玖新等人[9]基于用戶屬性、社交關系和微博內容三類綜合特征,對微博用戶的轉發(fā)行為和轉發(fā)路徑進行了預測。Tsur 等人[10]提出了一種基于線性回歸的有效混合方法,預測在給定時間范圍內信息的傳播范圍,并發(fā)現(xiàn)內容特征與時間和結構特征的組合能最小化預測誤差。然而,這些方法的預測性能很大程度上取決于提取的特征,而這些特征通常是基于人類的先驗知識監(jiān)督提取,面對復雜的問題和海量的數(shù)據(jù),人們很難系統(tǒng)地設計和度量能夠有效捕獲相關信息的復雜特征。
為了從復雜、海量的數(shù)據(jù)中自主提取特征,研究者將深度學習應用于信息流行度預測。Trzcinski 等人[11]采用長時循環(huán)卷積網(wǎng)絡(long-term recurrent convolutional networks,LRCN)從視頻內容中提取特征,然后使用提取的特征預測視圖數(shù)量。Li 等人[12]提出了一種端到端的神經網(wǎng)絡框架DeepCas,將級聯(lián)圖表示為一組隨機游走路徑,通過詳細設計的GRU 神經網(wǎng)絡結構和注意機制來預測未來的級聯(lián)大小。但是,DeepCas 只使用了用戶網(wǎng)絡信息,并忽略了流行度預測的時態(tài)信息。Chen 等人[13]設計了一種使用雙向門控循環(huán)單元的流行預測模型,以數(shù)據(jù)驅動的方式提取和融合文本內容和時間序列的豐富信息,并引入注意力機制抑制數(shù)據(jù)中的噪聲。這些使用深度學習的方法雖然能夠自主學習流行度預測的特征,避免人工提取特征的困難,提高了預測精度,但是這些學到的特征缺乏清晰的可解釋性,難以幫助人們理解控制信息級聯(lián)流行動態(tài)的潛在機制。
生成方法將信息的流行度累積視為用戶轉發(fā)行為的激勵過程,并對該過程進行建模。Zhao 等人[14]在自激點理論的基礎上,設計了一個統(tǒng)計模型對信息流行度進行預測。Yang 等人[15]通過觀察信息的傳播情況,用點激勵過程的混合概率模型預測消息未來的流行度。Zhou 等人[16]利用多維Hawkes 過程發(fā)現(xiàn)社會網(wǎng)絡中的隱藏特征并將其應用于信息流行度預測。Wang 等人[17]利用時間窗口對信息擴散級聯(lián)進行建模,提出一種用于突發(fā)事件預測的算法。Shen等人[18]采用強化泊松過程對社會網(wǎng)絡中的三種因素(節(jié)點的影響力、信息熱度衰減過程以及“富者愈富”機制)進行建模。隨后,文獻[18-20]利用Hawkes模型模擬了信息引起關注和轉發(fā)的過程,并采用深度學習技術對轉發(fā)情況進行研究,使得關于信息級聯(lián)的流行動態(tài)的潛在機制更易理解。雖然生成方法解釋性好,但其預測效果不夠理想。
DeepHawkes 模型[3]是霍克斯方法的延伸。原始的Hawkes 方法僅使用跟隨者的數(shù)量作為用戶特征,而DeepHawkes 使用用戶嵌入向量并采用門控循環(huán)神經單元(gated recurrent unit,GRU)來編碼級聯(lián)路徑。GRU和長短時記憶模型(long short term memory,LSTM)都是循環(huán)神經網(wǎng)絡(recurrent neural network,RNN)的變體,用以緩解RNN 在學習過程中梯度爆炸和梯度消失的現(xiàn)象,從而解決RNN 網(wǎng)絡中的長期依賴問題。與LSTM 相比,GRU 的結構更簡單,學習效率更高。DeepHawkes融合了基于深度學習方法的高預測性和生成方法的高解釋性,彌合了信息級聯(lián)的預測與理解之間的間隙,但該模型僅考慮了用戶信息和級聯(lián)路徑信息,忽略了信息內容對信息流行度的作用。
因此,針對上述問題,本文提出了基于LDADeepHawkes 模型的信息級聯(lián)預測,該模型不僅融合了DeepHawkes 的高解釋性和高預測性能,還利用LDA 模型考慮了信息內容對信息流行度的影響。
LDA 主題模型是一種主題生成技術[21],常用來識別大規(guī)模文檔集或語料庫中潛在的主題信息,Ramage 等人[22]針對信息傳播中的內容特征,利用了主題分類模型,用主題特征描述消息內容。張晨逸等人[23]提出了一種基于文本內容關聯(lián)關系的主題模型,進一步體現(xiàn)了主題特征在文本內容中的代表性。最近幾年在信息預測中得到廣泛應用。比如,Kang 等人[24]基于LDA 模型提出了一種融入社交網(wǎng)絡關注度的信息預測算法,用于預測信息的傳播情況。Liu 等人[25]通過擴展LDA 模型,將n維特征整合為幾個潛在主題,提出一種新的概率主題模型來預測多個因素模型框架下的人格特征。Wang 等人[26]將標簽傳播算法與LDA 模型結合,根據(jù)微博內容、用戶之間的社交關系以及不同的興趣區(qū)域,提出了一種基于用戶交互行為的用戶影響力預測算法。
在介紹本文提出的LDA-DeepHawkes 模型之前,先對本文所使用到的符號進行說明。
設在線社交平臺有M條消息M={mi}(1 ≤i≤M),mi的擴散過程用級聯(lián)表示,其中元組對應于消息mi的第j次轉發(fā),表示用戶轉發(fā)來自的消息是原始帖子和第j次轉發(fā)之間時間間隔。消息mi的流行度定義為時間t之前消息的轉發(fā)數(shù)量,即流行度的預測問題定義為:基于消息mi的文本內容和時間窗口[0,T)中觀察到的級聯(lián),預測級聯(lián)Ci觀察到的流行度與最終流行度之間的增量文中符號概述如表1 所示。
Table 1 Overview of symbols表1 文中符號概述
LDA-DeepHawkes 模型包括關于級聯(lián)的Deep-Hawkes 組件、關于主題的DeepHawkes 組件及上述兩個組件的融合,其框架如圖1所示。LDA-DeepHawkes模型將信息級聯(lián)及消息的文本內容作為輸入,將模型的輸出作為級聯(lián)轉發(fā)增量的預測值。
關于級聯(lián)的DeepHawkes 組件采用Cao 等人[3]所提的模型。組件以信息級聯(lián)作為輸入,將輸入的級聯(lián)轉換為一組擴散路徑,每個擴散路徑描繪了在觀察時間內信息的轉發(fā)過程。組件通過用戶嵌入、轉發(fā)路徑編碼及時間衰減三個組成部分對Hawkes過程的可解釋因素進行類比。
(1)用戶嵌入
用戶嵌入將用戶身份嵌入低維空間以表示用戶對信息擴散的影響。通常,在線內容在未來受歡迎的程度與參與用戶有關(參與者的影響力越大,收到的轉發(fā)就越多),并且在社交網(wǎng)絡中位置不同或興趣不同的用戶對信息擴散產生的影響也可能不同。Cao 等人[3]在受監(jiān)督的流行度預測框架下學習用戶身份的表示,并用學習到的表示(對于流行度預測是最優(yōu)的)作為用戶影響的表達。
Fig.1 Frame of LDA-DeepHawkes圖1 LDA-DeepHawkes框架
(2)級聯(lián)轉發(fā)路徑編碼
級聯(lián)轉發(fā)路徑編碼通過循環(huán)神經網(wǎng)絡(GRU)單元模擬級聯(lián)中每個用戶在當前轉發(fā)之后對隨后的轉發(fā)產生的影響(影響傳遞)及用戶在級聯(lián)結構中的重要性。影響的傳遞表示以前的參與者不僅影響其直接轉發(fā)者,而且還通過傳遞性的方式對間接轉發(fā)者產生影響。用戶在級聯(lián)結構中的重要性通過用戶在多個轉發(fā)路徑中頻繁出現(xiàn)來表示。各個轉發(fā)路徑最后一個GRU 的輸出被傳送給融合組件,通過累加各種影響實現(xiàn)Hawkes 的自我激勵機制(每次轉發(fā)都會增加未來新轉發(fā)的到達率)。
(3)時間衰減效應
時間衰減效應表示轉發(fā)的影響隨著時間的推移而衰減。假設在時間T內觀察到所有消息的擴散,那么未知的時間衰減效應?(t)是一個在[0,T)上連續(xù)變化的函數(shù)。Cao 等人[3]將時間長度T分割為多個不相交的區(qū)間來近似?(t),并使用非參數(shù)方法學習相應的離散時間衰減效應因子λl。
關于級聯(lián)的DeepHawkes 組件中用戶嵌入、路徑編碼及時間衰減的細節(jié)參見文獻[3]。
關于主題的DeepHawkes 組件以信息的文本內容作為輸入,通過LDA 主題模型抽取消息中的主題,構建主題嵌入矩陣,將抽取的主題轉換為一組主題路徑并傳遞到循環(huán)神經網(wǎng)絡GRU 進行編碼,以模擬主題路徑中主題間的影響(影響傳遞)及主題在主題路徑結構中的重要性。組件通過主題嵌入、主題路徑編碼及主題重要性衰減三個組成部分對Hawkes過程的可解釋因素進行類比。
3.2.1 主題嵌入
不同的消息涉及不同的主題。本文通過LDA 主題模型抽取消息中的主題,并構建主題信息嵌入矩陣。構建過程如下:
分詞。由于微博文本內容具有數(shù)據(jù)集較大,詞長較短的特點,本文使用python 的結巴分詞包[27],采用精確分詞模式對消息內容進行分詞,并去除單字詞及標點符號。
構建文檔-詞頻矩陣。統(tǒng)計所有消息中的總詞數(shù)和各詞出現(xiàn)的次數(shù),構建文檔-詞頻矩陣:若消息mi中包含詞wj,則文檔-詞頻矩陣中的元素xji為詞wj的出現(xiàn)次數(shù)在總詞數(shù)中的占比,即,否則xji=0。
LDA 主題建模。將文檔-詞頻矩陣輸入LDA 主題分類模型,構建主題-詞頻矩陣和文檔-主題矩陣。主題-詞頻矩陣存儲各個主題生成不同詞的概率,文檔-主題矩陣存儲各個消息對應到不同主題的概率。
LDA 模型是一個包含詞、主題和消息文檔的三層產生式全概率生成模型,模型結構如圖2 所示,其基本思想是把文檔視為其隱含主題的混合,而每個主題則表現(xiàn)為跟該主題相關的詞的頻率分布。圖2中M為消息總數(shù),K為主題數(shù),每條消息的文本內容由多個詞構成,所有消息中包含的N個詞組成一個詞集。?k表示主題k中所有詞的概率分布,θi表示消息mi的所有主題的概率分布,θi和?k分別服從超參數(shù)α和β的狄利克雷先驗分布。wi,n和zi,n分別表示消息mi中的第n個詞及第n個詞的主題。
Fig.2 LDA topic classification model圖2 LDA 主題分類模型
LDA 以M條消息的文本內容作為輸入,將消息的文本內容作為文檔,以主題-詞頻矩陣和文檔-主題矩陣作為輸出。主題-詞頻矩陣描述每個主題生成不同詞的概率,文檔-主題矩陣描述每條消息對應到不同主題的概率。設nsw表示詞集中對應于主題S的第W個詞的數(shù)目,Nw表示所有主題S詞的數(shù)目,則主題-詞頻矩陣中元素psw表示主題S的第W個詞的概率,設nij表示消息mi對應第j個主題的詞的數(shù)目,則文檔-主題矩陣中元素Pij表示消息mi對應第j個主題的概率
LDA 模型基于當前的θi和?k,為一個消息中的一個單詞計算它對應任意一個主題的概率:
根據(jù)各個對應主題概率值的大小更新這個詞應該對應的主題。如果這個更新改變了這個詞所對應的主題,則對θi和?k進行更新。不斷迭代這個過程直至各個概率不再變化(模型收斂)。模型收斂后即可獲得主題-詞頻矩陣和文檔-主題矩陣。
構建主題嵌入矩陣。采用Word2Vec 方法[28]生成各個詞的詞向量,然后取每個主題下所有關鍵詞的詞向量的平均作為該主題的表示向量。主題嵌入矩陣B∈RL′×K的每一列表示一個主題的表示向量,L′是主題表示向量的維度,K是主題數(shù)目。
例表2 所示的示例數(shù)據(jù)集包含了消息序號、消息內容、消息的轉發(fā)路徑及轉發(fā)時間,其中第三列“轉發(fā)路徑及轉發(fā)時間”中“/”表示用戶之間的轉發(fā)關系,“:”后的數(shù)字代表轉發(fā)時間與消息發(fā)布時間的間隔(單位:s),比如第一行第三列的“1/2:2 700”表示用戶2 轉發(fā)了用戶1 發(fā)布的消息,轉發(fā)時間發(fā)生在用戶1 發(fā)布消息后的第2 700 s。
Table 2 Example of dataset表2 數(shù)據(jù)集示例
對表2 中第二列“消息內容”進行分詞,結果如表3 所示。
Table 3 Participle result of message text表3 消息文本的分詞結果
表4 和表5 分別統(tǒng)計了消息文本中各詞出現(xiàn)的次數(shù)及各詞在各個文檔中出現(xiàn)的頻率。
設每個主題取3個關鍵詞,則各個主題的關鍵詞如表6 所示,各條消息涉及的主題及各個主題在消息中的權重如表7 所示。
Table 4 Count of words表4 詞數(shù)統(tǒng)計
Table 5 Word frequency-document matrix表5 詞頻-文檔矩陣
Table 6 Keywords of each topic表6 各主題關鍵詞
Table 7 Topics covered by each message and weight of each topic表7 各條消息所涉及的主題及各個主題的權重
設主題表示向量的維度為3,則主題嵌入矩陣B如表8 所示。
Table 8 Topic embedding matrix B表8 主題嵌入矩陣B
3.2.2 主題路徑編碼
設消息mi涉及n個主題t1,t2,…,tn,這n個主題在當前消息中所占的比重r1,r2,…,rn滿足r1>r2>…>rn,則這n個主題的子集稱為消息mi的主題路徑。每條主題路徑中的每個主題被表示為一個one-hot 矢量q′∈RK,其中K是主題總數(shù)。所有主題共享一個嵌入矩陣B∈RL′×K,其中L′是主題表示向量的維度。主題嵌入矩陣B將每個主題轉換為它的表示向量:
與用戶嵌入矩陣A類似,主題嵌入矩陣B也是在訓練過程中在未來流行度的監(jiān)督下進行學習,因此學到的主題嵌入矩陣B對于流行度預測是最優(yōu)的。
主題路徑編碼通過循環(huán)神經網(wǎng)絡GRU 模擬主題路徑中主題間的影響(影響傳遞)及主題在主題路徑結構中的重要性。影響的傳遞表示權重大的主題對所有權重小的主題產生影響。主題在主題路徑結構中的重要性通過主題在多個主題路徑中頻繁出現(xiàn)來表示。各個主題路徑最后一個GRU 的輸出被傳送給融合組件,通過累加各種影響實現(xiàn)Hawkes 的自我激勵機制。
使用GRU 為消息mi的每個主題,1 ≤j≤K進行編碼時,GRU 中第t個隱藏狀態(tài),其中輸出ht′∈RH,輸入是主題表示向量,RH是先前的隱藏狀態(tài),L′是主題嵌入的維度,H是隱藏狀態(tài)的維度。
重置門rt′∈RH的計算:
其中,σ(?)是sigmoid激活函數(shù),W′r′∈RH×L′,U′r′∈RH×H和b′r′∈RH是GRU 在訓練過程中學到的參數(shù)。
其中,W′z′∈RH×L′,U′z′∈RH×H和b′z′∈RH。
3.2.3 主題重要性衰減效應
不同的主題對于信息傳播的貢獻不同,通常相關性高的主題影響更大。本文使用LDA 獲得的消息-主題矩陣中各個主題在消息中的權重作為主題重要性衰減因子比如
融合組件包含池化層、兩個全連接層和輸出層。池化層將關于級聯(lián)的DeepHawkes 組件和關于主題的DeepHawkes 組件的各個路徑(級聯(lián)路徑和主題路徑)的最后一個GRU 的輸出通過池化的方式融合在一起,綜合反映級聯(lián)和主題對于信息擴散的影響。消息mi的級聯(lián)-主題表示定義為:
其中,Ki是消息mi涉及的主題數(shù)目。
池化層的輸出傳遞給全連接層作為其輸入,輸出層只有一個輸出單元,其輸出值為最小化目標函數(shù)定義為,其中為消息mi的預測增量流行度,是真正的增量流行度,M是消息總數(shù)。由于平方損失容易受到異常值的影響,因此目標函數(shù)對增量流行進行對數(shù)變換。變換后的目標函數(shù)的行為類似于平均絕對百分比誤差(mean absolute percentage error,MAPE),并且更容易優(yōu)化。
LDA-DeepHawkes的算法描述如下:
DeepHawkesc(Ci)和DeepHawkesc(mi)分別表示關于級聯(lián)的DeepHawkes組件和關于主題的DeepHawkes組件,它們的輸入分別是級聯(lián)和消息的文本內容。
LDA-DeepHawkes算法:
本章將介紹LDA-DeepHwakes 的實驗評估。實驗的操作系統(tǒng)為Linux(Ubuntu 16.0),硬件環(huán)境為Intel?CoreTMi7-7800k(3.4 GHz),RAM 為16 GB,顯卡為Nvidia 1080Ti(11 GB)。
(1)數(shù)據(jù)集。本文實驗使用了兩個從新浪微博爬取的真實數(shù)據(jù)集。新浪微博是國內最大的微博系統(tǒng),系統(tǒng)中用戶發(fā)博時間具有明顯的日分布和周分布模式,博文數(shù)目分布表現(xiàn)為威布爾分布,博文的轉發(fā)和評價行為具有很強的相關性,且博文轉發(fā)概率要高于評價概率[29]。數(shù)據(jù)集1 的爬取時間為2018年6月20日8:00 至2018年6月21日16:00,其中2018年6月20日8:00 至2018年6月20日16:00爬取微博消息及其轉播路徑,2018年6月20日16:00 至2018年6月21日16:00 只對已爬取的微博進行轉發(fā)量的跟蹤,而不爬取新的微博消息。數(shù)據(jù)集2 的爬取時間為2018年10月22日19:00 至2018年10月23日19:00,其中2018年10月22日19:00 至2018年10月22日22:00 爬取微博消息及其轉播路徑,2018年10月22日22:00至2018年10月23日19:00 只對已爬取的微博進行轉發(fā)量的跟蹤,而不爬取新的微博消息。爬取的數(shù)據(jù)包含消息ID、消息發(fā)布者ID、轉發(fā)者ID、消息轉發(fā)時間與消息發(fā)布時間的時間間隔(單位:s)和消息的內容。數(shù)據(jù)集格式如表2 所示。
在爬取的數(shù)據(jù)中,有少量消息轉發(fā)量過少或過大。為了減少這些極端情況對于預測結果的影響,本文將收集的數(shù)據(jù)中轉發(fā)量小于10 或大于1 000 的微博消息刪除。兩個數(shù)據(jù)集的部分特征如表9 所示。
(2)Baseline 模型。采用Feature-linear、DeepCas和DeepHawkes 三種模型作為本文的Baseline 模型。Feature-linear[7]是一種基于時間特征、結構特征和時間衰減等特征的級聯(lián)預測模型。DeepCas[14]是一種基于表示學習的級聯(lián)預測模型。DeepHawkes[3]是融合了深度學習和Hawkes模型的級聯(lián)預測模型。由于信息擴散受多種因素的影響,為了分析不同因素對消息傳播的影響,除了Baseline 模型,本文還設計了如下幾種DeepHawkes和LDA-DeepHawkes的變體模型:
Table 9 Partial characteristics of datasets表9 數(shù)據(jù)集部分特征
DH-U:只使用用戶信息的DeepHawkes模型。
DH-P:只使用級聯(lián)路徑信息的DeepHawkes模型。
LDA-DH-S:只使用LDA 主題信息且只有一條主題路徑的LDA-DeepHawkes模型,如圖3(a)所示。
LDA-DH-M:只使用LDA 主題信息但有多條主題路徑的LDA-DeepHawkes模型,如圖3(b)所示。
LDA-DH-US:只使用用戶信息和主題信息且只有一條主題路徑的LDA-DeepHawkes 模型,如圖3(c)所示。
LDA-DH-UM:只使用用戶信息和主題信息但有多條主題路徑的LDA-DeepHawkes 模型,如圖3(d)所示。
LDA-DH-PS:只使用級聯(lián)路徑信息和主題信息且只有一條主題路徑的LDA-DeepHawkes 模型,如圖3(e)所示。
LDA-DH-PM:只使用路徑信息和主題信息但有多條主題路徑的LDA-DeepHawkes 模型,如圖3(f)所示。
(3)評價指標。與文獻[3]類似,本文使用均方對數(shù)誤差(mean square log-transformed error,MSLE)[3]和中值平方對數(shù)誤差(median square log-transformed error,mSLE)[3]作為評價指標。MSLE用于度量預測值和真實值之間的誤差,其定義為其中M是消息的數(shù)目,SLEi是消息mi的對數(shù)誤差,SLEi=分別為消息mi流行度的預測增量和真實增量。mSLE是SLEi(i=1,2,…,M)的中位數(shù),即mSLE=median(SLE1,SLE2,…,SLEM) 。mSLE能夠有效減輕離群點的影響。
Fig.3 LDA-DeepHawkes variation model structure圖3 LDA-DeepHawkes變體模型結構
(1)觀察時間。本文任務是根據(jù)觀察時間內所觀察到的轉發(fā)情況來預測未來某個時間點的轉發(fā)增量,為了確定觀察時間,本文考察了不同時間的轉發(fā)數(shù)和所有消息轉發(fā)量占比的平均值與轉發(fā)時間之間的關系。一條消息在某一時刻的轉發(fā)量占比定義為這一時刻之前該消息的轉發(fā)量占消息最終轉發(fā)量的百分比。圖4 顯示了兩個數(shù)據(jù)集上轉發(fā)數(shù)對數(shù)值與時間的關系,圖5 顯示了數(shù)據(jù)集1 和數(shù)據(jù)集2 在24 小時內所有消息轉發(fā)量占比的平均值與轉發(fā)時間的關系。從圖4 可見,微博的轉發(fā)行為具有周期性,并且不同時間段內微博的轉發(fā)數(shù)有明顯差異,午夜2 點至早8 點用戶活躍度很低;上午10 點至晚上22 點左右,用戶活躍度很高。從圖5 可以看到,兩個數(shù)據(jù)集的轉發(fā)量隨時間變化的情況非常類似,在消息發(fā)出后的第1個小時,其轉發(fā)量占到了消息最終轉發(fā)量的55%左右;在消息發(fā)布后的第2個小時,其轉發(fā)量占到了消息最終轉發(fā)量的65%左右;在消息發(fā)出后的第3個小時,其轉發(fā)量占到了消息最終轉發(fā)量的72%左右;在消息發(fā)出后的第24個小時,消息的轉發(fā)量基本達到最大。為此,本文將觀察時間分別設為1 小時、2 小時和3 小時,即分別通過55%、65%、72%的已觀察到的轉發(fā)情況來預測消息最終的轉發(fā)增量。在消息發(fā)出后的第24個小時,消息的轉發(fā)量基本達到最大,因此將消息發(fā)布后的第24個小時的轉發(fā)增量設為消息的真實轉發(fā)增量。
Fig.4 Number of retweets圖4 轉發(fā)量
Fig.5 Weibo popularity圖5 微博流行度
(2)訓練集、驗證集和測試集。數(shù)據(jù)集1 的觀察時間從2018年6月20日13:00 開始,數(shù)據(jù)集2 的觀察時間從2018年10月22日19:00 開始。數(shù)據(jù)集的前70%設為訓練集,中間15%設為驗證集,最后15%設為測試集。各個訓練集、驗證集和測試集中級聯(lián)和轉發(fā)的具體數(shù)目如表10 所示。
Table 10 Segmentation of datasets表10 數(shù)據(jù)集的劃分
(3)主題數(shù)。本文利用困惑度指標[30]確定主題K的數(shù)量。困惑度是一種評價語言模型優(yōu)劣的指標,較小的困惑度意味著模型對新文本有著較好的預測效果[30]。困惑度的定義為:
其中,D表示輸入到LDA 模型中的文檔集合,M是D中文檔的數(shù)量,Nd表示文檔d中的單詞數(shù),分母是所有詞數(shù)之和,不排重。wd表示文檔d中的一個詞,p(wd) 為文檔中詞wd產生的概率,p(wd)=p(z|d)×p(w|z),p(z|d)表示的是一個文檔中每個主題出現(xiàn)的概率,p(w|z)表示的是詞典中的每一個單詞在某個主題下出現(xiàn)的概率。
圖6 顯示了數(shù)據(jù)集1 和數(shù)據(jù)集2 取對數(shù)后的困惑度隨主題數(shù)K的變化而變化的情況。從圖6 中可以看到,當主題數(shù)K分別為480、170 時,兩個數(shù)據(jù)集的困惑度最低,因此在這兩個數(shù)據(jù)集中,主題數(shù)分別設為K1=480,K2=170。
(4)LDA 超參數(shù)。LDA 主題模型有兩個超參數(shù)α和β。圖7 顯示了兩個數(shù)據(jù)集上LDA 超參數(shù)α、β對主題分類準確性的影響。圖7(a)分析了當β分別取0.1、0.3、0.5、0.7 時α對困惑度的影響,α∈[0,1]。圖7(b)分析了當α分別取0.1、0.3、0.5、0.7 時β對困惑度的影響,β∈[0,1]。從圖7 可以看出,當α=0.3,β=0.1 時,兩個數(shù)據(jù)集上的困惑度均最低,此時主題分類效果最好,因此本文設置LDA 模型的超參數(shù)為α=0.3,β=0.1。
(5)用戶(主題)向量維度。LDA-DeepHawkes 模型包含用戶嵌入矩陣和主題嵌入矩陣,其中用戶嵌入矩陣由用戶向量構成,主題嵌入矩陣由主題向量構成。本文設置主題向量的維度與用戶向量的維度相同。圖8 給出了MSLE隨用戶(主題)向量維度的變化而變化的情況,從圖中可以看出,主題向量維度為50 時,MSLE達到最小。因此本文取用戶(主題)向量維度為50。
Fig.6 Perplexity varies with the number K of topics圖6 困惑度隨主題數(shù)K 的變化
Fig.7 Perplexity varies with α and β圖7 困惑度隨超參數(shù)α 和β 的變化
Fig.8 Influence of vector dimension on MSLE圖8 向量維度對MSLE 的影響
(6)時間衰減區(qū)間。轉發(fā)的影響隨著時間的推移而衰減,DeepHawkes 模型[3]通過非參數(shù)方法直接學習時間衰減因子λl。圖9 給出了將時間衰減區(qū)間長度分別設置為2 min、5 min、10 min 和20 min 時數(shù)據(jù)集1 上學到的衰減因子,圖10 給出了不同時間衰減區(qū)間長度下數(shù)據(jù)集1 和數(shù)據(jù)集2 的均方對數(shù)誤差(MSLE)。由圖10 可見,當時間衰減區(qū)間長度設置為5 min 時,兩個數(shù)據(jù)集的MSLE都較小,因此本文設置時間衰減區(qū)間長度為5 min。
(7)GRU 的學習率。本文基于不同的學習率分別對GRU 進行訓練。圖11 給出了兩個數(shù)據(jù)集上MSLE隨學習率的變化而變化的情況,從圖11 中可以看出,當學習率介于1×10-4與1×10-3時,MSLE較低。在[1×10-4,1×10-3]區(qū)間進一步細化學習率,考察MSLE與學習率的關系,最終設置學習率為5.4×10-4。
Fig.9 Influence of time window on decay effect圖9 時間窗口對衰減因子的影響
Fig.10 Influence of time window on MSLE圖10 時間窗口對MSLE 的影響
Fig.11 Relationship between MSLE and learning rate圖11 MSLE 與學習率的關系
(8)其他參數(shù)。與文獻[3]類似,本文中每個GRU的隱藏層包含32個神經元,兩個全連接層分別包含32 和16個神經元,每次迭代的批處理大小設為32,梯度裁剪值value=0.1,更新門和重置門輸出限制為[0,1]。只要驗證集的誤差在10 次連續(xù)迭代中沒有下降,訓練過程就停止。
本文分別在數(shù)據(jù)集1 和數(shù)據(jù)集2 上使用訓練集訓練模型,使用驗證集調整模型參數(shù),使用測試集評價模型的性能。性能的評價包括與Basline 結果和與模型變體結果的比較。同時,本節(jié)還考察了算法的收斂性。
4.3.1 性能評價
(1)與Baseline 模型的性能比較。表11 給出了Feature-linear、DeepCas、DeepHawkes 和LDA-Deep-Hawkes 四種模型在數(shù)據(jù)集1 和數(shù)據(jù)集2 測試集上的性能表現(xiàn)。
從表11 可以看到,基于深度學習的模型(Deep-Hawkes和LDA-DeepHawkes)比只使用特征的Featurelinear 預測精度高。DeepCas 雖然也使用了深度學習,但模型考慮到的傳播因素較少,因此預測效果不如DeepHawkes和LDA-DeepHawkes,甚至不如Featurelinear。與DeepHawkes 模型相比,LDA-DeepHawkes模型誤差更小,精度更高,在兩個數(shù)據(jù)集上的平均精度分別提高了6%和10%。并且觀察時間越長,LDADeepHawkes 的預測效果越好。實驗結果表明本文在DeepHawkes 模型的基礎上,進一步考慮消息的文本內容對于提高消息流行度的預測精度是有效的。
(2)與模型變體的性能比較。表12 給出了Deep-Hawkes 和LDA-DeepHawkes 及各種變體模型在數(shù)據(jù)集1 和數(shù)據(jù)集2 測試集上的性能表現(xiàn)。
從表12 可以看到:
①在兩個數(shù)據(jù)集的所有觀察窗口內DH-U 的MSLE和mSLE都比DeepHawkes 高,除了在數(shù)據(jù)集1的2 h 和3 h 上DH-P 的mSLE比DeepHawkes低外,DH-P的MSLE和mSLE都比Deep-Hawkes 高,說明同時使用用戶信息和級聯(lián)路徑信息對提高消息流行度的預測精度是有益的。
②在兩個數(shù)據(jù)集的所有觀察窗口內LDA-DH-S的MSLE都比LDA-DH-M 高,除了在數(shù)據(jù)集1的2h和數(shù)據(jù)集2的2h和3h上LDA-DH-S的mSLE比LDA-DH-M低外,LDA-DH-S的mSLE都比LDADH-M高,說明考慮主題的自激效應對提高消息流行度的預測精度是有益的。
③LDA-DH-US、LDA-DH-UM、LDA-DH-P 和LDA-DH-PM 的性能表現(xiàn)說明,用戶信息或級聯(lián)路徑信息無論是與一條主題路徑結合,還是與多條主題信息結合都有助于提高消息流行度的預測精度。
④在兩個數(shù)據(jù)集的所有觀察窗口內LDA-Deep-Hawkes 都取得了最好的MSLE和mSLE,說明綜合應用用戶信息、級聯(lián)路徑信息及主題路徑信息是合理的。
Table 11 Performance of feature-linear,DeepCas,DeepHawkes and LDA-DeepHawkes表11 Feature-linear、DeepCas、DeepHawkes和LDA-DeepHawkes的性能表現(xiàn)
Table 12 Performance of DeepHawkes,LDA-DeepHawkes and their variation models表12 DeepHawkes和LDA-DeepHawkes及各種變體模型的性能表現(xiàn)
4.3.2 算法的收斂性
圖12 描述了數(shù)據(jù)集1 和數(shù)據(jù)集2 上算法在不同迭代步的MSLE和mSLE??梢钥闯鲈趦蓚€數(shù)據(jù)集上MSLE(mSLE)變化趨勢相近,并且算法收斂很快,迭代60 次之后,MSLE(mSLE)開始穩(wěn)定。
Fig.12 Influence of the number of iterations on MSLE(mSLE)圖12 迭代次數(shù)對MSLE(mSLE)的影響
本文在DeepHawkes模型的基礎上進一步考慮了信息的文本內容對于擴散的影響,將LDA 主題模型融入DeepHawkes 模型中,提出了LDA-DeepHawkes模型。該模型既考慮了級聯(lián)的因素,又考慮了信息的文本內容,從而更加全面地建模了信息擴散過程,在繼承DeepHawkes 高解釋性的同時,進一步提高了流行度預測的準確度。真實數(shù)據(jù)集上的實驗結果驗證了LDA-DeepHawkes模型的有效性。
本文利用神經網(wǎng)絡自主學習了用戶和主題的嵌入矩陣,這些矩陣中蘊含了用戶的行為、偏好、主題間的關聯(lián)等信息。如何深入挖掘這些信息,為用戶提供更好的服務有待進一步的研究。