引言 1988年,我在浙大數學系讀書,范大茵教授主講《概率論》。我曾問她:“全國新生兒的男女比例是51.2:48.8。如果各省的統計結果也一樣,是否包含更多的信息?” 范老師說:“如果按同一個概率發生,各省的結果沒有更多信息。” 20多年過去了,我才意識到:理論上,范老師的回答完全正確;但現實中,信息量卻不相同。
大數據是個流行詞,受到了世界工業界的普遍關注。有位老院士曾說:大數據主要的成就,與侵犯個人隱私有關。的確,大數據在工業界的成功應用并不多。我相信,大數據會對工業界帶來極大的改變。但與此同時,在工業界從事大數據研究也是項高風險的工作。多數人可能會鎩羽而歸。了解大數據不難,難的是不被一些光怪陸離的概念忽悠。如果不想被忽悠,就需要理解其精髓。
有人說,大數據最本質的特征是數據量大,要有PB、EB的量級。為什么一定是這個量級呢?在這個級別以下,用過去的方法就可以有效存儲、傳輸和處理;超過這個量級以后,需要新的理論、方法和思路。所以,數據級別的擴大,催生了新的理論。然而,從應用的角度看,似乎有沒有必要:比這個數量級更低的數據分析往往都沒有做好——數據挖掘理論出現了幾十年,成功的案例也不多。所以,從理論工作者的角度看,強調數據量是有道理的;但從工程師的角度看,過分強調數據量沒有多大的道理。
從應用的角度看,數據量是否重要?可以換一種提法:要研究一個問題,10條數據、100條數據和1萬條數據有區別嗎?在過去,差別不是很大。比如,做線性回歸,樣本數目比自變量多一個就夠了;如果能多幾倍,基本上就很充分。采用神經元方法時,樣本數比變量多一個數量級也就差不多了。在這些方法中,數據多了也難以發揮再大的作用。
多出來的數據真的沒用嗎?我的感覺是:多的數據不是無用,而是不會用、難利用。不是個別人不會用,而是普遍性不會用。其中的奧妙何在呢?
學過概率或統計理論的人都知道:所有的數學理論都基于特定的假設。比如,干擾按一定的概率分布發生、自變量檢測誤差可以忽略等。在很多時候,我們總是想當然地認為,這些條件是天然成立的。于是,人們習慣于按照書本上的做法,直接進行分析。
但現實中,理論的假設卻往往不成立。分析工業過程或設備時,數據的分布往往很不規范;隨意的假設往往會帶來錯誤的分析結論。再回頭看看本文開頭講到的人口問題:我們假設孩子的性別按一定的概率發生。然而,這只是假設。事實上,這些年中國人口的出生比例就發生了很大的變化,而且各個省份也不一樣。
如果嚴格地進行統計研究,首先需要確認的就是:某個隨機現象是否依照固定的頻度發生。只有這個條件滿足了,‘概率’的基本條件才能滿足。后續的分析才能有靠譜的結果。
所以,我們需要更多的數據來驗證一些基本假設。這時,數據量的要求就會大大提升。另外,當數據的信噪比較低時,對數據量的需求也會大大上升。筆者曾經做過一個研究,發現分析一個要素的作用,需要2000~20000個數據。
這樣,多出來的數據就有用了。用好多出來的數據,才能保證分析的正確性。
有人或許要問:像神經元這些非傳統方法,并沒有對數據提什么要求啊?的確,神經元方法沒有明確提出什么要求。但是,誰又能保證其結果的可靠性呢?其實,采用神經元方法也有個潛在要求:建模數據充分,且未來數據的分布不變。‘分布不變’的要求其實很高:不僅是數據分布范圍和密度不變,還包括變量間的關系不變、干擾的分布不變。這種要求,在現實中是難以驗證和說清楚的。于是,結果的可靠性也就說不清楚。這對實際應用是非常不利的。
既然多出來的數據是有用的,能否把‘大數據’的數量要求再降低一點呢?筆者認為:如果需要大量的數據才能完成特定分析任務,并且需要新的思想和方法,都可以看做大數據的范疇。過于強調數據量是沒有必要的。
剛才的分析可能有點理論化。下面再具體解一下。
本人長期從事工業數據建模活動。深知分析結果的可靠性對應用至關重要。分析結果的可靠性與實用價值,常常是硬幣的兩面:如果正確的發現能創造出巨大的價值,錯誤的認識也必然導致重大的損失。所以,價值越大的分析結果,對可靠性的要求往往越高。而這恰恰是數據分析的難點所在。
我們希望有更多的數據,目的是獲得可靠性。
有了大量的、分布區域廣闊的數據,不僅可以驗證數據的合理性,還可以合理地組合數據,以滿足特定的分析要求,以達到特定的分析目的。同時,數據多了,還可以通過分析結果的相互校驗,多角度、全方位地分析特定結論的正確性——這一點,是小樣本數據根本做不到的。尤其是數據誤差相對較大或者相關因素較多時。
說到這里,我又想起來大數據的另外幾個特征:“速度”、“多樣性”“低價值密度”。從應用的角度看,這些特征的意義似乎也不是很大。
1、產生速度快。增大了分析的難度,對應用帶來的好處卻不多,故而僅僅是在理論上有價值。
2、低價值密度。也增加了分析的難度。但對應用來說,這是一種現象,似乎不值得強調。事實上,為了獲得可靠的結果,個別的‘小數據’往往才是分析大數據的關鍵鑰匙。而且,發現具有‘黑天鵝’性質的小數據,往往是研究大數據的重要目的。
3、所謂‘多樣性’,指有很多非結構化數據。也是增加理論難度、對實用無正面影響的因素。在現實中,數據分布越廣越好,便于從不同角度和視野確定結論的可靠性。所以,我寧可把‘多樣性’理解為數據分布的廣泛性,而非數據形態的多樣性。
從應用的角度看,筆者更欣賞‘數據科學’的概念:綜合利用數據分析、模型計算和領域知識來解決實際問題。
對工程師來說,分析數據的目的是解決問題。為了達到分析的目的,應該采取一切有利的方法、收集一切有用的證據,不應該將自己限制在某個特定的理論方法上。我們期望大數據,卻也喜歡小數據:我們喜歡完整的、真實的數據。IBM對4V理論進行了矯正。在筆者看來,這是很有道理的。
綜上所述,筆者認為:將大數據理論用于工業領域時,不可執著于‘原教旨主義’的認識。我們關注大數據,是為了創造價值,而不是追趕時髦的理論和領域。從這種意義上說,似乎應該用一個新詞‘工業大數據’,以區分現在流行的、以商務為主的大數據理論。
‘數據挖掘’理論出現了幾十年。但在工業界的成功應用并不多。筆者認為:重要的原因之一是缺乏一個合適的數據分析處理理論。
筆者認為用好工業大數據需要關注三個要點:
1、可靠性。可靠的結論才能用于工業實際。在本人看來,所謂可靠性,包含精確性、適用范圍的廣泛性和適用范圍的可知性。現實中,絕對的可靠是不存在的,我們只能追求相對的可靠。相對的可靠,可以由盡量多的、獨立的知識或分析結果來支撐。要做到可靠,就不能僅僅滿足與‘相關性’,而是要盡量關注‘因果性’。這一點,工業大數據與商務大數據的理論是矛盾的。同時,可靠性要求我們盡量使用傳統的、有堅實理論基礎的統計方法——只是不能盲目適用這些方法,要關注對適用條件的驗證和構造。
2、超越性。新發現的知識一定要超越人的認識,否則就沒有價值。在商務活動中,人的認識相對模糊,大數據研究容易得到超越人的認識的結果。在工業領域,人們對物理對象的了解往往非常深刻。膚淺的研究很難超越人的經驗。這時,知識超越人,往往是以精確定量為基礎的。研究者不宜將發現不同于經驗的知識作為目標:在工業領域,與專家認識不同的結論多數是錯的。有例外的話,也往往是量變引發質變造成的——這正是以精確定量為前提的。
3、嵌入性。大數據的應用必須嵌入合適的流程。一般來說,僅僅滿足于發現知識并不能創造價值。在工業應用中,必須將認識嵌入到生產和管理流程中去。最好是用模型載體來實現流程的智能化。眾所周知,商務大數據的應用一般要結合新的商業模式。這一點,工業大數據與商務大數據是相通的。