談談數據科學

談談數據科學

來自專欄知識的故事

本文最初是為「海雲觀點」寫的系列文章,其中一些思路在我以往的文章中也有提及。原文鏈接如下:

海雲觀點 | 談談數據科學?

mp.weixin.qq.com圖標

數據是什麼

關於數據,今年比較熱的話題是大數據殺熟,以及大數據侵犯個人隱私。這說明數據已經走出了專業的小圈子,開始影響普通人生活的方方面面,數據及其引發的問題,引起了社會上普遍的關注。

要說中文技術術語的構詞通常是比較科學的,數據這個詞對於數據的基本概念,起到了很好的描述作用。數據的兩個基本組成成分,一個是「數」,一個是「據」。「數」就是我們平常說的數,也就是數字,數據總是由數字構成的。有人會說,我們資料庫里的數據,有的是數字,也有的是文字序列,還有圖片、聲音等等多媒體數據,並不一定都是數字。但其實在信息系統里,所有的文字都是用數字來代表的,比如「數據」二字在UTF8編碼中就是十六進位數6570和636E,所以文字其實就是數字,當然文字是因為被數字化了,所以才能變成數字,不過文字的數字化開始的相當早,並且有電報系統的基礎,因此開展的非常自然和容易,以至於很多人對此並沒有什麼感覺,以為天然就是那樣。多媒體同理,圖像是像素顏色值,聲音是頻率採樣值,也都是數字。雖然記錄圖片和聲音的最初方法,都不是用數字,但是在那個年代,唱片是唱片,膠片是膠片,並沒有多媒體數據這種說法,多媒體成為數據,恰恰是在數字化之後,所以只有數字形式的多媒體才是數據,之前沒有多媒體數據,只有媒體本身。

然而光有數還不能成為數據,只有組織起來的,帶有一定結構的一組數才構成數據,這就是「據」的作用了。「據」是一切把數組織起來,形成結構的東西。但是這麼說還是太抽象,畢竟數是我們直接能看到的,而據是存在於直觀背後的東西,看不見摸不著。字面上說,「據,杖持也」,作為名詞,也就是指可以杖持的東西。數據中的據,就是可以用來對數操作的東西。所以數據的據到底是什麼,需要看不同場合下對數據所期望的操作而定。我們搞數據分析,數據可視化,第一步就是數據準備,也就是要按照預想的操作,給數裝上適當的據。只有經過數據準備,整理好了的數據才是可以用來操作的數據。

數據與數據科學

據是數的結構關係,滿足數據被創造出來時所設想的目的,這句話大體上是對的,然而凡事都有例外,在數據科學的場景下,這句話就不成立了。數據是數據科學的研究對象,對於數據科學來說,數據是先驗存在的,而不是為了數據科學研究而創造出來的。數據科學要研究的恰恰是數據規律,也就是數及其組成結構,以及它們的產生、演變過程,所蘊含的規律。

可能大家也有感覺,我們今天在商業的語境下講的數據科學,其實和上述定義並不一致。商業語境下的數據科學,並不是研究數據中蘊含的規律,而是研究如何運用這些規律,從數據中得到符合商業目的的一些隱含信息,即發現數據中隱含的事實和知識。這種定義,其實和很多理論學科相對應的應用學科,如應用數學、應用物理等類似。而純理論的數據科學,目前還沒有從計算機科學中明確分離出來,所以我們後面根據約定俗成,數據科學這個詞用來指代商業語境下的應用數據科學。

數據科學的局限

數據科學使用數據的方式,通常超出數據創建者最初設想的範圍。這就容易給人造成一種錯覺,覺得數據科學像神奇的魔法,無所不能。事實當然不是這樣,數據科學並不能給出一切問題的答案,而是有非常明確的局限性。

數據科學的局限性,從根本上是來自基礎理論層面,也就是資訊理論的限制。資訊理論是信息量化度量的基本理論,有了資訊理論,信息就象我們物理世界中的實在物體一樣,成為可以計數,可以測量的了。信息熵是資訊理論中和物理學的熵相類比的概念,如同物理熵一樣,信息熵也是只增不減的,也就是說信息量只能因為損耗越來越小,而不可能增加。我們任何處理信息的行為,都會導致信息量的損失。

數據科學中的任何對數據的操作都會導致數據中信息量的減少,而不是增加。這就造成了數據科學的產出,相對於輸入來說一定含有更少的信息量。數據科學從本質上來說,是把數據中包含的信息量,按我們的需求提取出來。這些信息量本來就包含在數據之中,但是因為和大量無關的信息量混雜在一起,以至於難以認知和利用。數據科學家通過一系列的演算法處理,讓這些隱藏的信息與其他信息雜質分離開,成為便於利用的數據產品。這一過程很像金屬冶煉工業,所需的物質全都包含在礦石之中,並不是生產過程創造出來的;生產過程中,既需要以科學理論作為基礎,又需要遵從基於經驗設計的工藝流程,某些關鍵環節還需要發揮操作者的能動性和創造性,最終才能得到所需的產品。

