現(xiàn)在的社會是一個高速發(fā)展的社會,科技發(fā)達,信息流通,人們之間的交流越來越密切,生活也越來越方便,大數(shù)據(jù)就是這個高科技時代的產(chǎn)物。
有人把數(shù)據(jù)比喻為蘊藏能量的煤礦。煤炭按照性質(zhì)有焦煤、無煙煤、肥煤、貧煤等分類,而露天煤礦、深山煤礦的挖掘成本又不一樣。與此類似,大數(shù)據(jù)并不在“大”,而在于“有用”。價值含量、挖掘成本比數(shù)量更為重要。對于很多行業(yè)而言,如何利用這些大規(guī)模數(shù)據(jù)是贏得競爭的關鍵。
大數(shù)據(jù)分析的困境
不過,“大數(shù)據(jù)”在經(jīng)濟發(fā)展中的巨大意義并不代表其能取代一切對于社會問題的理性思考,科學發(fā)展的邏輯不能被湮沒在海量數(shù)據(jù)中。著名經(jīng)濟學家路德維希·馮·米塞斯曾提醒過:“就今日言,有很多人忙碌于資料之無益累積,以致對問題之說明與解決,喪失了其對特殊的經(jīng)濟意義的了解。”這確實是需要警惕的。
然而,分析大數(shù)據(jù)集可能會產(chǎn)生問題。首先,大數(shù)據(jù)是大規(guī)模的,有時太大,不能通過常用的分析工具有效地處理。
麻省理工學院Andrew and Erna Viterbi電氣工程與計算機科學院的教授、人工智能實驗室(CSAIL)的主任Daniela Rus、博士后Mikhail Volkov和曾在Rus科研小組的博士后、以色列海法大學機器人大數(shù)據(jù)實驗室主任Dan Feldman針對這個問題,提出了一個解決方案,將大數(shù)據(jù)變成可管理的數(shù)據(jù)。InfoQ整理并分享出來,以饗讀者。
大數(shù)據(jù)困境破解之道
處理大數(shù)據(jù)的一種方法是縮減它。如果您可以確定大數(shù)據(jù)的一個子集,用于保留大數(shù)據(jù)最重要的數(shù)學關系,那么就可以進行有用的分析,不然對整個大數(shù)據(jù)集來說將是非常耗時,不實用。
然而,用于提取這樣的“核心集”的方法根據(jù)應用程序而有所不同。研究人員提出了一種提取可由大量常用數(shù)據(jù)分析工具使用的核心集的新技術,適合自然語言處理、推薦系統(tǒng)、天氣預報、金融和神經(jīng)科學等。
“這些都是在許多應用程序中使用的非常通用的算法,”Danilla Rus表示,“它們是這么多問題的基礎。通過為這些工具確定出一個巨大矩陣的核心集,人們就可以進行以前根本不可能的計算。”
例如,在他們的論文中,研究人員將他們的技術應用于矩陣(也就是表格),它將英語版維基百科上的每篇文章映射到網(wǎng)站上出現(xiàn)的每一個單詞。這個矩陣,將有140萬篇文章和440萬列的單詞。
維基百科的這個矩陣實在太大了,以至于不能使用低秩近似來進行分析,該算法可以識別自由格式文本的主題。但是一旦提取出來核心集,研究人員就能夠使用低秩近似來提取維基百科上最常見的100個主題的單詞集群。例如,包含“服裝”、“新娘”、“伴娘”和“婚禮”的集群表示婚禮的主題;包含“槍”、“開槍”、“卡住”、“手槍”和“槍擊”的集群顯示指定了槍擊事件的主題。
讓大數(shù)據(jù)可管理的思路
研究人員的核心集新技術對于一系列工具非常有用,如奇異值分解、主成分分析、潛在語義分析。但它們共同之處是縮減:它們采用具有大量的變量數(shù)據(jù)集,并且用更少的變量找到它們的近似值。
在這里,這些工具的作用與核心集類似。但是,核心集是特定應用程序,而dimension-reduction工具是通用的。這種共性使它們的密集型計算比核心集更多:對于大型數(shù)據(jù)集的實際應用來說計算量過于龐大。
研究人員認為,他們的技術可以用于用例如從數(shù)百萬變量中嗅出數(shù)據(jù)集:例如根據(jù)他們使用的詞語對維基百科頁面的描述——只有幾千個單詞。在這一點上,諸如廣泛使用的主成分分析技術可以將變量的數(shù)量減少到幾百個,甚至更少。
維基百科矩陣有440萬列,每列代表一個不同的單詞。維基百科上的任何文章只會使用幾千個不同的單詞。所以在任何給定的行:這意味著在任何一篇文章,只有幾千個矩陣插槽中的440萬將會有內(nèi)容。在稀疏矩陣中,大多數(shù)值為零。
至關重要的是,這項新技術保留了稀疏性,這使得它的核心集更容易進行計算處理。如果它們涉及零的大量乘法和加法,計算將會變得更容易。
新的核心集技術使用所謂的合并和歸約過程,它開始取數(shù)據(jù)集中的20個數(shù)據(jù)點,并選擇其中10個作為滿20個數(shù)據(jù)點的最具代表性的點。然后它對另外20個數(shù)據(jù)點執(zhí)行相同的過程,合并這兩個所減少的10個數(shù)據(jù)點,形成新的20個數(shù)據(jù)點的數(shù)據(jù)集,然后它進行另一個縮減的過程,從20個下降到10個。
即使該過程檢查巨大數(shù)據(jù)集中的每個數(shù)據(jù)點,因為它每次只處理數(shù)據(jù)點的小集合,它仍然保持了很高的計算效率。在他們的論文中,研究人員證明,對于涉及一系列通用縮減工具的應用,他們提供的縮減方法提供了對完整數(shù)據(jù)集非常好的近似結果。
該方法取決于數(shù)據(jù)的幾何解釋,涉及稱為超球面的概念,它是圓的多維模擬。任何一個多變量數(shù)據(jù)可以看做是多維空間中的一個點。以同樣的方式,數(shù)字對(1,1)定義二維空間中的點:在X軸上的點和Y軸上的點——就是維基百科表中的一行,其440萬個數(shù)字,定義了一個440萬個圓的空間上每一個點。
研究人員的縮減算法從找到數(shù)據(jù)點子集的平均值開始——比如說20個,那就要進行縮減。這也定義了高維空間中的點,稱之為初始點。然后將20個數(shù)據(jù)點中的每一個“投影”到以初始點為中心的超球面上。也就是說,算法在數(shù)據(jù)點方向上找到超球面上的唯一點。
該算法選擇超球面上的20個數(shù)據(jù)投影之一。然后選擇最遠離第一個的超球面上的投影。它找到兩者之間的中點,然后選擇距離中點最遠的數(shù)據(jù)投影;然后它再找到這兩點之間的中點,并選擇距離它最遠的數(shù)據(jù)投影;如此循環(huán)。
研究人員能夠證明通過這種方法選擇的中點將非常快地收斂在超球面的中心。該方法將快速選擇其平均值接近20個初始點的點的子集。這使得它們特別合適核心集中的候選者。