邸 亮,杜永萍
(北京工業大學計算機科學與技術學院,北京 1 00124)
LDA模型在微博用戶推薦中的應用
邸 亮,杜永萍
(北京工業大學計算機科學與技術學院,北京 1 00124)
潛在狄利克雷分配(LDA)主題模型可用于識別大規模文檔集中潛藏的主題信息,但是對于微博短文本的應用效果并不理想。為此,提出一種基于LDA的微博用戶模型,將微博基于用戶進行劃分,合并每個用戶發布的微博以代表用戶,標準的文檔-主題-詞的三層LDA模型變為用戶-主題-詞的用戶模型,利用該模型進行用戶推薦。在真實微博數據集上的實驗結果表明,與傳統的向量空間模型方法相比,采用該方法進行用戶推薦具有更好的效果,在選擇合適的主題數情況下,其準確率提高近10%。
主題模型;潛在狄利克雷分配;微博;用戶模型;興趣分析;用戶推薦
傳統的主題挖掘是采用文本聚類的算法[1],通過向量空間模型(Vector Space Model, VS M)將文本里的非結構化數據映射到向量空間中的點,然后用傳統的聚類算法,如基于劃分的算法(如K-means算法)、基于層次的算法(如自頂向下和自底向上算法)、基于密度的算法等[2],實現文本聚類。聚類結果可以近似認為滿足同一個主題。但是,這種基于聚類的算法普遍依賴于文本之間距離的計算,而這種距離在海量文本中是很難定義的;此外,聚類結果也只是起到區分類別的作用,并沒有給出語義上的信息,不利于人們的理解。
LSA(Latent Semantic Analysis)是文獻[3]提出的一種基于線性代數挖掘文本主題的新方法。LSA利用SVD(Singular Value Dec omposition)的降維方法來挖掘文檔的潛在結構(語義結構),在低維的語義空間里進行查詢和相關性分析,通過奇異值分解等數學手段,使得這種隱含的相關性能夠被很好地挖掘出來。研究顯示[4],當這個語義空間的維度和人類語義理解的維度相近時,LSA能夠更好地近似于人類的理解關系,即將表面信息轉化為深層次的抽象[5]。
PLSA(Probabilistic Latent Semantic Analysis)是文獻[6]在研究LSA的基礎上提出的基于最大似然法和產生式模型的概率模型。PLSA沿用了LSA的降維思想:在常用的文本表達方式(tf-idf)下,文本是一種高維數據;主題的數量是有限的,對應低維的語義空間,主題挖掘就是通過降維將文檔從高維空間投影到了語義空間。PLSA通常運用EM算法對模型進行求解。在實際運用中,由于EM 算法的計算復雜度小于傳統SVD算法,PLSA在性能上、在處理大規模數據方面也通常優于LSA。
潛在狄利克雷分配(Latent Dirichlet Allocation, LDA)在PLSA的基礎上加入了Dirichlet先驗分布,是PLSA的一個突破性的延伸。LDA的創始者Blei等人指出,PLSA在文檔對應主題的概率計算上沒有使用統一的概率模型,過多的參數會導致過擬合現象,并且很難對訓練集以外的文檔分配概率。基于這些缺陷,LDA引入了超參數,形成了一個文檔-主題-單詞三層的貝葉斯模型[7],通過運用概率方法對模型進行推導,來尋找文本集的語義結構,挖掘文本的主題。目前,LDA模型已經成為了主題建模中的一個標準,在多個領域中都有應用,特別是在社會網絡和社會媒體研究領域最為常見[8],具有很好的研究與應用前景。在微博主題挖掘中具有很大的潛力[9-10],通過對其進行改進,可以很好地應用于社交網絡應用中。
本文在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中出現的次數;就主題層而言,文檔集可以表示成θ=<θ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]。在構建用戶的興趣模型時,用戶的興趣可以被定義為用戶對各個主題的喜好程度。因此,主題模型下用戶-主題生成概率多項分布表示了用戶的興趣。
使用主題模型構建基于內容的微博用戶興趣模型時,需要將一個用戶下的所有微博合并成一個文檔進行主題生成,從而得到用戶生成主題的概率多項分布,即用戶的興趣模型。該興趣模型的用戶層就對應到了LDA模型中的文檔層,即將文檔-主題-詞的三層關系變為了用戶-主題-詞的關系,其矩陣表示如圖2和圖3所示。

