曹春萍,黃 偉
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
隨著微博成為網(wǎng)民公眾公開的表達意愿的平臺,政治、教育、民生、輿情監(jiān)控等各個領(lǐng)域都與微博話題息息相關(guān),從而使得信息傳播的影響也越來越難以控制。微博信息以指數(shù)級暴增,使得大眾對信息的獲取增加了難度,而微博熱點話題的發(fā)現(xiàn)能夠?qū)φ臎Q策起參照作用,增強用戶信息獲取的能力。因此,通過分析微博數(shù)據(jù)內(nèi)容,從微博的海量文本數(shù)據(jù)中挖掘出熱點話題的影響因素和熱點話題,對政府部門與官方微博在輿情監(jiān)控以及輿論溝通方面上的決策具有重要意義[1]。
但是由于微博文本自身的特點,內(nèi)容短小、表達隨意,且微博間還包含一些轉(zhuǎn)發(fā)評論點贊等引用關(guān)系,使得傳統(tǒng)的文本挖掘算法在微博中的表現(xiàn)不是很好。故本文針對微博的特點,綜合微博文本和微博用戶之間的關(guān)系,將特征詞、用戶權(quán)威度和微博之間的引用關(guān)系考慮到熱度分配算法中,得到特征詞的熱度排序結(jié)果,最后結(jié)合文本聚類得到大概主題即熱點話題。
目前,可以將微博熱點挖掘研究分為兩大類。一類是基于微博內(nèi)容的研究。微博內(nèi)容的研究主要分為概率模型和文本聚類兩大類方法。概率模型以LDA模型為代表,徐佳俊等[2]對微博語料集使用LDA模型,將話題從語料中提取出來,通過話題空間對應(yīng)的話題文檔,計算話題強度,最終得到話題強度的排序。林丹等[3]利用LDA得到的關(guān)鍵詞進行聚類分析,提出文本關(guān)聯(lián)詞算法,最后對LDA話題簇進行優(yōu)化調(diào)整,得到熱點話題。雖然當(dāng)時LDA算法已經(jīng)相當(dāng)成熟,但是它并不能很好得將詞之間語義融合到熱點話題中,在話題提取中表現(xiàn)不佳。隨著深度學(xué)習(xí)在自然語言處理方面的巨大成功,這使得微博熱點話題挖掘又有了一大進步。劉少鵬等[4]研究了微博時效性、用戶喜好及話題符號對熱點話題的影響,通過聚類解決數(shù)據(jù)稀疏問題,將分層Dirichlet過程集成到非參數(shù)貝葉斯模型中,并提出了MB-HDP模型。于潔[5]指出,使用分布式方法得到的詞向量,能夠體現(xiàn)詞之間的相關(guān)性,從而克服微博話題中數(shù)據(jù)稀疏的問題。但是采用深度學(xué)習(xí)的進行文本聚類權(quán)值的選擇相對復(fù)雜,聚類時間相對較長。這類研究對詞頻,特征權(quán)重及引用關(guān)系的挖掘較準(zhǔn)確,但往往會忽視用戶的相關(guān)屬性對文本聚類的影響,從而會使結(jié)果存在一些偏差。
另一類是基于微博用戶的研究,微博用戶的權(quán)威度因素,通過影響粉絲的對話題的關(guān)注與轉(zhuǎn)發(fā),對微博熱點話題產(chǎn)生影響。陳姝等[6]基于理性行為分析微博用戶的轉(zhuǎn)發(fā)行為,考慮了微博語義、用戶特征、用戶交互等特點,發(fā)現(xiàn)了用戶活躍度、微博文本與用戶興趣的相似度對轉(zhuǎn)發(fā)行為影響顯著。劉功申等[7]研究用戶行為對微博轉(zhuǎn)發(fā)操作的影響,根據(jù)博主擁有的粉絲數(shù)量,以及粉絲與博主之間的互動,提出用戶對轉(zhuǎn)發(fā)量的影響力度量算法。但是上述研究僅根據(jù)影響力來研究熱門話題的產(chǎn)生,忽視了特征詞權(quán)重、詞對關(guān)系及引用關(guān)系,具有局限性。
針對以上問題,獲取較準(zhǔn)確的微博熱點話題需綜合多個因素,每個因素的權(quán)重大小又會影響話題準(zhǔn)確性。因此,本文提出基于用戶權(quán)威度與熱度分配聚類的微博熱點挖掘算法,該模型綜合特征詞權(quán)重排序順序、用戶權(quán)威度及博文之間的引用關(guān)系進行聚類分析計算特征詞熱度,得到特征詞的熱度排序結(jié)果即熱點話題。
本章認為:每條微博除了表面顯式的文本內(nèi)容外,還有一些隱藏屬性,稱為隱式屬性。選擇哪些因素可以參考文獻[8]。本文選取下列顯式屬性,文字、話題標(biāo)簽、被轉(zhuǎn)發(fā)數(shù)、被評論數(shù)、被點贊數(shù);選取下列隱式屬性,特征詞以及權(quán)重、詞對關(guān)系、用戶權(quán)威度;作為評估微博熱門話題的因素。
對于微博的文本,要從兩個方面著重研究:第一,微博普通文本;第二,帶有話題標(biāo)簽的文本。對于話題標(biāo)簽,本文用topicTag表示,topicTag基本上是由##和【】表示,針對微博中的這些topicTag,還需單獨考慮其權(quán)重問題。
特征詞ti在微博dj中的權(quán)重及微博dj中含有topicTag信息的權(quán)重,使用改進TF-IDF[9]公式。
特征詞ti在微博dj中的基本權(quán)重,如式(1)所示
(1)
對于博文中含有topicTag信息的權(quán)重,如式(2)所示
(2)
最后,特征詞ti在微博dj中的權(quán)重定義為
weightij=tag_weightij×wij
(3)
微博文本中,使用基于SSE的自適應(yīng)聚類算法[10]對微博數(shù)據(jù)進行聚類,得到聚類結(jié)果。
微博用戶權(quán)威度是通過對用戶轉(zhuǎn)發(fā)、評論的影響,從而間接性地影響微博熱點話題熱度。本文從用戶權(quán)威UA(user authority)入手,對其進行度量。具體定義見張仰森等的定義說明[11],用戶權(quán)威度的評價特征如下:
用戶擴散水平包括用戶粉絲數(shù)、博文被轉(zhuǎn)數(shù)、博文被評數(shù);用戶活動率包括用戶關(guān)注數(shù)、用戶發(fā)博數(shù)、用戶評論數(shù)、用戶注冊時間;用戶平臺認證指數(shù)包括是否認證用戶、賬號等級。
構(gòu)建評價特征三元組E(UDI,UAR,UPI), 其中UDI表示用戶擴散水平,UAR為用戶活動率,UPI表示用戶平臺認證指數(shù)。
用戶權(quán)威度UA(ui)、UDI(ui)、UAR(ui) 以及UPI(ui) 的計算公式將使用UIRank算法[11]。
用戶權(quán)威度具體如式(4)所示
UA(ui)=v1×UDI(ui)+v2×UAR(ui)+v3×UPI(ui)
(4)
關(guān)于用戶擴散水平,具體如式(5)所示
(5)
關(guān)于用戶活動率,具體如式(6)所示
(6)
關(guān)于用戶平臺認證指數(shù),具體如式(7)所示
UPI(ui)=φ·A(ui)+ω·G(ui)
(7)
微博中,存在大量轉(zhuǎn)發(fā)、評論和點贊關(guān)系,稱之為引用關(guān)系,引用的微博約占微博總數(shù)的71%,引用的微博又是與主題相關(guān)的,本文算法將引用關(guān)系作為算法的重要因素。2.1節(jié)是關(guān)于特征詞在微博中的權(quán)重計算,可根據(jù)其權(quán)重計算結(jié)果對特征詞進行降序排序,排序越靠前表明越重要。
微博之間的引用關(guān)系可以用一個有向網(wǎng)絡(luò)來描述。被引用的微博用集合D={d1,d2,…,dm} 表示,引用的微博用集合C={c1,c2,…,cn} 表示,鏈接由上面兩個集合組成,方向從引用微博指向被引用微博,其中轉(zhuǎn)發(fā)關(guān)系用集合RP={rp1,rp2,…,rpl}, 比重為α; 評論關(guān)系用集合CM={cm1,cm2,…,cml} 表示,比重為β; 點贊關(guān)系用集合L={l1,l2,…,ll} 表示,比重為γ; 其中α+β+γ=1取α=0.3,β=0.5,γ=0.2。 特征詞用集合W={w1,w2,…,wl} 表示。
熱度分配算法(hot allocation method,HAM),HAM方法計算過程如圖1和圖2所示,詳細過程如下。
圖1 HAM方法計算過程1
圖2 HAM方法計算過程2
(1)隨機選取數(shù)據(jù)集中包含特征詞wi的微博dj, 并生成與微博dj有引用關(guān)系的微博集C={c1,c2,…,cb}。 接下來我們定義集合Pj={d1,d2,…,dc}, 該集合中的每條微博至少和微博dj有一個共同的特征詞,并且和微博集Cj有引用關(guān)系。
(2)我們計算Pj中第h條微博被集合Cj引用的引用權(quán)重qj,h, 其中rpx,y,cmx,y,lx,y分別表示cx與py之間是否有轉(zhuǎn)發(fā)、評論、點贊關(guān)系,且α+β+γ=1, 如式(8)所示
qj,h=∑rpx,y×α+∑cmx,y×β+∑lx,y×γ
(8)
然后計算一個熱度共享矩陣A,其元素是awi,h, 表示Pj中第h條微博中的wi特征詞的熱度含量。假設(shè)wi在包含k個特征詞的第h條微博中位于第r個位置,則awi,h的計算公式如下
(9)
(3)mwi,j表示特征詞wi在微博dj中分配的熱度,公式如下
(10)
其中,τ表示權(quán)重系數(shù)取τ=0.45, 在實驗部分確定,UA表示該條微博對應(yīng)的用戶權(quán)威度。
(5)通過對M進行降序排序,我們就能得到特征詞的熱度排名。
通過對微博影響因素的分析與總結(jié),得出算法總過程如下。
提取微博文檔數(shù)據(jù)集的topicTag信息。使用ICTCLAS分詞系統(tǒng)對文本內(nèi)容及話題標(biāo)簽進行分詞。根據(jù)式(3)計算微博中特征詞分配得到的權(quán)重,并使用基于SSE的聚類算法進行聚類。根據(jù)式(4)計算每篇微博對應(yīng)博主的用戶權(quán)威度。根據(jù)詞熱度分配算法計算,得到特征詞的熱度排序降序結(jié)果。根據(jù)排序結(jié)果中的特征詞,得到對應(yīng)聚類類簇的大概主題。
本實驗?zāi)康氖球炞C本文提出的基于用戶權(quán)威度與熱度分配的熱點話題發(fā)現(xiàn)算法是否能夠更準(zhǔn)確地挖掘微博中的熱點話題。
本文采用八爪魚爬蟲工具從微博中爬取實驗數(shù)據(jù)集U,以2016年8月份微博的數(shù)據(jù)內(nèi)容作為采集數(shù)據(jù)對象,總共采集了63 416個用戶的博文數(shù)據(jù)。該數(shù)據(jù)包括用戶信息、微博文本、文本間引用(轉(zhuǎn)評贊)關(guān)系。經(jīng)過篩選剔除后,共得到有效樣本52 450個用戶數(shù)據(jù),甄別無效樣本10 966個用戶數(shù)據(jù)。
本文對數(shù)據(jù)集進行人工話題篩選,得到10個話題類別,見表1。
表1 實驗語料
TDT評測會議給出了話題檢測的相關(guān)規(guī)范指標(biāo)[12],本文采用的評價指標(biāo)為:吞吐量、運行時間、準(zhǔn)確率以及F值。
吞吐量(TPS)測試主要用來觀察模型建立的過程,每秒能夠進行多少條微博的處理;運行時間(T)表示從分詞之后到得到熱度分配的排序結(jié)果以及詞對共現(xiàn)矩陣排序結(jié)果的時間;準(zhǔn)確率是算法結(jié)果與官方處理結(jié)果之間的正確性的比值;F值用于評價算法的綜合指標(biāo)。
首先通過實驗為式(2)的常數(shù)ε選取合適的值,分別選取數(shù)據(jù)集中8000,15 000,25 000條數(shù)據(jù)的情況下,研究不同的ε值對熱度分配算法排序結(jié)果的準(zhǔn)確性影響。
當(dāng)ε過小時,與傳統(tǒng)的TF-IDF區(qū)別不大,當(dāng)ε過大時,忽略微博中topicTag以外的特證詞,通過結(jié)果可知,ε=1.5的正確率是最高的,故本文選取ε=1.5。
其次,確定式(4)中的v1,v2,v3權(quán)值系數(shù)。求解最大特征值以及最大特征向量,并且加入一致性校驗,最終得到評價特征的權(quán)值為(v1,v2,v3)=(0.6373,0.1353,0.2273); 同理得到式(7)中的兩個因素的特征權(quán)值為(φ,ω)=(0.8334,0.1666)。
實驗步驟分為吞吐量測試、運行時間測試、準(zhǔn)確率測試和F值測試4個部分。本文算法作為算法1與以下兩種算法進行比較。算法2:劉少鵬等的基于MB-HDP模型的微博主題挖掘[4];算法3:Yan D等詞向量+Single-Pass聚類[13]。
吞吐量測試主要用來檢查熱度分配與詞對共現(xiàn)矩陣模型建立的過程,吞吐量測試結(jié)果如圖3所示。
圖3 吞吐量測試結(jié)果
由結(jié)果可知,本文算法吞吐量結(jié)果基本穩(wěn)定在8000條/s,在數(shù)據(jù)量大的情況下表現(xiàn)較好可以應(yīng)對大數(shù)據(jù)的情況。
在運行時間測試之前,為了使實驗更具有對比度,本文將原始數(shù)據(jù)集U隨機分為3組不同的數(shù)據(jù)集進行測試。A組有8456微博數(shù),B組有10 577微博數(shù),C組有24 417微博數(shù)。
針對3組數(shù)據(jù),分別使用上面說明的算法1、算法2以及算法3進行計算,運行時間的測試結(jié)果如圖4所示。
圖4 運行時間對比
可以看出在數(shù)據(jù)集規(guī)模相差較大的情況下,算法1運行時間受數(shù)據(jù)量影響不大,算法2、算法3運行時間受數(shù)據(jù)規(guī)模影響較為敏感,會隨著數(shù)據(jù)集的增長而較快增長。由此可見,本文算法效率適用于大數(shù)據(jù)集的場景,并且表現(xiàn)相對較好。
對于準(zhǔn)確率的測試,本文收集了微博官方給出的熱門話題列表,將算法結(jié)果與官方結(jié)果進行比較。使用運行時間測試中的C組數(shù)據(jù)進行測試,準(zhǔn)確率測試結(jié)果如圖5所示。
圖5 準(zhǔn)確率測試結(jié)果
通過對比可以看出,本文算法在準(zhǔn)確率方面也是優(yōu)于算法1和算法2,得到熱點話題與官方話題基本相同,僅在話題順序上有點不同,同時選出的熱點話題帶有topicTag標(biāo)記,使得話題描述更加準(zhǔn)確。
F值測試主要用來檢測聚類的效果,為了進一步驗證算法的穩(wěn)定性,驗證微博數(shù)據(jù)集為5000-40000逐漸遞增情況下的F值,F(xiàn)值測試的結(jié)果如圖6所示。
圖6 微博數(shù)據(jù)集對F值的影響
從圖6中可以看出,算法1的聚類效果隨著微博數(shù)據(jù)集增加F值的表現(xiàn)越來越好,符合聚類算法的特性。
本文針對以往熱點話題挖掘的缺陷,綜合多個熱點話題的影響因素,提出了基于用戶權(quán)威度與熱度分配的微博熱點話題算法,該算法很好結(jié)合了微博熱點話題的影響因素,綜合特征詞權(quán)重降序順序,對微博文本進行聚類分析得到主題類簇;根據(jù)用戶權(quán)威度及博文之間的引用關(guān)系計算特征詞熱度,得到特征詞的熱度排序結(jié)果,獲取特征詞對應(yīng)聚類類簇的大概主題即熱點話題。實驗結(jié)果表明本文算法在微博熱點話題挖掘上表現(xiàn)較好。下一步可以考慮在文本內(nèi)容之外,結(jié)合圖片表情及視頻資料,對微博數(shù)據(jù)內(nèi)容進行更全面的分析,從而對微博話題進行更好的挖掘。