資訊理論的限制,是數據科學所能達到的上限,因此可以用信息量來簡單判斷一個數據科學項目是否具有可行性。要進行這種判斷,我們需要一定量的數據採樣,這些採樣所反映出的事實必須是已經發生了的,具有確定性。這樣一來我們就得到了採樣數據和事實數據之間的一個確定的映射關係。數據科學所要做的是找到這個映射關係的內部邏輯,而我們的驗證工作所要做的是判斷這個內部邏輯是否可能存在,也就是說,是否可能以這些採樣數據作為論據,推斷出這些事實發生的結論。

我們可以把這個推斷過程,看作是一個通信過程,作為論據的採樣數據集可以看作編碼,我們要推出的目標事實數據作為解碼,在這個過程中信息量只減不增。如前所述,數據是由數和據組成的,也就是數值和結構,結構是人為規定的,因此結構的映射關係也是人工設定的。比如說我們要計算哪些用戶最有可能成為付費用戶,我們有用戶的數據和用戶的付費記錄,這裡面「用戶」、「用戶操作」、「付費記錄」、「付費用戶」都是我們規定的結構,從「用戶」到「付費用戶」(以及「非付費用戶」,這是個二分類問題)的映射關係也是我們這個結構的邏輯所決定的;我們的目標就是要找出從「用戶」、「用戶操作」、「付費記錄」結構中每個屬性的取值,是否能算出「用戶」到「付費用戶」的映射是如何形成的。我們的邏輯是,「付費用戶」一定是「用戶」,並且至少有一個對應的「付費記錄」;「用戶」對應著一組用戶屬性,以及一個「用戶操作」序列,這個序列中每個「用戶操作」也有一組屬性,「用戶」和「用戶操作」的每一個屬性,都有一個確定的取值,所有這些值,蘊含著「用戶」是否能映射到「付費用戶」的全部信息,這是我們推算的起點。

接下來就是推算每個值對映射的貢獻程度,稱之為信息增益,一個對應關係只有獲得了足夠多的信息增益,才能成立,信息增益也可以看作映射關係的可信程度。只有映射中所有的對應關係都得到了足夠多的信息增益支持,整個映射才能成立。如果沒有足夠的信息增益,就說明現有的數據不足以支持得到所需的結論,要麼補充數據,要麼修改需求。信息增益的計算方法,網上可以很容易搜到,我們就不具體展開了。

數據科學與機器學習

機器學習是近十年來計算機科學最重大的突破之二分之一(另一個是量子計算)。在普通人看來,機器學習能夠達到一些神奇的效果,並且其原理不容易解釋,因此被當成了新的鍊金術和銀彈。然而真實的情況是不存在銀彈,機器學習只是數據科學所使用的一類演算法,依然要受前述數據科學局限性的限制。但是由於機器學習所使用的數據中蘊含的信息量之多,往往超出了大多數人的認知範圍,所以會產生出人意料的效果,這不過是把人們沒有意識到的一些信息量凸顯出來了而已。在數據信息量很小的時候,可以通過人的觀察,總結出規律,這就形成了基於規則的系統。後來數據量增大了,信息量大到直接觀察已經無法認知,但是經過數據科學訓練的人,運用一定的方法和工具,仍有可能提取出規律,這就進入了數據分析的時代。然而數據及其中包含的信息量仍在快速增長,傳統數據分析的方法也面臨著失效,機器學習就是因應這種形勢而產生出來的新一代方法。在機器學習中,人不再直接尋找規律,而是提供一個評價標準,讓系統自動尋找規律,並用這個標準評判找到的規律,直到找到符合標準的那些規律。這就相當於第一代(規則系統)是人直接猜測原函數,第二代(數據分析)是人猜測出導數,用演算法算出原函數,第三代(機器學習)是人給出二階導數,系統自動求一階導數和原函數。

機器學習,特別是深度學習,在某些方面非常成功,但是如前所述,它們並不是銀彈。那麼怎麼判斷哪些領域能夠成功應用機器學習,顯著提升決策能力呢?這依然要從數據的信息量當中尋找線索。機器學習模型和其他模型一樣,也是可以計算信息增益的,也需要足夠多的信息增益才能成立。我們可以看到,深度學習在視覺和語音任務上有著很好的效果,在自然語言處理上效果一般,而在傳統數據挖掘領域的商業數據分析任務上,效果差強人意。這裡面可以看出明顯的規律性。視覺和語音任務,人所看到聽到的全量信息都包含在數據中,用這些數據還原的圖像和音頻,人還是一樣能辨認出原本能認出的東西,這就說明這部分信息量沒有丟失。然而對於自然語言,這就不一定能成立,如果不了解語言的語境,人也不能做到完全準確理解,這說明語言中的信息量是有缺失的,需要接收的人用背景知識去補足。對於業務數據,情況更是明顯,往往只有既了解數據技術,又懂得業務邏輯的專家,才能完全理解業務數據中蘊含的邏輯,普通人根本理解不了。可以說業務數據中缺失了大量業務和數據知識,信息量極為稀疏,機器學習在處理這類數據上的效果當然不會好了。

推薦閱讀:

Graph圖演算法 Hits&Page Rank
機器學習之Kaggle實戰:泰坦尼克號生存預測
對於面試演算法工程師的想法
量化投資必讀書目(三)——《量化投資:數據挖掘技術與實踐(MATLAB版)》
數據挖掘中常見的特徵工程方法

TAG:數據挖掘 | 數據分析 | 機器學習 |