在業界做資料科學家是怎麼樣的一種體驗?

rplot

跟我大學剛畢業的時候比起來,越來越多學生或已經有職場經驗的人想要成為「資料科學家」(Data Scientist) ,有許多讀者會私訊我怎麼學習資料科學以及有沒有推薦類似的課程,但其實比較少有人問我實際工作中我到底在做些什麼、資料科學家的職涯規劃與成長路徑是什麼?其實,與「如何成為一名資料科學家」相比,我認為更重要的問題是「為什麼我想要成為一名資料科學家」。因此,今天特別想寫一篇文章,跟大家比較仔細地講解資料科學家這份工作的內涵是什麼。

 

資料科學家的工作內容

 

之前在大鼻觀點曾經有跟大家分享過,資料科學家其實有分成三個 track:分析 (Analytics)、推論 (Inference)、算法 (Algorithm),當然在小公司可能不會分的這麼仔細,在大公司則可能是以其他的職稱 (Machine Learning Scientist, Data Analyst, Consutlant, Business Intelligence Analyst, etc.) 來描述資料科學相關工作職位。所以,建議大家在找工作時,不一定要侷限於職稱,可以多斟酌一下職務內容,會意外發現其實跟資料科學相關的工作比想像中的多。以我自己過去的工作經驗而言,不論是做哪個 track 的資料科學家,都不外乎有幾項特別常見的工作任務:

 

  1. 釐清問題:

    1
    不論專案是 CEO 開的、PM 開的、還是 DS Manager 開的,且不論你是資深還是年輕的資料科學家,「釐清問題」永遠是最重要的。比如說,我在當顧問的時候,客戶時常會請我幫忙做實驗設計與分析, 在一開始我一定會釐清:這個實驗的 key stakeholders 是誰?實驗的價值 / 目標是什麼?你預期的 output 與 learning agenda 是什麼?又或者是,以前 PM 開專案的時候,可能會說「我們專案的目的是希望能增加流量」,這時一定要很仔細的討(砲)論(轟):流量的定義是什麼、有哪些方法是可以用來提升流量的、是網頁還是手機的流量、流量增加對公司的好處是什麼?
    1

    為什麼釐清問題這麼重要?除了能夠有更多背景了解幫助我們設計更好的解決方法外,還有一個原因是:時常討論之後發現要解決的問題與遠本設定的完全不同!如果一開始沒有釐清,等到專案到 2/3 時 stakeholder 突然跟你說「這不是我要的」,不但需要打掉重練,更不好的情況是,資料科學家可能會被貼上「溝通能力不夠好、不瞭解商業問題」的標籤,使自己的價值收到損害。因此,身為一個以分析為專才的職業人士,為了伸張自己的價值,我們時常得比領域專家有更清楚的邏輯推理能力,協助釐清問題的本質,才能夠避免做到低價直的專案。
    1

  2. 設計解決方案:

    1
    在工作中,資料科學家很常需要設計所謂的 end-to-end process,從資料蒐集與存取、ETL 的中間表格、資料建模、模型的效能優化,甚至到最後視覺化 / 前端開發  / 寫成 production API,我們都時常要參與到步驟的設計與細節確認。因此,雖然我們需要知道怎麼實作每一個步驟,但對於這些領域有基本了解其實相當重要!
    1

    剛開始工作的資料科學家,需要設計的方案可能範疇比較小,比如說:選取可以改善模型預測能力的特徵、建立一個比較簡單的資料報表等等,但隨著經驗越來越多,會需要設計更大的解決方案,比如說:建立公司的 A/B 測試方法論、設計一個新的推薦演算法等,這個時候會更常參與到不同部門的會議與他們溝通釐清需求,並提供解決方案的設計建議。
    1

  3. 清理資料/規劃資料蒐集方法:

    1
    資料科學家很重要的一項工作,是確保進入分析所需要的資料能夠被正確的取得,因此就算有時候有其他資料工程師可以幫忙清理資料跟處理資料,我們時常還是需要去定義資料清理的邏輯(比如說:過濾離群值、串聯不同個體的特徵、打標籤的邏輯等)。又或者是說,時常我們需要提出資料蒐集的需求,不論是需要購買或爬取外部資料,或是產品新功能的事件定義與蒐集方法等,我們都需要提供想法與設計建議。

    1
    在清理資料與規劃資料蒐集方法的時候,特別需要注意「資料解析度」(Data Resolution)。「資料解析度」有兩個重要的問題一思考,一是「量測尺度」:資料蒐集個體的等級,比如說:零售業的產品階級通常是 UPC (Universal Product Code) -> SKU (Stock Keeping Unit) -> Category -> Department -> Division,門市可以以 店舖 -> 區 -> 城市 -> 地區 -> 國家的階級架構。
    1

  4. 定義關鍵衡量指標:
    1

    另一種很常見的任務,是定義「關鍵衡量指標」(key metrics),這類的指標可能上至整個部門的 KPI,下至執行細節的衡量指標。比如說,假設 Netlix 在優化他們的推薦系統,在部門層級的 KPI 是「平均每月每人觀看時間」,但預測的 metric 可能是「對於特定電影標題的點擊率」;另外,點擊其實可以分為「點擊影片介紹」、「點擊影片播放」、「在特定關鍵詞搜尋中使用者點擊影片」。我們需要根據商業上的目標與需求,具體定義出預測目標與衡量指標。

    1
    比較偏向 Analytics track 的資料科學家,通常也會協助釐清不同指標間的關聯。比如說,Netflix 很關係用戶的續訂率,我們會去研究什麼樣的指標是續訂率的領先指標,研究後發現「前一個月的觀看總時間」是這個月用戶續訂的關鍵,因此「充足多元的內容以提升用戶觀看時數」就變成 Netflix 的重要策略。另外,我們也可能會去拆解指標,比如說:月活躍使用者數 (MAU) 可以拆解成「新用戶數」(New Users)、「持續用戶」(Returned User)、「返還客戶」(Resurrected User),接著去分析如何增長新用戶數與持續用戶數。
    1

  5. 設計模型與演算法:

    1
    設計模型與演算法,算是我自己在資料科學工作中比較喜歡的事情。我過去做過很多雜七雜八的模型設計,比如說:預測一部戲劇的上線後的觀看次數、產品的生命週期分群、將不同公司的產品 spec 作分群、預測信用卡戶的活卡率跟長期價值、預測門市關店對於其他店鋪的影響、將使用者的偏好做分群、分析市場層級的實驗成效等等。在這個過程中,其實相當考驗資料科學家對於領域知識的熟悉程度,以及對於不同類型模型的掌握程度。


    在設計模型與演算法的時候,其實很講求「快速迭代」:不論是特徵工程或是嘗試多種演算法,應該都是由簡單而複雜,而且能夠快速建立 prototype、進行 proof-of-concept 專案。為了能夠快速找到可能的解法,這時「程式撰寫能力」與「演算法的熟悉程度」就變得額外重要。比如說,降維有很多種方法,用 PCA 比較適合還是用 t-SNE 比較適合?如果能夠快速辨認比較適合這個問題的演算法,其實會讓你有更多時間去挑選更好的特徵以及嘗試更多不同的模型。

  6. 溝通與專案管理:


    資料科學家時常需要與不同類型的人溝通,以我自己來說,我溝通的對象可能從公司的 CEO、各個 function 的大老闆、PM與分析人員們、軟體與資料工程師們、到自己 team 上的老闆與同事,不同的人看事情在意的點其實不一樣,比如說:對 PM 溝通時,通常需要跟他講 Impact – High-level Process – Risk – Next Steps,跟軟體工程師可能是以 Jira 或 spec 當作溝通媒介等等。另外,雖然有時候我們一直在講要跟非技術背景的人講重點,但有時候他們其實也會好奇你背後的方法,不論是他們自己想學習或是他們對分析的黑盒子有疑慮。為了整個組織的資料科學成熟度,如何把複雜技術用簡單的話語溝通也是需要一直學習磨煉的。

    1  
    專案管理的部分,除了溝通之外,有兩個技能會是工作上時常需要做的:一是排定優先順序 (prioritization)、二是估計時間。由於日常中會有許多大大小小的任務,為了確保分析結果能夠順利的產出,我們要很清楚哪些事情一定要先做完,以及要花多少時間做完。剛開始不太會排優先順序的以及估不準的時候,可以先依照「影響大小」、「風險」與「技術難度」三個面向任務做排序,再將這些任務與你的經理討論,請他也協助你去調整優先順序,這樣有兩個好處,一是你可以有效地從資深團隊成員身上學到東西,二是能夠正確設定期待,確保團隊了解你的工作進度並在適當時能幫助你完成任務。

 

