“如何成為一名卓越的數(shù)據(jù)科學(xué)家?”是我們討論的主題。
所謂卓越,不是那些紙上談兵、喜歡“3V”、“4D”、“大時代”的理論家,也不僅是一名手腳利索的碼農(nóng)去實現(xiàn)別人腦袋中的邏輯。
所謂卓越,是只專注最有挑戰(zhàn)的問題,并且能將問題解決掉的能力。
卓越的數(shù)據(jù)科學(xué)家,不僅需要建立收集數(shù)據(jù)原材料的合理機制,還需要用數(shù)據(jù)材料提煉價值,并且將數(shù)據(jù)創(chuàng)造價值的過程標(biāo)準(zhǔn)化、自動化。出色的數(shù)據(jù)科學(xué)家是多面手,不僅需要理解業(yè)務(wù)問題,還需要將業(yè)務(wù)問題轉(zhuǎn)化為數(shù)據(jù)科學(xué)問題,并且讓計算機可以持續(xù)從數(shù)據(jù)中學(xué)習(xí), 最終建立一套完整的智能系統(tǒng)。一言以蔽之,數(shù)據(jù)科學(xué)家的核心職責(zé)是設(shè)計“業(yè)務(wù)、數(shù)據(jù)、算法”三位一體的閉環(huán)體系。
在數(shù)據(jù)科學(xué)家的工作流程中,“設(shè)計”是關(guān)鍵詞。數(shù)據(jù)科學(xué)家工作中最核心的部分是設(shè)計,而不是操作。許多文章給工程師列出數(shù)據(jù)科學(xué)家的修煉清單,告訴我們數(shù)據(jù)科學(xué)家需要擅長Hadoop, Spark, C++,也需要懂統(tǒng)計學(xué),計算機科學(xué)……這個清單沒人能真正完成,真正完成的人不是數(shù)據(jù)科學(xué)家,是神。
現(xiàn)實中,完整實施一個數(shù)據(jù)科學(xué)項目需要一個團隊,其中不僅包括數(shù)據(jù)科學(xué)家,還包括業(yè)務(wù)專家、數(shù)據(jù)庫專家、算法專家和系統(tǒng)專家。在這個團隊中,數(shù)據(jù)科學(xué)家的核心角色是設(shè)計出一個將業(yè)務(wù)、數(shù)據(jù)、算法串聯(lián)起來的閉環(huán)體系,其他團隊成員則基于數(shù)據(jù)科學(xué)家設(shè)計的藍圖將數(shù)據(jù)解決方案轉(zhuǎn)化為解決業(yè)務(wù)問題的智能系統(tǒng)。
這個數(shù)據(jù)科學(xué)閉環(huán)體系包括七個步驟,我稱之為“數(shù)據(jù)科學(xué)七劍”。
第一劍,問題定義
根據(jù)我的經(jīng)驗,80%以上的數(shù)據(jù)科學(xué)項目失敗在問題定義這個環(huán)節(jié)。我經(jīng)??吹?,客戶的問題是,“我有這么多數(shù)據(jù),到底能怎么用?”、“這個業(yè)務(wù)問題數(shù)據(jù)模型能發(fā)揮作用嗎,還是靠人去解決更有效?”真正需要回答這些問題的數(shù)據(jù)科學(xué)家,需要具備抽象的能力,將那些看似零散的業(yè)務(wù)問題抽象為通用的數(shù)據(jù)科學(xué)問題?;卮疬@些問題的數(shù)據(jù)科學(xué)家,還需要具備出色的溝通能力,能將復(fù)雜晦澀的機器邏輯轉(zhuǎn)化為簡單、清晰的通俗邏輯。
以銀行風(fēng)控業(yè)務(wù)為例,不同的業(yè)務(wù)場景往往對風(fēng)控模型的需求是截然不同的。對于大客戶信貸審批,數(shù)據(jù)模型沒有實際作用,因為大客戶審批的工作量完全可以由業(yè)務(wù)人員來承擔(dān),并且大額審批一定是靠人決策。即使一個富翁請了10個保姆去打理花園和廚房,也仍會讓自己老婆去管理房產(chǎn)證。但是,在小微商戶的信貸業(yè)務(wù)的貸后管理中,數(shù)據(jù)模型便可以發(fā)揮舉足輕重的作用,銀行沒有大量人力去在貸后的每一個月都去派業(yè)務(wù)人員進行大量企業(yè)的貸后風(fēng)險管理。
而在公安大數(shù)據(jù)應(yīng)用中,數(shù)據(jù)模型的可解釋性遠大于預(yù)測的準(zhǔn)確性。你不能因為安全模型給本拉登打分為99分就將他槍斃,總需要一些客觀的根據(jù)(數(shù)據(jù))。公安數(shù)據(jù)模型最大價值就是從大量原始數(shù)據(jù)中縮小范圍,提供可解釋的關(guān)鍵數(shù)據(jù)。這些關(guān)鍵數(shù)據(jù),正是公安中的證據(jù)。
第二劍,數(shù)據(jù)準(zhǔn)備
巧婦難為無米之炊。數(shù)據(jù)科學(xué)家需要非常關(guān)注數(shù)據(jù)源,而不是別人加工后的數(shù)據(jù)。只有通過原始數(shù)據(jù)的復(fù)雜加工處理,數(shù)據(jù)科學(xué)家才能獲得真正有價值的信息。
在電商網(wǎng)站中,成交量最多的關(guān)鍵字商品往往沒有什么特別價值,但是,一個關(guān)鍵字商品如果在最近幾天擁有大量瀏覽卻很少被購買,才正是說明了這里有市場需求未被滿足這一關(guān)鍵信息。一個貸款客戶最近半年交易流水?dāng)?shù)據(jù)的匯總信息往往意義不大,而是變化趨勢和支出/收入比例有更大信息價值。一部電影是否符合你的胃口,不僅取決于你長期的興趣,更取決于你最近的經(jīng)歷變化。
有經(jīng)驗的數(shù)據(jù)科學(xué)家可以憑借業(yè)務(wù)經(jīng)驗、直覺和邏輯推理提煉出大量具有預(yù)測意義的“數(shù)據(jù)特征”,同時可以將數(shù)據(jù)特征的抽取方式總結(jié)成一套算法體系,讓計算機系統(tǒng)去自動提取特征。數(shù)據(jù)科學(xué)家負(fù)責(zé)設(shè)計特征抽取機制,借助經(jīng)驗與算法的協(xié)作,來不斷豐富原始數(shù)據(jù)到關(guān)鍵數(shù)據(jù)的提煉機制。
第三劍,算法調(diào)優(yōu)
機器學(xué)習(xí)學(xué)術(shù)領(lǐng)域每天都有大量的算法被發(fā)明出來,然而大部分發(fā)明在實踐中是沒用的。學(xué)者坐在自己的辦公室里,守著那些有限的公開數(shù)據(jù)不斷調(diào)試算法,直到那些小小的可愛的公開數(shù)據(jù)向煉丹手屈服。有句話說的好,“Notoriously torture the data until it confessed”,不斷給數(shù)據(jù)上刑直到它屈服。許多算法無法應(yīng)用,主要因為沒在真實數(shù)據(jù)中練兵。真實的數(shù)據(jù)往往極其復(fù)雜,需要簡單強壯的算法去征服它們。
所謂好算法,就是不浪費數(shù)據(jù)。能最大化數(shù)據(jù)價值的算法,是基于不同數(shù)據(jù)結(jié)構(gòu)而發(fā)揮數(shù)據(jù)價值的。換句話說,不同的數(shù)據(jù)結(jié)構(gòu)和不同的算法確實存在匹配關(guān)系,沒有最好的算法,只有最適合的算法。例如,決策樹算法效率非常高,也易于解釋,但卻不適合在高維度數(shù)據(jù)中做建模。而即使預(yù)測能力非常強的GBDT算法,在文本挖掘中也難顯示其威力。
最近興起的深度學(xué)習(xí)算法,也并不是萬能鑰匙。深度學(xué)習(xí)技術(shù)可以讓特征工程自動化,于是數(shù)據(jù)科學(xué)家再不用花大量時間去抽取特征。然而,深度學(xué)習(xí)算法一般都有許許多多參數(shù)。于是乎,深度學(xué)習(xí)算法表示,呵呵,我們不過是把你們用來抽特征的時間,拿來調(diào)參數(shù)了。(這只是個玩笑,你懂得。)
第四劍,知識發(fā)現(xiàn)
知識發(fā)現(xiàn)是所有數(shù)據(jù)科學(xué)步驟中最關(guān)鍵也最容易被忽略的一個環(huán)節(jié)。所謂知識發(fā)現(xiàn),是以最簡單的方式呈獻給數(shù)據(jù)專家以外的普通人,數(shù)據(jù)中有什么規(guī)律或細(xì)節(jié)可以影響我的決策。
《大數(shù)據(jù)時代》作者告訴我們,大數(shù)據(jù)的最大價值就是預(yù)測。然而,未來真的可以預(yù)測嗎?
許多人以為香港有名的風(fēng)水大師可以未卜先知。如果你問他們預(yù)測風(fēng)水的秘訣是什么?如果他們肯對你敞開心扉,他們會說,且只說一條——“我有許多房產(chǎn)中介的朋友”。
美國知名手機價格預(yù)測公司Decide.com最終被eBay高價收購。如果你問他們,價格預(yù)測的秘訣是什么?它們會告訴你,預(yù)測錯了,我們?yōu)橄M者提供包銷服務(wù)。Decide.com的數(shù)據(jù)科學(xué)家也許會告訴你,有時候他們要故意把算法調(diào)笨一些,因為預(yù)測錯了,消費者買得會更多。這讓許多團購網(wǎng)站的營銷負(fù)責(zé)人都去向Decide.com投了簡歷。
在我看來,大數(shù)據(jù)的價值不是預(yù)測,是發(fā)現(xiàn)——發(fā)現(xiàn)那些宏觀的規(guī)律讓人獲取新的洞見,發(fā)現(xiàn)那些微觀的細(xì)節(jié)便于快速決策。在人最關(guān)注的問題上,人很難放手交給機器去做決策,人更希望機器是重大決策的輔助者。
第五劍,效果分析
許多時候,評估一個模型的效果比開發(fā)一個模型更難。難道模型的好壞不就是直接看結(jié)果嗎?不一定。從數(shù)據(jù)模型的結(jié)果到實際決策中,有許多步驟。每個步驟都可能影響最終決策的效果。
兩個不同的量化交易策略算法,哪個效果更好,決定因素可能是誰的網(wǎng)絡(luò)信號更強,而不是算法本身,因為實際效果更好的算法有可能因為網(wǎng)絡(luò)信號問題而不能高頻應(yīng)用。
《大數(shù)據(jù)時代》告訴我們,大數(shù)據(jù)重要的是關(guān)聯(lián)關(guān)系,不是因果關(guān)系。根據(jù)這個邏輯,一個數(shù)據(jù)科學(xué)家通過關(guān)聯(lián)分析發(fā)現(xiàn),歷史數(shù)據(jù)顯示一個飛機上同時有兩個人攜帶炸彈的概率為0。為了避免遇到恐怖襲擊,他帶著炸彈上了飛機,安心的一覺睡到了目的地。
在許多數(shù)據(jù)科學(xué)項目的實踐中,通過詳細(xì)的模型效果分析得到的因果關(guān)系至關(guān)重要。為了保證商業(yè)目標(biāo)的實現(xiàn),業(yè)務(wù)人員和數(shù)據(jù)科學(xué)家往往需要對模型進行靈活的應(yīng)用。
我經(jīng)??吹?,許多模型在沒有離線測試之前便上線進行AB測試,拿用戶當(dāng)小白鼠,這將直接對業(yè)務(wù)造成負(fù)面影響。并且,許多數(shù)據(jù)科學(xué)家宣稱自己開發(fā)的模型為業(yè)務(wù)帶來了商業(yè)價值,但因為沒有模型對比分析,他并不了解實際上可能有許多更好的模型能為業(yè)務(wù)帶來更大價值,因而對比分析是模型上線前的必須環(huán)節(jié)。
完整的模型效果分析,往往是模型優(yōu)化最重要的環(huán)節(jié)。數(shù)據(jù)科學(xué)家在效果分析中往往需要回答幾個問題:
(1) 最適合評估解決特定業(yè)務(wù)問題的模型效果衡量指標(biāo)是什么?
(2) 模型上線測試前,模型的離線測試效果是否理想?
(3) 模型的計算效率如何,是否可以在海量數(shù)據(jù)中跑通?
(4) 模型的業(yè)務(wù)邏輯是什么?
(5) 模型在不同數(shù)據(jù)樣本之間的效果是否有顯著差異,這意味著什么?
只有基于效果分析的結(jié)果,數(shù)據(jù)科學(xué)家才可以更加客觀地去選擇最適合解決當(dāng)前問題的模型,并且評估模型效果是否可以滿足業(yè)務(wù)需求,以及模型在什么情況下最能發(fā)揮作用等直指業(yè)務(wù)核心的問題。
第六劍,線上部署
數(shù)據(jù)科學(xué)家需要將算法與系統(tǒng)有機結(jié)合。對于數(shù)據(jù)科學(xué)家,最大的悲劇不是模型不好用,而是好用的模型無法部署上線。許多完美的模型,直到開發(fā)完成后才發(fā)現(xiàn),因模型運算效率太低而根本無法上線適應(yīng)大規(guī)模使用。這真是數(shù)據(jù)科學(xué)家最大的悲劇。
一個實用的機器學(xué)習(xí)算法往往沒有太多參數(shù)。面臨海量數(shù)據(jù),許多有太多參數(shù)的算法,真是費機器。對于想推廣云服務(wù)的商家來說,最好的營銷方案,可能不是打廣告,而是去發(fā)表一個擁有無數(shù)參數(shù)的算法。你還可以這樣理解,任何算法,參數(shù)足夠多的時候,都是“深度學(xué)習(xí)”。
把模型部署上線前,數(shù)據(jù)科學(xué)家需要嚴(yán)格定義模型的輸入和輸出,并且讓模型的上下游系統(tǒng)與模型無縫對接。機器學(xué)習(xí)的結(jié)果,往往需要和多個系統(tǒng)對接,彼此之間的完美配合是讓算法發(fā)揮效力的重要前提。
數(shù)據(jù)科學(xué)產(chǎn)品的直接用戶是誰?是機器。數(shù)據(jù)科學(xué)家產(chǎn)出的模型,可以作為一個又一個計算機系統(tǒng)的能量塊,讓這些系統(tǒng)產(chǎn)生智慧,并在與人的交互中迭代更新。
第七劍,模型更新
當(dāng)數(shù)據(jù)改變了,數(shù)據(jù)科學(xué)家是否需要無休止的重新披甲上陣?對于數(shù)據(jù)科學(xué)家,最尷尬的事莫過于:模型開發(fā)好了,模型需要應(yīng)用的業(yè)務(wù)場景卻改變了。傳統(tǒng)的評分卡模型是數(shù)據(jù)科學(xué)家基于經(jīng)驗開發(fā)完成的,并且每一次模型更新都需要數(shù)據(jù)專家團隊重新開發(fā)和部署。
最出色的數(shù)據(jù)科學(xué)家可以從數(shù)據(jù)中提煉價值,但他們會讓數(shù)據(jù)價值的挖掘過程并不一直依賴于他們自己的持續(xù)耕耘。數(shù)據(jù)科學(xué)家是機器的導(dǎo)師,真正優(yōu)秀的導(dǎo)師一定是“授機器以漁,而非授機器以魚”。數(shù)據(jù)科學(xué)家只應(yīng)該負(fù)責(zé)設(shè)計機器學(xué)習(xí)算法并將其部署上線,讓機器應(yīng)該具備直接從數(shù)據(jù)中自動學(xué)習(xí),并且根據(jù)數(shù)據(jù)的變化動態(tài)調(diào)整模型的能力。
數(shù)據(jù)科學(xué)家需要設(shè)計“監(jiān)控算法”,以持續(xù)監(jiān)控模型效果的變化、模型邏輯的變化以及數(shù)據(jù)本身的變化,從而讓模型實現(xiàn)自動更新。并且,數(shù)據(jù)科學(xué)家設(shè)計的模型在不同應(yīng)用場景分別學(xué)習(xí)后,機器便得到了普世智慧,這一技巧可以讓算法在新問題中也可以很好的發(fā)揮作用。
“問題定義——數(shù)據(jù)準(zhǔn)備——算法調(diào)優(yōu)——效果分析——模型部署——模型更新”是數(shù)據(jù)科學(xué)家工作的七個基本步驟。這數(shù)據(jù)科學(xué)七劍的有機配合,才能使數(shù)據(jù)價值最大化。并且,數(shù)據(jù)科學(xué)閉環(huán)體系意味著當(dāng)模型需要更新時,問題往往也需要被重新定義,而這個重復(fù)的過程往往能帶來解決當(dāng)前問題以外更大的知識發(fā)現(xiàn)。
以上,是數(shù)據(jù)科學(xué)家“七劍”的開篇。以后圍繞“七劍”,斬到哪,寫到哪。