圖2 標準LDA模型的矩陣示意圖

圖3 基于LDA的微博用戶模型的矩陣示意圖
在用戶層中,對于用戶集合U={u1, u2,…,um},其中的每一個用戶ui,都可以由該用戶發布的所有微博得到一個詞頻向量fui=<tfi,1,tfi,2,…,tfi, V>。從主題層面而言,用戶ui可以被表示成向量θui={pui ,1,pui,2,…,pui, k },其中,pui, z表示主題z在用戶ui中的生成概率,用它來表示用戶ui對主題z的喜好程度。從而,用戶層構成了用戶與主題的生成關系,生成主題用戶模型,其矩陣表示如圖4所示。

圖4 用戶主題矩陣
3.2 用戶相似度計算
KL(Kullback Leibler)散度,俗稱KL距離[12],常用來衡量2個概率分布的距離,其計算公式如下:

KL散度是不對稱的,即DKL(P||Q)≠DKL(Q||P),可以將其轉換為對稱的,如下式:

在基于LDA的用戶主題模型中,由主題的概率分布來表示用戶的興趣,如圖4用戶主題矩陣所示。因此,用戶間的相似程度可以由用戶主題分布間的KL距離來表示,用戶相似度計算如下所示:

其中,Sij為用戶ui和uj的相似度;Ui和Uj分別是它們的主題概率分布。該值越大,則兩用戶越相似。
3.3 用戶推薦
假設同一個領域中的用戶為興趣相近的用戶,且他們的微博也主要是圍繞自己感興趣的話題來發布。
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所屬領域下的用戶數,t的取值不超過該領域下的用戶總數減1(除去用戶ui自身)。
某領域p下用戶的推薦準確率計算公式如下:

其中,Np為領域p下的用戶總數。
在系統中,所有用戶的推薦平均準確率計算公式如下:

其中,N為用戶總數。
3.4 用戶推薦系統結構
基于上文介紹的用戶興趣模型,設計了微博用戶推薦系統,主要由3個部分組成:
(1)數據采集層,負責微博數據的采集及預處理,預處理包括對部分字數過少微博的過濾。
(2)數據處理層,對過濾后的微博數據做進一步處理,包括分詞、去停用詞、詞性過濾等,生成用戶的詞語向量,從而得到整個用戶集合的向量表示,利用LDA用戶模型進行求解,從而進行主題挖掘和用戶推薦。
(3)數據展現層,展現數據處理層生成的結果,包括模型生成的主題的展示、用戶推薦的關聯圖等。
系統結構如圖5所示。

