蔡 瑩 於躍成 谷 雨
(江蘇科技大學計算機學院 鎮(zhèn)江 212000)
近年來,隨著信息爆炸時代的到來,社交網絡開始興起,微博憑其便捷的優(yōu)勢快速流行起來,成為信息傳播的主要途徑。突發(fā)話題往往在微博初次公布,經過用戶迅速傳播,產生巨大的社會影響。當新穎話題涌出并與熱點話題有關且引起強烈的關注,即為微博突發(fā)話題。檢測突發(fā)話題可以為人類提供有價值的信息,有利于社會進行輿論分析、商業(yè)營銷等相關應用價值和社會熱點線索追蹤。
微博突發(fā)話題是指在微博中突然初次出現的在較短時間內產生強烈影響的熱點話題。與正式的長文本不同,微博是大眾媒體的產物,格式隨意不規(guī)范,同一個話題隨著用戶關注度和時間推移經歷產生、發(fā)展、成熟、衰敗和消亡的完整生命周期,導致大量信息冗余,產生海量過期信息,使話題呈現出一定的間隔性。這些缺點導致傳統(tǒng)的話題檢測很難識別突發(fā)性話題。
基于傳統(tǒng)突發(fā)話題檢測方法提出的挑戰(zhàn),本文增添動態(tài)時間窗口實時檢測有意義串以發(fā)現微博中不斷出現的新詞,作為初步候選突發(fā)特征,將微博的時間衰減性和用戶網絡行為加入到傳統(tǒng)動量模型中,對候選特征的動態(tài)變化進行建模,進而分析其動量及能量變化趨勢,修正原有動量模型的不足,提升檢測的準確率,從而檢測出突發(fā)話題。
突發(fā)話題檢測是話題跟蹤與檢測(Topic Detec?tion and Tracking,TDT)的一個分支,與傳統(tǒng)TDT方法不同,突發(fā)話題是隨時間的推移動態(tài)發(fā)展的,提取突發(fā)特征來檢測突發(fā)話題。TDT是以文檔為中心的聚類,而微博突發(fā)話題檢測主要是檢測突發(fā)特征,將突發(fā)特征聚類為突發(fā)話題。YU[1]等首次提出以特征為中心的話題聚類方法,通過超幾何分布來識別突發(fā)話題特征;LIM[2]等對詞語權重隨時間變化的曲線進行分類,使用高斯混合模型對周期性特征進行建模;Kleinberg[3]等提出二狀態(tài)自動機突發(fā)特征檢測方法,利用參數解析度和狀態(tài)翻轉代價來觸發(fā)狀態(tài)轉移;He[4]等借鑒動力學原理對突發(fā)話題進行建模,在動量學模型基礎上對參數賦權調整;Gagli[5]等提出實時分析數據流,運用軟頻率模式深入挖掘信息;于海峰[6]等對樣本數據進行降維,將特征值隱含的風險信息在指標論域內進行擴散。上述方法適用于規(guī)范長文本,對于微博不太適用。
目前在傳統(tǒng)方法的基礎上結合了社交網絡的新特性,提出一些針對社交網絡媒體的突發(fā)話題檢測的方法。HU[7]等把社交網絡話題中TF-IDF和UF-ITUF結合,計算內容特征和用戶參與度兩方面主題和話題的相似度;Chen[8]等用詞的突發(fā)性作為噪聲過濾的重要指標,計算分隔區(qū)間的加和、標準差,按照對應的公式計算結果;TIAN[9]等將用戶的影響力、回復數、收藏數來表示關鍵詞的能量,對突發(fā)詞進行相似度比較;王征[10]等提出基于信息密度的模型MBID,利用話題樹的信息密度變化來發(fā)現突發(fā)話題;LIU[11]等將“#”作為 Twitter突發(fā)事件符號,通過“#”出現的位置、頻次等定義了穩(wěn)定性、可能性等屬性;Osborne[12]等通過“Hash”的位置檢測Twitter中的突發(fā)事件;Diao[13]等將微博用戶興趣與時間結合,基于泊松狀態(tài)機來檢測突發(fā)話題;郭跇秀[14]等通過凝聚式層次聚類對突發(fā)詞集合進行合并;毛佳昕[15]等分析用戶行為來預測用戶信息傳播的能力;李棟[16]等分析微博的用戶關系,將用戶關系強度定義為用戶間的相似度。
上述方法大部分都是用傳統(tǒng)的詞語作為特征,并沒有考慮到新詞的出現。微博的新詞是隨著時間窗口的推移大量涌現并常作為突發(fā)特征的。本文從微博的時間特征以及用戶網絡行為這兩個方面著手,修正原有的動量模型,對微博的有意義串[17]進行建模,實時檢測突發(fā)特征,提高突發(fā)話題檢測效果。
突發(fā)話題是指在微博中首次出現且在較短時間內產生強烈影響的熱點話題。具體定義為在短時間內引起強烈關注并具有較高熱度的話題,簡稱為“熱搜”。本文先提取具有重復特征的有意義串[17]作為候選字符串,然后計算重復串的上下文鄰接類別來衡量候選字符串是否滿足語用多樣性,用語言模型來判斷字符串的語義完整性,過濾得到有意義串。最后實時檢測有意義串來發(fā)現微博中涌現的新詞,作為初步候選突發(fā)特征。
微博瞬時數據規(guī)模巨大,涌現出的大量有意義串是呈時間和空間的局部性特點。微博信息流是時間序列上的文本流,設置觀察時間窗口T,將T內的信息流作為檢測數據,提取表現重復特性的有意義串。突發(fā)話題在較短時間內大量爆發(fā),其關鍵信息在較短時間內也將大量重復出現。因此,在時間窗口T內爆發(fā)的突發(fā)話題關鍵信息是包含在T內的有意義串中的。設置T內的信息流作為微博集合D={D1,D2,D3,…},提取D中有意義串作為初步候選突發(fā)特征,形成窗口內信息的特征空間S。隨著時間窗口(如圖1)的推動,特征空間S將動態(tài)變化。
圖1 時間窗口滑動過程
動量模型的特點是分析詞頻序列發(fā)展趨勢及預測能量,核心是計算詞頻的一階和二階序列,檢測當前狀態(tài)是否存在突發(fā)性。其中一階序列是指MACD值指標序列,是衡量突發(fā)程度的指標;二階序列為MACD的變化值,是詞頻序列的發(fā)展趨勢。
突發(fā)話題檢測的核心是識別突發(fā)特征,在時間窗口中提取具有突發(fā)性的詞語作為突發(fā)特征。本文提取動態(tài)特征空間S中的有意義串作為初步候選突發(fā)特征,借助動力學原理對其建模,定義特征的基本屬性,反映特征在話題發(fā)展中的能量大小及變化走向,最終檢測出突發(fā)特征。特征的屬性定義如下:
1)特征的“質量”m:表示特征在文本流中的重要程度,不隨時間變化,在較長時間內基本恒定。特征i的質量公式為
2)特征的“位移”x:指特征在某一時刻的熱度,隨時間動態(tài)變化。特征i在時刻t的位移計算公式為
其中x(t,i)表示特征i在時刻t的熱度;tf(t,i)表示特征i在時刻t出現的頻次;df(t,i)表示在時刻t時包含特征i的微博出現的頻次;uf(t,i)表示在時刻t的微博中包含特征i的微博用戶數量;a、b、c是調節(jié)參數。
由基本屬性計算特征i在時刻t的速度v,動量p和加速度a:
(2)動量 p=m×v:將m考慮進動量模型的MACD值指標,表示特征在t時刻的能量大小及變化趨勢;
特征在一個話題周期內首次大量出現稱為突發(fā),而當特征在一個話題周期內再次瞬時爆發(fā)時,與初次真正的突發(fā)存在間隔期,從發(fā)展趨勢來看間隔期后的爆發(fā)點處于特征的下降趨勢。為了識別并過濾間隔性偽突發(fā)特征,需要分析特征在一定時段內的新穎性。股票趨勢分析方法就是針對一定時間的價格變化進行平滑,分析價格在一定時間范圍的上漲或者下跌趨勢。因此,本文借鑒股票趨勢分析方法,對話題周期內的特征動量進行平滑,分析其趨勢的走向,判斷突發(fā)特征的新穎性,識別并過濾間隔性偽突發(fā)特征。具體過程如下:
1)首先需要對詞頻進行數據平滑,用來減少噪聲影響:平滑數據用EMA來衡量。指數移動平均(Exponential Moving Average,EMA)是一種趨勢類指標,用指數的形式進行遞減加權的移動平均。將特征的動量時間序列進行n天指數平均,平均后的動量值與前n天的動量值相關:
2)對平滑后的時間序列進行動量計算:移動平均收斂發(fā)散 MACD(moving average convergence-di?vergence)指標又稱指數平滑異同移動平均線,是一種利用短期和長期移動平均線之間的聚合與分離情況來判斷股票的買賣時機,跟蹤股價運行趨勢。在股票機制里,MACD線的組成:由一條快速線(DIF)、一條慢線(DEA)和柱狀圖(BAR)三部分組成。MACD指標是根據均線的構造原理,對股票價格的收盤價進行平滑處理,求出算術平均值以后再進行計算的趨向類指標。
(1)DIF=EMA1-EMA2,其中DIF指離差值,EMA1指快速移動平均線,EMA2指慢速移動平均線;
(2)DEA:DIF的平均值,DEA是MACD線經過指數平均之后的另一條線,即DEA=EMA3(DIF);
(3)BAR=2*(DIF-DEA):快速的DIF線穿過慢速的DEA線,獲取動量的變化值;
借鑒股票趨勢理論建模,用兩個不同周期的指數移動平均序列的差來取得動量大小,差值是較快EMA線和較慢EMA線的差,用MACD線來衡量,即相當于股票趨勢分析理論里的DIF線:
其中MACD(n1,n2)值即為文前所定義的速率v,用來檢測是否存在突發(fā)信號;n1、n2為時間周期,n1<n2;
本文用H來表示股票趨勢分析理論BAR,當快速MACD線穿越慢速Slow線,動量趨勢發(fā)生變化:
其中H表示特征平均動量和局部波動之間的差異即為加速度a,獲取詞頻MACD值的變化,反映特征動量變化趨勢,作為衡量特征新穎性的指標。判斷動量模型特征是否突發(fā)后,再次根據特征的H值是否大于0判斷特征是否是間隔性偽突發(fā)特征:
1)偽突發(fā)特征首次出現:H>0表示動量處于上升趨勢,該特征屬于突發(fā);
2)偽特征在周期內再次出現:H<0表示特征在前期大規(guī)模爆發(fā)過,動量處于下降趨勢,該特征不是新穎的突發(fā)特征。
綜上所述,將非新穎間隔性偽突發(fā)特征過濾進而檢測突發(fā)特征。傳統(tǒng)動量模型并沒有將時間衰減性和用戶網絡行為考慮在內,導致該模型在微博上檢測效果不能進一步提升,因此對傳統(tǒng)動量模型進行修正與改進。
傳統(tǒng)動量模型僅僅分析特征詞,并沒有考慮微博時間衰減特性和用戶網絡行為,檢測效果不能更加精確,因此本文從這兩個方面進行分析,提出時間衰減性因子和微博熱搜因子,從而提高檢測效果。
3.4.1 時間衰減性因子
微博消息之間具有相關性,因此必須考慮時間特性。前段時間的微博對當前數據的影響會隨著時間流逝而有所衰減,因此微博中時間影響力體現時間的衰減性。微博的發(fā)布數量呈指數型增長,因此時間的衰減性應該體現指數特征。
其中IM表示前M個周期的微博發(fā)布情況對當前特征的影響力,即為前M個周期蘊含時間窗口維度的位移;wt表示每個時間段t內關于特征詞的微博發(fā)布總量;C表示設定的衰減性周期。
時間衰減特性體現前一段周期的數據對當前微博的影響。若前一段周期內的話題討論量較多,則該話題獲得用戶的關注度更高,因此當前微博影響力較大;反之則認為當下微博的詞頻會隨著時間衰減導致影響力不斷減小。
3.4.2 微博熱搜因子
傳統(tǒng)動量模型并沒有考慮用戶網絡行為因素,因此需要基于用戶網絡行為的熱搜因子來改進動量模型。用戶社交行為包括對微博的點贊、評論、轉發(fā)等。隨著時間窗口的推移,話題討論量呈下降趨勢,舊話題被新話題代替。若突發(fā)話題詞頻變化呈上升趨勢,則說明該時段中用戶網絡行為較為頻繁,話題關注度有所增加。若話題需要提高原有序列值,則需要一定的熱度,只有更多用戶參與到話題討論中,才能使得序列得到提升,即微博的話題“熱搜”。熱度即為熱搜因子,表示話題被用戶討論的趨勢,結合熱搜因子探討一階序列的增長變化,用以下定義來衡量重要性的大小。
其中α、β、λ分別表示用戶對微博的點贊、評論、轉發(fā)的參數因子,α+β+λ=1;Lit表示用戶在某時段t內對包含特征詞i的微博的點贊數;Cit表示用戶在某時段t內對所含特征詞i的微博的評論數;Fit表示用戶在某時段t內對含有特征詞i的微博的轉發(fā)數;∑hot表示整個時間窗口內用戶對所含特征詞的微博的點贊數、評論數、轉發(fā)數的總數;Bt表示時段t內數據重要性的大小;It表示前t個時段內的詞頻序列。
改正MACD動量序列,衡量用戶網絡行為隨著時間窗口的推移對話題的發(fā)展趨勢產生的影響:
采用K-means聚類算法對突發(fā)特征集合進行歸類進而形成突發(fā)話題。K-means聚類是一種無監(jiān)督算法,能自動依靠詞頻序列間的相似性合并計算,動態(tài)調整類簇中心。K-means聚類簡單且時間復雜度較低,因此本文用該聚類算法合并特征詞。
首先經過上述步驟過濾偽突發(fā)特征得到突發(fā)特征詞,隨后初始化k個隨機數據作為簇類中心點,初始化方式由原始序列數據位于最大值、最小值之間的隨機值確定;最后迭代得到最終k類的中心點以及標記后的突發(fā)特征序列數據:
1)把所有的點分配到k個類的系數r,屬于第k個類的記為1,否則為0:rik∈{0,1}(1≤i≤N,1≤k≤K)。
2)由1)可知第k個類中的樣本數量:
3)目標是最小化損失函數:
4)估算每個點到中心點的距離,給出r的系數:
5)重新計算每個類的中心點:
重復4)和5)兩個步驟使得各類的中心點的偏離值趨于收斂,從而聚類所得的各簇類即為突發(fā)話題。
本文為評估基于時間窗口的微博突發(fā)話題檢測的有效性,結合新浪API編寫的分布式爬蟲程序,從新浪微博上爬取1000個活躍用戶發(fā)表的628682余條微博作為實驗數據。將2018年2月到2018年5月這三個月的數據作為訓練語料,將每日的數據作為微博信息流檢測突發(fā)話題。每天對數據進行手動標記,產生突發(fā)話題作為衡量實驗結果的標準。實驗結果通過聚類得到,最后獲取算法檢測后的突發(fā)話題。分離出的突發(fā)話題與直接手動標記的突發(fā)話題進行對比,獲取算法檢測的準確度。
在實驗中,準確率(Precision)、召回率(Re?call)、F值(F-measure)是檢驗實驗結果的三項重要指標。微博文本高度稀疏,傳統(tǒng)聚類突發(fā)話題檢測在微博上效果較差,無法確定時間區(qū)間內突發(fā)話題內容,因此通過手工提取突發(fā)話題的方法來近似作為實際檢測的突發(fā)話題。本實驗采用將改進后的動量模型和經典模型TF-IDF與傳統(tǒng)動量模型來作比較。實驗結果如表1所示。
表1 模型實驗結果對比(%)
從表1的對比結果可以看出,相較于TF-IDF和傳統(tǒng)的動量模型,改進后的動量模型在精確率上占較大優(yōu)勢。實驗表明,改進的動量模型突發(fā)話題檢測方法適用于微博消息數據,可以除去大量噪音,在最短時間內能快速檢測突發(fā)特征。改進的動量模型考慮時間的衰減性,對特征進行跟蹤,分析隨時間窗口滑動特征的能量變化,過濾偽突發(fā)特征,提高檢測的準確率。數據結果表明,在傳統(tǒng)的動量模型中加入時間衰減性因子和微博熱搜因子,在實時微博數據流檢測中準確地把突發(fā)特征挖掘出來,對話題中的突發(fā)信號較為敏感,放大微博數據流中的突發(fā)信號,有利于檢測出突發(fā)特征。
圖2 突發(fā)話題數量時間分布圖
圖2 是從2018年3月8日到2018年3月28日的微博突發(fā)話題的數量,縱坐標表示突發(fā)話題數量,單位是個,橫坐標表示日期,單位是天??梢灾庇^看出在3月12日、16日、28日這3天明顯微博的突發(fā)話題較多,話題分布相對來看比較分散,相反在3月17日、22日、23日這3天突發(fā)話題數量較少,話題相對來說比較集中。
圖3 實驗結果準確率對比圖
圖3 是這二十天的TF-IDF以及傳統(tǒng)的動量模型和改進后的動量模型方法的準確率的分布情況,其中縱坐標表示準確率,單位是%,橫坐標表示日期,單位是天。從圖3可以看出,在3月12日、16日、28日這3天突發(fā)話題數量較多時,這三種模型的檢測結果的準確率都是較之前時間內是降低的。因為當突發(fā)話題數量較多時,話題的分布是分散的,一些突發(fā)和非突發(fā)話題相互交叉從而使得噪音較大,進而識別不出突發(fā)話題和非突發(fā)話題,導致檢測的準確率大大降低。相反,在3月17日、22日、23日這3天突發(fā)話題數量較少的情況下,這三種模型的檢測結果的準確率都是比較高而且相對于其他時間段來說是較為接近的。因為在微博中突發(fā)話題數量較少時,突發(fā)話題的分布是較為集中的,因此噪音相對來說會比較小,準確率會相對地提升。
該論文以傳統(tǒng)的動量模型為基礎,鑒于微博的特點,加入了時間衰減性因子和微博熱搜因子,對傳統(tǒng)的動量模型進行改進,提出了基于時間窗口包含用戶行為的微博突發(fā)話題檢測方法。
實驗結果可以看出,改進的模型不僅突發(fā)話題檢測效果有所提升,而且相對而言降低了噪音,減少信息冗余,在檢測結果的準確性方面有所提高?;跁r間窗口包含用戶行為特征的微博話題檢測方法雖然有效地提高了檢測的準確率,但是在以后的工作中還需要繼續(xù)研究。微博用戶都是基于好友關聯的,需要考慮用戶與用戶之間的關系、用戶之間的親密程度以及用戶對話題的感興趣程度等這些因素對話題產生影響,因此需要進一步學習研究這些要素在突發(fā)話題檢測上的影響。