鄔賀銓
關于大數據的定義有很多提法,維基百科給出的定義是:“大數據是指無法在容許的時間內用常規軟件工具對其內容進行抓取、處理和管理的數據集合。大數據規模的標準是持續變化的,當前泛指單一數據集的大小在幾十TB和數PB之間”。這是一個大眾化的定義。這可能收到了大數據英文詞“Big Data”中的“Big”的誤導。
作者認為,大數據的價值不僅僅在于數據大,不是說數據量越大越好,數據大與價值大未必成正比。例如將一個人每分鐘的身體數據記錄下來,對了解該人的身體狀況是有用的,但如果將他的每毫秒的身體數據都記錄下來,數據量將較前者高6萬倍,與按分鐘記錄的數據相比,其價值并不一定增加。另外,大數據的價值在于樣本數的普遍性,如果統計一個人每分鐘的身體狀況數據與統計60個人每小時的身體狀況數據相比,數據量是相等的,但后者在統計上更有意義。
其次,大數據往往是低價值密度,大數據的價值絕對值可能是大的,可是相對值是低的,大數據中多數數據可能是重復的或對我們關注的問題沒有意義,忽略其中一些數據并不影響對其挖掘的結果。因此可以說大數據的價值挖掘是從沙里淘金和海里撈針。
值得關注的是,實際上對中小數據的挖掘同樣值得重視。北京公交一卡通每天刷卡四千萬次,地鐵一千萬人次,這在全世界都是最多的了,這些數據累計一年下來也不到TB,它的級別充其量就是中數據。但是它對優化北京公交線路的設置有足夠的價值。微軟的研究發現,Facebook 中90%的Hadoop任務數據集在100GB以下,Yahoo的任務數據集平均為12.5GB,它們都夠不上大數據的規模。事實上小數據也值得重視,對未到TB級規模的數據的挖掘也有價值,因此,研究大數據不要被“Big”這個詞誤導。
大數據這個詞現在過分突出“大”了,“大”僅僅是大數據的四個特征之一,它另外的三個特征是變化快、類型多、蘊含的價值高。
數據大并非大數據的主要挑戰。大數據的量越大,處理難度越大,但僅僅是量的變化,只是需要更多的服務器,或者說需要更高速的服務器。大數據挖掘的難處在于其變化快、類型多,其價值不容易挖掘才顯得其珍貴。
大數據挖掘的挑戰之一是實時性,實時性的數據變化很快,而且不斷地產生新的數據,源源不絕。對于靜態的數據可以將數據帶進程序來處理,對于動態數據則要將程序帶進數據來處理。
大數據挖掘的另一挑戰是結構多樣性,特別是非結構化。大數據分結構性、半結構性和非結構性,文本數據是結構性的,可以用關系數據庫來表示,圖片、視頻是非結構性數據。目前大量的數據文件是文本數據,但從數據量來看,非結構數據占總量90%以上。針對結構化數據的虛擬存儲平臺采用了動態分層技術,根據數據被調用的頻率,自動將常用的數據搬到最高層。針對非結構化數據使用內容歸檔平臺,把結構化和非結構化數據集成到一個單一的動態歸檔架構中,設計了一套軟件和元數據建庫規則,通過給數據加標簽的方式,建立不同維度,從而具有模糊查詢功能。對于數據結構能很好定義而且問題已知的數據,容易提出預測報告,對于問題未知的數據也可以用多維分析方法來處理,對于問題已知但結構可變的數據,需要用統計分析,對于問題未知且結構可變的數據,用常規的軟件在容許的時間內就難分析了,需要用到大數據分析技術。
傳統的數據平臺在大數據分析中仍有使用價值,但傳統數據平臺是不夠的。在傳統的集中式存儲基礎上還要增加分布式存儲,此外還有Map/Reduce功能(即映射與歸類簡化)、實時任務調度功能、分布式工作流管理功能等,以及機器學習和可視化功能等。大數據需要用到一些云計算的平臺。另外,文本雖然是結構化,但計算機需要有語義能力才能代替人的理解,通過收集. 歸類、組織所有有關的文本,解釋詞匯、編輯、通過上下文關聯增進理解,對于非結構化的數據例如照片和視頻,需要使用可視化分析工具和技術,從大量動態可能是模棱兩可甚至是矛盾的數據中綜合信息并導出可理解的內容,更需要有機器學習能力才能挖掘出其含義。
目前國內外都有很多大數據應用的成功例子,但基本上還是結構性數據,很少涉及到非結構化。2012年斯坦福大學與Google合作建立深度學習網絡,對來自YouTube的上千萬幅視頻幀自主學習,用10天學會了識別貓的臉孔,然后從2萬張未見過的照片中找貓,準確率達到15.8%。可見非結構性數據的挖掘技術到實用還有相當距離。雖然非結構性數據的量占大數據的90%以上,但對結構性數據的挖掘是大數據應用的切入點。從結構化數據入手開展數據挖掘仍然有重要的意義。
我們可以用多種類型的傳感器檢測環境污染,雖然各類傳感器都是有用的,但不是同等重要的,需要依據檢測不同的指標來對不同類型的傳感器結果加權處理。例如太湖藍藻的監測使用了溶解氧、水、電導率、氨氮、硝酸鹽、PH值六種傳感器,但它們與藍藻爆發強度的相關程度不同,溶解氧、水溫和電導率與藍藻爆發的相關性在0.4以上,而氨氮、硝酸鹽和PH值與藍藻爆發的相關性低于0.2,因此對不同的傳感器的數據需要不同的加權。另外,每類數據的重要性會隨關注點不同而改變。例如一個人的身體狀況可以用多種指標來衡量,顯然所關心的疾病不同,與不同指標對應的數據其重要性也不同。另外,同一類型的數據也因為時空不同而價值不同,同一類型的傳感器在不同位置收集到的數據其重要性也不同。以城市交通監控攝像頭為例,在交叉路口的攝像頭其作用就比非路口的重要。同一個傳感器在不同時間段收集的數據其作用也不同。仍以交通監控攝像頭為例,在沒有車輛和行人的深夜,其收集的數據幾乎沒有價值。同一類型的數據其價值也因收藏時間的長短而異。一般而言,時間間隔越長,其價值下降。
因此存儲的數據需要壓縮以節省成本。IDC公司發布“數字世界2020”,指出在2020年視頻監控數據將占到被標注和分析的數據42%。一個二線城市通常有上百條街道,每街道按50個路口計算,若每個路口裝16路攝像頭,就共有8萬個攝像頭,如采用8Mbps攝像頭,而且存三個月,就需要72萬個2T的硬盤。事實上沒有感興趣信息的攝像數據沒有保留價值,在存儲前甚至在拍攝時就要有所舍棄。或者對每一幀感興趣的區域增加分辨率,而其他區域降低比特率。對有用的視頻信息也需要壓縮,對于存儲時間較長而且很少調用的視頻數據可以壓縮以降低清晰度,節約存儲資源。
另外,數據需要過濾,傳感器收集的數據并非都是可信的,特別是歷史上該傳感器的數據與在同一環境下應用的同類其他傳感器報出的數據差異很大時,該數據就應棄用,否則把它放到大數據里面,會導致數據的信息失真。既然數據會有重復而且并非都是全部有用的,因此需要進行數據過濾,這對簡化存儲和提高可信性都是有意義的。數據需要過濾,引入必要的認證和信譽管理。
我們需要應用異構多元的數據來提高可信性。不是所有數據都是可信的,要通過多元,特別是異構的數據來保證數據的可信。收集多元異構的數據有利于對數據的理解,例如通過城市交通監控系統,可以掌握交通流量,可以知道哪一段馬路擁堵,但不知道是什么原因,如果把這組數據和政府發布的數據以及網民上載的數據收集起來,你可能知道這個地方發生車禍了,這個地方臨時交通管制了,就可以知道交通擁堵的原因。通過歷史數據的對比可以推斷數據的可信性,通過用數學模型來檢驗,驗證數據的可信性。總之收集數據盡可能異構多元。
關于異源數據的協同處理,以無錫監控太湖污染為例,除了使用傳感器外,還利用環保衛星的遙感監測數據,還收集人工巡湖獲得的數據,把多種異源的數據綜合,調出歷史的數據來對比,基于數字湖泊模型進行數據挖掘,后臺可能還要調用3S系統、云計算、數據中心等。很多情況下的大數據涉及網絡數據、物理數據(例如物聯網收集的數據)和社會數據(或稱為人本數據,例如政府掌握的法人與居民的數據),要把三元數據結合來分析。通過對異源數據的協同處理可以提升數據挖掘結果的可信性。
網絡數據的可信性問題需要特別注意。網絡數據并不都是可信的,特別是微博傳播,不實的消息散布很快,而微信圈子里的消息是不容易監控的,因此消息的準確性有問題。過去往往認為“有圖有真相”,事實上圖片可以移花接木、張冠李戴、時空錯亂,或者照片是對的,可是文字解釋是捏造的,這樣的事情已屢見不鮮。最近最高人民法院宣布,網上謠言轉發500次就是傳謠,一些網站不去甄別內容是否真實,而是對所有帖子轉發499次就封頂,就屏蔽,就不讓轉了,這樣得出來的結果不能反映出哪些是最熱的帖子,從輿情收集效果看,人為的截尾導致失去了真實性。
另外,搜索引擎上某些詞匯的出現頻度也會受到一些因素的影響,即基于搜索詞頻的判斷不完全是獨立隨機的。當某地發生流感,搜索引擎上面的與流感有關的搜索關鍵詞頻率突然提高,谷歌將這一現象與歷年來美國疾控中心(CDC)公布的流感發生狀況對比,得出一定的規律。
2008年H7N1流感爆發時谷歌的流感指數給出的預測比中國疾控中心(CDC)早一周發布,與CDC數據相似度0.9。美國紐約州政府在2013年初發布了“公共健康緊急狀態”的通告,大眾媒體的廣泛報道,引起網民的關注和討論,隨后 1 月流感流行狀況十分嚴峻,沒有患流感的人在網上議論流感問題影響了谷歌對流感用戶搜索行為的判斷,導致谷歌流感指數估值出現了假陽性,遠高于 CDC 的統計數值。另外,基于微博的判斷不能代表所有年齡段的人群。在谷歌流感指數啟發之下,紐約羅切斯特大學利用推特的微博數據進行了嘗試,可以提前 8 天預報流感對個體的侵襲狀況,而且準確率高達90%。不過推特的使用者大部分是年輕人,而季節性流感的襲擾對象多為抵抗力較弱的老年人和兒童,因此基于推特的微博判斷流感有片面性。此外,重要的大數據決策是需要人介入的。比如基于醫療專家系統的計算機可以給人看病,但主要還是輔助診斷,最后還得靠醫生來決策。
大數據的挖掘可分為準備階段、發現階段和解釋階段。在準備階段要進行合并壓縮、清洗過濾和格式轉換。在發現階段尋找規律以建立模型,將用到統計分析、知識發現和可視化技術。在解釋階段通過關聯規則、分類、聚類、序列和路徑等操作,揭示數據間的內在聯系,利用歷史數據來推導和預測,挖掘出數據的前后時間順序關系,聚焦到感興趣的內容上。Map/Reduce技術可用于數據清洗、去重、過濾和合并。Map把海量數據分割為若干部分,加入標簽然后分給多臺處理器并行處理,Reduce歸并某一個標簽的所有值,合并、匯總和過濾并進行計算,輸出計算結果。Map/Reduce一方面是節約存儲空間,另一方面是為后續的數據的挖掘提供方便。數據分析需要有合適的模型,數據的表示需要用到可視化和增強現實,數據的發布也需要預見到對社會的影響。
大數據是復雜的,但其結果應該是簡潔明了的,通常需要將大數據的結果可視化。從可視化的效果可有助于判斷大數據挖掘的可信性。數據的可視化將用到信息融合技術,數據的可視化可能用到虛擬現實的結合或增強現實技術。比如拿照相機拍了不同位置的街景,即孤立的一幅一幅照片,通過信息融合技術可拼成一個三維的圖像甚至是視頻,合成的效果是一個全景的還原。例如一個城市有很多交通監視用攝像頭,每一個攝像頭都可以連接一個電視屏,這些電視屏集中到城市的交通監控中心,實際上往往是多個攝像頭分時共享同一個顯示屏,例如每十秒顯示一條馬路的攝像頭,即便這樣監控人員看起來還是很困難。如果把一條馬路的攝像頭拍下的信息組合成一個視頻,這樣看起來就方便。如果把整個城市的所有馬路的交通監控視頻組合成一張三維動態的圖,可以很直觀發現哪個時間點哪個位置交通流量最高,這就是利用信息融合技術實現可視化和虛擬化。美國統計參加NBA的球隊的比賽情況,發現投籃概率與投籃命中率與投籃的位置有一定規律性,用這種方式可以訓練球隊。NBA從80年代開始將球員在賽場上的表現數據化,經過30多年的積累已達到可辨別每一個球員在場上的弱點,方便教練進行針對性戰術安排。目前30家NBA球隊俱樂部已有半數聘請了數據分析師,他們的平均勝率達到59.3%,而沒有進行數據分析的球隊僅有平均40.7%的勝率。
中國人口居世界首位,但2010年中國新存儲的數據為250PB,僅為日本的60%和北美的7%。我國一些部門和機構擁有大量數據但以鄰為壑,寧愿自己不用也不愿提供與有關部門共享,導致信息不完整或重復投資。2012年中國的數據存儲量達到364EB,其中55%(200EB)的數據需要一定程度的保護,然而目前只有不到一半(44%,即96EB)的數據得到保護。我國在自主可控的大數據分析技術與產品方面與發達國家相比有不少差距,國內企業在數據庫、數據倉庫、商業智能分析軟件等領域基礎薄弱,尤其是大數據方面已經遠遠落后于國外先進企業。另外,需要重視人才問題。500年前達芬奇可以同時是畫家、音樂家、工程師、科學家,100年前的醫生可以了解醫學領域的所有分支。今天一名初級醫生必須同時了解大約一萬種疾病和綜合癥、3000種藥物和1100種檢驗方法。估計一個專業的醫生也需要每天學習21小時才能跟得上學科的發展。Gartner咨詢公司預測大數據將為全球帶來440萬個IT新崗位和上千萬個非IT崗位。麥肯錫公司預測美國到2018年深度數據分析人才缺口14~19萬人,還需既熟悉需求也熟悉技術及應用的管理者150萬。中國能理解與應用大數據的創新人才更是稀缺資源。
大數據的利用首先要求政府數據原則上該公開的必須公開。大數據的挖掘與利用需要有法可依。我國需要盡快制定“信息保護法”與“信息公開法”,既要鼓勵面向群體而且服務于社會的數據挖掘,又要防止針對個體侵犯隱私的行為,提倡數據共享又要防止數據被濫用。重要的數據存儲和應用不能過分依賴大數據分析技術與平臺,尤其是對我們目前還無法掌控的國外信息產品,需要重視信息泄密的風險。
信息化要從重視硬件到重視軟件,再到重視數據的利用,不僅大數據,中小數據的挖掘也有重要意義。需要制定國家大數據發展戰略。大數據是一個應用驅動性很強的服務,其標準和產業格局尚未形成,這是我國跨越發展的機會,但切忌一哄而起在目的不明情況下到處建設大數據中心,需要從戰略上重視大數據的開發利用,將它作為轉變經濟增長方式的有效抓手。
大數據的挖掘深化了信息技術的應用,催生新的應用和新業態出現,大數據提升了管理和決策的智能化水平。需要重視數據的挖掘利用,不僅僅是大數據,中小數據的挖掘也有意義;不僅是非結構數據,即便對相對簡單的結構性數據的挖掘也能有大的價值。對數據要進行可信性分析,重視數據的安全域隱私保護。大數據挖掘技術是大數據時代競爭的焦點,自主掌握大數據開發技術是對我國創新能力的考驗。推動大數據技術應用和產業發展,我國需要盡快明確國家大數據戰略,做好頂層設計,把握好大數據的關鍵,促使大數據產業贏得健康發展。
(本文是鄔賀銓院士在國家信息化論壇上的主題演講內容,根據現場錄音整理)