圖5 用戶推薦系統結構
在圖5中涉及到的關鍵技術主要有:
(1)數據采集器使用開源的Java工具包HttpClient實現。調用新浪微博API后,獲取到json格式的數據,需要將其解析為數據對象,然后存入數據庫。
(2)微博及用戶數據采用關系型數據庫來保存。這里使用MySQL,因為其體積小、速度快,并且是開源的。
(3)數據處理過程中用到了哈工大的IRLAS分詞器,對微博進行分詞和詞性標注。
(4)構造出主題模型后,將用戶推薦結果存入NoSQL數據庫,這里使用Neo4j,它是一個用Java實現、完全兼容ACID的圖形數據庫,數據以一種針對圖形網絡進行過優化的格式保存在磁盤上,它的內核是一種極快的圖形引擎,具有數據庫產品期望的所有特性。用Neo4j存儲用戶推薦結果可以方便快速地實現前臺的展示。
(5)可視化主要通過js及其第三方開源庫來實現,例如D3 js庫可以實現主題關鍵詞的標簽云展示及用戶推薦的關聯散點圖等。
3.5 算法流程
基于LDA模型的微博用戶推薦算法如下:
(1)建立用戶模型:將用戶的所有微博合并到一起,微博數據已經經過了分詞處理,得到代表每個用戶的微博單詞詞頻向量fu。對模型進行求解,得到每個用戶的主題概率分布,如圖4所示。
(2)用戶相似度計算:借助于概率分布之間的KL散度計算方法,用戶之間的相似度使用式(3)來計算,該值越大則表示用戶間的主題概率分布越相似,也即用戶間的興趣越相似,雙方可以相互作為被推薦給對方的候選用戶。
(3)用戶推薦:假設同一個領域中的用戶為興趣相近的用戶,根據用戶相似度獲取用戶的推薦列表,取前t個用戶作為推薦用戶,利用式(4)~式(7)計算推薦準確率。
4.1 數據采集與預處理
實驗利用新浪微博API采集用戶數據和微博數據。主要用到2個接口:獲取系統推薦的熱門用戶列表接口和獲取單個用戶微博列表的接口。
根據推薦用戶接口抓取來自不同領域的認證用戶數據,獲取了8個比較常見的領域,分別是科技、體育、房產、動漫、娛樂、健康、汽車和媒體。此外,利用用戶微博列表接口采集每個用戶的最新微博,最多不超過300條。
由于微博數據來自于互聯網,噪聲大,需要做一定的預處理,主要有以下4個步驟:
(1)將回復數和轉發數低于10的微博去除。
(2)根據用戶實際有效的微博數量,從每個領域中各選取80個用戶。選取的過程會過濾掉有效微博數量小于10條的用戶,最終實驗數據集的總用戶數為640個。
(3)去掉微博數據中特有的一些對主題挖掘無用的特征,如表情符號、@目標、分享目標以及URL網址等。
(4)對微博數據進行分詞,過濾掉停用詞,根據詞性標注保留對主題挖掘提供有用的信息的名詞、動詞。
最終用于實驗的數據組成如表1所示。

表1 實驗數據分布
4.2 實驗參數設置與對比實驗
LDA模型的求解過程使用Gibbs抽樣方法,模型參數值根據文獻[11]取經驗值:其中,α=50/T(T為主題數),β=0.01。主題的個數取經驗值進行對比實驗,由于用戶來自于8個領域,實驗中主題數設置為8~15。分詞器采用哈工大IRLAS分詞器,使用通用停用詞詞典,共1 24 1條停用詞項。
為了進一步對比實驗效果,把本文算法與下面2個算法進行比較:
(1)基于向量空間模型(VSM)的算法
使用傳統的VSM方法建立用戶模型,同樣對于用戶集U={u1, u2,…,um},將用戶ui的所有微博數據進行預處理后得到其單詞權重向量Ui=<wi,1,wi,2,…,wi, V>,其中,wi, j表示單詞j在用戶ui的微博數據中的權重。這里的權重計算采用TF-IDF值。用戶間相似度的計算采用常規的向量夾角的余弦值來計算:

(2)基于隱馬爾科夫模型(HMM)的算法
應用文獻[13]中介紹的方法。使用HMM建立用戶的模型,λ=(A, B,π,N, M),然后使用KL散度計算用戶間的相似度,計算公式為:

以上2種算法的用戶推薦準確率的計算方法和LDA用戶模型的計算方法相同,不再贅述。
4.3 評價結果
4.3.1 基于Perplexity指標的評價結果
Perplexity[9]是一種評估語言模型生成性能的標準測量指標。Perplexity值表示模型生成測試集中新文本的似然估計,它用來衡量模型對新文本的預測能力。Perplexity值越小,似然估計就越高,也就表示模型的生成性能越好。其計算公式如下:

