李少華+李衛疆+余正濤
摘 要:隨著社交網絡的不斷發展,微博成為越來越多的人獲取信息的平臺。為了有效解決微博話題檢測中海量短文本帶來的詞稀疏問題,提出結合全局向量模型(GloVe)和潛在狄利克雷分布(LDA)的GV-LDA模型。在使用LDA進行話題檢測前,模型利用多義詞詞項的含義與詞性相關的事實,在標注過并去除低頻詞的語料上,對全局向量模型進行訓練獲得詞向量,對詞性相同且相似度大于閾值的詞進行替換以解決稀疏性問題。實驗結果表明, GV-LDA模型較傳統的LDA主題模型,可有效提高話題檢測的準確率和召回率,并降低“主題-詞”處理的維度,因此GV-LDA更適合微博話題檢測。
關鍵詞:微博;話題檢測;全局向量;潛在狄利克雷分布
DOIDOI:10.11907/rjdk.172432
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2018)002-0131-05
0 引言
隨著信息技術的快速發展,社交網絡信息量出現了爆炸式增長,人們可接觸的信息越來越豐富,如何從海量信息中獲取有效信息受到研究者越來越多的關注。
微博是一個基于用戶關系的信息傳播平臺,可使用電腦或手機上的網頁或應用,通過發布、評論、點贊、轉發文字消息、照片或視頻音頻鏈接等方式,即時分享自己對事件的感受。微博作為一種新的網絡媒體形式,已經成為普通民眾分享、關注、獲取所關心信息的重要平臺。微博的字數限制在140字之內,更加契合忙碌運轉的現代社會對寫作和傳播方式的需要,增加了人們創作的隨意性。微博用戶可以便捷地了解自己所關注的人和群組發布的消息,但無法及時掌握整個平臺的熱點話題。為此,需要將海量的微博信息進行組織和歸并,從中提取話題,并以簡潔而明確的形式予以展示。
利用微博的結構和內容信息,結合現有的話題檢測技術,本文提出一套適合微博的話題檢測方法,以更加有效地利用微博信息為用戶提供更完善的信息服務。本文研究的主要問題包括共現窗口大小的確定、如何從詞共現獲得詞向量、相似詞歸并中如何選定相似度閾值、如何通過文本得出話題等。
1 相關工作
Hofmann等[1]提出基于似然原理的生成模型PLSA(Probabilistic Latent Semantic Analysis,概率潛在語義分析),其基本思想是每個文檔都是通過選擇主題的分布,然后根據分布選擇文檔中的詞語生成的。主題的數量有限,對應低維的語義空間,主題挖掘就是通過“降維”將文檔從高維空間投影到語義空間。PLSA使用EM(Exception Maximization,最大期望算法)對模型進行求解,其計算復雜度小于SVD算法,因此PLSA在性能和擴展性等方面的表現優于LSA。但是PLSA在文檔層面沒有提供合適的概率模型,同時EM算法需要反復迭代,計算量依然很大。
Blei等[2]提出的LDA(Latent Dirichlet Allocation,潛在狄利克雷分布)在PLSA中加入了Dirichlet先驗分布。在這個模型中,文檔建模為主題潛在集合上的有限混合,而主題則建模為主題概率潛在集合上的無限混合。針對PLSA中過多的參數導致過擬合及難以對訓練集外的文檔分配概率等缺陷,LDA引入了超參數,形成“文檔-主題-詞”的三層貝葉斯模型,使用變分貝葉斯近似后驗分布推導參數來挖掘文本主題。
ThomasL.Grffiths等[3]在LDA模型的參數推導階段引入馬爾科夫鏈-蒙特卡洛算法(Gibbs抽樣),并使用貝葉斯模型的選擇來確定主題數量。其對參數的推導過程更加快速,同時解決了變分貝葉斯方法中參數局部最優的問題。
微博與傳統文本在結構和內容上有差異,傳統的話題檢測方法不能很好地對其建模。為此,研究者紛紛提出新的模型,LDA模型在傳統文本話題檢測中表現卓越,多數模型基于LDA模型進行改進。
孫勝平[4]提出在空間向量模型中使用SP&HA聚類算法用于微博話題檢測。總體思想是:首先使用歸一化TF-IDF函數計算特征權重,然后使用余弦法則計算文本的相似度,接著在話題初步檢測中采用Single-Pass增量聚類算法,對與話題相似度高于閾值的文本進行歸并,最后在話題合并環節采用自底向上的凝聚式層次聚類算法,不斷合并相似度矩陣中相似度最大的兩個文本,得到滿足相似度預設值的話題類。
張晨逸等[5]綜合考慮微博文本包含的社交網絡結構化信息進行統一建模,提出MB-LDA微博生成模型。該模型基于如下假設:與同一個用戶有關聯的微博主題相關;轉發的微博與原創微博主題相關。對以@開頭的對話微博,模型抽樣出@的聯系人與各個主題的關系,并賦值給微博與主題之間的關系;對轉發微博,模型從伯努利分布中抽取參數確定的多項式分布,抽樣出當前單詞所屬主題;對原創微博,則使用LDA模型生成,然后使用吉布斯抽樣得出模型參數,最終獲得微博語料上的話題分布。
黃波[6]針對微博的結構和內容特點,利用LDA模型提取文本隱含主題,同時使用VSM計算文本向量的特征權重,并在計算文本相似度階段,通過實驗確定兩種模型得出的相似度進行線性疊加權重,最后通過兩層聚類得出微博話題。
鄭磊[7]為了解決LDA模型需要預先確定話題個數而難以擬合微博話題分布的問題,選擇設定較大的話題數,然后利用層次聚類算法需事先確定類別個數的特點,對LDA的輸出進行聚類,同時引入互信息度量微博話題詞之間的依存關系,使得模型能夠動態地由話題詞的相關性生成話題。
路榮等[8]提出的微博新聞話題發現方法,首先利用LDA得出主題-文檔分布,然后在每個時間窗口內根據新聞的特點給單義詞單元評分,并對每個微博中單義詞單元得分累加得到的總分排序,獲得若干可能的新聞微博。接著用K均值和層次聚類的兩層聚類,對選取的微博文本進行聚類,從而檢測出新聞話題。該方法能有效解決微博文本的稀疏性問題,具有良好的擴展性。endprint
謝昊等[9]通過對原創和轉發兩種類型的微博結構和內容分析,得出原創微博主題由微博本身確定,而轉發微博主題由轉發的原創微博內容確定的結論。提出了基于LDA主題模型的RT-LDA模型,從作者的主題分布中抽取原創微博主題,并將溯源到的最終的原創微博主題作為轉發微博的主題,并采用吉布斯抽樣法推導模型參數,最終得出微博的主題和用戶的主題分布。
劉嘉等[10]針對微博中新詞不斷出現,傳統模型無法對新詞相關的話題有效建模的問題,提出首先使用經過標準語料庫訓練各層隱馬爾科夫模型的CHMM(Cascaded Hidden Markov Model,層疊隱馬爾科夫模型)發現新詞,然后使用微博語料和更新過的詞典作為LDA模型輸入的改進LDA模型。該模型能夠使社交網絡環境下的話題檢測結果更加準確全面。
李衛疆等[11]為了解決傳統話題模型無法對稀疏的短文本有效建模的問題,使用BTM模型將微博文本轉換為詞對形式,以獲取微博語料庫上的話題分布,并使用吉布斯抽樣推導模型參數,最后進行K-means聚類以獲取區分度良好的話題。在新浪微博數據集上的實驗表明,該模型話題檢測的F值優于LDA模型。
郭藍天等[12]為了解決微博數據集的高維性及主題不明確問題,提出結合CBOW神經網絡語言模型和LDA主題模型的CBOW-LDA主題建模方法。模型首先使用CBOW(Continuous Bag-of-Word,連續詞袋模型)得出詞向量,然后對相似度大于相似度閾值的詞語進行聚類,接著從相似詞聚類中抽取詞語替換詞表和語料中的其它項,接著將處理過的詞表和語料作為LDA主題模型的輸入進行話題檢測。實驗結果表明,該話題檢測方法能有效降低LDA模型的困惑度。該模型能夠發現詞項之間的相關關系,但是不能有效處理一詞多義問題,同時相似度閾值的選擇缺乏說服力。
2 基于GV-LDA的話題檢測
2.1 GV-LDA算法框架
本文針對CBOW-LDA中存在的問題,提出GV-LDA模型,其核心思想是結合一詞多義通常與詞性相關的實際情況,首先對微博語料進行標注,然后使用較CBOW模型更為快速高效的GloVe模型(Global Vector,全局向量模型)進行詞表示,分別在多個相似度閾值下對相似度大于閾值且詞性相同的詞進行聚類,接著從相似詞聚類中抽取頻率最大的詞語替換詞表和語料中同一簇的其它項,以降低LDA模型的處理維度。將處理過的詞表和語料作為LDA主題模型的輸入進行話題檢測,過程如圖1所示。
2.2 文本向量化
GloVe語言模型是J Pennington等[13]于2014年提出的一種基于全局log-bilinear的語言模型,它結合了整體矩陣分解和局部內容窗口的優點,通過訓練非零元素的詞共生矩陣,有效利用統計信息,產生一個具有意義子結構的向量空間。通過詞向量在多個維度上的差異表示詞項在語義上的相似度。
Pennington通過實驗表明,詞向量學習更合適的起始點應該是詞共現概率之比而非詞共現概率本身。使用X表示詞共現計數,Xij表示詞j在詞i的上下文中出現的次數,wi表示詞i的詞向量,j為另一個神經網絡實例生成的獨立的上下文詞向量。詞向量與共現矩陣統計量的關系可以表示為:
式(1)結合了多個神經網絡實例并對其進行合并,可以降低過擬合和噪聲,一般情況下可改進結果。wi為目標詞向量,j為另一個神經網絡實例生成的獨立的上下文詞向量。詞i、詞j在彼此的上下文窗口內,角色可互換,加入兩個詞向量的偏移量bi,j,以保證方程的對稱性。方程右側是對窗口內全局共現的統計,對方程(1)進行因式分解,得到的詞向量既包含全局統計信息又包含局部上下文信息。
低頻詞共現通常為噪聲,相比高頻詞共現攜帶較少的信息。移除頻率低于閾值的詞共現可有效減少詞匯表大小。詞向量的目標是避免常用詞權重過大。
通過把式(1)轉化為一個最小平方問題并引入權重函數f(Xij),可以有效解決上述問題。加權最小平方回歸模型為
對模型進行優化即得詞向量。
2.3 文本模型表示
LDA主題模型是包含文檔-主題-詞語3層的貝葉斯模型,在這個模型中,文檔被建模為主題潛在集合上的有限混合,而主題則建模為主題概率潛在集合上的無限混合。在LDA模型中使用吉布斯抽樣得出模型參數后,便可由生成規則得到文-主題分布和主題-詞分布。文本和主題的生成規則得到文本的主題結構。GV-LDA中LDA模型的輸入是經過相似詞聚類的文檔和詞表,降低了LDA主題模型的處理維度,使得待檢測的主題更加明確。
LDA主題模型采用概率的產生式模型對文本進行建模,每篇文本是由服從參數為θ多項式分布的主題混合而成,θ滿足參數為α的對稱狄利克雷先驗分布;每個主題又是由服從參數為φ多項式分布的詞匯混合而成,φ滿足參數為β的對稱狄利克雷先驗分布。
一個文本中所有單詞與其所屬主題的聯合概率分布如式(8)所示:
LDA生成文本的過程見圖2。①從主題的狄利克雷先驗Dirichlet(β)中為每個主題t_i抽取多項式分布Multi(φ);②從文檔的狄利克雷先驗Dirichlet(α)中為每個文檔dm抽取多項式分布Multi(θ);③對語料庫中所有文檔dm和文檔中所有詞匯wn:從多項式分布Multi(φ)中抽取主題tk;從多項式分布Multi(θ)中抽取詞wn。
LDA建模的目的是求得參數θ和φ的值,進而得出文本-主題分布和主題-詞分布。可以使用Gibbs抽樣構造收斂于目標概率分布的Markov鏈并從中抽取樣本估算參數。
Gibbs Sampling每次選取概率向量的一個維度,給定其它維度的變量值抽樣得到當前維度的值。隨著迭代的進行,Gibbs Sampling對參數的改變越來越小,通常選取一定的迭代次數作為循環終止條件,Gibbs Sampling過程如圖3所示。endprint
3 實驗結果與分析
3.1 評價指標
采用的評價指標包括文本及常用的困惑度和準確率、召回率、F1指標。
困惑度Perplex是用于生成測試數據集的詞表大小的期望值,困惑度越小,表明語言模型吻合度越好。
式(9)中,wm為測試集文檔m中可觀測到的單詞,p(wm)表示模型產生文本wm的概率,Nm為文檔m的詞項數。
準確率p指文本分類正確的樣本數與所有分類文本數的比值:
召回率r是文本分類正確的樣本數與該類的實際文本數比值:
式(10)、(11)中,a是正確分類的樣本數,b是不屬于該類但劃分到該類的樣本數,c是屬于該類但未劃分到該類的樣本數。
3.2 數據集
本文采用的數據集為新浪關鍵詞語料,包含30個主題,共211 413個json文件,其中的漢字表示為16進制的unicode編碼,以uXXXX(X表示十六進制數字)的形式出現。文件編碼為UTF-8無BOM。文件包含以“#”的話題信息、用戶鏈接、用戶名、轉發列表、用戶發布內容的ID(mid)、用戶發布的內容及發布時間等信息,其中轉發列表包括各轉發用戶的用戶名、轉發內容、轉發字符串、轉發時間和轉發用戶的用戶鏈接。轉發用戶的轉發內容為轉發時的評論,默認為“轉發微博”。轉發用戶的轉發字符串為轉發用戶的用戶名加上轉發內容、點贊信息、轉發時間及轉發用戶的客戶端信息。轉發評論非默認內容的,視為統一話題下的新微博。
3.3 數據集預處理
數據集本身包含的是原始微博數據,在使用模型分析之前需要進行預處理:編碼轉換、去除標記、分詞、標注、去低頻詞。其中停用詞出現頻率高但攜帶的語義信息較少,而低頻詞學習的向量置信度不高。通過編碼轉換取得微博內容,去除不可解讀的文件,得到11 246個json。
3.4 實驗步驟與參數設置
去除微博標記后,使用LTP進行分詞和標注,再依據詞項的頻率去低頻詞,低頻詞的閾值為5。在不同的相似度條件下比較CBOW-LDA和GV-LDA的Perplexity。詞向量聚類中相似度的取值范圍為0.7~0.95,間距為0.05.Word2Vec、GloVe、LDA的參數設置見表1、表2、表3。
3.5 實驗結果與分析
在相同的參數設置和語料下,通過計算不同相似度閾值時的困惑度度量GV-LDA和CBOW-LDA模型的處理效果。兩種方法困惑度隨相似度的變化情況如圖4所示。
可以看出,模型的困惑度隨相似度閾值的增加先減少后增加,GV-LDA的困惑度在0.8~0.9范圍內優于CBOW-LDA,且在相似度閾值為0.8時,GV-LDA模型取得最小困惑度。
取相似度閾值為0.8,對詞表聚類后,詞表大小由原來的324 438減少到63 725,有效減少了LDA階段的運算時間。LDA階段取相同參數,分別使用GV-LDA和Gibbs-LDA進行話題檢測。GV-LDA和Gibbs-LDA++在30個主題上進行話題檢測的準確率如圖5所示,其中GV-LDA的平均準確率為77.69%,Gibbs-LDA++的平均準確率為70.51%。
GV-LDA和Gibbs-LDA++在30個主題上進行話題檢測的召回率如圖6所示,其中GV-LDA的平均召回率為77.09%,Gibbs-LDA++的平均召回率為69.24%。
根據之前得出的準確率和召回率,計算GV-LDA和Gibbs-LDA++在30個主題上進行話題檢測的F值如圖7所示,其中GV-LDA的平均F值為77.35%,Gibbs-LDA++的平均F值為69.79%。
從結果可以看出,本文GV-LDA方法的處理結果較Gibbs-LDA++有明顯改善,雖然額外的GloVe階段耗時較長,但相似詞分析可以使用維基中文語料等通用語料,復用性強,因此GV-LDA方法實用價值很高。
4 結語
本文針對微博中短文本信息的特點,將文本深度表示模型的GloVe方法與LDA主題模型結合進行文本建模,將文本向量化表示,然后對LDA模型的輸入進行文本向量聚類。通過比較不同閾值下的GV-LDA和CBOW-LDA模型的困惑度,得出GV-LDA能有效減少話題檢測中困惑度的結論,并得出最佳相似度閾值。通過與LDA模型在準確率、召回率、F值等指標上的對比,顯示該模型與LDA比較在話題檢測方面有較大改進。
參考文獻:
[1] HOFMANN T. Probabilistic latent semantic indexing[C].Proc of the 22nd Annual Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 1999:50-57.
[2] BLEI D M, NG A Y, JORDAN M I. Lantent Dirichlet Allocation[J]. The Journal of Machine Learning Research, 2003(3): 993-1022.
[3] GRIFFITHS T L, STEYVERS M. Finding scientific topics.[J]. Proceedings of the National Academy of Sciences of the United States of America, 2004, 101 (1):5228-5229.
[4] 孫勝平.中文微博客人電話檢測與跟蹤技術研究[D].北京:北京交通大學,2011.
[5] 張晨逸,孫建伶,丁軼群.基于MB-LDA模型的微博主題挖掘[J].計算機研究與發展,2011,48(10):1795-1802.
[6] 黃波.基于向量空間模型和LDA模型相結合的微博客話題發現算法研究[D].成都:西南交通大學,2011.
[7] 鄭磊.微博客話題檢測的研究與實現[D].哈爾濱:哈爾濱工業大學,2012.
[8] 路榮,項亮,劉明榮,等.基于隱主題分析和文本聚類的微博客中新聞話題的發現[J].模式識別與人工智能,2012,25(3):382-387.
[9] 謝昊,江紅.一種面向微博主題挖掘的改進LDA模型[J].華東師范大學學報:自然科學版,2013(6):93-101.
[10] 劉嘉,王慶林,劉禹,等.一種適合社交網絡的短文本主題發現方法[C]. 中國控制會議 , 2014.
[11] 李衛疆,王真真,余正濤.基于BTM和K-means的微博話題檢測[J].計算機科學,2017(2):257-261.
[12] 郭藍天,李揚,慕德俊,等.一種基于LDA主題模型的話題發現方法[J].西北工業大學學報,2016,34(4):698-702.
[13] J PENNINGTON,R SOCHER,C MANNING. Glove: global vectors for word representation[C]. Conference on Empirical Methods in Natural Language Processing, 2014:1532-1543.endprint