首頁 > 專家說

云計算的海量數(shù)據(jù)挖掘工作是怎樣實現(xiàn)的?

來源:新能源網(wǎng)
時間:2024-08-17 12:03:45
熱度:

云計算的海量數(shù)據(jù)挖掘工作是怎樣實現(xiàn)的?【專家解說】:云計算屬于新興技術(shù)領(lǐng)域,群英云計算轉(zhuǎn)一篇關(guān)于問題的學(xué)術(shù)報告吧。對您應(yīng)該有所幫助。1 引言目前,人們正處于一個“無處不網(wǎng)、無時不網(wǎng)

【專家解說】:云計算屬于新興技術(shù)領(lǐng)域,群英云計算轉(zhuǎn)一篇關(guān)于問題的學(xué)術(shù)報告吧。對您應(yīng)該有所幫助。 1 引言 目前,人們正處于一個“無處不網(wǎng)、無時不網(wǎng),人人上網(wǎng)、時時在線”的時代,圖靈獎獲得者吉姆·格雷(Jim Gray)認為,網(wǎng)絡(luò)環(huán)境下每18個月產(chǎn)生的數(shù)據(jù)量等于過去幾千年的數(shù)據(jù)量之和。目前互聯(lián)網(wǎng)的數(shù)據(jù)具有海量增長、用戶廣泛、動態(tài)變化等特征。2010年,QQ同時在線的用戶超過1億人,淘寶一年交易次數(shù)比上年增長150%,視頻服務(wù)Animoto在3天內(nèi)通過Amazon將其服務(wù)能力迅速擴展至75萬用戶。 數(shù)據(jù)挖掘能夠發(fā)現(xiàn)隱含在大規(guī)模數(shù)據(jù)中的知識,提高信息服務(wù)的質(zhì)量。如伊朗事件中twitter快速傳播假消息的識別、Amazon和淘寶網(wǎng)中商品關(guān)聯(lián)關(guān)系分析,以及優(yōu)酷網(wǎng)中視頻個性化推薦等。海量數(shù)據(jù)挖掘在國家安全、國民經(jīng)濟和現(xiàn)代服務(wù)業(yè)中具有廣泛應(yīng)用,有助于提升網(wǎng)絡(luò)環(huán)境下信息服務(wù)的質(zhì)量,實現(xiàn)以人為本的信息服務(wù)。 從數(shù)據(jù)挖掘技術(shù)的發(fā)展歷史看,隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,數(shù)據(jù)的規(guī)模越來越大,從KB級發(fā)展到TB甚至PB級海量數(shù)據(jù);數(shù)據(jù)挖掘的對象也變得越來越復(fù)雜,從數(shù)據(jù)庫、到多媒體數(shù)據(jù)和復(fù)雜社會網(wǎng)絡(luò);數(shù)據(jù)挖掘的需求也從分類、聚類和關(guān)聯(lián)到復(fù)雜的演化和預(yù)測分析;挖掘過程中的交互方式從單機的人機交互發(fā)展到現(xiàn)在社會網(wǎng)絡(luò)群體的交互。這種發(fā)展給數(shù)據(jù)挖掘帶來了巨大的挑戰(zhàn):對于網(wǎng)絡(luò)環(huán)境下產(chǎn)生的TB級和PB級的復(fù)雜數(shù)據(jù),需要有高效的海量數(shù)據(jù)挖掘算法;網(wǎng)絡(luò)環(huán)境下大眾的廣泛參與,需要在數(shù)據(jù)挖掘算法中能夠融入群體智慧;同時社會網(wǎng)絡(luò)的迅速發(fā)展使得信息服務(wù)的個性化成為必然,要求能夠滿足即時組合的個性化挖掘服務(wù)。 云計算是一種基于互聯(lián)網(wǎng)的、大眾參與的計算模式,其計算資源(包括計算能力、存儲能力、交互能力等)是動態(tài)、可伸縮、被虛擬化的,并以服務(wù)的方式提供 [1] 。具體表現(xiàn)在:云計算的動態(tài)和可伸縮的計算能力為高效海量數(shù)據(jù)挖掘帶來可能性;云計算環(huán)境下大眾參與的群體智能為研究集群體智慧的新的數(shù)據(jù)挖掘方法研究提供了環(huán)境;云計算的服務(wù)化特征使面向大眾的數(shù)據(jù)挖掘成為可能。同時,云計算發(fā)展也離不開數(shù)據(jù)挖掘的支持,以搜索為例,基于云計算的搜索包括網(wǎng)頁存儲、搜索處理和前端交互三大部分。數(shù)據(jù)挖掘在這幾部分中都有廣泛應(yīng)用,例如網(wǎng)頁存儲中網(wǎng)頁去重、搜索處理中網(wǎng)頁排序和前端交互中的查詢建議,其中每部分都需要數(shù)據(jù)挖掘技術(shù)的支持。 因此,云計算為海量和復(fù)雜數(shù)據(jù)對象的數(shù)據(jù)挖掘提供了基礎(chǔ)設(shè)施,為網(wǎng)絡(luò)環(huán)境下面向大眾的數(shù)據(jù)挖掘服務(wù)帶來了機遇,同時也為數(shù)據(jù)挖掘研究提出了新的挑戰(zhàn)性課題。 下面將對并行編程模型、基于并行編程模型高效海量數(shù)據(jù)挖掘算法,以及基于云計算的海量數(shù)據(jù)挖掘服務(wù)相關(guān)研究進行綜述。 2 并行編程模型相關(guān)方法 為了使用戶能夠通過簡單的開發(fā)來方便地達到并行計算的效果,研究人員提出了一系列的并行計算模型。并行計算模型在用戶需求和底層的硬件系統(tǒng)之間搭建橋梁使得并行算法的表示變得更加直觀,對大規(guī)模數(shù)據(jù)的處理更加便捷。根據(jù)用戶使用硬件環(huán)境的不同,并行編程模型又可以分為在多核機器、GPU計算、大型計算機以及計算機集群上的多種類型。目前比較常用的并行編程接口和模型包括: pThread接口[2]。pThread是在類Unix系統(tǒng)上進行多線程編程的通用API,為用戶提供了一系列對線程進行創(chuàng)建、管理和各類操作的函數(shù),使用戶能夠方便地編寫多線程程序。 MPI模型[3]。MPI的全稱為消息傳遞接口(Message Passing Interface),它為用戶提供了一系列的接口,使用戶利用消息傳遞的方式來建立進程間的通信機制,從而方便地對各種算法進行并行實現(xiàn)。 MapReduce模型[4]。MapReduce模型是由谷歌公司提出的并行編程框架,它首先為用戶提供分布式的文件系統(tǒng),使用戶能方便地處理大規(guī)模數(shù)據(jù);然后將所有的程序運算抽象為Map和Reduce兩個基本操作,在Map階段模型將問題分解為更小規(guī)模的問題,并在集群的不同節(jié)點上執(zhí)行,在Reduce階段將結(jié)果歸并匯總。MapReduce是一個簡單,但是非常有效的并行編程模型。 Pregel模型[5]。Pregel同樣是由谷歌公司提出的專門針對圖算法的編程模型,能夠為大規(guī)模數(shù)據(jù)的圖算法提供并行支持。一個典型的Pregel計算過程將在圖上進行一系列的超級步驟(SuperSteps),在每個超級步驟中,所有頂點的計算都并行地執(zhí)行用戶定義的同一個函數(shù),并通過一個“投票”機制來決定程序是否停止。 CUDA模型①。CUDA是由NVIDIA公司提出的一個基于GPU的并行計算模型。由于GPU在設(shè)計需求上與普通CPU不同,GPU通常被設(shè)計為能較慢地執(zhí)行許多并發(fā)的線程,而不是較快的連續(xù)執(zhí)行多個線程,這使得GPU在并行計算上有先天的優(yōu)勢。CUDA為用戶提供了利用GPU計算的各種接口,使程序員能夠像在普通電腦上進行CPU編程那樣進行GPU程序的編寫。 此外還有OpenMP、PVM、OpenCL等各種并行編程模型和方法。這些并行編程和方法一般都提供了主流編程語言的實現(xiàn),從而使得用戶能根據(jù)自身編程習(xí)慣來選用。 另一方面,隨著云計算的不斷推廣,還出現(xiàn)了各種商用的并行計算/云計算平臺,為用戶提供并行計算服務(wù)。這其中比較著名的包括微軟的Azure平臺、Amazon公司的EC2平臺、IBM公司的藍云平臺、谷歌公司的Google App Engine等。各大IT公司也紛紛開發(fā)自己的并行計算模型/框架作為自身技術(shù)服務(wù)的基本平臺,這使得并行計算技術(shù)得到了更加快速的發(fā)展。 3 基于并行編程模型高效海量數(shù)據(jù)挖掘算法研究 為了實現(xiàn)海量數(shù)據(jù)上的數(shù)據(jù)挖掘,大量分布式并行數(shù)據(jù)挖掘算法被提出。Bhaduri et al[6]整理了一個十分詳盡的并行數(shù)據(jù)挖掘算法文獻目錄,包含了關(guān)聯(lián)規(guī)則學(xué)習(xí)、分類、聚類、流數(shù)據(jù)挖掘四大類分布式數(shù)據(jù)挖掘算法,同時還包括分布式系統(tǒng)、隱私保護等相關(guān)的研究工作。 MapReduce并行編程模型具有強大的處理大規(guī)模數(shù)據(jù)的能力,因而是海量數(shù)據(jù)挖掘的理想編程平臺。數(shù)據(jù)挖掘算法通常需要遍歷訓(xùn)練數(shù)據(jù)獲得相關(guān)的統(tǒng)計信息,用于求解或優(yōu)化模型參數(shù)。在大規(guī)模數(shù)據(jù)上進行頻繁的數(shù)據(jù)訪問需要耗費大量運算時間。為了提高算法效率,斯坦福大學(xué)Chu et al[7]提出了一種適用于大量機器學(xué)習(xí)算法的通用并行編程方法。通過對經(jīng)典的機器學(xué)習(xí)算法進行分析可以發(fā)現(xiàn),算法學(xué)習(xí)過程中的運算都能轉(zhuǎn)化為若干在訓(xùn)練數(shù)據(jù)集上的求和操作;求和操作可以獨立地在不同數(shù)據(jù)子集上進行,因此很容易在MapReduce編程平臺上實現(xiàn)并行化執(zhí)行。將大規(guī)模的數(shù)據(jù)集分割為若干子集分配給多個Mapper節(jié)點,在Mapper節(jié)點上分別執(zhí)行各種求和操作得到中間結(jié)果,最后通過Reduce節(jié)點將求和結(jié)果合并,實現(xiàn)學(xué)習(xí)算法的并行執(zhí)行。在該框架下,Chu et al實現(xiàn)了十種經(jīng)典的數(shù)據(jù)挖掘算法,包括線性回歸、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)、主成分分析和支持向量機等,相關(guān)成果在NIPS 2006會議上發(fā)表。 Ranger et al[8]提出了一個基于MapReduce的應(yīng)用程序編程接口Phoenix,支持多核和多處理器系統(tǒng)環(huán)境下的并行程序設(shè)計。Phoenix能夠進行緩存管理、錯誤恢復(fù)和并發(fā)管理。他們使用Phoenix實現(xiàn)了K-Means、主成分分析和線性回歸三種數(shù)據(jù)挖掘算法。 Gillick et al[9]對單程學(xué)習(xí)(Single-pass)、迭代學(xué)習(xí)(Iterative Learning)和基于查詢的學(xué)習(xí)(Query-based Learning)三類機器學(xué)習(xí)算法在MapReduce框架下的性能分別做了評測。他們對并行學(xué)習(xí)算法涉及到的如何在計算節(jié)點之間的共享數(shù)據(jù)、如何處理分布式存儲數(shù)據(jù)等問題進行了研究。 Mahout①是APS(Apache Software Foundation)旗下的一個開源數(shù)據(jù)挖掘項目,通過使用Apache Hadoop庫,可以實現(xiàn)大規(guī)模數(shù)據(jù)上的并行數(shù)據(jù)挖掘,包括分類、聚類、頻繁模式挖掘、回歸、降維等算法,目前已經(jīng)發(fā)布了四個版本。 4 基于云計算的海量數(shù)據(jù)挖掘服務(wù)研究 云計算除了給用戶提供通用的并行編程模型和大規(guī)模數(shù)據(jù)處理能力之外,另一個重要的特點是為用戶提供開放的計算服務(wù)平臺。在數(shù)據(jù)挖掘方向,現(xiàn)在也有一系列的系統(tǒng)被開發(fā)出來,面向公眾提供數(shù)據(jù)挖掘服務(wù)云計算平臺。 Talia et al[10]提出可以從四個層次提供云計算數(shù)據(jù)挖掘服務(wù):底層為組成數(shù)據(jù)挖掘算法的基本步驟;第二層為單獨的數(shù)據(jù)挖掘服務(wù),例如分類、聚類等;第三層為分布式的數(shù)據(jù)挖掘模式,例如并行分類、聚合式機器學(xué)習(xí)等;第四層為之前三層元素構(gòu)成的完整的數(shù)據(jù)挖掘應(yīng)用。在此設(shè)計基礎(chǔ)上,他們設(shè)計了基于云計算的數(shù)據(jù)挖掘開放服務(wù)框架,并開發(fā)了一系列的數(shù)據(jù)挖掘服務(wù)系統(tǒng),例如Weka4WS、Knowledge Grid、Mobile Data Mining Services、Mining@home等,用戶可以利用圖形界面定義自己的數(shù)據(jù)挖掘工作流,然后在平臺上執(zhí)行。 PDMiner[11]是由中國科學(xué)院計算技術(shù)研究所開發(fā)的基于Hadoop的并行分布式數(shù)據(jù)挖掘平臺,該系統(tǒng)現(xiàn)在已經(jīng)用于中國移動通信企業(yè)TB級實際數(shù)據(jù)的挖掘。PDMiner提供了一系列并行挖掘算法和ETL操作組件,開發(fā)的ETL算法絕大多數(shù)達到了線性加速比,同時具有很好的容錯性。PDMiner的開放式架構(gòu)可以使用戶將算法組件經(jīng)過簡單配置方便地封裝加載到系統(tǒng)中。 此外,商業(yè)智能領(lǐng)域的各大公司也提供面向企業(yè)的大規(guī)模數(shù)據(jù)挖掘服務(wù),例如微策略、IBM、Oracle等公司都擁有自己的基于云計算的數(shù)據(jù)挖掘服務(wù)平臺。 5 總結(jié)和展望 通過云計算的海量數(shù)據(jù)存儲和分布計算,為云計算環(huán)境下的海量數(shù)據(jù)挖掘提供了新方法和手段,有效解決了海量數(shù)據(jù)挖掘的分布存儲和高效計算問題。開展基于云計算特點的數(shù)據(jù)挖掘方法的研究,可以為更多、更復(fù)雜的海量數(shù)據(jù)挖掘問題提供新的理論與支撐工具。而作為傳統(tǒng)數(shù)據(jù)挖掘向云計算的延伸和豐富,基于云計算的海量數(shù)據(jù)挖掘?qū)⑼苿踊ヂ?lián)網(wǎng)先進技術(shù)成果服務(wù)于大眾,是促進信息資源的深度分享和可持續(xù)利用的新方法、新途徑。