段慶偉,鐵木巴干
(本溪市信息中心,遼寧 本溪 117000)
基于Hadoop云計算平臺的新浪微博數(shù)據(jù)聚類分析算法研究
段慶偉,鐵木巴干
(本溪市信息中心,遼寧 本溪 117000)
近年來,隨著Web2.0的興起,互聯(lián)網(wǎng)信息更加豐富,數(shù)據(jù)規(guī)模日益增加,傳統(tǒng)數(shù)據(jù)挖掘技術(shù)難以滿足需要。云計算為解決這一問題提出了一種新方法。本文首先對開源的云計算技術(shù)Hadoop進(jìn)行介紹,然后,對分布式進(jìn)行了設(shè)計。本文將聚類過程分為三個步驟,分別對TF-IDF關(guān)鍵詞提取、LDA模型訓(xùn)練和K-means聚類過程進(jìn)行MapReduce的實(shí)現(xiàn),并使用公共微博數(shù)據(jù)集進(jìn)行了聚類實(shí)驗,并與傳統(tǒng)聚類方法進(jìn)行對比,結(jié)果表明,本文所使用LDA建模的分布式算法對中文微博數(shù)據(jù)聚類效果較好。
云計算;Hadoop;分布式文本聚類;潛在狄利克雷分配模型;變分貝葉斯推斷
Web2.0的興起使互聯(lián)網(wǎng)的發(fā)展進(jìn)一步提速,在大量文檔中挖掘有用信息,成為數(shù)據(jù)挖掘研究熱點(diǎn)?;谠朴嬎愕奈谋就诰驊?yīng)運(yùn)而生。文本挖掘是對文本信息進(jìn)行數(shù)據(jù)挖掘的過程,是在文本信息中抽取潛在的可用、有效、可理解的、有價值的知識〔1〕。
聚類是文本挖掘技術(shù)中的重要組成部分,它將文本集分成若干簇,簇內(nèi)文本應(yīng)有較高相似度,簇間文本應(yīng)有明顯差異性。聚類作為一種無監(jiān)督的機(jī)器學(xué)習(xí)方法,受到越來越多的研究人員的關(guān)注〔2〕。
本文主要內(nèi)容是基于Hadoop云計算平臺的新浪微博數(shù)據(jù)聚類分析算法的研究。
2.1 分布式文本聚類
針對Hadoop分布式計算平臺的特點(diǎn),對于傳統(tǒng)K-means聚類算法,分別將TF-IDF特征值提取、K-means算法的執(zhí)行進(jìn)行了分布式設(shè)計。同時對K-means算法進(jìn)行改進(jìn),使用LDA主題模型生成的概率分布值作為文檔的特征值進(jìn)行聚類,并提出了一種分布式的基于坍縮變分貝葉斯推斷的LDA模型建立方法。本文基于Hadoop分布式平臺對聚類算法提出了優(yōu)化,介紹算法的詳細(xì)設(shè)計,說明算法特點(diǎn),并進(jìn)行實(shí)驗。
2.2 分布式TF-IDF計算
需要知道每個特征詞語的出現(xiàn)次數(shù)|ti|、每個文本中詞語出現(xiàn)的總數(shù)|dj|、每個詞語在文檔集中出現(xiàn)的文檔數(shù)ni,在Hadoop中可以使用多個Ma-pReduce作業(yè)對各個參數(shù)進(jìn)行求解,并且計算其TF-IDF。
2.3 分布式LDA建模
在使用CVB進(jìn)行參數(shù)推斷的過程中,首先Map接受型為
最后將LDA 主題模型得到文檔在每一主題上的概率分布值作為文檔的特征值,采用K 均值聚類算法對用戶進(jìn)行聚類。
2.4 分布式K-means算法
在利用MapReduce實(shí)現(xiàn)K-means算法時,Map函數(shù)將每個待聚類的點(diǎn)分配給最接近的聚類中心點(diǎn),Reduce函數(shù)負(fù)責(zé)將更新新的聚類中心點(diǎn),每次迭代需啟動一個MapReduce作業(yè)。K-means在MapReduce中運(yùn)行時,首先各個Slave節(jié)點(diǎn)的Map讀取本地數(shù)據(jù)集,根據(jù)預(yù)先設(shè)置的簇的數(shù)目隨機(jī)選取聚類中心點(diǎn),將本地數(shù)據(jù)集中所有的文檔對應(yīng)到距其最近的聚類重心。輸出
在Map過程中會產(chǎn)生大量的數(shù)據(jù),為可以節(jié)約網(wǎng)絡(luò)通信成本,中間數(shù)據(jù)被存儲在各節(jié)點(diǎn)主機(jī)的本地磁盤。各節(jié)點(diǎn)執(zhí)行Combine操作,利用各自本地磁盤中的數(shù)據(jù)對同一個聚類的點(diǎn)進(jìn)行求和,輸出
Reduce函數(shù)將對各個Combine函數(shù)的輸出值進(jìn)行計算,將同一聚類中心的中間數(shù)據(jù)進(jìn)行求和,得到新的聚類中心,完成一次迭代。之后不斷重復(fù)整個MapReduce過程直至滿足結(jié)束條件。
在迭代過程結(jié)束后,選定了聚類重心,此時再執(zhí)行一次Map操作,計算每個點(diǎn)到各簇重心的距離,將所有的點(diǎn)放在唯一一個與之距離最近的簇中,至此聚類完成〔4〕。
2.5 實(shí)驗平臺的搭建
2.5.1 實(shí)驗環(huán)境設(shè)置
實(shí)驗在三臺計算機(jī)上以分布式的方式進(jìn)行部署,每臺機(jī)器上使用的操作系統(tǒng)為Ubuntu 12.10,jdk版本為java-6-opensdk,Hadoop版本為1.1.2。四臺機(jī)器網(wǎng)絡(luò)帶寬為100Mbps。
2.5.2 Hadoop
在Hadoop-1.1.2版本中,為實(shí)現(xiàn)分布式模式,在每臺機(jī)器上安裝Hadoop后,均需要對各自hadoop/conf/文件夾下的hadoop-env.sh,core-site.xml和mapred-site.xml、hdfs-site.xml四個文件進(jìn)行配置。
對Hadoop的環(huán)境文件hadoop-env.sh進(jìn)行配置,在文件中找到”#export JAVA_HOME=”的字段,將其指向自己的JDK路徑。
對Hadoop的核心文件core-site.xml進(jìn)行配置,這里配置了文件系統(tǒng)HDFS的位置、文件副本數(shù)、臨時文件夾,配置如下:
對MapReduce的配置文件mapred-site.xml進(jìn)行配置,設(shè)置JobTracker節(jié)點(diǎn)位置:修改Hadoop中HDFS的配置,配置的備份方式默認(rèn)為3。
在所有配置完成后,使用 bin/hadoop namenode -format命令格式化HDFS文件系統(tǒng),再運(yùn)行bin/start-all.sh啟動Hadoop,稍后在瀏覽器中打開http://localhost:50030和http://localhost:50070即可看到NameNode和JobTracker的瀏覽器交互界面,至此Hadoop環(huán)境配置完成,最后再用export命令將HADOOP_HOME和HADOOP_CONF_DIR進(jìn)行聲明,至此Hadoop配置完成。
2.6 實(shí)驗數(shù)據(jù)
本文分別使用了以下兩個數(shù)據(jù)集以進(jìn)行比較:
1)由中科院高能物理研究所計算中心收集的2695個用戶的歷史微博數(shù)據(jù),數(shù)據(jù)大小為474.72M;
2)由合肥工業(yè)大學(xué)計算機(jī)與信息學(xué)院收集的新浪微博120萬微博數(shù)據(jù),數(shù)據(jù)大小為179.86M
兩個數(shù)據(jù)集均使用中科院計算機(jī)語言信息中心語言知識研究室董振東教授開發(fā)的“知網(wǎng)HowNet”分詞系統(tǒng)進(jìn)行分詞,并使用哈工大中文停用詞表進(jìn)行停用詞去除。
2.7 評價標(biāo)準(zhǔn)
準(zhǔn)確率衡量系統(tǒng)的查準(zhǔn)率,召回率衡量系統(tǒng)的查全率。
對于原始文本的人工分類Ci和聚類后的簇Pj,有以下公式:
準(zhǔn)確率precision(i,j)= nij/nj
其中nij是類Ci在簇Pj中出現(xiàn)的文本個數(shù),nj是簇Pj的文本總數(shù)。
召回率recall(i.j)=nij/ni
其中nij是類Ci在簇Pj中出現(xiàn)的文本個數(shù),ni是類Ci的文本總數(shù)。
2.8 實(shí)驗設(shè)計
本文實(shí)驗對于聚類的設(shè)計框圖如圖1所示。本文將用戶的所有微博數(shù)據(jù)聚集在一起作為用戶的初始數(shù)據(jù),經(jīng)過分詞、去停用詞、去@信息等預(yù)處理步驟后提交給LDA模型,分別使用單機(jī)和多節(jié)點(diǎn)的Gibbs法和CVB法進(jìn)行訓(xùn)練,將訓(xùn)練結(jié)果提交給K-means算法進(jìn)行聚類。同時進(jìn)行一組直接利用向量空間模型進(jìn)行K-means算法進(jìn)行聚類的實(shí)驗作為對照。分別對各組實(shí)驗的聚類速度和聚類質(zhì)量進(jìn)行比較。
圖1 實(shí)驗流程
2.9 實(shí)驗結(jié)果
在聚類速度實(shí)驗中,首先依次使用單機(jī)和Hadoop對語料數(shù)據(jù)集進(jìn)行K-means聚類,再分別使用Gibbs采樣法和CVB法對數(shù)據(jù)集進(jìn)行模型訓(xùn)練,再使用Hadoop對訓(xùn)練完成的結(jié)果進(jìn)行K-means聚類。
單機(jī)計算的效率比2個節(jié)點(diǎn)的Hadoop分布式平臺計算效率稍高,這是因為在使用Hadoop平臺時,節(jié)點(diǎn)之間的通訊消耗以及每次MapReduce任務(wù)都要對磁盤進(jìn)行讀寫。在節(jié)點(diǎn)數(shù)提升超過3個時,分布式計算能力明顯提升,而通信及IO對效率的影響所占比重也相應(yīng)降低,因此整體效率有了顯著提高。
在使用同樣的數(shù)量的節(jié)點(diǎn)對同一數(shù)據(jù)集進(jìn)行采樣后,采用CVB采樣法生成的模型比Gibbs采樣法生成的模型有著更快的收斂速度。
經(jīng)過LDA模型訓(xùn)練之后,聚類速度較VSM并沒有明顯提升,這說明特征值并不是影響聚類速度的主要原因。
Hadoop在處理小文件時,MapReduce所帶來的效率提升沒有處理大文件時明顯,這是由于Hadoop中HDFS默認(rèn)的存儲塊為64MB,在直接處理小文件時,雖然在文件實(shí)際占用的存儲空間仍為實(shí)際的文件大小,但每一個存儲在HDFS中的文件、目錄和塊映射都作為一個對象存儲在NameNode中,極大的占用了NameNode的資源,頻繁的映射尋址使的HDFS的速度大大降低,因此難以有很高的效率提升。
LDA的最高查準(zhǔn)率為0.931,最低查準(zhǔn)率為0.772,平均查準(zhǔn)率為0.805;VSM的最高查準(zhǔn)率為0.884,最低查準(zhǔn)率為0.578,平均查準(zhǔn)率為0.767。LDA的平均查全率為0.866,VSM的平均查全率為0.852。LDA主題模型在查準(zhǔn)率、查全率方面全面優(yōu)于VSM方法。證明經(jīng)過LDA主題訓(xùn)練后得到的特征更具有代表性。
本文基于Hadoop分布式計算平臺,介紹了實(shí)驗中使用的算法,并將聚類中的各個部分分離,分別與MapReduce相結(jié)合,實(shí)現(xiàn)分布式化。對照兩個不同大小的微博數(shù)據(jù)集進(jìn)行了聚類實(shí)驗分析,分別從聚類時間、聚類質(zhì)量兩個方面對幾種預(yù)設(shè)的聚類方法進(jìn)行了實(shí)驗。結(jié)果證明本文提出的方法有較好的聚類質(zhì)量和聚類速度,較傳統(tǒng)算法有一定提升。同時,基于MapReduce對本文所提方法進(jìn)行實(shí)現(xiàn)后,提高了方法的可擴(kuò)展性,較好解決了大型文本數(shù)據(jù)聚類的問題。
〔1〕代勁. 云模型在文本挖掘應(yīng)用中的關(guān)鍵問題研究〔D〕. 重慶: 重慶大學(xué), 2011.
〔2〕何晏成. 基于近鄰傳播和凝聚層次的文本聚類方法〔D〕. 哈爾濱工業(yè)大學(xué), 2010.
〔3〕馮汝偉, 謝強(qiáng), 丁秋林. 基于文本聚類與分布式 Lucene 的知識檢索〔J〕. 計算機(jī)應(yīng)用, 2013, 33(1): 186-188.
StudyontheGatheredCollectAlgorithmforMicro-signaldatabasedonCloudcalculationtechnology
DUAN Qing-wei; TIEMUbagan
(BenxiInformationcenter,Benxi,Liaoning, 117000,China)
the paper introduces the cloud calculation, then designs its distribution type. The gathering process is comprised of three steps to realize MapReduce, to withdraw key words of TF-IDF, to train the model LDA, and to collect k-means process respectively. We contrast the result data with those from traditional methods, it shows more efficiency for data from LDA.
Cloud calculation; Hapoop; Distributed file collect; Potential distributed model.
1008-3723(2017)04-007-03
10.3969/j.issn.1008-3723.2017.04.007
2017-05-15
段慶偉( 1960-),遼寧遼陽人, 本溪市信息中心主任 ,計算機(jī)高級工程師 ,研究方向:大數(shù)據(jù)及云平臺
TP311.13
:A