資料科學家的職涯成長路徑

 

許多人都會想了解「資料科學家」的職涯發展,通常決定資料科學家的關鍵考核標準真的就是如紅杉資本所說的:影響力 (Impact)。在比較多執行任務的新人時期,重點時常在於:你做的分析能不能夠使關鍵績效指標改善,你做的演算法能不能夠讓流程變得更簡單快速,到了比較資深的時期,很多時候是要思考「我們能不能夠使組織更 data-informed」、「我們的核心產品有哪些是可以透過機器學習進行優化的」、「怎麼樣能夠利用資料科學讓我們的商業風險降低」。另外,隨著職涯發展,也會慢慢培養出跨領域的視野,比如說:一開始可能是在風險領域中優化信用評分卡跟做實驗測試成效,逐漸擴展到整個信用風險,到整體的商業風險,最後可能是風險與消費者擴張的平衡等等,我們會逐漸從解決單一問題,到評估整個部門甚至是商業領域的資料科學機會點與價值。當然,你也有可能成為線上內容的推薦系統專家,但其實這其中也是跨領域視野,比如說:一開始只會做 contextual bandit 演算法,到最後你可以做到將演算法與商業邏輯與用戶體驗相互結合,提供更自然的互動機制。

 

從上面的內容,大家可以發現做資料科學其實是需要相當大的投入,而且工作並不單純只是建模,很多時候也有許多產品經理、商業分析、以及資料工程的任務需要完成。因此,大家在往資料科學的道路邁進時,我會建議:

  1. 建立堅實的程式撰寫基礎,尤其是 R 語言或 Python (通常不需要兩種都會),以提升工作中快速迭代與實踐模型的能力
  2. 了解模型背後的機制,而不單只是利用套件,才能夠根據對應的資料科學問題找出最有可能成功的模型
  3. 接觸不同的領域知識,比如說:產品經理、行銷分析、供應鏈管理等,市面上有很多好書能夠幫你建立基本知識體系
  4. 練習與不同背景的人溝通你新學會的演算法 / 新完成的分析專案,尤其是從「領域問題 – 解決方法」的角度出發

 

有關 David’s Perspective 的最新文章,都會發布在大鼻的 Facebook 粉絲專頁,如果你喜歡大鼻的文章,還請您按讚或留言給我喔!

大鼻觀點:https://www.facebook.com/davidperspective/

  • 想了解如何以 R 語言進行數據分析與資料科學專案嗎?快來看看全台最受歡迎,評價 4.95 / 5.00,近 1000 名學生的線上課程:https://hahow.in/cr/ranalytics
  • 想學習常見的文字探勘技巧嗎?新課程「R 語言和文字探勘」募資特價中:https://hahow.in/cr/rtextmining

About David Huang

目前於哈佛大學商學院攻讀量化行銷博士,曾任 Migo.tv Data Lead、Mastercard Data & Services 顧問、InrayTek 資料科學家。過去曾協助東南亞與大中華區的領先企業導入資料科學架構,解決使用者體驗優化、個人化推薦演算法設計、客戶偏好分析、新產品導入與訂價、客戶長期價值管理等重要商業問題。

1 Comment

  1. 謝謝您的分享!!
    給要往這個領域工作的新鮮人
    一個很棒的參考
    也讓我們讓資料科學家這個職稱
    有更具體的認識。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *