Tuesday, December 15, 2020

數據科學家?數據分析師?數據工程師?

  數據分析這工作已經是幾十年來就有的工作但這幾年由於聽到越來多數據分析師、數據科學家、數據工程師這樣的分法。老實說,從事這行業十幾年,從金融業跨到互聯網行業、跨到兩岸,我還真得努力從一些業外人士的分類,才能知道自己究竟是數據分析師、數據科學家、還是數據工程師。


  • 說明對象

  如何分類取決於你是角色,是報導?招募員工?同業交流?

  也取決於你的聽眾,是想往這個方向發展學生?想長知識的路人甲?


  數據分析師、數據科學家、數據工程師的分類是為了讓沒接觸過數據分析、機器學習、人工智慧的朋友對於這個行業有個快速的認識(雖然我覺得這樣的分類是針對數據分析這個方向的分類而已)。但如果你是對這個行業感興趣,甚至想進入這個行業,能讓你透過這些分類讓你知道接下來該怎麼做(例如求職、學習),才是對你最有幫助的分類。這篇是站在從業人士招募員工的角色 ,對想往這個方向發展學生或是社會新鮮人的一些介紹。從事這個行業並不一定要有寫程式的能力,只會Excel也能產出高價值的分析。


     先做個結論:業內真沒這樣分

 

  會有這樣的結論來自於很多方面的因素。數據分析師、數據科學家、數據工程師這樣的分類並無法讓應聘者衡量自己是否符合工作需求,也無法讓想往這個方向發展學生知道自己該學習哪些能力

  • 舉個栗子

  必須先說明的是:數據分析是個基本技能,小到你使用Excel,大到Google Facebook這類面對每天數十億筆數據的網路巨頭,都算是數據分析的領域。這裡很難對各行各業對於在數據分析上的分工進行分類。只是舉個例子讓不同腳色的讀者思考一下,怎樣方式才是對你來說最能夠理解的工作分類

  先假設一個公司內部的情景,一家網路購物平台為了迎接某個剁手節起了一個專案,專案目標是為了提升銷售量,參與專案的部門與任務如下:


財務部:擬定專案預算,隨時更新各品類的銷售成本、營銷費用、廣告投放收益

市場部:預測銷售量,擬定促銷策略與規劃廣告投放。剁手節前兩天開始每小時產出各種報表,包括銷售情況、客戶畫像、庫存分析、優惠券成效分析、廣告效益分析

研發部app與網頁設計對瀏覽的客戶提供精準推薦,並建立客服機器人、以及即時爬取其他競爭對手網頁和手機app上的數據

資訊部:提高剁手節當日的系統乘載量、建立即時報表平台


  你會發現數據分析師、數據科學家、還是數據工程師這些分法是沒法描述這些工作的。有的是分太粗,有的是分太細。

     以資訊部的工作來說,可以細化到app/網頁設計、app埋點/網頁cookie設計、數據庫、建設能夠同時串聯即時交易系統、廣告商、倉儲系統、推薦模型引擎等系統的數據中台、能支援管理決策的報表系統。這些工作內容差異這麼大的都叫數據工程師嗎?或是還得再分類?這樣的分類對於培養能力有幫助嗎

   建立客服機器人算是數據科學家嗎?抓取其他同業的網頁數據是數據工程師嗎?

   財務部、研發部和市場部都需要對數據進行分析,都是數據分析師還是都不是?數據分析是基本技能還是Domain Know How是基本技能?104上面是要求財務/行銷背景會寫程式還是程式背景但懂財務/行銷?

   對客戶提供精準推薦好像是數據科學家,但機器學習能做一個複雜沒人理解的模型,用Excel做個多維度的對應表好像也行,至少推薦規則清楚明瞭。所以這裡的數據科學家的職位要求是要懂機器學習模型還是邏輯與挖掘能力強?

   而市場部每小時要出一份報表,光從各種數據源的下載數據就不只一個小時了,還沒開始算就超時了。設計報表規格結果資訊部跟你說做不到,那究竟是你需求的問題還是資訊部的能力問題?你懂數據中台、報表平台、數據超市、某個程式語言,你自己做可能就半天能出報表。你不懂這些就得下需求單排隊請資訊部開發。更核心的問題是:不懂基礎的技術問題,你就只能在現有的數據池中,以現有的方法"監控數"據,而不是"挖掘"數據的價值。

   至於那些經驗豐富的部門長官可能不會做數據分析,但他們依據經驗的預測可能都比你統計模型的預測還準。

  •  數據科學家在做模型?

   好吧,數據科學家好像是在做一些很深奧的預測模型,但建立預測模型其實大部分時間是在做一些dirty work

如果你熟悉數據科學的一些基本原則,就會發現解決實際應用問題,處理 coding 問題,本質上是和數據打交道。可令人驚訝的是,我時常忘記這一點,很多時候,我著眼于建立更好的模型,而不是去提高數據的質量。

建立一個更大的模型、使用更多的運算資源可以在短時間內給你一個很好的結果。然而,出來混總是要還的,接下來你會遇到很麻煩的

 

   你會發現這些所謂的數據科學家,其實做的跟所謂的數據分析師也差不多。大部分時間都在填數據處理上一路上的坑,基本上你會Excel差不多就懂了,差別只是在不同的程式語言裡找出對應的寫法

   舉金融業評估個人和公司還款能力的指標來說光清洗這些數據就夠耗掉你開發一個模型的大部分時間了:


   以上面公司財務指標毛利率來說:毛利是-100營收也是負的-100(例如跨年度退貨),算出來的毛利率-100/-100100%。極少數的異常案件可能不會影響你模型的預測效力,結果是你的模型很準但這樣的scorecard模型一上線就等著被各部門圍剿了。這問題引發出一個很實際的核心問題:不懂前端的數據收集、中端的業務邏輯、後端的上線佈署的所謂數據科學家,是會很快陣亡的,包括你和模型,甚至是你老闆。

   數據科學家的核心其實是對數據的了解,這些了解可能來自於每天閱讀公司報表、來自於銷售財務等領域的Domain Know How、來自於不斷的假設與驗證。你會驚訝:這不就是所謂的數據分析師在座的?

   再舉個例子:公司的數據庫裏面有借款客戶什麼時候瀏覽網路銀行/app上的還款時間和金額。那麼瀏覽時間次數越多,代表客戶越能按時還款?你的猜想是什麼?


  • 數據科學家與機器學習

   數據科學家其實是個很廣泛的稱呼,與機器學習的關係也不是那麼直接。以上面對瀏覽的客戶提供精準推薦的例子來說,可以根據年齡、性別、歷史購買紀錄這些客戶畫像用簡單的Excel做個統計分析或是回鍋模型。也能夠用機器學習模型做個分類模型。會不會機器學習模型並不是數據科學家的必備條件。


  機器學習在某些領域是必備能力,例如語音與影像識別,但這些領域的專家不會稱作數據科學家,一般會稱作算法工程師,例如NLP(自然語言)算法工程師、圖像算法工程師。廣義來說他們算是數據科學家,但你稱呼他們為數據科學家時,他們真的會愣一下。 

  必須提醒的是,這些廣義的數據科學家並不專注於模型或算法而已,從模型開發階段到上限部署,任何一個流程出問題都會造成你開發的模型失準。例如前端數據錯了你沒發現你有責任、數據清洗沒洗乾淨(例如上面說的毛利率負負得正)你絕對逃不了責任、模型請開其他部門同事在計算引擎上轉寫成其他語言時你沒測試出問題還是跟你有關。

  • 總結

  數據分析是個很廣大的領域,有傳統的商業智慧,也有新興起的人工智慧。應用端從商業決策拓展到了生活中的IOT。這些職位如何分類跟你的目的有關,找到一個對你最有幫助的分類才是最好的分類。