于 澍,曹 琦,劉 濤
(東北石油大學 計算機與信息技術學院,黑龍江 大慶 163318)
隨著移動通訊技術的日趨完善,一大批社交媒體平臺不斷涌現(xiàn)[1],已經(jīng)成為人們溝通交流、獲取信息的重要平臺,影響著人們的工作和生活。微博憑借其傳播速度快、內容覆蓋領域廣和低門檻等特性近年來迅速發(fā)展成為網(wǎng)民結交好友、獲取新聞時事、自我分享及表達的重要社交媒體[2-3]。國內目前存在大量的微博網(wǎng)站,例如新浪微博、騰訊文博、搜狐微博等,其中新浪微博最受廣大用戶喜愛,也是人們目前最為常用的社交媒體平臺。
大量的活躍用戶在微博上產(chǎn)生大量的行為信息,海量數(shù)據(jù)背后蘊藏著巨大的學術研究價值。對于企業(yè)而言,通過觀測微博用戶的在線行為可以了解用戶的興趣愛好和上網(wǎng)習慣,以有效指導企業(yè)調整更新產(chǎn)品,為大眾提供更好的服務;對于政府部門而言,可以通過用戶行為及時了解大眾關注的焦點以及對待熱點問題的態(tài)度,準確判斷輿論走向,以便及時采取科學的引導和有效的控制。因此提前預測微博的互動情況,對于企業(yè)和社會而言有著重要的意義。
機器學習是一門涉及到多個領域的交叉學科,致力于模擬人類利用經(jīng)驗做出有效決策的學習行為,使計算機能夠利用經(jīng)驗不斷改善系統(tǒng)本身的性能,以獲取人類觀測不到的新的知識。文中將機器學習中的隨機森林算法應用到微博數(shù)據(jù)上,以新浪微博為研究對象,對微博數(shù)據(jù)進行處理及分析,并預測用戶發(fā)布微博一周后的轉發(fā)數(shù)、評論數(shù)和點贊數(shù)。
國內外有大量的學者對在線社交網(wǎng)絡的信息傳播行為進行了研究。文獻[3]提出了三類綜合特征,使用機器學習中的分類方法對給定微博的用戶轉發(fā)行為進行預測。Liben-Nowell等[4]研究了一系列有關信息在真實社會網(wǎng)絡中傳播的特征,得出精確預測出信息的傳播路徑在當前技術發(fā)展的情況下是非常困難的。還有一些文獻[5-10]在情感分析等方面進行了研究。
決策樹算法是一種有監(jiān)督的機器學習算法,常用于分類預測等諸多領域[11]。決策樹是一個樹形結構,其每個非葉節(jié)點表示一個特征屬性上的測試,每個分支代表該特征屬性在某個值域上的輸出,而每個葉節(jié)點存放一個類別,最終產(chǎn)生一棵泛化能力強的決策樹。其中節(jié)點分裂特征的選擇為構造一棵決策樹的關鍵。根據(jù)不同的劃分標準,相關學者提出了不同的決策樹算法,如基于信息熵的ID3算法、基于增益率的C4.5算法和基于基尼指數(shù)CART決策樹算法。文中主要介紹CART決策樹算法。
CART分類回歸樹是一種二叉決策樹,既可處理連續(xù)型數(shù)據(jù)又可處理離散型數(shù)據(jù)。分類樹根據(jù)基尼值來度量數(shù)據(jù)集S的純度,即決策樹的分支節(jié)點盡可能包含同一類別的樣本,其值越小,數(shù)據(jù)集的純度越高。基尼值表示為:
(1)
其中,pk為當前樣本集合S中第k類樣本所占的比例。
然后計算屬性集A中每個屬性a的基尼指數(shù),從中選擇基尼指數(shù)最小的屬性作為最優(yōu)的劃分屬性?;嶂笖?shù)表示為:
(2)
其中,Sv表示S中屬性a上取值為v樣本子集。
集成學習是通過對每個基學習器的學習結果進行組合的方式將多個學習器聚集起來,形成具有更好性能的學習器。集成學習可以有效地提高學習系統(tǒng)的泛化能力[12]。其中一類就是以Bagging和隨機森林為代表的。
隨機森林就是在構建Bagging集成的基礎上將決策樹作為基學習器[13-14],與傳統(tǒng)的決策樹不同的是,隨機森林在選擇劃分屬性時,是從全部的特征中均勻隨機地抽取一個特征子集,然后再從這個子集中選擇一個最優(yōu)的分裂特征。隨機森林構造了多棵決策樹,一般來說,分類問題由每棵決策樹投票決定其最終分類,回歸問題則取其平均值作為最終結果。
一個中文詞語由兩個以上的漢字組成,所以,對中文的文本進行分析時,計算機很難區(qū)分詞語、成語或諺語。中文分詞又稱中文切詞,是指把一條中文語句切分成若干個有意義的詞語[15]。中文分詞技術屬于自然語言處理的范疇,目前中文分詞工具有很多,已有相關研究采用540篇分別來自新聞、微博、汽車之家和大眾點評的數(shù)據(jù)對常見分詞工具進行測試[16],測試結果見表1。
表1 中文分詞工具對比
實驗部分采用Python語言來處理微博數(shù)據(jù)中的中文文本,用于統(tǒng)計博文內容的詞頻,選取高頻詞作為特征。Jieba分詞適用于Python環(huán)境,因此文中選擇Jieba分詞工具。
實驗將提取的特征分為三類,應用隨機森林算法預測微博在發(fā)表一周后的互動情況,分析隨機森林模型的應用效果,并對比三類特征對預測結果的影響。實驗數(shù)據(jù)來自于天池大數(shù)據(jù)競賽:新浪微博互動預測,訓練數(shù)據(jù)約為122萬條微博數(shù)據(jù),部分數(shù)據(jù)如表2所示。預測數(shù)據(jù)約為17萬條微博數(shù)據(jù)。實驗工具采用anaconda3,編程語言為Python3.7。
表2 訓練數(shù)據(jù)
實驗部分包括三組對比實驗,實驗流程如下:
Step1:觀察并分析數(shù)據(jù),提取三類特征,分別為用戶特征、時間特征、博文內容特征,如表3所示。其中高頻詞提取結果如圖1所示,取前20個為高頻詞匯。根據(jù)提取的特征建立預測的訓練集與測試集。
表3 特征表
Step2:進行三組對比實驗。
實驗一:無特征簡單平均法、三類特征決策樹模型、三類特征RF模型以及線性回歸模型的對比實驗。
實驗二:基于RF的三類特征對比實驗。分別訓練無用戶特征、無時間特征、無博文內容特征的RF模型。
實驗三:基于RF的博文特征對比實驗。對比文本類特征中的六項特征對預測結果的影響。
Step3:將訓練好的模型應用于測試集,得出預測結果后根據(jù)評估標準驗證模型的預測準確率。
Step4:分析三組實驗的結果,得出實驗結論。
圖1 詞頻統(tǒng)計
計算第i篇博文的準確率pi:
pi=1-0.5*df-0.25*dc-0.25*dl
(3)
其中,df、dc、dl分別表示轉發(fā)偏差、評論偏差和點贊偏差,分別表示如下:
(4)
(5)
(6)
其中,cfp為預測的轉發(fā)數(shù),cfr為實際的轉發(fā)數(shù);ccp為預測的評論數(shù),ccr為實際的評論數(shù);clp為預測的點贊數(shù),clr為實際的點贊數(shù)。
根據(jù)每篇博文的準確率pi計算最終預測的準確率P:
(7)
其中,sgn(x)為第i篇博文的總轉發(fā)、評論、點贊之和,當Ci>100時,取值為100。
由實驗一的結果表明,隨機森林算法可以應用到微博數(shù)據(jù)上,且隨機森林算法預測模型的準確率比決策樹等算法的相對準確率稍高,實驗結果如表4所示。
表4 四種算法預測結果對比
通過實驗二的結果可得出,三類特征中用戶特征對預測結果的影響較大,其次是時間特征,文本類特征影響較小,實驗結果如圖2所示。通過實驗三得出,博文內容特征中的“是否含有鏈接”會對預測結果產(chǎn)生負影響,即導致預測結果的準確率下降。其他博文內容特征對預測結果的影響較小。
圖2 預測結果
文中將隨機森林算法應用到微博數(shù)據(jù)上,從數(shù)據(jù)中提取了部分特征并將特征分為三類, 由實驗結果分析了這三類特征對預測結果的影響,并對其中的文本數(shù)據(jù)進行了進一步的分析和實驗,分析并對比了文本類特征對預測結果的影響。預測結果與數(shù)據(jù)及特征有關,文中特征是由人工提取,具有一定的局限性,還有待進一步的完善。