3月13日下午,南京郵電大學計算機學院、軟體學院院長、教授李濤在CIO時代APP微講座欄目作了題為《大資料時代的資料挖掘》的主題分享,深度诠釋了大資料及大資料時代下的資料挖掘。

衆所周知,大資料時代的大資料挖掘已成為各行各業的一大熱點。
一、資料挖掘
在大資料時代,資料的産生和收集是基礎,資料挖掘是關鍵,資料挖掘可以說是大資料最關鍵也是最基本的工作。通常而言,資料挖掘也稱為Data Mining,或知識發現Knowledge Discovery from Data,泛指從大量資料中挖掘出隐含的、先前未知但潛在的有用資訊和模式的一個工程化和系統化的過程。
不同的學者對資料挖掘有着不同的了解,但個人認為,資料挖掘的特性主要有以下四個方面:
1.應用性(A Combination of Theory and Application):資料挖掘是理論算法和應用實踐的完美結合。資料挖掘源于實際生産生活中應用的需求,挖掘的資料來自于具體應用,同時通過資料挖掘發現的知識又要運用到實踐中去,輔助實際決策。是以,資料挖掘來自于應用實踐,同時也服務于應用實踐,資料是根本,資料挖掘應以資料為導向,其中涉及到算法的設計與開發都需考慮到實際應用的需求,對問題進行抽象和泛化,将好的算法應用于實際中,并在實際中得到檢驗。
2.工程性(An Engineering Process):資料挖掘是一個由多個步驟組成的工程化過程。資料挖掘的應用特性決定了資料挖掘不僅僅是算法分析和應用,而是一個包含資料準備和管理、資料預處理和轉換、挖掘算法開發和應用、結果展示和驗證以及知識積累和使用的完整過程。而且在實際應用中,典型的資料挖掘過程還是一個互動和循環的過程。
3.集合性(A Collection of Functionalities):資料挖掘是多種功能的集合。常用的資料挖掘功能包括資料探索分析、關聯規則挖掘、時間序列模式挖掘、分類預測、聚類分析、異常檢測、資料可視化和連結分析等。一個具體的應用案例往往涉及多個不同的功能。不同的功能通常有不同的理論和技術基礎,而且每一個功能都有不同的算法支撐。
4.交叉性(An Interdisciplinary Field):資料挖掘是一門交叉學科,它利用了來自統計分析、模式識别、機器學習、人工智能、資訊檢索、資料庫等諸多不同領域的研究成果和學術思想。同時一些其他領域如随機算法、資訊論、可視化、分布式計算和最優化也對資料挖掘的發展起到重要的作用。資料挖掘與這些相關領域的差別可以由前面提到的資料挖掘的3個特性來總結,最重要的是它更側重于應用。
綜上所述,應用性是資料挖掘的一個重要特性,是其差別于其他學科的關鍵,同時,其應用特性與其他特性相輔相成,這些特性在一定程度上決定了資料挖掘的研究與發展,同時,也為如何學習和掌握資料挖掘提出了指導性意見。如從研究發展來看,實際應用的需求是資料挖掘領域很多方法提出和發展的根源。從最開始的顧客交易資料分析(market basket analysis)、多媒體資料挖掘(multimedia data mining)、隐私保護資料挖掘(privacy-preserving data mining)到文本資料挖掘(text mining)和Web挖掘(Web mining),再到社交媒體挖掘(social media mining)都是由應用推動的。工程性和集合性決定了資料挖掘研究内容和方向的廣泛性。其中,工程性使得整個研究過程裡的不同步驟都屬于資料挖掘的研究範疇。而集合性使得資料挖掘有多種不同的功能,而如何将多種功能聯系和結合起來,從一定程度上影響了資料挖掘研究方法的發展。比如,20世紀90年代中期,資料挖掘的研究主要集中在關聯規則和時間序列模式的挖掘。到20世紀90年代末,研究人員開始研究基于關聯規則和時間序列模式的分類算法(如classification based on association),将兩種不同的資料挖掘功能有機地結合起來。21世紀初,一個研究的熱點是半監督學習(semi-supervised learning)和半監督聚類(semi-supervised clustering),也是将分類和聚類這兩種功能有機結合起來。近年來的一些其他研究方向如子空間聚類(subspace clustering)(特征抽取和聚類的結合)和圖分類(graphclassification)(圖挖掘和分類的結合)也是将多種功能聯系和結合在一起。最後,交叉性導緻了研究思路和方法設計的多樣化。
前面提到的是資料挖掘的特性對研究發展及研究方法的影響,另外,資料挖掘的這些特性對如何學習和掌握資料挖掘提出了指導性的意見,對培養研究所學生、大學生均有一些指導意見,如應用性在指導資料挖掘時,應熟悉應用的業務和需求,需求才是資料挖掘的目的,業務和算法、技術的緊密結合非常重要,了解業務、把握需求才能有針對性地對資料進行分析,挖掘其價值。是以,在實際應用中需要的是一種既懂業務,又懂資料挖掘算法的人才。工程性決定了要掌握資料挖掘需有一定的工程能力,一個好的資料額挖掘人員首先是一名工程師,有很強大的處理大規模資料和開發原型系統的能力,這相當于在培養資料挖掘工程師時,對資料的處理能力和程式設計能力很重要。集合性使得在具體應用資料挖掘時,要做好底層不同功能和多種算法積累。交叉性決定了在學習資料挖掘時要主動了解和學習相關領域的思想和技術。
是以,這些特性均是資料挖掘的特點,通過這四個特性可總結和學習資料挖掘。
二、大資料的特征
大資料(bigdata)一詞經常被用以描述和指代資訊爆炸時代産生的海量資訊。研究大資料的意義在于發現和了解資訊内容及資訊與資訊之間的聯系。研究大資料首先要理清和了解大資料的特點及基本概念,進而了解和認識大資料。
研究大資料首先要了解大資料的特征和基本概念。業界普遍認為,大資料具有标準的“4V”特征:
1.Volume(大量):資料體量巨大,從TB級别躍升到PB級别。
2.Variety(多樣):資料類型繁多,如網絡日志、視訊、圖檔、地理位置資訊等。
3.Velocity(高速):處理速度快,實時分析,這也是和傳統的資料挖掘技術有着本質的不同。
4.Value(價值):價值密度低,蘊含有效價值高,合理利用低密度價值的資料并對其進行正确、準确的分析,将會帶來巨大的商業和社會價值。
上述“4V”特點描述了大資料與以往部分抽樣的“小資料”的主要差別。然而,實踐是大資料的最終價值展現的唯一途徑。從實際應用和大資料處理的複雜性看,大資料還具有如下新的“4V”特點:
5.Variability(變化):在不同的場景、不同的研究目标下資料的結構和意義可能會發生變化,是以,在實際研究中要考慮具體的上下文場景(Context)。
6.Veracity(真實性):擷取真實、可靠的資料是保證分析結果準确、有效的前提。隻有真實而準确的資料才能擷取真正有意義的結果。
7.Volatility(波動性)/Variance(差異):由于資料本身含有噪音及分析流程的不規範性,導緻采用不同的算法或不同分析過程與手段會得到不穩定的分析結果。
8.Visualization(可視化):在大資料環境下,通過資料可視化可以更加直覺地闡釋資料的意義,幫助了解資料,解釋結果。
綜上所述,以上“8V”特征在大資料分析與資料挖掘中具有很強的指導意義。
三、大資料時代下的資料挖掘
在大資料時代,資料挖掘需考慮以下四個問題:
大資料挖掘的核心和本質是應用、算法、資料和平台4個要素的有機結合。
因為資料挖掘是應用驅動的,來源于實踐,海量資料産生于應用之中。需用具體的應用資料作為驅動,以算法、工具和平台作為支撐,最終将發現的知識和資訊應用到實踐中去,進而提供量化的、合理的、可行的、且能産生巨大價值的資訊。
挖掘大資料中隐含的有用資訊需設計和開發相應的資料挖掘和學習算法。算法的設計和開發需以具體的應用資料作為驅動,同時在實際問題中得到應用和驗證,而算法的實作和應用需要高效的處理平台,這個處理平台可以解決波動性問題。高效的處理平台需要有效分析海量資料,及時對多中繼資料進行內建,同時有力支援資料化對算法及資料可視化的執行,并對資料分析的流程進行規範。
總之,應用、算法、資料、平台這四個方面相結合的思想,是對大資料時代的資料挖掘了解與認識的綜合提煉,展現了大資料時代資料挖掘的本質與核心。這四個方面也是對相應研究方面的內建和架構,這四個架構具體從以下四個層面展開:
應用層(Application):關心的是資料的收集與算法驗證,關鍵問題是了解與應用相關的語義和領域知識。
資料層(Data):資料的管理、存儲、通路與安全,關心的是如何進行高效的資料使用。
算法層(Algorithm):主要是資料挖掘、機器學習、近似算法等算法的設計與實作。
平台層(Infrastructure):資料的通路和計算,計算平台處理分布式大規模的資料。
綜上所述,資料挖掘的算法分為多個層次,在不同的層面有不同的研究内容,可以看到目前在做資料挖掘時的主要研究方向,如利用資料融合技術預處理稀疏、異構、不确定、不完整以及多來源資料;挖掘複雜動态變化的資料;測試通過局部學習和模型融合所得到的全局知識,并回報相關資訊給預處理階段;對資料并行分布化,達到有效使用的目的。
四、大資料挖掘系統的開發
1.背景目标
大資料時代的來臨使得資料的規模和複雜性都出現爆炸式的增長,促使不同應用領域的資料分析人員利用資料挖掘技術對資料進行分析。在應用領域中,如醫療保健、高端制造、金融等,一個典型的資料挖掘任務往往需要複雜的子任務配置,整合多種不同類型的挖掘算法以及在分布式計算環境中高效運作。是以,在大資料時代進行資料挖掘應用的一個當務之急是要開發和建立計算平台和工具,支援應用領域的資料分析人員能夠有效地執行資料分析任務。
之前提到一個資料挖掘有多種任務、多種功能及不同的挖掘算法,同時,需要一個高效的平台。是以,大資料時代的資料挖掘和應用的當務之急,便是開發和建立計算平台和工具,支援應用領域的資料分析人員能夠有效地執行資料分析任務。
2.相關産品
現有的資料挖掘工具
有Weka、SPSS和SQLServer,它們提供了友好的界面,友善使用者進行分析,然而這些工具并不适合進行大規模的資料分析,同時,在使用這些工具時使用者很難添加新的算法程式。
流行的資料挖掘算法庫
如Mahout、MLC++和MILK,這些算法庫提供了大量的資料挖掘算法。但這些算法庫需要有進階程式設計技能才能進行任務配置和算法內建。
最近出現的一些內建的資料挖掘産品
如Radoop和BC-PDM,它們提供友好的使用者界面來快速配置資料挖掘任務。但這些産品是基于Hadoop架構的,對非Hadoop算法程式的支援非常有限。沒有明确地解決在多使用者和多任務情況下的資源配置設定。
3.FIU-Miner
為解決現有工具和産品在大資料挖掘中的局限性,我們團隊開發了一個新的平台——FIU-Miner,它代表了A Fast,Integrated,and User-Friendly System for Data Mining in Distributed Environment。它是一個使用者友好并支援在分布式環境中進行高效率計算和快速內建的資料挖掘系統。與現有資料挖掘平台相比,FIU-Miner提供了一組新的功能,能夠幫助資料分析人員友善并有效地開展各項複雜的資料挖掘任務。
與傳統的資料挖掘平台相比,它提供了一些新的功能,主要有以下幾個方面:
A.使用者友好、人性化、快速的資料挖掘任務配置。基于“軟體即服務”這一模式,FIU-Miner隐藏了與資料分析任務無關的低端細節。通過FIU-Miner提供的人性化使用者界面,使用者可以通過将現有算法直接組裝成工作流,輕松完成一個複雜資料挖掘問題的任務配置,而不需要編寫任何代碼。
B.靈活的多語言程式內建。允許使用者将目前最先進的資料挖掘算法直接導入系統算法庫中,以此對分析工具集合進行擴充和管理。同時,由于FIU-Miner能夠正确地将任務配置設定到有合适運作環境的計算節點上,是以對這些導入的算法沒有實作語言的限制。
C.異構環境中有效的資源管理。FIU-Miner支援在異構的計算環境中(包括圖形工作站、單個計算機、和伺服器等)運作資料挖掘任務。FIU-Miner綜合考慮各種因素(包括算法實作、伺服器負載平衡和資料位置)來優化計算資源的使用率。
D.有效的程式排程和執行。
應用架構上包括使用者界面層、任務和系統管理層、邏輯資源層、異構的實體資源層。這種分層架構充分考慮了海量資料的分布式存儲、不同資料挖掘算法的內建、多重任務的配置及系統使用者的傳遞功能。一個典型的資料挖掘任務在應用之中需要複雜的主任務配置,整合多種不同類型的挖掘算法。是以,開發和建立這樣的計算平台和工具,支援應用領域的資料分析人員進行有效的分析是大資料挖掘中的一個重要任務。
FIU-Miner系統用在了不同方面:如高端制造業、倉庫智能管理、空間資料處理等,TerraFly GeoCloud是建立在TerraFly系統之上的、支援多種線上空間資料分析的一個平台。提供了一種類SQL語句的空間資料查詢與挖掘語言MapQL。它不但支援類SQL語句,更重要的是可根據使用者的不同要求,進行空間資料挖掘,渲染和畫圖查詢得到空間資料。通過建構空間資料分析的工作流來優化分析流程,提高分析效率。
制造業是指大規模地把原材料加工成成品的工業生産過程。高端制造業是指制造業中新出現的具有高技術含量、高附加值、強競争力的産業。典型的高端制造業包括電子半導體生産、精密儀器制造、生物制藥等。這些制造領域往往涉及嚴密的工程設計、複雜的裝配生産線、大量的控制加工裝置與工藝參數、精确的過程控制和材料的嚴格規範。産量和品質極大地依賴流程管控和優化決策。是以,制造企業不遺餘力地采用各種措施優化生産流程、調優控制參數、提高産品品質和産量,進而提高企業的競争力。
在空間資料處理方面,TerraFly GeoCloud對多種線上空間資料分析。對傳統資料分析而言,其難點在于MapQL語句比較難寫,任務之間的關系比較複雜,順序執行之間空間資料分許效率較低。而FIU-Miner可有效解決以上三個難點。
總結而言,大資料的複雜特征對資料挖掘在理論和算法研究方面提出了新的要求和挑戰。大資料是現象,核心是挖掘資料中蘊含的潛在資訊,并使它們發揮價值。資料挖掘是理論技術和實際應用的完美結合。資料挖掘是理論和實踐相結合的一個例子。
本文轉自d1net(轉載)