談數據時,我談些什麼

筆者目前是一名數據開發人員。本專欄主要分享工作學習的經驗與看法。專欄起名為『數據/計算/編程/社會科學』,因為這是目前我心目中數據及其相關的東西,即我心目中的數據科學。本文作為專欄的第一篇文章,打算寫個總結性的隨筆,也當做個人的年度總結。

關於數據、大數據

近幾年大數據這個詞很火,於是只要涉及數據常冠上一個『大』字。從宣傳角度說的確很好,表明了更多更廣泛的數據積累。但數據量的大小與單位價值並不完全相關。個人對數據大小並不感冒,數據在我心目中是定量工作的基礎,大自然比小要好,但有用更重要。重複與無效的數據也會帶來問題,例如一堆格式不統一、無預先設計的服務日誌,單是在流量統計處理上就存在工作量與難度。在這方面,能產生實際應用,能解決問題,才是數據的價值。

但請不要誤解,目前大數據工程相關的,分散式工具如hadoop系列該用的時候自然要用,但這是目前發展階段工程上的需要,如何用好工具解決問題才是更重要的,且工具選型需要基於業務需求。在數據利用方面,BI商業智能還是一種比較實用的數據利用方式。當然數據與計算應有更多的探索和應用空間,而且個人感受在傳統行業中仍有很大的信息化提高效率的空間。

關於編程、軟體工程

儘管傳統的數據分析、統計方向可能更看重指標定義、抽樣、實驗設計等,計算可以由統計軟體完成。但個人認為當下及以後在數據方向上深入,編程是個必須。編程是一個很美妙的東西,是將想法轉為實際結果的工具,即使不做軟體工程開發,數據分析上也必然會有一些計算問題需要計算機輔助,以及更常碰到的數據清洗需要。不過語言歸根到底只是表達的工具,理解語言範式、封裝、解構,根據實際需求挑選並使用工具更為重要。當然每個人精力有限,請選用自己適合的工具。目前個人在工作上更喜歡用python,覺得相比R、Matlab更適合靈活計算與工程應用的場景。當然hadoop生態基於的Java,Scala也是值得了解的。

在實際工作中,維持項目健康很重要,代碼規範、單元測試、抽象類型、代碼文檔、介面分工等等軟體工程的理念,在工程實現上很有價值。雖然工作上趕工期、個人能力等原因,代碼質量不容易保證。但如果開發上只能剩下一個保證,那幾乎肯定是——先寫測試。

關於計算思維、模型思維

Eric Grimson在MIT 6.00計算機入門上反覆強調計算思維,我很喜歡這個詞,這也是本專欄的域名computational thinking。

目前機器學習、人工智慧很火,在應用上也與數據關係較大。但在此提兩點淺見,首先機器學習不是計算的全部,狹義的機器學習、人工智慧目前只解決特定的明確的問題,如機器學習解決A->B的分類、回歸、聚類問題,而且在使用上,需要理解並定義實際問題,一個問題可能是部分機器學習問題,或多個學習問題組成,如人臉年齡識別先判定是否是人臉,再判定年齡。但諸如流程挖掘、關聯分析、離散組合問題等等都是在其範疇之外的。當然機器學習依然很重要,尤其在目前工程應用上。

其次,機器學習目標只是在於解決問題,而非理解和解釋現象。但對社科專業背景的我來說,理解人、行為、機制等等,輔助思考也很重要。應用計算思維到現實社會問題上,簡化問題提出假設,抽象出概念與定量標準,從而輔助解釋問題以至於解決問題,再進一步放鬆假設以更符合實際並評估模型應用性,是建模的基本流程,是計算思維的另一方面。社會本身是複雜的,元胞自動機也展示了,即使以簡單和固定的規則出發,都會產生混沌和複雜。我尤其喜歡電影黑客帝國(the Matrix)的構思——Architect以純理性思維構造的虛擬世界始終無法達到真實,只能強行構造正負因子平衡世界(正負男一號),最終以Oracle做局融合正負,剩下混沌與隨機為結尾,虛擬世界達到平衡。在這方面,以建模為主線,偏軟科學的經濟學、社會科學的內容在我的心目中是重要的。但是個人認為,社會科學目前發展階段還比較早期,應用上也比較局限且難度大、成本大,沒有像工業革命、信息革命般的突破。不過廣泛的數據對社科的發展是一個利好。

