王曉妮,段 群,韓建剛
(1.咸陽師范學(xué)院 信息中心,陜西 咸陽 712000;2.咸陽師范學(xué)院 計(jì)算機(jī)學(xué)院,陜西 咸陽 712000;3.西北機(jī)電工程研究所 生產(chǎn)部電調(diào)室,陜西 咸陽 712000)
互聯(lián)網(wǎng)、大數(shù)據(jù)和云計(jì)算等信息技術(shù)的飛速發(fā)展使人類社會進(jìn)入信息時(shí)代,人們經(jīng)常通過網(wǎng)絡(luò)來訪問和接受各種各樣的數(shù)據(jù)信息。面對這些魚龍混雜的海量數(shù)據(jù)和個(gè)人對數(shù)據(jù)的不同需求,使得從海量數(shù)據(jù)中提取和挖掘有用信息顯得非常重要,于是就出現(xiàn)了數(shù)據(jù)挖掘技術(shù)。數(shù)據(jù)挖掘能夠處理信息龐大、數(shù)據(jù)模糊和組成結(jié)構(gòu)相對復(fù)雜的數(shù)據(jù),應(yīng)用范圍較廣[1]。例如淘寶商就是采用數(shù)據(jù)挖掘技術(shù)來分析消費(fèi)者的個(gè)人需求、喜好、心理價(jià)位和消費(fèi)層次,以此為買家推薦合適的商品或商家,便于買家進(jìn)行合理快速的選擇。數(shù)據(jù)挖掘?yàn)槿藗兘鉀Q了燃眉之急,促進(jìn)了信息時(shí)代的發(fā)展,使數(shù)據(jù)更加復(fù)雜和龐大[2]。隨著數(shù)據(jù)量出現(xiàn)幾何級爆炸式的迅猛增長,導(dǎo)致數(shù)量級從最初的MB發(fā)展到TB或PB,這就使傳統(tǒng)的數(shù)據(jù)挖掘系統(tǒng)面臨嚴(yán)重的挑戰(zhàn)和威脅[3]。
網(wǎng)絡(luò)技術(shù)能為人們提供大量的信息,但它也使人們從海量數(shù)據(jù)中提取有用信息的難度越來越大,這就必須加快數(shù)據(jù)挖據(jù)技術(shù)的發(fā)展。因此,云計(jì)算技術(shù)應(yīng)運(yùn)而生,它的出現(xiàn)和發(fā)展給數(shù)據(jù)挖掘造成了技術(shù)瓶頸[4],但也為數(shù)據(jù)挖掘和云計(jì)算有效結(jié)合的新模式創(chuàng)造了發(fā)展機(jī)遇。云計(jì)算的SaaS標(biāo)準(zhǔn)化服務(wù)模式為數(shù)據(jù)挖掘提供了良好的理論和技術(shù)支持,低成本、存儲能力強(qiáng),可伸縮和動態(tài)的計(jì)算能力等特點(diǎn)能夠?qū)崿F(xiàn)海量數(shù)據(jù)的高效挖掘[5]。將云計(jì)算技術(shù)靈活地應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域,例如隨著高校數(shù)據(jù)館數(shù)字化的推進(jìn),通過挖掘電子文獻(xiàn)資料查閱日志信息資源來了解讀者需求,為管理者提供可靠的科學(xué)依據(jù),為用戶提供及時(shí)服務(wù)變得非常重要。因此開發(fā)一個(gè)基于云計(jì)算的數(shù)據(jù)挖掘系統(tǒng),并把它應(yīng)用在高校圖書館電子文獻(xiàn)資料的查閱過程中顯得迫在眉睫。
云計(jì)算(cloud computing)是并行計(jì)算、效用計(jì)算、虛擬化、網(wǎng)絡(luò)存儲、負(fù)載均衡、網(wǎng)格計(jì)算、熱備份冗余和分布計(jì)算等傳統(tǒng)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)迅速發(fā)展融合的產(chǎn)物,它采用的是一種基于互聯(lián)網(wǎng)相關(guān)服務(wù)的使用、增加、交付和按使用量付費(fèi)的模式,利用網(wǎng)絡(luò)提供易擴(kuò)展可動態(tài)變化的虛擬化資源。通過把計(jì)算任務(wù)分布在由大量計(jì)算機(jī)組成的資源上,便于各個(gè)應(yīng)用系統(tǒng)按需獲得存儲空間、信息服務(wù)和計(jì)算力。云計(jì)算通常為用戶提供LaaS(基礎(chǔ)設(shè)施即服務(wù))、SaaS(軟件即服務(wù))和PaaS(平臺即服務(wù))這三種服務(wù)形式[6],其中LaaS能提供以硬件設(shè)備為基礎(chǔ)的網(wǎng)絡(luò)、計(jì)算和存儲服務(wù),對硬件資源實(shí)現(xiàn)了抽象和服務(wù)化提供,能夠完成分布式存儲和分布式計(jì)算。云計(jì)算具有超大規(guī)模、高可靠性、虛擬化、高擴(kuò)展性、通用性、極其廉價(jià)、按需服務(wù)和潛在的危險(xiǎn)性等特點(diǎn)[7]。
數(shù)據(jù)挖掘(data mining)是指從模糊的、大量的、有噪聲的、隨機(jī)的和不完全的實(shí)際應(yīng)用數(shù)據(jù)中,提取那些人們事先未知的、隱含在其中的、但又非常有用的知識和信息的過程[8]。數(shù)據(jù)挖掘就是通過在數(shù)據(jù)庫中的大量信息中分析每個(gè)數(shù)據(jù),從中找出其規(guī)律并挖掘出有用信息的技術(shù),主要包括三個(gè)步驟:數(shù)據(jù)準(zhǔn)備、尋找規(guī)律和規(guī)律表示。典型數(shù)據(jù)挖掘系統(tǒng)的總體結(jié)構(gòu)如圖1所示。數(shù)據(jù)挖掘按照其挖掘目的可分為關(guān)聯(lián)分析、分類分析、類聚分析、特異分析、演變分析和異常分析等挖掘任務(wù)[9]。
圖1 典型數(shù)據(jù)挖掘系統(tǒng)的總體結(jié)構(gòu)
數(shù)據(jù)挖掘過程[10]是一個(gè)通過原始數(shù)據(jù)不斷修改、調(diào)整和循環(huán)的挖掘知識過程,可分為四個(gè)步驟:數(shù)據(jù)預(yù)處理(數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)抽樣和數(shù)據(jù)轉(zhuǎn)換);數(shù)據(jù)挖掘(通過各種挖掘算法,對預(yù)處理的數(shù)據(jù)進(jìn)行知識發(fā)現(xiàn)的過程);模式評估(根據(jù)用戶特點(diǎn)、愛好等來識別如何表示知識模式);知識表示(將最終的挖掘結(jié)果通過可視化的知識表示技術(shù)展示給用戶)。
伴隨云計(jì)算的發(fā)展和信息時(shí)代的到來,呈現(xiàn)指數(shù)式增長的海量數(shù)據(jù)導(dǎo)致信息超載,個(gè)性化和多樣化的數(shù)據(jù)挖掘需求越來越明顯,數(shù)據(jù)復(fù)雜度與傳統(tǒng)的數(shù)據(jù)挖掘系統(tǒng)計(jì)算能力有限的尖銳矛盾日益突出[11]。效率太低、速度太慢、能耗太高等缺陷使傳統(tǒng)的單機(jī)數(shù)據(jù)挖掘系統(tǒng)在并行計(jì)算中黔驢技窮,集中式傳統(tǒng)數(shù)據(jù)挖掘系統(tǒng)早已無法適應(yīng),出現(xiàn)了技術(shù)瓶頸,只有并行計(jì)算才能滿足海量數(shù)據(jù)的大規(guī)模計(jì)算。而目前傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)或解決方案大多數(shù)都是圍繞數(shù)據(jù)挖掘系統(tǒng)這個(gè)中心,著重于數(shù)據(jù)挖掘算法和系統(tǒng)設(shè)計(jì)工程,缺乏從廣大用戶實(shí)際應(yīng)用的角度去考慮數(shù)據(jù)挖掘技術(shù)的具體實(shí)施。
許多現(xiàn)有的數(shù)據(jù)挖掘系統(tǒng)只用于少數(shù)具有專業(yè)挖掘知識的技術(shù)人員,只有了解和熟悉相應(yīng)的數(shù)據(jù)挖掘算法,才能取得理想的挖掘結(jié)果,這讓大多數(shù)的普通用戶望而生畏。這些因素阻礙了數(shù)據(jù)挖掘技術(shù)的推廣和應(yīng)用,使其具有一定的局限性,無疑增加了各企業(yè)選擇或開發(fā)適合自己業(yè)務(wù)的數(shù)據(jù)挖掘系統(tǒng)的投資成本。面對急速增長的海量數(shù)據(jù),如何快速準(zhǔn)確地從這些雜亂無章的海量數(shù)據(jù)中挖掘出有價(jià)值的信息已成為目前許多數(shù)據(jù)挖掘系統(tǒng)急需解決的問題。具備高可用性、并行計(jì)算、虛擬化、動態(tài)資源分配和調(diào)度特點(diǎn)的云計(jì)算平臺能夠滿足信息時(shí)代數(shù)據(jù)挖掘計(jì)算性能的基本要求。
具有可彈性變化的計(jì)算能力和海量存儲能力使云計(jì)算技術(shù)成為解決傳統(tǒng)數(shù)據(jù)挖掘系統(tǒng)缺陷的有效策略,云計(jì)算平臺通過不同的部署模式突破了傳統(tǒng)數(shù)據(jù)挖掘技術(shù)瓶頸[12],成為優(yōu)化傳統(tǒng)數(shù)據(jù)挖掘系統(tǒng)較好的解決方案。例如在高校中數(shù)字圖書館如果要適應(yīng)師生特定需求,要準(zhǔn)確及時(shí)地向用戶提供所需數(shù)據(jù),那么就要對用戶查閱日志數(shù)據(jù)集進(jìn)行必要的數(shù)據(jù)挖掘分析,然后才能動態(tài)地組織和呈現(xiàn)出用戶所需的相關(guān)數(shù)據(jù)。基于云計(jì)算的數(shù)據(jù)挖掘系統(tǒng)是實(shí)現(xiàn)數(shù)字圖書館信息資源整合的最優(yōu)方案。
該系統(tǒng)是通過云計(jì)算和數(shù)據(jù)挖掘技術(shù)相結(jié)合而搭建起來的,不僅能為各種終端用戶提供友好便捷的界面服務(wù),還能集成基于本系統(tǒng)開發(fā)的其他應(yīng)用程序開放接口。用戶可以通過各種終端設(shè)備登錄用戶界面直接訪問或通過相關(guān)應(yīng)用程序調(diào)用系統(tǒng)的開放接口間接訪問這兩種方式來使用系統(tǒng)。系統(tǒng)應(yīng)該滿足這幾個(gè)基本要求:
(1)數(shù)據(jù)的分析深度。系統(tǒng)必須能夠滿足分析多種類型數(shù)據(jù)的需求,可以從多方面和多角度進(jìn)行數(shù)據(jù)分析,便于快捷地加入比較復(fù)雜的計(jì)算機(jī)學(xué)習(xí)和概率統(tǒng)計(jì)等算法。
(2)數(shù)據(jù)的適應(yīng)性。系統(tǒng)能夠處理各種類型的數(shù)據(jù),盡量滿足用戶對數(shù)據(jù)挖掘的個(gè)性化和多樣化需求。
(3)友好的用戶界面。能夠滿足大多數(shù)用戶操作習(xí)慣,通過開放接口的直接調(diào)用實(shí)現(xiàn)外部服務(wù)的使用。
(4)系統(tǒng)的便捷性。能夠滿足和快速適應(yīng)數(shù)據(jù)指數(shù)增長和頻繁更新的應(yīng)用場景,利用虛擬技術(shù)對計(jì)算資源進(jìn)行調(diào)度和自主分配。
(5)挖掘算法的通用性。系統(tǒng)中的算法要大眾化,能夠根據(jù)挖掘數(shù)據(jù)和用戶需求的不同而隨時(shí)調(diào)整。
(6)數(shù)據(jù)的安全性。根據(jù)用戶需求和級別劃分相應(yīng)的操作權(quán)限,防止用戶隱私數(shù)據(jù)和信息被非法訪問。
云計(jì)算海量數(shù)據(jù)挖掘系統(tǒng)架構(gòu)體系如圖2所示,利用面向組件的分層設(shè)計(jì)思想,從上至下共分為用戶層、數(shù)據(jù)挖掘云服務(wù)層和云計(jì)算支撐平臺。其中用戶層主要負(fù)責(zé)用戶與云平臺的信息數(shù)據(jù)交互,開放接口便于用戶獲取數(shù)據(jù)集和算法調(diào)用,用戶界面為用戶提供快捷友好的訪問操作和挖掘結(jié)果展示;數(shù)據(jù)挖掘云服務(wù)層封裝了大量的方法和類,算法和函數(shù)等為數(shù)據(jù)預(yù)處理模塊和數(shù)據(jù)挖掘模塊提供服務(wù),方便其隨時(shí)調(diào)用;云計(jì)算平臺為數(shù)據(jù)挖掘云服務(wù)層提供其所需的所有應(yīng)用程序接口。該架構(gòu)具有硬件投入少、軟件消耗低、各模塊間相互配合、后期維護(hù)簡單和安全
圖2 云計(jì)算挖掘系統(tǒng)的架構(gòu)
性高等特點(diǎn)。系統(tǒng)通過修改部分接口和添加類來方便地增加新的功能模塊,分層而治的架構(gòu)設(shè)計(jì)模式增強(qiáng)了系統(tǒng)的安全性。
基于云計(jì)算的數(shù)據(jù)挖掘系統(tǒng)主要有以下四個(gè)功能模塊:
(1)系統(tǒng)管理模塊。主要負(fù)責(zé)統(tǒng)一管理系統(tǒng)的用戶、安全、服務(wù)和資源。系統(tǒng)能夠通過友好的界面為用戶直接提供其所需的相關(guān)資源、軟件和服務(wù)。
(2)數(shù)據(jù)預(yù)處理模塊。主要對數(shù)據(jù)進(jìn)行采集、清洗、集成、選擇和變換等操作。系統(tǒng)首先要從海量數(shù)據(jù)源中采集相關(guān)的原始數(shù)據(jù),然后調(diào)用接口服務(wù)和清洗算法對采集來的相關(guān)數(shù)據(jù)進(jìn)行清洗,對清洗結(jié)果按類別進(jìn)行集成,選擇出有用數(shù)據(jù)進(jìn)行類型變換后通過數(shù)據(jù)層存儲在云平臺上。
(3)數(shù)據(jù)挖據(jù)模塊。利用云計(jì)算技術(shù)首先在接口處對預(yù)處理后的數(shù)據(jù)進(jìn)行合理分類,然后對其按類別進(jìn)行調(diào)用服務(wù)和詳細(xì)的分析,找出隱藏的有用信息,最后根據(jù)此分析結(jié)果通過決策管理選擇合適的挖掘類型和最優(yōu)的挖掘算法,實(shí)現(xiàn)數(shù)據(jù)挖掘。
(4)結(jié)果評估模塊。對得到的挖掘結(jié)果進(jìn)行模式評估和結(jié)果對比,選擇出最優(yōu)化的數(shù)據(jù)挖掘結(jié)果并進(jìn)行可視化處理后將其以知識表示的方式展示給用戶。
系統(tǒng)的具體功能模塊如圖3所示。
圖3 系統(tǒng)的功能模塊
該系統(tǒng)的實(shí)現(xiàn)思想就是利用計(jì)算技術(shù)來實(shí)現(xiàn)海量數(shù)據(jù)挖掘,要將云計(jì)算技術(shù)融合在數(shù)據(jù)挖掘中,通過研究挖掘算法并把算法部署在云計(jì)算平臺中,將計(jì)算擴(kuò)展到無限規(guī)模的服務(wù)器集群上實(shí)現(xiàn)數(shù)據(jù)挖掘。系統(tǒng)采用Map/Reduce分布式計(jì)算方式,把海量數(shù)據(jù)集和大量的挖掘任務(wù)劃分成若干個(gè)子任務(wù),分配到多臺計(jì)算機(jī)上進(jìn)行并行處理,通過不斷調(diào)用系統(tǒng)資源來實(shí)現(xiàn)具體的數(shù)據(jù)挖掘任務(wù)。
該系統(tǒng)采用集成的跨平臺開發(fā)環(huán)境,該集成開發(fā)環(huán)境是利用Java語言開發(fā),具有靈活性強(qiáng)和系統(tǒng)資源免費(fèi)的優(yōu)點(diǎn)。系統(tǒng)的開發(fā)平臺是基于Google的App Engine SDK[32]云計(jì)算開發(fā)平臺,開發(fā)工具為Eclipse3.4,開發(fā)語言為Python。該語言具有可擴(kuò)展、可移植、面向?qū)ο蠛拓S富的資源庫等優(yōu)點(diǎn),便于系統(tǒng)的協(xié)同開發(fā)。
采用Map/Reduce這種并行的編程模型能夠?qū)崿F(xiàn)把云計(jì)算技術(shù)融入海量數(shù)據(jù)挖掘中,該模型是主從結(jié)構(gòu),把用戶的所有請求任務(wù)看作為一個(gè)個(gè)作業(yè)。在處理雜亂無章的大規(guī)模數(shù)據(jù)時(shí),先要將其分割成無數(shù)個(gè)塊后再將大規(guī)模的計(jì)算任務(wù)擴(kuò)展到由大量普通單機(jī)服務(wù)器組成的無限規(guī)模機(jī)器群集上并行完成。采用Map/Reduce進(jìn)行海量數(shù)據(jù)挖掘算法流程如圖4所示。
圖4 數(shù)據(jù)挖掘算法流程
算法具體實(shí)現(xiàn)步驟如下:
(1)定義一個(gè)Map(映射)函數(shù),從結(jié)構(gòu)各異的大數(shù)據(jù)集中解析每個(gè)數(shù)據(jù),從中提出表示數(shù)據(jù)特征的鍵值key和value。
(2)把用戶的挖掘請求當(dāng)成相應(yīng)的作業(yè),利用Map函數(shù)將其拆分成若干個(gè)不同的Map任務(wù),并將這些子任務(wù)分配到數(shù)據(jù)挖掘平臺中不同的機(jī)器上去處理,再由給定的鍵值對
(3)合并Map輸出的相同key2鍵值后,經(jīng)過Shuffle階段映射成一組新的鍵值對
(4)判定所有子任務(wù)是否完成映射,完成后進(jìn)入下一步,否則繼續(xù)映射。
(5)定義一個(gè)Reduce(歸約)函數(shù),并把新的鍵值對
(6)將這些文件結(jié)合起來的目標(biāo)文件就是挖掘結(jié)果,對其進(jìn)行可視化處理后輸出展示給用戶。
系統(tǒng)驗(yàn)證環(huán)境為Google App Engine SDK,CPU為3.3 GHz,內(nèi)存4 G,選用該校師生在電子數(shù)據(jù)資源庫(知網(wǎng)和萬方數(shù)據(jù))中查閱學(xué)術(shù)論文的數(shù)據(jù)集對系統(tǒng)的可行性進(jìn)行測試和驗(yàn)證。把所選數(shù)據(jù)集進(jìn)行分組后,采用K-means聚類和ID3決策樹這兩種挖掘算法分別在云計(jì)算平臺和本地上運(yùn)行來驗(yàn)證系統(tǒng),該系統(tǒng)數(shù)據(jù)挖掘結(jié)果分析對比如圖5和表1所示。
圖5 系統(tǒng)數(shù)據(jù)挖掘結(jié)果分析對比
運(yùn)行時(shí)間/sK-means聚類ID3決策樹數(shù)據(jù)集本地執(zhí)行時(shí)間2.194.9214.1533.2569.7415.1657.89239.111 390.892 358.231 0002 0005 00010 00020 000云計(jì)算挖據(jù)系統(tǒng)執(zhí)行時(shí)間0.491.136.8914.2122.93.126.8919.5468.23139.821 0002 0005 00010 00020 000
通過比較兩種算法在不同環(huán)境下執(zhí)行數(shù)據(jù)挖掘的時(shí)間可以得出,K-means聚類算法和ID3決策樹算法在云計(jì)算挖掘系統(tǒng)中的運(yùn)行效率和挖掘速度均高于單機(jī)系統(tǒng),而且隨著數(shù)據(jù)量的增加,挖掘效率的優(yōu)勢呈現(xiàn)出正比關(guān)系。但同樣的數(shù)據(jù)集在不同的平臺中,顯然K-means聚類算法比ID3決策樹算法所用時(shí)間更短,效率更高。
把云計(jì)算技術(shù)靈活地融入數(shù)據(jù)挖掘中,設(shè)計(jì)并實(shí)現(xiàn)了云計(jì)算數(shù)據(jù)挖掘系統(tǒng)。通過該校師生在電子數(shù)據(jù)資源庫(知網(wǎng)和萬方數(shù)據(jù))中查閱學(xué)術(shù)論文的數(shù)據(jù)集對系統(tǒng)的可行性進(jìn)行了測試和驗(yàn)證,結(jié)果表明該系統(tǒng)能夠滿足大部分用戶的基本需求。該系統(tǒng)的各模塊處于云計(jì)算平臺的不同服務(wù)模式中,能夠?yàn)橛脩籼峁╈`活多樣的服務(wù),提高了數(shù)據(jù)挖掘效率和平臺的穩(wěn)定性。但是系統(tǒng)的個(gè)別功能還不是太完善,還有待進(jìn)一步深化研究和推廣。