邸 亮,杜永萍
(北京工業(yè)大學計算機科學與技術學院,北京 1 00124)
LDA模型在微博用戶推薦中的應用
邸 亮,杜永萍
(北京工業(yè)大學計算機科學與技術學院,北京 1 00124)
潛在狄利克雷分配(LDA)主題模型可用于識別大規(guī)模文檔集中潛藏的主題信息,但是對于微博短文本的應用效果并不理想。為此,提出一種基于LDA的微博用戶模型,將微博基于用戶進行劃分,合并每個用戶發(fā)布的微博以代表用戶,標準的文檔-主題-詞的三層LDA模型變?yōu)橛脩?主題-詞的用戶模型,利用該模型進行用戶推薦。在真實微博數(shù)據(jù)集上的實驗結(jié)果表明,與傳統(tǒng)的向量空間模型方法相比,采用該方法進行用戶推薦具有更好的效果,在選擇合適的主題數(shù)情況下,其準確率提高近10%。
主題模型;潛在狄利克雷分配;微博;用戶模型;興趣分析;用戶推薦
傳統(tǒng)的主題挖掘是采用文本聚類的算法[1],通過向量空間模型(Vector Space Model, VS M)將文本里的非結(jié)構(gòu)化數(shù)據(jù)映射到向量空間中的點,然后用傳統(tǒng)的聚類算法,如基于劃分的算法(如K-means算法)、基于層次的算法(如自頂向下和自底向上算法)、基于密度的算法等[2],實現(xiàn)文本聚類。聚類結(jié)果可以近似認為滿足同一個主題。但是,這種基于聚類的算法普遍依賴于文本之間距離的計算,而這種距離在海量文本中是很難定義的;此外,聚類結(jié)果也只是起到區(qū)分類別的作用,并沒有給出語義上的信息,不利于人們的理解。
LSA(Latent Semantic Analysis)是文獻[3]提出的一種基于線性代數(shù)挖掘文本主題的新方法。LSA利用SVD(Singular Value Dec omposition)的降維方法來挖掘文檔的潛在結(jié)構(gòu)(語義結(jié)構(gòu)),在低維的語義空間里進行查詢和相關性分析,通過奇異值分解等數(shù)學手段,使得這種隱含的相關性能夠被很好地挖掘出來。研究顯示[4],當這個語義空間的維度和人類語義理解的維度相近時,LSA能夠更好地近似于人類的理解關系,即將表面信息轉(zhuǎn)化為深層次的抽象[5]。
PLSA(Probabilistic Latent Semantic Analysis)是文獻[6]在研究LSA的基礎上提出的基于最大似然法和產(chǎn)生式模型的概率模型。PLSA沿用了LSA的降維思想:在常用的文本表達方式(tf-idf)下,文本是一種高維數(shù)據(jù);主題的數(shù)量是有限的,對應低維的語義空間,主題挖掘就是通過降維將文檔從高維空間投影到了語義空間。PLSA通常運用EM算法對模型進行求解。在實際運用中,由于EM 算法的計算復雜度小于傳統(tǒng)SVD算法,PLSA在性能上、在處理大規(guī)模數(shù)據(jù)方面也通常優(yōu)于LSA。
潛在狄利克雷分配(Latent Dirichlet Allocation, LDA)在PLSA的基礎上加入了Dirichlet先驗分布,是PLSA的一個突破性的延伸。LDA的創(chuàng)始者Blei等人指出,PLSA在文檔對應主題的概率計算上沒有使用統(tǒng)一的概率模型,過多的參數(shù)會導致過擬合現(xiàn)象,并且很難對訓練集以外的文檔分配概率?;谶@些缺陷,LDA引入了超參數(shù),形成了一個文檔-主題-單詞三層的貝葉斯模型[7],通過運用概率方法對模型進行推導,來尋找文本集的語義結(jié)構(gòu),挖掘文本的主題。目前,LDA模型已經(jīng)成為了主題建模中的一個標準,在多個領域中都有應用,特別是在社會網(wǎng)絡和社會媒體研究領域最為常見[8],具有很好的研究與應用前景。在微博主題挖掘中具有很大的潛力[9-10],通過對其進行改進,可以很好地應用于社交網(wǎng)絡應用中。
本文在LDA主題模型的基礎上,通過分析微博用戶的特點,給出了用以表示用戶主題的模型,并提出一種基于該模型的用戶推薦方法。
LDA模型是一個層次貝葉斯模型[11],它有如下3層:
(1)單詞層:單詞集V={w1, w2,…,wV}是從語料庫中提取出來的去除停用詞后的所有單詞集合。
(2)主題層:主題集φ={z1, z2,…,zk}中的每一個主題zi都是一個基于單詞集V的概率多項分布,可以被表示成向量φk=<pk,1,pk,2,…,pk, v>,其中,pk, j表示單詞wj在主題zk中的生成概率。
(3)文檔層:對于單詞層,采用了詞袋方法。每一篇文檔被表示成一個詞頻向量di=<tfi,1,tfi,2,…,tfi, V>,其中,tfi, j表示單詞j在文檔i中出現(xiàn)的次數(shù);就主題層而言,文檔集可以表示成θ=<θ1, θ2,…,θD>,其中每一個向量θd=<pd,1,pd,2,…,pd, K>表示了一個文檔的主題分布,pd, z是主題z在該文檔d中的生成概率。
其圖模型表示如圖1所示。LDA模型采用Dirichlet分布作為概率主題模型中多項分布的先驗分布。其中,D為整個文檔集;Nd為文檔d的單詞集;α和β分別是文檔-主題概率分布θ和主題-單詞概率分布φ的先驗知識。
圖1 L DA圖模型
3.1 基于LDA模型的微博用戶模型
標準的LDA模型是基于文檔-主題-詞的一個三層貝葉斯模型[11]。在構(gòu)建用戶的興趣模型時,用戶的興趣可以被定義為用戶對各個主題的喜好程度。因此,主題模型下用戶-主題生成概率多項分布表示了用戶的興趣。
使用主題模型構(gòu)建基于內(nèi)容的微博用戶興趣模型時,需要將一個用戶下的所有微博合并成一個文檔進行主題生成,從而得到用戶生成主題的概率多項分布,即用戶的興趣模型。該興趣模型的用戶層就對應到了LDA模型中的文檔層,即將文檔-主題-詞的三層關系變?yōu)榱擞脩?主題-詞的關系,其矩陣表示如圖2和圖3所示。
圖2 標準LDA模型的矩陣示意圖
圖3 基于LDA的微博用戶模型的矩陣示意圖
在用戶層中,對于用戶集合U={u1, u2,…,um},其中的每一個用戶ui,都可以由該用戶發(fā)布的所有微博得到一個詞頻向量fui=<tfi,1,tfi,2,…,tfi, V>。從主題層面而言,用戶ui可以被表示成向量θui={pui ,1,pui,2,…,pui, k },其中,pui, z表示主題z在用戶ui中的生成概率,用它來表示用戶ui對主題z的喜好程度。從而,用戶層構(gòu)成了用戶與主題的生成關系,生成主題用戶模型,其矩陣表示如圖4所示。
圖4 用戶主題矩陣
3.2 用戶相似度計算
KL(Kullback Leibler)散度,俗稱KL距離[12],常用來衡量2個概率分布的距離,其計算公式如下:
KL散度是不對稱的,即DKL(P||Q)≠DKL(Q||P),可以將其轉(zhuǎn)換為對稱的,如下式:
在基于LDA的用戶主題模型中,由主題的概率分布來表示用戶的興趣,如圖4用戶主題矩陣所示。因此,用戶間的相似程度可以由用戶主題分布間的KL距離來表示,用戶相似度計算如下所示:
其中,Sij為用戶ui和uj的相似度;Ui和Uj分別是它們的主題概率分布。該值越大,則兩用戶越相似。
3.3 用戶推薦
假設同一個領域中的用戶為興趣相近的用戶,且他們的微博也主要是圍繞自己感興趣的話題來發(fā)布。
U為用戶集合,對用戶ui和用戶子集Ui,其中,ui∈U,且Ui=U-ui。按照式(3),對用戶集合Ui中的每個用戶分別與ui計算相似度,然后對Ui中的所有用戶按照相似度值進行升序排列,這樣排在前面的用戶就和用戶ui更相似,更有理由推薦給用戶ui。
提取前t個用戶作為推薦給用戶ui的推薦列表,Uti= {u1, u2,…,uj,…,ut}。對推薦集合Uti中的每個用戶uj,分別判斷其是否與用戶ui屬于同一領域,若屬于同一領域,則認為將uj推薦給用戶ui是正確的。用戶ui的推薦準確率計算公式如下:
其中,t≤Ni-1,Ni為用戶ui所屬領域下的用戶數(shù),t的取值不超過該領域下的用戶總數(shù)減1(除去用戶ui自身)。
某領域p下用戶的推薦準確率計算公式如下:
其中,Np為領域p下的用戶總數(shù)。
在系統(tǒng)中,所有用戶的推薦平均準確率計算公式如下:
其中,N為用戶總數(shù)。
3.4 用戶推薦系統(tǒng)結(jié)構(gòu)
基于上文介紹的用戶興趣模型,設計了微博用戶推薦系統(tǒng),主要由3個部分組成:
(1)數(shù)據(jù)采集層,負責微博數(shù)據(jù)的采集及預處理,預處理包括對部分字數(shù)過少微博的過濾。
(2)數(shù)據(jù)處理層,對過濾后的微博數(shù)據(jù)做進一步處理,包括分詞、去停用詞、詞性過濾等,生成用戶的詞語向量,從而得到整個用戶集合的向量表示,利用LDA用戶模型進行求解,從而進行主題挖掘和用戶推薦。
(3)數(shù)據(jù)展現(xiàn)層,展現(xiàn)數(shù)據(jù)處理層生成的結(jié)果,包括模型生成的主題的展示、用戶推薦的關聯(lián)圖等。
系統(tǒng)結(jié)構(gòu)如圖5所示。
圖5 用戶推薦系統(tǒng)結(jié)構(gòu)
在圖5中涉及到的關鍵技術主要有:
(1)數(shù)據(jù)采集器使用開源的Java工具包HttpClient實現(xiàn)。調(diào)用新浪微博API后,獲取到json格式的數(shù)據(jù),需要將其解析為數(shù)據(jù)對象,然后存入數(shù)據(jù)庫。
(2)微博及用戶數(shù)據(jù)采用關系型數(shù)據(jù)庫來保存。這里使用MySQL,因為其體積小、速度快,并且是開源的。
(3)數(shù)據(jù)處理過程中用到了哈工大的IRLAS分詞器,對微博進行分詞和詞性標注。
(4)構(gòu)造出主題模型后,將用戶推薦結(jié)果存入NoSQL數(shù)據(jù)庫,這里使用Neo4j,它是一個用Java實現(xiàn)、完全兼容ACID的圖形數(shù)據(jù)庫,數(shù)據(jù)以一種針對圖形網(wǎng)絡進行過優(yōu)化的格式保存在磁盤上,它的內(nèi)核是一種極快的圖形引擎,具有數(shù)據(jù)庫產(chǎn)品期望的所有特性。用Neo4j存儲用戶推薦結(jié)果可以方便快速地實現(xiàn)前臺的展示。
(5)可視化主要通過js及其第三方開源庫來實現(xiàn),例如D3 js庫可以實現(xiàn)主題關鍵詞的標簽云展示及用戶推薦的關聯(lián)散點圖等。
3.5 算法流程
基于LDA模型的微博用戶推薦算法如下:
(1)建立用戶模型:將用戶的所有微博合并到一起,微博數(shù)據(jù)已經(jīng)經(jīng)過了分詞處理,得到代表每個用戶的微博單詞詞頻向量fu。對模型進行求解,得到每個用戶的主題概率分布,如圖4所示。
(2)用戶相似度計算:借助于概率分布之間的KL散度計算方法,用戶之間的相似度使用式(3)來計算,該值越大則表示用戶間的主題概率分布越相似,也即用戶間的興趣越相似,雙方可以相互作為被推薦給對方的候選用戶。
(3)用戶推薦:假設同一個領域中的用戶為興趣相近的用戶,根據(jù)用戶相似度獲取用戶的推薦列表,取前t個用戶作為推薦用戶,利用式(4)~式(7)計算推薦準確率。
4.1 數(shù)據(jù)采集與預處理
實驗利用新浪微博API采集用戶數(shù)據(jù)和微博數(shù)據(jù)。主要用到2個接口:獲取系統(tǒng)推薦的熱門用戶列表接口和獲取單個用戶微博列表的接口。
根據(jù)推薦用戶接口抓取來自不同領域的認證用戶數(shù)據(jù),獲取了8個比較常見的領域,分別是科技、體育、房產(chǎn)、動漫、娛樂、健康、汽車和媒體。此外,利用用戶微博列表接口采集每個用戶的最新微博,最多不超過300條。
由于微博數(shù)據(jù)來自于互聯(lián)網(wǎng),噪聲大,需要做一定的預處理,主要有以下4個步驟:
(1)將回復數(shù)和轉(zhuǎn)發(fā)數(shù)低于10的微博去除。
(2)根據(jù)用戶實際有效的微博數(shù)量,從每個領域中各選取80個用戶。選取的過程會過濾掉有效微博數(shù)量小于10條的用戶,最終實驗數(shù)據(jù)集的總用戶數(shù)為640個。
(3)去掉微博數(shù)據(jù)中特有的一些對主題挖掘無用的特征,如表情符號、@目標、分享目標以及URL網(wǎng)址等。
(4)對微博數(shù)據(jù)進行分詞,過濾掉停用詞,根據(jù)詞性標注保留對主題挖掘提供有用的信息的名詞、動詞。
最終用于實驗的數(shù)據(jù)組成如表1所示。
表1 實驗數(shù)據(jù)分布
4.2 實驗參數(shù)設置與對比實驗
LDA模型的求解過程使用Gibbs抽樣方法,模型參數(shù)值根據(jù)文獻[11]取經(jīng)驗值:其中,α=50/T(T為主題數(shù)),β=0.01。主題的個數(shù)取經(jīng)驗值進行對比實驗,由于用戶來自于8個領域,實驗中主題數(shù)設置為8~15。分詞器采用哈工大IRLAS分詞器,使用通用停用詞詞典,共1 24 1條停用詞項。
為了進一步對比實驗效果,把本文算法與下面2個算法進行比較:
(1)基于向量空間模型(VSM)的算法
使用傳統(tǒng)的VSM方法建立用戶模型,同樣對于用戶集U={u1, u2,…,um},將用戶ui的所有微博數(shù)據(jù)進行預處理后得到其單詞權(quán)重向量Ui=<wi,1,wi,2,…,wi, V>,其中,wi, j表示單詞j在用戶ui的微博數(shù)據(jù)中的權(quán)重。這里的權(quán)重計算采用TF-IDF值。用戶間相似度的計算采用常規(guī)的向量夾角的余弦值來計算:
(2)基于隱馬爾科夫模型(HMM)的算法
應用文獻[13]中介紹的方法。使用HMM建立用戶的模型,λ=(A, B,π,N, M),然后使用KL散度計算用戶間的相似度,計算公式為:
以上2種算法的用戶推薦準確率的計算方法和LDA用戶模型的計算方法相同,不再贅述。
4.3 評價結(jié)果
4.3.1 基于Perplexity指標的評價結(jié)果
Perplexity[9]是一種評估語言模型生成性能的標準測量指標。Perplexity值表示模型生成測試集中新文本的似然估計,它用來衡量模型對新文本的預測能力。Perplexity值越小,似然估計就越高,也就表示模型的生成性能越好。其計算公式如下:
其中,Utest為測試集用戶;N為測試集用戶總數(shù);wui為用戶ui的微博所包含的單詞集合;p(wui)是用戶ui的微博單詞集合在用戶模型下的生成概率;Nui為用戶ui微博集合的單詞總數(shù)。實驗中選取了數(shù)據(jù)集的10%作為測試集。
實驗結(jié)果如圖6所示。
圖6 用戶興趣模型的Perplexity評價結(jié)果
從圖6中的數(shù)據(jù)可以看出,基于LDA的用戶模型的生成能力要優(yōu)于標準LDA,這說明將同一用戶的微博合并為一條文本的方式是有效的。
4.3.2 主題分布
選取一些有代表性的主題分布生成的標簽云圖,如圖7所示,可以很明顯地看出,這些主題分布分別代表了科技、體育、房產(chǎn)、動漫、娛樂、健康、汽車、媒體相關的主題。
圖7 主題分布詞云圖
4.3.3 用戶推薦質(zhì)量
用戶推薦質(zhì)量的衡量需要從實際的應用效果入手,由于該模型可以對具有相似興趣的用戶進行推薦,這里使用上述介紹的用戶推薦準確率來衡量模型的質(zhì)量。LDA用戶模型和VSM方法在各領域下的準確率對比結(jié)果如表2~表5所示,分別對應式(4)中t取10,20,40,79時的結(jié)果。
表2 t=10時的實驗結(jié)果
表3 t=20時的實驗結(jié)果
表4 t=40時的實驗結(jié)果
表5 t=79時的實驗結(jié)果
分析以上實驗結(jié)果得出結(jié)論:
(1)推薦性能與主題數(shù)相關。隨著主題數(shù)的增加,推薦效果逐漸變好,在主題數(shù)為14時,推薦效果最好,當主題數(shù)進一步增加時,效果基本保持穩(wěn)定甚至略微有所回落。主題數(shù)越大,模型的計算量也越大,耗時越久,綜合可慮,在主題數(shù)取14時,無論是推薦效果還是計算效率都有著不錯的結(jié)果。對比VSM模型的實驗結(jié)果后還可以看出,當主題數(shù)大于10的情況下,基于LDA的用戶興趣模型的效果均比傳統(tǒng)的VSM有所提高。而對比HMM模型的實驗結(jié)果可以看出,當主題數(shù)達到12時,基于LDA的用戶興趣模型的效果和HMM模型相當,在主題數(shù)大于14的情況下,效果明顯好于HMM模型。
(2)推薦性能在不同領域下有著較明顯的差別。LDA用戶興趣模型對體育領域和科技領域的用戶推薦效果較好,尤其是體育領域,K取10時其準確率甚至達到了82%,遠好于其他領域。房產(chǎn)和汽車領域的效果略微偏差,分析這些領域用戶的微博,發(fā)現(xiàn)這可能是由于這些領域用戶發(fā)布的微博比較寬泛,涉及的內(nèi)容和主題比較繁雜,對主題挖掘的干擾比較大;而體育領域和科技領域的用戶發(fā)布的微博則相對更具有明確的主題,領域凝聚力更強,實用性更高,因此更有挖掘主題的價值。如何減少這類微博對用戶推薦的干擾,是今后的工作重點。
本文針對微博數(shù)據(jù)這種短文本,結(jié)合LDA模型的文檔-主題-詞分層模型的特點,用微博數(shù)據(jù)的集合來代表用戶,進而提出了用戶-主題-詞的用戶興趣模型,不僅能有效挖掘用戶所關注的主題,并可進行用戶推薦等社交網(wǎng)絡應用。在今后的研究工作中將繼續(xù)優(yōu)化微博用戶興趣模型的效果和效率,減少無意義微博對主題挖掘的干擾,以適應于各種不同的領域,嘗試結(jié)合更多的社交網(wǎng)絡特征,并實現(xiàn)實時的微博數(shù)據(jù)處理。
[1] Kang J H, Lerman K, Plang prasopchok A. Analyzing Microblogs with Affinity Propagation[C]//Proc. of the 1st Workshop on Social Me dia An alytics. New Y ork, USA: ACM Press, 2010: 67-70.
[2] Xu Rui, Wunsch D. Survey of Clustering Algorithms[J]. IEEE Trans. on Neural Networks, 2005, 16(3): 645-678.
[3] Deerwester S, Dumais S, Landauer T, et al. Latent Semantic Analysis for Multiple-type Interrelated Data Objects[C]//Proc. of the 29th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. New York, USA: ACM Press, 2006: 236-243.
[4] Blei D. Probabilistic Topic Models[J]. Communications of the ACM, 2012, 55(4): 77-84.
[5] Zelikovitz S, Hirsh H. Using LSI for Text Classification in the Presence of Background Text[C]//Proc. of the 10th International Co nference o n Inf ormation and Knowledge Management. New York, USA: ACM Press, 2001: 113-118.
[6] K im Y M. An Extension of PLSA for Document C lustering[C]//Proc. of the 17th ACM Conference on Information and Knowledge Management. New York, USA: ACM Press, 2008: 1345-1346.
[7] Tang Xuning, Yang C C. TUT: A Statistical Model for Detecting Trends, Topics and User Interests in Social Media[C]//Proc. of the 21st ACM International Conference on Information and Knowledge Management. New York, USA: ACM Press, 2012: 972-981.
[8] Wei Xing, Croft W B. LDA-based Document Models for Ad
Hoc Retrieval[C]//Proc. of the 29th Annual International ACM SIGIR Confere nce on Research and Development in Information Retrieval. Ne w York, US A: ACM Pr ess, 2006: 178-185.
[9] 張晨逸, 孫建伶, 丁軼群. 基于MB-LDA模型的微博主題挖掘[J]. 計算機研究與發(fā)展, 2011, 48(10): 1795-1802.
[10] 張曉艷, 王 挺, 梁曉波. LDA模型在話題追蹤中的應用[J].計算機科學, 2011, 38(Z10): 136-139.
[11] Blei D M, Ng A Y, Jordan M I. Latent Dirichlet Allocation[J]. The Journal of Machine Learning Research, 2 003, 3(3): 993-1022.
[12] 孫昌年, 鄭 誠, 夏青松. 基于LDA的中文文本相似度計算[J]. 計算機技術與發(fā)展, 2013, 23(1): 217-220.
[13] Zeng Jianping, Zhang Shiyong, Wu Chengrong. A Framework for WWW User Activity Analysis Based on U ser Interest[J]. Knowledge-based Systems, 2008, 21(12): 905-910.
編輯 任吉慧
Application of LDA Model in Microblog User Recommendation
DI Liang, DU Yong-ping
(Institute of Computer Science and Technology, Beijing University of Technology, Beijing 100124, China)
Latent Dirichlet Allocation(LDA) model can be used for identifying topic informati on from large-scale document set, but the effect is not ideal for short text such as microblog. This paper proposes a microblog user model based on LDA, which divides microblog based on user and represents each user with their posted microbolgs. Thus, the standard three layers in LDA model by document-topic-word becomes a user model by user-topic-word. The model is a pplied to user recommendation. Experiment on real data set shows that the new provided method has a better effect. With a proper topic number, the performance is improved by nearly 10%.
topic model; Latent Dirichlet Allocation(LDA); microblog; user model; interest analysis; user recommendation
10.3969/j.issn.1000-3428.2014.05.001
國家科技支撐計劃基金資助項目(2013BAH21B00);北京市自然科學基金資助項目(4123091);北京市屬高等學校人才強教深化計劃基金資助項目“中青年骨干人才培養(yǎng)計劃”(PHR20110815)。
邸 亮(1988-),男,碩士研究生,主研方向:自然語言處理;杜永萍,副教授。
2013-09-22
2013-12-05E-mail:dltt67@163.com
1000-3428(2014)05-0001-06
A
TP311.13