因此專欄的圖片是一張代表複雜與混沌的圖(元胞自動機:規則30)。做數據除了清洗、調參的苟且,還有詩和遠方。我更喜歡將這部分計算內容統稱計算思維、模型思維。

關於職場、應用、變現

之前看到一個知乎用戶說法很有意思,說『學界探索的應是至少20年後才能實際應用的方向』。那麼反過來,業界的目標或許就是幾年內能夠工程實現並應用的方向。對非研究院的實際業界公司來說,那麼小公司希望0-3年有回報,大公司布局能容忍3-5年內成熟產出,似乎就是一個常態。但或許大多數職業都一樣,在市場中行走就需要遵守市場的規律,以市場為導向。而職員與僱主的關係,我很喜歡霍夫曼《聯盟》一書的表述,即集體與個人不是家庭,不是上下關係,而是聯盟關係。聯盟關係意味著雙方協調各自目標,在一定時期內合作。如果對職場問題如個人目標(薪酬、發展)和公司目標(業務、崗位需求)避而不談,那麼陷入的難免是囚徒困境,雙方都得不到最佳的回報。博弈論對囚徒困境的解決辦法就是合作,而聯盟一書提供了合作的具體思路。

數據、數據挖掘還能火多久?數據掙錢的模式是什麼?在業界數據工作中,理性的行為可能是投身到應用需要的地方,提高社會效率、生產力的地方,有實際回報的地方。BI對運營有效,那麼開發BI系統;推薦演算法對廣告回報有提高,那麼投入資源提高演算法效果。工作上自然是實用應用為主。但除了與錢直接掛鉤的工程,在效率提高方面,如提高內部數據流動、運營效率、提供決策參考,如何衡量價值,這又涉及社會科學的複雜性。這部分或是各行業發展的重點,只就此拋磚,無能力深入討論。

最後,做數據不僅僅是數據,還包含計算思維。在互聯網公司中,利用數據和演算法,提供更方便智能的功能服務,也是做數據的一個方向。目前各行業IT基礎設施應仍處於方興未艾的建設階段,這方面我想仍有很大的空間,儘管肯定需要考慮投入和產出,以及方向感與遠見。

最後,關於知識與學習

那麼做數據,從哪起步,該往哪走?前面天馬行空胡謅了很多,這也是我目前猶豫的地方,如果每條線都深入下去,可能有難度。在保持廣度的同時精通的一個方向的T型技能樹或許更適應社會分工。從基礎知識獲取渠道來說,以下我提供幾個個人喜好的。

  • 麻省理工:單獨提出來,因為MIT對我個人知識體系有很大幫助。MIT在開放課程上或許是最激進的,在上一代的OpenCourseWare,以及在新一代慕課平台EDX,都有很好的課程和編程練習。
  • 慕課(公開課):除EDX外,Coursera, Udacity, Stanford Online都值得了解。另外一些零散的公開課請按需了解。慕課能夠提供很好的時限和練習機制,在做中學。
  • 書籍:著名的技術類出版社,如OReilly, Willey偏向工程應用的。一定時期內西方國家的書籍質量或仍較高,有能力及條件的請多看英文資料。
  • 官方文檔:很多開源工具,官方文檔是最好的書籍。
  • 媒體平台:如知乎、各家技術公司博客、InfoQ等,閑暇時可以了解業界動態。

以上並沒有專門提及特定的課程,因不同階段和方向有不同的需求,而且也擔心誤人子弟。有興趣的朋友可從知乎進入我的領英主頁,上面掛有一些我完成且覺得較有價值的課程。

最後,各領域,唯一不變的,或許只有變化,或緩慢或快速。與其拿著一套xx天搞定大數據課程,不如保持開放的心態,適應終身學習的需要。順便吐槽一下可能存在的純粹以薪酬為目的的從業者,如果對數據沒有熱情,那麼我不相信能走長遠。

2017年1月

Yi

『保留所有權利,禁止轉載』


推薦閱讀:

又是一個戊戌年,咱說好不要變法行嗎?
實證研究是什麼?怎麼做?為什麼你一定要做一次?
什麼才是真正的反思機制?
為什麼要有學社會科學的研究方法?

TAG:數據 | 信息技術IT | 社會科學 |