其中,Utest為測試集用戶;N為測試集用戶總數;wui為用戶ui的微博所包含的單詞集合;p(wui)是用戶ui的微博單詞集合在用戶模型下的生成概率;Nui為用戶ui微博集合的單詞總數。實驗中選取了數據集的10%作為測試集。
實驗結果如圖6所示。

圖6 用戶興趣模型的Perplexity評價結果
從圖6中的數據可以看出,基于LDA的用戶模型的生成能力要優于標準LDA,這說明將同一用戶的微博合并為一條文本的方式是有效的。
4.3.2 主題分布
選取一些有代表性的主題分布生成的標簽云圖,如圖7所示,可以很明顯地看出,這些主題分布分別代表了科技、體育、房產、動漫、娛樂、健康、汽車、媒體相關的主題。

圖7 主題分布詞云圖
4.3.3 用戶推薦質量
用戶推薦質量的衡量需要從實際的應用效果入手,由于該模型可以對具有相似興趣的用戶進行推薦,這里使用上述介紹的用戶推薦準確率來衡量模型的質量。LDA用戶模型和VSM方法在各領域下的準確率對比結果如表2~表5所示,分別對應式(4)中t取10,20,40,79時的結果。

表2 t=10時的實驗結果

表3 t=20時的實驗結果

表4 t=40時的實驗結果

表5 t=79時的實驗結果
分析以上實驗結果得出結論:
(1)推薦性能與主題數相關。隨著主題數的增加,推薦效果逐漸變好,在主題數為14時,推薦效果最好,當主題數進一步增加時,效果基本保持穩定甚至略微有所回落。主題數越大,模型的計算量也越大,耗時越久,綜合可慮,在主題數取14時,無論是推薦效果還是計算效率都有著不錯的結果。對比VSM模型的實驗結果后還可以看出,當主題數大于10的情況下,基于LDA的用戶興趣模型的效果均比傳統的VSM有所提高。而對比HMM模型的實驗結果可以看出,當主題數達到12時,基于LDA的用戶興趣模型的效果和HMM模型相當,在主題數大于14的情況下,效果明顯好于HMM模型。
(2)推薦性能在不同領域下有著較明顯的差別。LDA用戶興趣模型對體育領域和科技領域的用戶推薦效果較好,尤其是體育領域,K取10時其準確率甚至達到了82%,遠好于其他領域。房產和汽車領域的效果略微偏差,分析這些領域用戶的微博,發現這可能是由于這些領域用戶發布的微博比較寬泛,涉及的內容和主題比較繁雜,對主題挖掘的干擾比較大;而體育領域和科技領域的用戶發布的微博則相對更具有明確的主題,領域凝聚力更強,實用性更高,因此更有挖掘主題的價值。如何減少這類微博對用戶推薦的干擾,是今后的工作重點。
本文針對微博數據這種短文本,結合LDA模型的文檔-主題-詞分層模型的特點,用微博數據的集合來代表用戶,進而提出了用戶-主題-詞的用戶興趣模型,不僅能有效挖掘用戶所關注的主題,并可進行用戶推薦等社交網絡應用。在今后的研究工作中將繼續優化微博用戶興趣模型的效果和效率,減少無意義微博對主題挖掘的干擾,以適應于各種不同的領域,嘗試結合更多的社交網絡特征,并實現實時的微博數據處理。
[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]. 計算機研究與發展, 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]. 計算機技術與發展, 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);北京市屬高等學校人才強教深化計劃基金資助項目“中青年骨干人才培養計劃”(PHR20110815)。
邸 亮(1988-),男,碩士研究生,主研方向:自然語言處理;杜永萍,副教授。
2013-09-22
2013-12-05E-mail:dltt67@163.com
1000-3428(2014)05-0001-06
A
TP311.13