劉定一, 沈陽陽, 詹天明, 劉亞軍, 應(yīng) 毅
(1. 三江學(xué)院 計算機(jī)科學(xué)與工程學(xué)院, 江蘇 南京 210012; 2. 南京審計大學(xué) 信息工程學(xué)院, 江蘇 南京 211815; 3. 東南大學(xué) 計算機(jī)科學(xué)與工程學(xué)院, 江蘇 南京 210096)
中國互聯(lián)網(wǎng)絡(luò)信息中心發(fā)布的第45次《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》[1]顯示,至2020年3月,我國網(wǎng)民規(guī)模為9.04億,互聯(lián)網(wǎng)普及率達(dá)64.5%.習(xí)近平總書記在網(wǎng)絡(luò)安全和信息化工作座談會上指出[2]:網(wǎng)民來自老百姓,老百姓上了網(wǎng),民意也就上了網(wǎng).網(wǎng)絡(luò)起著引導(dǎo)輿論和反映社情民意的作用,有效的輿情預(yù)測方法對預(yù)估網(wǎng)絡(luò)輿情發(fā)展趨勢,化解潛在的輿情危機(jī),營造良好的網(wǎng)絡(luò)生態(tài)環(huán)境,具有必要的現(xiàn)實意義.眾多學(xué)者對網(wǎng)絡(luò)輿情預(yù)測進(jìn)行了大量研究,提出了很多預(yù)測方法,如指數(shù)平滑法[3]、Logistic回歸分析[3-4]、微分方程[5-6]等,這些方法皆是利用輿情傳播信息時間序列特征構(gòu)建基于傳統(tǒng)統(tǒng)計學(xué)的預(yù)測模型,該類模型簡單易實現(xiàn),但只適合線性關(guān)系預(yù)測.近年來,由于人工神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的非線性擬合能力,更多地應(yīng)用于解決與時間序列相關(guān)的問題.文獻(xiàn)[7]根據(jù)輿情的混沌特性,提出EMPSO_RBF神經(jīng)網(wǎng)絡(luò)方法對網(wǎng)絡(luò)輿情進(jìn)行預(yù)測;文獻(xiàn)[8]基于粒子群算法收斂速度快的特性,構(gòu)建粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型完成輿情預(yù)測.但是隨著國內(nèi)網(wǎng)民規(guī)模的穩(wěn)步增長和自媒體、移動社交平臺等新興表現(xiàn)形式的興起,導(dǎo)致單一的神經(jīng)網(wǎng)絡(luò)模型不能達(dá)到較為精確的預(yù)測目標(biāo).在經(jīng)濟(jì)領(lǐng)域,使用網(wǎng)絡(luò)信息進(jìn)行預(yù)測模型的修正是近期研究的熱點.文獻(xiàn)[9]引入新聞報道等定性信息,建立基于循環(huán)神經(jīng)網(wǎng)絡(luò)的個股走勢預(yù)測模型,提升股票漲跌預(yù)測準(zhǔn)確率.文獻(xiàn)[10]建立支持向量機(jī)模型檢驗微博情緒對股市的預(yù)測影響,結(jié)果表明加入微博情緒信息的預(yù)測模型能夠更好地預(yù)測股票市場價格走勢的變化.文獻(xiàn)[11]利用旅游攻略在新浪微博中的微指數(shù),根據(jù)灰色預(yù)測模型對旅游供給側(cè)問題進(jìn)行實證分析.以上研究初步表明實時的互聯(lián)網(wǎng)數(shù)據(jù)能夠用于經(jīng)濟(jì)活動預(yù)測,成為提高預(yù)測精度的積極補(bǔ)充.與經(jīng)濟(jì)數(shù)據(jù)類似,網(wǎng)絡(luò)輿情的走勢受外界因素影響更大,越來越呈現(xiàn)出明顯的模糊性和不確定性.針對此缺陷,文中結(jié)合網(wǎng)絡(luò)熱點分析技術(shù)和深度學(xué)習(xí)模型,提出MH-LSTM網(wǎng)絡(luò)輿情預(yù)測方法,在傳統(tǒng)LSTM神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,增加微博數(shù)據(jù)作為預(yù)測模型的補(bǔ)充,提高模型的預(yù)測準(zhǔn)確度,并將其運用在輿情事件百度指數(shù)的定量預(yù)測研究中.以PSO-BPNN模型、LSTM模型與文中預(yù)測模型進(jìn)行試驗對比,結(jié)果表明融合微博熱點分析和LSTM的網(wǎng)絡(luò)輿情預(yù)測模型比其他方法有著更高的預(yù)測精度.
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一個特點是在訓(xùn)練和預(yù)測時加入了時間的概念,即本次的計算輸出會受到前一次輸出結(jié)果的影響,主要用途是處理和預(yù)測序列數(shù)據(jù).由于在梯度下降過程中,每一層誤差反傳都會引入乘子,導(dǎo)致經(jīng)過多步之后,乘子的連乘會出現(xiàn)梯度消失或梯度爆炸的情況.
長短期記憶神經(jīng)網(wǎng)絡(luò)(long-short term memory,LSTM)[12]是一種具有長記憶特征的RNN.與RNN單一tanh循環(huán)體結(jié)構(gòu)不同,LSTM的結(jié)構(gòu)包括一個輸入層、一個循環(huán)體結(jié)構(gòu)、一個輸出層,通過“門”(gate)來控制丟棄或增加信息,從而實現(xiàn)遺忘或記憶的功能[13].“門”是一種使信息選擇性通過的結(jié)構(gòu),由一個激活函數(shù)和一個點乘操作組成,能有效緩解RNN在訓(xùn)練時出現(xiàn)的梯度問題.1個LSTM存儲單元有3個這樣的門,分別是輸入門(inputgate)、輸出門(outputgate)、遺忘門(forgetgate),如圖1所示.替代傳統(tǒng)神經(jīng)元的存儲單元保證誤差以常數(shù)的形式在網(wǎng)絡(luò)中傳遞,在此基礎(chǔ)上添加乘法門和非線性函數(shù)為模型引入非線性變換,使得信息有選擇性地表達(dá).
圖1 LSTM單元結(jié)構(gòu)
LSTM單元的計算公式如下:
it=σ(Wi[ht-1,xt]),
(1)
ft=σ(Wf[ht-1,xt]),
(2)
zt=tanh(Wz[ht-1,xt]),
(3)
ct=ft·ct-1+it·zt,
(4)
ot=σ(Wo[ht-1,xt]),
(5)
ht=ot·tanh (ct),
(6)
式中:it為輸入門;ft為遺忘門;ot為輸出門;σ表示激活函數(shù),通常為Sigmoid;W為各神經(jīng)網(wǎng)絡(luò)層的權(quán)重矩陣;xt為當(dāng)前時刻的輸入值;ht-1為在當(dāng)前時刻t接受上一時刻的輸出值;ct-1為t-1時刻的狀態(tài)值;zt為當(dāng)前時刻的候選狀態(tài)值;ct為當(dāng)前時刻的狀態(tài)值;ht為當(dāng)前時刻的輸出值.
與TensorFlow[14]類似,PyTorch[15]是由Facebook研發(fā)的一個輕量級分布式機(jī)器學(xué)習(xí)平臺,是Python開源科學(xué)計算庫NumPy的替代者.PyTorch中神經(jīng)網(wǎng)絡(luò)模型的符號表達(dá)式被抽象成計算圖(computational graph),提供損失函數(shù)反向模式自動微分方法來反向求導(dǎo)傳播參數(shù).在機(jī)器學(xué)習(xí)中,同一個網(wǎng)絡(luò)模型需要經(jīng)過反復(fù)迭代才能達(dá)到最好的效果,在TensorFlow中,先定義一個計算圖,每次迭代只是輸入(feed)不同的數(shù)據(jù),反復(fù)執(zhí)行同一個計算圖;與此不同,PyTorch每次迭代都重新構(gòu)建一個計算圖,故被稱為“動態(tài)計算圖”,這種方法加速了網(wǎng)絡(luò)模型的收斂.文中設(shè)計的輿情預(yù)測模型借助于PyTorch平臺實現(xiàn).
熱點話題的發(fā)現(xiàn)是網(wǎng)絡(luò)輿情預(yù)測的基礎(chǔ).在“互聯(lián)網(wǎng)+”與Web2.0技術(shù)的推動下,微博(Microblog)已經(jīng)成為中國社會的主流開放社交媒體,微博熱點的發(fā)現(xiàn)是網(wǎng)絡(luò)熱點監(jiān)控的重點[16].新浪微博正文一般不超過2 000個漢字,主題相對單一,是用戶對自己關(guān)心或與自身利益相關(guān)的各種事務(wù)在情緒、意愿、態(tài)度等方面的網(wǎng)絡(luò)表達(dá).并由用戶關(guān)系延伸出對微博正文的用戶行為,包括對微博的轉(zhuǎn)發(fā)、評論、回復(fù)、收藏等.微博熱點發(fā)現(xiàn)即是對爬取到的微博正文的用戶行為數(shù)據(jù)的計算和分析.基于微博正文定義微博內(nèi)容的熱度分值,由轉(zhuǎn)發(fā)數(shù)、評論數(shù)、點贊數(shù)的占比總和得到,其基本公式如下:
(7)
式中:α、β、γ分別為轉(zhuǎn)發(fā)數(shù)、評論數(shù)、點贊數(shù)的評分系數(shù),且α+β+γ=1.
輿情信息屬于典型的時序數(shù)據(jù),在時間上具有繼承性和延續(xù)性.百度指數(shù)直觀反映了網(wǎng)民對熱點關(guān)鍵字的搜索頻次,微博熱點與搜索行為之間存在必然的正相關(guān)性,即社交網(wǎng)絡(luò)討論越多,熱度越大,搜索越多,百度指數(shù)數(shù)值越高.社交媒體造成當(dāng)前輿情熱點的發(fā)酵周期極短,絕大多數(shù)熱點事件從曝光至輿情頂峰,大約只需1~3 d.雖然各輿情事件有各自的特點,但都呈現(xiàn)出大致相同的生命周期.圖2根據(jù)“重慶保時捷女車主打人事件”、“996工作制事件”、“黑洞照片首發(fā)事件”3起網(wǎng)絡(luò)熱點事件(事件一、事件二、事件三)的百度指數(shù)信息(已進(jìn)行量綱一化處理),繪制了輿情事件的發(fā)展過程,可以較為清晰地將網(wǎng)絡(luò)輿情事件劃分為爆發(fā)期、衰落期、淡化期3個階段.這種演化性導(dǎo)致輿情數(shù)據(jù)的預(yù)測需要考慮位置較遠(yuǎn)的上下文信息,LSTM模型恰恰具有解決長期依賴問題的優(yōu)勢.
圖2 網(wǎng)絡(luò)輿情事件的生命周期
文中基于分布式爬蟲技術(shù)[17]和PyTorch平臺構(gòu)建了用于輿情時序數(shù)據(jù)分析的網(wǎng)絡(luò)輿情預(yù)測系統(tǒng).系統(tǒng)由3部分組成:數(shù)據(jù)采集與存儲、模型訓(xùn)練、模型部署與應(yīng)用,如圖3所示.
圖3 網(wǎng)絡(luò)輿情預(yù)測系統(tǒng)架構(gòu)
在數(shù)據(jù)采集與存儲部分,微博頁面爬取使用Scrapy框架定制Spider進(jìn)行,提取頁面有價值數(shù)據(jù)后可按需要進(jìn)行計算;百度指數(shù)等其他時序數(shù)據(jù)可在相關(guān)網(wǎng)站下載或手工采集.模型訓(xùn)練時,PyTorch的torch.util.data模塊用于數(shù)據(jù)加載和處理;torch.nn模塊提供常見的神經(jīng)網(wǎng)絡(luò)層和其他組件,包含全連接層、卷積層、激活函數(shù)、損失函數(shù)等,這些組件用于構(gòu)建和初始化待訓(xùn)練模型;當(dāng)模型根據(jù)訓(xùn)練數(shù)據(jù)得到輸出結(jié)果后,torch.optim模塊提供更新模型的標(biāo)準(zhǔn)方法,從而優(yōu)化模型提高預(yù)測準(zhǔn)確度.在多輪訓(xùn)練后,模型的參數(shù)趨于穩(wěn)定,預(yù)測準(zhǔn)確率達(dá)到目標(biāo)標(biāo)準(zhǔn)后,即可進(jìn)行模型部署與應(yīng)用.系統(tǒng)整體基于Python3.6和PyTorch 1.1開發(fā)實現(xiàn).
在已知熱點信息的前提下,定義微博熱度分值由轉(zhuǎn)發(fā)數(shù)、評論數(shù)、點贊數(shù)的權(quán)重累加得到,計算公式如下:
HotScorei=α×轉(zhuǎn)發(fā)數(shù)+β×評論數(shù)+γ×點贊數(shù).
(8)
轉(zhuǎn)發(fā)數(shù)和點贊數(shù)可以反映網(wǎng)民對該話題的興趣度,轉(zhuǎn)發(fā)數(shù)越高代表網(wǎng)民對該話題越感興趣,點贊數(shù)越高代表同意作者觀點的人數(shù)越多,一定程度上反映了該話題的熱點程度.參與評論的數(shù)量反映了網(wǎng)民對該話題的參與互動度,評論數(shù)越多代表參與的網(wǎng)民數(shù)量越多,該話題的互動性越好,越容易成為新的傳播焦點.
研究[18]表明:輿情熱點的形成也基本服從二八定律,即對于網(wǎng)絡(luò)輿情傳播造成重大影響的是頭部20%的意見領(lǐng)袖;決定整個輿情事件傳播規(guī)模的,是為數(shù)不多的人氣媒體和權(quán)威網(wǎng)絡(luò)平臺.因此,根據(jù)關(guān)鍵詞采集熱點微博無須窮盡所有,對50個關(guān)鍵詞匹配的微博進(jìn)行熱點分析,根據(jù)熱度分值排序,取前10個累加,得到微博熱度總分值,定義如下:
(9)
依托網(wǎng)絡(luò)輿情預(yù)測系統(tǒng),結(jié)合微博熱點分析方法和LSTM網(wǎng)絡(luò),文中提出MH-LSTM(microblog hotspot-long short-term memory)神經(jīng)網(wǎng)絡(luò)模型.與股市、匯率、GDP、交通流等其他時序數(shù)據(jù)相比,輿情數(shù)據(jù)量不多(每年引起全民熱議的輿情事件大約有30~50起,大多數(shù)輿情事件從產(chǎn)生到消亡持續(xù)約15~20 d).鑒于這一特點,設(shè)計MH-LSTM模型由單向LSTM和雙向LSTM(bidirectional LSTM,Bi-LSTM)[19]兩個隱含層組成,在保留LSTM網(wǎng)絡(luò)特性的同時,降低由于訓(xùn)練樣本較少而產(chǎn)生過擬合的風(fēng)險.具體結(jié)構(gòu)如圖4所示.
根據(jù)輿情預(yù)測的特點,該模型第1個隱含層的輸入包括4部分:百度指數(shù)BaiduIndex、微博熱度總分值HotScore、時間偏移量Δt、上一時該隱含層的輸出.時間偏移量指的是被預(yù)測日與輿情事件第1天之間的時間間隔,從輿情事件的生命周期模型可以看出與輿情爆發(fā)的時間差異也是影響輿情發(fā)展趨勢的重要因素.
具體公式如下:
(10)
該模型第2個隱含層的輸入包括2部分:同一時刻上一隱含層的輸出和同一隱含層上一時間片的輸出,具體公式如下:
(11)
該模型的損失函數(shù)是預(yù)測誤差平方和與模型權(quán)值參數(shù)的平方和之和,具體公式如下:
(12)
圖4 MH-LSTM模型結(jié)構(gòu)
MH-LSTM模型的訓(xùn)練步驟如下:
1) 定義MH-LSTM網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)公式(12)定義損失函數(shù),設(shè)置每一層網(wǎng)絡(luò)節(jié)點的舍棄率為0.2,設(shè)置優(yōu)化器為自適應(yīng)矩估計.
2) 根據(jù)公式(9)計算HotScore,BaiduIndex來源于百度網(wǎng)站.
3) 每一步處理時間序列中的一個時刻.將當(dāng)前輸入(BaiduIndext、HotScoret、Δt)和前一時刻輸出(ht-1)傳入MH-LSTM網(wǎng)絡(luò)結(jié)構(gòu),計算得到當(dāng)前輸出(ht).
4) 根據(jù)當(dāng)前輸出和實際值計算誤差,通過優(yōu)化器反向傳播求解,更新模型參數(shù).
5) 重復(fù)上述步驟直至算法收斂.
該模型具有以下特點:
1) 能夠表征時序數(shù)據(jù).RNN是專門用來處理時序數(shù)據(jù)的,其每一個隱含層節(jié)點的輸入既包含了輸入層的輸入,又有來自上一時刻隱含層的輸出,這使它可以使用先前的信息來學(xué)習(xí)當(dāng)前的任務(wù).LSTM網(wǎng)絡(luò)基于RNN進(jìn)行改進(jìn),在保留上述優(yōu)點的基礎(chǔ)上,使得信息能夠保持長時間的記憶.
2) 融合時效性強(qiáng)的微博數(shù)據(jù).微博文本能夠?qū)崟r反映廣大網(wǎng)民對于輿情事件的關(guān)注度,借此來作為趨勢預(yù)測的補(bǔ)充.
3) 充分借鑒生命周期模型的規(guī)律.網(wǎng)絡(luò)輿情事件的發(fā)展可大致分為爆發(fā)期、衰落期、淡化期3個階段,以往發(fā)生的“歷史數(shù)據(jù)”可作為新事件趨勢預(yù)測的基礎(chǔ).
以2019年發(fā)生的“重慶保時捷女車主打人事件”(7月30日—8月14日)、“996工作制事件”(4月11日—4月26日)、“黑洞照片首發(fā)事件”(4月8日—4月23日)3起熱點事件為訓(xùn)練樣本,以“山東大學(xué)學(xué)伴事件”(2019年7月12日—7月27日)為測試樣本,用訓(xùn)練樣本訓(xùn)練模型優(yōu)化參數(shù),用測試樣本驗證模型的有效性和準(zhǔn)確性.試驗數(shù)據(jù)主要包括:百度指數(shù)、微博熱度分值、時間偏移量.
在模型訓(xùn)練時,輸入第1天的百度指數(shù)、微博熱度分值和時間偏移量(即0),計算下一天的百度指數(shù),比較計算結(jié)果和百度指數(shù)真實值,調(diào)整模型參數(shù),如此反復(fù).在模型測試時,只給出第1天的百度指數(shù)和每一天的微博熱度分值,時間偏移量從0開始遞增,測算第2天至第16天的百度指數(shù).
將文中提出的預(yù)測模型MH-LSTM與粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型[8](PSO-BPNN)、傳統(tǒng)LSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對比分析.PSO-BPNN模型是較經(jīng)典的輿情預(yù)測方法,它利用改進(jìn)的粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值參數(shù),選擇熱點話題的百度指數(shù)作為時間序列指標(biāo),經(jīng)神經(jīng)網(wǎng)絡(luò)計算后得到輿情事件發(fā)展趨勢的預(yù)測結(jié)果.在本試驗中構(gòu)建的傳統(tǒng)LSTM網(wǎng)絡(luò)結(jié)構(gòu)包括LSTM和Bi-LSTM兩個隱含層,該模型的神經(jīng)網(wǎng)絡(luò)部分與MH-LSTM一樣,只是沒有加入微博熱點分值和時間偏移量.
利用MATLAB 2015a構(gòu)造PSO-BPNN模型;依托網(wǎng)絡(luò)輿情預(yù)測系統(tǒng),構(gòu)造LSTM模型、MH-LSTM模型進(jìn)行對比試驗,結(jié)果數(shù)據(jù)如表1所示,各模型預(yù)測結(jié)果對比如圖5所示.由表1的試驗數(shù)據(jù)可以看出,從擬合性和預(yù)測精度來看,相比于PSO-BPNN模型,LSTM模型和MH-LSTM模型的預(yù)測結(jié)果表現(xiàn)得更加優(yōu)秀.由圖5可以看出,LSTM模型和MH-LSTM模型的預(yù)測結(jié)果與真實值擬合得較好,預(yù)測結(jié)果更接近真實值;由于BP神經(jīng)網(wǎng)絡(luò)存在容錯性差、學(xué)習(xí)不穩(wěn)定等缺點,粒子群算法的自身局限性容易陷入局部最優(yōu),導(dǎo)致PSO-BPNN模型的預(yù)測結(jié)果穩(wěn)定性較差,浮動較大,預(yù)測精度上也有所欠缺.
表1 各模型試驗結(jié)果數(shù)據(jù)
圖5 各模型預(yù)測結(jié)果對比
為了進(jìn)一步比較預(yù)測的準(zhǔn)確性,通過式(13)和(14)計算預(yù)測值yi與實際值ri的相對誤差(relative error,RE)和平均相對誤差(mean relative error,MRE):
(13)
(14)
誤差數(shù)據(jù)如表1所示.LSTM模型的MRE為0.102 7,MH-LSTM模型的MRE為0.072 5,都要優(yōu)于PSO-BPNN模型的MRE(0.151 3).相比于LSTM模型,MH-LSTM模型加入了微博熱度分值來修正模型,能夠降低平均相對誤差0.030 2,說明微博熱點分析對輿情趨勢預(yù)測有積極的影響.圖6為3種預(yù)測模型的相對誤差曲線圖,從圖中可以看出MH-LSTM模型的大部分相對誤差都在10%以下,部分時間點的預(yù)測值誤差接近0,預(yù)測結(jié)果整體較為穩(wěn)定.因此文中提出的MH-LSTM模型能夠更好地描述時間序列發(fā)展過程,具有較強(qiáng)的非線性擬合能力,能夠很好地對輿情事件發(fā)展進(jìn)行定量預(yù)測.
圖6 各模型相對誤差對比
基于網(wǎng)絡(luò)爬蟲技術(shù)和PyTorch機(jī)器學(xué)習(xí)平臺構(gòu)建了針對輿情時序數(shù)據(jù)分析的網(wǎng)絡(luò)輿情預(yù)測系統(tǒng).從預(yù)測模型和數(shù)據(jù)擴(kuò)充兩方面進(jìn)行改進(jìn),提出融合微博熱點分析和深度學(xué)習(xí)的新的預(yù)測方法MH-LSTM,該方法結(jié)合實時性的微博數(shù)據(jù)和權(quán)威性的百度指數(shù)進(jìn)行網(wǎng)絡(luò)輿情發(fā)展趨勢預(yù)測,與PSO-BPNN模型、LSTM模型的對比試驗驗證了MH-LSTM模型的正確性和優(yōu)越性.預(yù)測結(jié)果有助于政府對輿情信息的控制和引導(dǎo),有利于社會發(fā)展的和諧穩(wěn)定.