### **一、大數據時代無法避免數據的混雜性**
在小數據時代,數據要盡可能保證精確,尤其是在采樣的時候,細微數據的錯誤會被放大,甚至對最終的統計結果產生根本的影響。
然而,在大數據時代,數據的混雜性成為一種必然:
* 第一,數據量變大,錯誤率也會增加。
* 第二,數據源自各種系統,加大了混雜度。
* 第三,數據格式千奇百怪,數據清洗的難度是很大的。
在混在的基礎上追求精確性可能會付出高額成本,關鍵是這種精確在大部分時間下,是否有對應的價值?比如信息在網絡中流動,一條記錄在傳輸過程中發生了延遲,其到達的時候可能已經沒有意義了,而后續還有波濤洶涌的數據涌入進來,再追求這條記錄的精確性是否仍然劃算?
>[info] ”大數據“通常用概率說話,而不是板著”確鑿無疑“的面孔。整個社會要習慣這種思維需要很長的時間,其中也會出現一些問題。但現在,有必要指出的是,當我們試圖擴大數據規模的時候,要學會擁抱混亂。
### **二、大數據的簡單算法比小數據的復雜算法更有效**
#### **1. 微軟 Word 語法檢查的例子**
微軟研究中心的兩位專家一直在尋求改進 Word 語法檢查的方法。但他們不確定是應該努力改進語法檢查算法,還是應該添加更多特征的語料。于是,他們決定在4種常見的算法中逐漸添加語料,從一千萬字,到一億字,最后到幾十億字。
結果令人吃驚。他們發現,隨著數據的增多,算法的表現都提高了,但重點是隨數據提高的幅度。
當語料庫不大,只有500萬字的時候,一種簡單的算法表現很差;但當數據量增大到10億時,它的表現反而成為最好的,準確率從75%提高到95%以上。而另外一個在數據量較小時表現準確率最好的算法,數據量變大時,雖然準確率也在提升,但卻成為表現最差的一個算法,其準確率由86%提高到94%。
因此,這兩位專家在其發表的論文中提到:”如此以來,我們得重新衡量一下,更多的人力物力是應該消耗在算法發展上,還是語料庫的發展上……“
#### **2. IBM 對機器翻譯的醒悟**
機器翻譯是比語法檢查更有挑戰的領域。1954年,IBM 以250個詞語和6條語法規則為基礎,成功將60個俄語詞組翻譯成英文語句,大大的振奮了當時的世界,有專家預言幾年內機器翻譯就將成熟商用。然而在1966年,IBM 的研究人員已經意識到這項工作非常困難,機器翻譯不僅僅是教會機器熟悉語法規則,還必須教會機器識別不同的語境。比如我去意大利出差的時候學會的 “Ciao”,既可能是“早安”的意思,也可能是“再見”的意思,還有可能是“你好”的意思……
機器翻譯在六七十年代陷入了困境。在八十年代后期,IBM 研究人員提出了一個新的想法:與單純的教會計算機語法規則和詞匯相比,能不能讓計算機自己估算一個詞或詞組用來翻譯另外一個詞或詞組的可能性,用最高可能性的詞或詞組作為翻譯的結果。
這個項目被 IBM 命名為 “Candide”,在九十年代取得了大的突破。把翻譯問題從語法問題轉移到數學問題上,看似是一個有效的手段。
#### **Google 讓機器翻譯真正走向輝煌**
IBM 的 Candide 項目雖然取得了突破,但最終還是沒能成功推向市場。在2006年,Google 也開始涉足機器翻譯領域。
Google 利用其互聯網搜索引擎多年來積累的巨量數據來訓練計算機。它會從各種各樣語言的公司網站上尋找對譯文檔,也會去諸如聯合國或歐盟這些國際官方組織找譯本,甚至包括一些速度項目的書籍翻譯……
Google 的數據非常雜亂,譯本質量參差不齊,而這些在數學統計面前都不是問題,Google 翻譯系統要的只是 “**可能性**”。Goolge 超越 IBM 的并不是其擁有某個逆天算法,而是擁有他人無法企及的海量數據。一些互聯網已經遺棄的內容,都可能作為 Google 語料庫的一部分,作為其翻譯系統的訓練集。
>[info] **大數據基礎上的簡單算法比小數據基礎上的復雜算法更加有效。**
> -- "The Unreasonable Effectiveness of Data" Google 彼得·諾維格
:-: 
#### **四、數據的繁雜不是壞事,把它看成走向未來的標準途徑**
大數據時代,我們不再期待精確,事實上也無法實現精確性。但需要說明的是,不精確和錯誤并不是大數據固有的特性,而是一個亟待解決的現實問題,只不過這個問題可能會長期存在。
在很多領域,比如內容分類,就更傾向于混雜。Flickr 保存了億級別用戶的近百億張照片。當上傳相片到 Flickr 時,用戶會使用自定義標簽而非事先劃分好的類別。在搜索的時候,其實也是以標簽為基礎的。這些標簽沒有標準,沒有預先設定的分類。但這些標簽可以被廣泛的應用在互聯挖過上。也正因為這些標簽的存在,像圖片、視頻和音樂這種非文本類資源才能用關鍵字來進行搜索。
互聯網寧愿欣賞不精確而不會去假裝精確,比如很多應用上的 “喜歡” 按鈕邊上的數字,往往是10000+,而非具體的12345。不是說系統不知道精確的數字,而是說數據量很大的時候,精確的數值已經沒有那么重要了。
#### **五、數據的混雜促使新型數據庫的誕生**
在小數據時代,數據庫的標準是SQL,Standard Query Language,從名字就能看出其“僵化”,要求數據必須能夠切割成一個個的字段,并以一條條記錄的方式存儲在二維表格中。
而在大數據時代,數據庫正在由關系型向非關系型轉變。非關系型數據庫不要求數據結構的統一,天然包容數據結構的多樣性。
由于“海納百川”的特征,非關系性數據庫在一些經典數據庫核心原則上就需要一定的取舍。微軟世界級的數據庫設計專家帕特·赫蘭德說過:
>[info] **“我們再也不能假裝生活在一個齊整的世界里,略有瑕疵的答案并不會傷了商家的胃口,因為他們更看中高頻率。”**
Google 在三篇經典論文中為世界帶來了 GFS、MapReduc 和 BigTable,而 Hadoop 的橫空出世則促進大數據真正進入千千萬萬的企業。
Hadoop 是與 Google MapReduce 系統相對應的分布式系統基礎架構。通過把數據分成小模塊,分配給多個機器進行分析,然后進行結果匯總的方式,事先了對超大規模數據的處理。典型的數據分析需要經過“萃取”->“轉移”->“下載”的流程,但 Hadoop 則假定數據不能移動,而是將處理邏輯移到數據那里,在本地進行處理。(可以參見 “附頁1:大數據的技術基礎與挑戰”)
Hadoop 的輸出結果沒有關系型數據庫那么精確,因此不能用于衛星發射、銀行轉賬這種精確度高的領域,但對于精確度要求不那么高,比如顧客分類,商品推薦等領域,則完全可以大展拳腳。
有一個有趣的例子,ZestFinance 是一個幫助決策是否可以放貸給某人的公司。通過實際數據的分析,他們發現有10%的客戶屬性顯示“已經死亡”,但依然可以從他們身上收回貸款。于是創始人梅里爾開玩笑的說:
>[info] **“顯然,沒人會期盼僵尸復活并且主動還貸,但我們的數據顯示,放貸給僵尸是一項不錯的生意。”**
數據的混雜性,就像印象派畫風一樣,近看每一筆都是混亂的,但退后一步就會發現這是一副偉大的作品,因為站在全局你才能看到畫作的整體思想。
>[info] **據估計,只有5%的數據是結構化的,可以存儲在傳統數據庫中。如果不接受混雜,那剩下的95%的非結構化數據都無法被利用,比如網頁和音視頻資源。通過接受不確定性,我們打開了一個未涉足的世界的窗戶。**
>
> **大數據要求我們有所改變,我們必須能夠接受混雜和不確定性。精確性似乎一直是我們生活的支撐,就像我們常說的“釘是釘,鉚是鉚”。但認為每個問題只有一個答案的想法是站不住腳的。一旦我們承認了這個事實甚至用戶這個事實的話,我們離真相就又近了一步。**
:-: 