數據挖掘研究方向、熱點以及對大數據研究的認識

  經過上網查詢以及看同行對會議的公共認識,數據挖掘領域的頂級會議是KDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining),公認的、排名前幾位的會議是KDD、ICDE、CIKM、ICDM、SDM,期刊是ACM TKDD、IEEE TKDE、ACM TODS、ACM TOIS、DMKD、VLDB Journal等。會議及期刊的全稱以下:算法

會議編程

ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD)網絡

International Conference on Data Engineering (ICDE)session

International Conference on Information and Knowledge Management (CIKM)數據結構

IEEE International Conference on Data Mining (ICDM)多線程

SIAM International Conference on Data Mining (SDM)app

期刊框架

ACM Transactions on Knowledge Discovery From Data (TKDD)機器學習

IEEE Transactions on Knowledge and Data Engineering (TKDE)分佈式

ACM Transactions on Database Systems (TODS)

ACM Transactions on Information Systems (TOIS)

Data Mining and Knowledge Discovery (DMKD)

 

  經過最近幾天對最新的(13年、14年、15年)會議論文閱讀,首先說一下數據挖掘領域在作什麼、熱點研究在哪裏。

  數據挖掘領域主要包括如下方面:基礎理論研究(規則和模式挖掘、分類、聚類、話題學習、時間空間數據挖掘、機器學習方法,監督、非監督、半監督等)、社交網絡分析和大規模圖挖掘(圖模式挖掘、社區發現、網絡聚類係數估計、網絡關係挖掘、網絡用戶行爲分析、網絡信息傳播、社交網絡應用,社交推薦(信息、好友等))、大數據挖掘(算法的並行、分佈式擴展、多源異構數據融合挖掘等)。數據挖掘應用(醫療、教育、金融等)。研究熱點是大數據挖掘、社交網絡和大規模圖挖掘。

  下面,再說一下什麼是大數據挖掘,它跟傳統的方法其本質區別是什麼?大數據挖掘能夠分爲三點:算法的擴展、分佈式框架開發、多源數據融合分析。經過閱讀KDD’13KDD’14,幾篇KDD’15big data session中的文章,幾乎百分之百的文章都提到了算法的scalability。因而可知,現今大數據挖掘與傳統算法的本質區別在於算法的可擴展性。換句話說,如今研究的算法在不單單能處理小規模數據集,當數據增長時也具備較大範圍內的適合。算法的擴展,我理解爲兩個方面:scale out-縱向擴展以及scale up-橫向擴展。縱向擴展最要在算法底層、良好的數據結構設計或者並行設計方面。橫向擴展主要指算法的分佈式技術實現(本身編寫分佈式算法或者基於現有分佈式框架實現)。這裏所說的「大數據」,在不一樣的挖掘領域(文本、圖結構、機器學習、圖像)所對應的數據量是不一樣的。對文原本說,幾百萬個樣本可能就是「大數據」;對機器學習來講,千萬個樣本,幾十維、幾百維(MB/GB)就是「大數據」;對大規模圖挖掘來講,千萬級節點、億級邊(GB),也是「大數據」;對圖像數據,百萬級圖像(TB)徹底能夠稱得上「大數據」。那麼,要作算法的可擴展性是否是必須用到並行技術、分佈式編程技術?答案是通常須要,但並不絕對。算法若是作到了極致,單臺計算機也能處理「大數據」問題,好比:TurboGraph: A Fast Parallel Graph Engine Handing Billion-Scale Graphs in a Single PC. 文章僅僅在一臺計算機上利用線程並行(多核)實現了計算機集羣完成的工做。有些文章是用MATLAB來完成的實驗(Comparing apples to oranges: a scalable solution with heterogeneous hashing、Fast Flux Discrimination for Large-Scale Sparse Nonlinear Classification、Online Chinese Restaurant Process)、有些文章是利用Hadoop集羣來完成實驗、有些是利用C/JAVA語言編寫分佈式程序實現、有些是利用多核CPU的多線程並行實現。可見,算法的實現方式不重要,重要的是算法具備scalability。多源數據融合以及挖掘分析也能夠稱得上大數據挖掘,可能不見得數據集有很是大,可是經過多種數據的融合發現了以前完成不了的事情、或者以前完成效果很差的事情。好比:heterogeneous hashing文章用了兩個異構數據集(text、image)進行relation-aware分析。特別是微軟亞洲研究院在KDD’13 上的U-Air: When Urban Air Quality Inference Meets Big Data,這篇文章就是融合了5個數據集(氣象數據、空氣質量數據、POI數據、路網數據、軌跡數據),利用傳統的數據挖掘方法進行了融合分析,獲得了較好的效果並進行了商業應用。附註:我的認爲算法也應該考慮擴展性,在面臨數據集增長時,看看是否還會能達到高效地預測結果。

  總結:在大數據研究中,更多的是偏理論算法的研究。能夠這樣說,數據挖掘自己就是跟數據打交道,在特定狀況下(數據集較大時或不斷增長時),數據挖掘的任何一個研究點均可能會遇到「大數據」問題。因此,真正須要作的是找準一個問題,利用傳統方法進行挖掘,並測試在大規模數據集下傳統算法是否可行,若是不可行,提出算法的改進版或者本身動手實現一個新的、具備可擴展性的算法,這就是大數據研究的過程(也包括異構數據融合分析)。

相關文章
相關標籤/搜索