陳新元,謝晟祎
(1.福州墨爾本理工職業(yè)學院 信息工程系,福建 福州 350108;2.福建農業(yè)職業(yè)技術學院 實驗實訓中心,福建 福州 350119)
隨著科技和社交網(wǎng)絡的進步,人們的交流呈現(xiàn)在線化、數(shù)字化的趨勢。微博是國內的主流社交網(wǎng)絡平臺之一,類似國外的Twitter;截至2018年,活躍用戶數(shù)達到4.62億(出自微博數(shù)據(jù)中心發(fā)布的2018年用戶發(fā)展報告)。人們可以在微博上分享其觀點和情感,可以發(fā)表微博或對其他用戶的微博進行評論。此外,微信、人人等IM工具或平臺也有大量的社交信息。
對社交文本進行分析,可發(fā)現(xiàn)網(wǎng)絡意見領袖,可提取、監(jiān)控、跟蹤網(wǎng)絡輿情[1],還可進一步將數(shù)據(jù)挖掘的結果用于構建情感網(wǎng)絡模型,或用于商業(yè)領域如產品、服務的智能推薦等。
文本分析的基礎是構建表示模型。傳統(tǒng)的文本特征表示方案多采用向量空間模型(VSM),將文本表示為特征向量,向量取值代表了特征權重。當文本較短時,特征詞數(shù)量也較少,且動態(tài)性較強,故生成的特征多為稀疏矩陣;隨著文本規(guī)模的增長,特征向量矩陣的維數(shù)巨大,出現(xiàn)了維度災難,因此文本降維具有重要意義。
傳統(tǒng)聚類方法可分為劃分法和密度法,前者根據(jù)距離等標準,給定分區(qū)數(shù)K,通過初始劃分并反復迭代的方法優(yōu)化樣本的劃分,將數(shù)據(jù)集構造為K個分組,令同一個組內的對象盡可能接近或相關,每個分組代表一個聚類。密度法則是計算區(qū)域內點的密度,若密度超過閾值,則加入相似聚類;密度法可克服基于距離的算法只能發(fā)現(xiàn)“類圓形”的缺點[2]。
本文希望能進一步提高表示模型構建的準確率,因此嘗試對幾種主流降維方法進行分析,并在真實數(shù)據(jù)集上比較其降維效果。在此基礎上,結合神經(jīng)網(wǎng)絡實現(xiàn)聚類,將分詞后的微博文本表示為特征詞簇,從而優(yōu)化文本表示模型。實驗階段將自組織神經(jīng)網(wǎng)絡的表現(xiàn)與傳統(tǒng)k-means算法比較以驗證方案的有效性。
根據(jù)Johnson-Lindenstrauss引理,可以在多項式時間內將高維空間映射到O(log )維的子空間上;同時對于任意0<ε<1,點間距離偏差可控制在1±ε以內。因此對于m×n的矩陣Mm×n,可通過Mm×n·Rn×r = M’m×r(r<<n)的方式降維,其計算復雜度為O(mnr),若原矩陣為稀疏矩陣,可進一步將計算復雜度降至O(cmr),其中c<n為行內非0元素的均值。
由于文本特征矩陣的元素值非負,故可以分解為2個非負矩陣的乘積,即Mm×n = Km×r×Rr×n(r<<n),(m+n)×r < mn。取原矩陣和矩陣R的第i列,可表示為Mi = KRi,則Mi則可視作關于K的正線性組合,系數(shù)為Ri。K=[w1, w2, …, wr]可看做是對M進行線性估計的優(yōu)化的基向量,可嘗試用用較少的基揭示M的數(shù)據(jù)結構。該算法具有收斂快、存儲空間小等優(yōu)點,適用于大規(guī)模文本。
文本用詞多樣性并非可靠的概念表示,相反很可能掩蓋了其語義結構,因此LSA方法通過奇異值分解實現(xiàn)降維,將矩陣W表示為W=UAVT,U、V分別是對應的左右奇異向量矩陣,A是W按奇異值遞減構成的對角矩陣;通過構建近似矩陣Wr=UrArVrT實現(xiàn)降維以突顯語義特征,Ur和Vr分別作為文本向量和詞向量。通過奇異值分解和近似矩陣設計,LSA在很大程度上消除了文本噪聲[4]。但奇異值分解資源開銷較高,達到O(mn2),因此LSA通常用于少量文本的處理。此外,若文本為稀疏矩陣,同樣可將復雜度降至O(cmn),其中c<n為行內非0元素的均值。3種方法中,RP和NMF的復雜度低于LSA。
基本思路為特征詞的上下文越相似,其應用環(huán)境和語義就越相似[5];因此將特征詞左右各n個詞計入上下文考慮范圍,根據(jù)上下文的相似度,使用神經(jīng)網(wǎng)絡實現(xiàn)自動聚類。
具體過程如下:
⑴ 在給定特征詞集合的基礎上,使用Huffman編碼;
⑵ 設置context窗口參數(shù)并進行提取,將特征詞自身作為第1層DBN的輸入,其上下文作為第1層輸出,訓練DBN,得到最能代表該特征詞的窗口向量;
⑶ 將DBN的輸出作為SOM神經(jīng)網(wǎng)絡的輸入,其輸出即為相同或相近語義的特征詞聚類結果。
實驗所用硬件為:Xeon 3104×2;16G×8內存;1.2T SAS硬盤×3,Raid5。
本文自建微博數(shù)據(jù)集,使用分布式的爬蟲系統(tǒng)同時通過微博API接口和Web頁面提取信息,隨機抽取話題;使用中科院的ICLCLAS對抓取的數(shù)據(jù)進行分詞和停用詞處理等預處理操作,最后得到分割后的文本單元。
分別運用RP、NMF和LSA等方法作降維處理(r=100和r=200),采用SOM神經(jīng)網(wǎng)絡進行文本聚類分析,在來自4個話題的10萬、20萬、50萬條微博短文本上比較降維用時和聚類平均準確性,結果如表1、表2所示。分析可知:
表1 降維用時 (單位:s)
⑴ 與計算量少的RP方法相比,NMF和LSA的耗時高出許多;后兩者間,耗時隨著數(shù)據(jù)集規(guī)模增加逐漸接近;在50萬條數(shù)據(jù)集上,無論r取100或200,NMF和LSA的用時基本一致;
⑵ 3種降維方法都能在一定程度上提高聚類的準確率,相比RP,NMF和LSA的聚類準確率有明顯提高,能夠在一定程序上降低噪聲的影響;LSA的準確率最高。
此外,實驗中使用了增量算法對文本分塊并不斷更新表示模型,同時使用了Storm框架提高分析效率,實現(xiàn)文本表示模型的動態(tài)更新。具體過程如下:LogHub系統(tǒng)接收文本后,使用并行Spout組件讀取文本;將數(shù)據(jù)副本緩存在IRichBolt中;數(shù)據(jù)通過增量模型,經(jīng)聚類和降維后發(fā)送到IncrementBolt;最終通過HBase Shell進行實時表示和分析。
文本降維是特征矩陣表示模型優(yōu)化的重要環(huán)節(jié),合適的文本降維方法有助于提高聚類準確性。實驗數(shù)據(jù)表明,RP、NMF和LSA方法都能在一定程度上改善聚類表現(xiàn);基于神經(jīng)網(wǎng)絡的聚類方法相比傳統(tǒng)K-means方法也有一定改善。另外,降維矩陣的選擇和計算,對于方法用時和準確率也有一定影響,相關參數(shù)的計算可作為今后研究的內容。
表2 聚類平均準確率