Menu

作為「資料科學文摘」系列文的第一篇,在開始介紹一些優質的文章之前,請讓我稍微說明一下為何會有這系列文章的誕生。先說結論:我希望透過分享一些優質文章的重點摘要,讓更多人能更快地掌握資料科學領域的知識,找出自己有興趣的領域專研,並激盪出更多的討論。

在開始閱讀之前

或許所有職業皆如此,但個人認為資料科學家是前幾不「佛系」的一個職業,你需要擁有非常多知識來讓工作更為順利:

  • 特定程式語言如 Python、SQL 及 R 的使用方法
  • 統計分析方法
  • 建構資料管道(Data Pipeline)
  • 訓練並部署機器學習模型
  • 業界趨勢
  • ...

當然,你也可以選擇當個佛系資料科學家(如果你知道有哪間企業在應徵,站內信 500 P)。

不過身為一個(非佛系)資料科學家,我常需要閱讀大量的相關文章、新知,並且嘗試模仿文章內出現的演算法、分析手法,加以實踐並應用在自己的工作上。

愛爾蘭詩人奧斯卡.王爾德 曾說過一句名言

You are what you read.
─ Oscar Wilde

以資料科學為例,你讀越多相關文章,你就越接近一個資料科學家。不管要精通什麼能力,最快的方式都是透過「模仿」專家怎麼做的。透過閱讀大量的相關文章並從它們學習及模仿,我們可以更快地,且有效率地成為一個稱職的資料科學家。

以往我在閱讀完不錯的文章以後,都會在 Evernote 裡頭寫重點摘要以供自己之後做參考、連結不同領域的知識。在回顧的時候節省了自己大量的時間。有鑑於現在越來越多人對資料科學有興趣,透過分享自己的文摘,希望能讓沒有什麼時間的人也能快速地了解新知,並進一步閱讀自己有興趣的文章。

前言說得夠多了,讓我們來看看這週的文摘吧!

本週分享:機器學習、資料工程及 App 分析

這週想分享 5 篇文章的文摘,大致上可分為三個主題。這週因為想一次分享 Rachel Thomas 在 fast.ai 談 AutoML 的三篇系列文章,機器學習的文章比例會佔得比較重。

除了 AutoML 的系列文以外,閱讀順序不限:)

這篇介紹機器學習工程師平常在做些什麼,在理解這點以後,我們才知道中間有什麼地方可以自動化,以讓機器學習專案更有效率。

一個完整的機器學習專案通常會包含這些步驟:

  • 理解企業脈絡
  • 清理&準備資料
  • 訓練模型
  • 實際部署
  • 事後監控模型表現

針對每個步驟,文內都有進一步的項目細分以及解釋,推薦閱讀。儘管一個機器學習工程師不需要自己做所有步驟,了解它們會讓專案更為順利。

就算是專業的研究者,訓練一個深度學習的模型也不是一件非常簡單的事情。而這是 AutoML 以及其子領域,神經結構搜索(neural architecture search)嘗試要解決的。 Google 甚至號稱「只要我們有現在的一百倍計算能力,就可以取代所有機器學習人才」。

神經結構搜索或者 AutoML 領域可以幫助我們在「訓練模型」這個步驟的時候,訓練並選擇出最好的超參數(Hyperparameters)。

但如同上篇文所述,這通常只是機器學習專案的其中一小部分,資料科學家或機器學習相關人才並不會因此被全部取代且失業。

現在 AutoML 是非常計算密集(Computation-intensive)的:拿大量的 GPU 計算能力換取研究員的時間。但沒有大量計算能力的人,等 Google 等大公司把最佳化的架構推出來再使用或許是一個比較實際的方案。

DARTS 也是 CMU 與 DeepMind 在嘗試解決「神經結構搜索」這個問題時提出的一個架構,不過他們的假設是所有可行的模型之間是「連續的」,因此可以用常見的「梯度學習」的方式找出最佳模型。這個概念使得他們所需要的計算資源大量減少,值得關注。

作者認為 Google 在推廣 AutoML 的主張:「我們需要更多計算能力來做神經架構搜尋」值得懷疑,因為就算我們能自動化搜尋出最好的神經模型架構,如何用這些模型解決真正的企業問題、如何實際部署並持續改善機器學習應用等課題,都需要人動腦筋來解決,而這部分還無法自動化。

另外畢竟不是所有做機器學習的人都需要、且有(計算)能力使用神經架構搜尋來訓練自己的模型。但我們可以透過轉換學習(Transfer Learning)來使用已訓練過的模型(pre-trained model)來解決類似問題。與其想著自己也要做最夯的神經架構搜尋,不如多多善用如 Dropout、Batch Normalization 以及 ReLU Linear Unit 來強化模型的預測能力。

不過 Google Colab Notebook 是不錯的免費計算資源,可以善加利用。

資料科學家在進行各式各樣的分析前,首先需要做的事情通常是蒐集、整理並匯總各式各樣的資料來源以供分析。舉幾個例子:

  • 建立數據倉儲(Data Warehousing)
  • 做 A/B 測試的效果分析
  • Sessionization:了解使用者在一個 session 裡頭的探訪的網頁、點擊的廣告等活動

為了做這些分析,資料團隊需要建立可靠的資料管道及 ETL,來確保有資料可供分析以及保證資料的品質。

Airflow 是一個由 Airbnb 開發,以 Python 實作的工作流管理系統(Workflow Management System, WMS)。 Airflow 被設計來幫助資料科學家們專注在建構資料管道的邏輯,而不是擔心如果資料管道中間出了什麼差錯時該怎麼維護、重新啟動工作流。(Airflow 有會自己重試失敗工作、當失敗時通知工程師等方便功能)。

Airflow 現在已經進入 Apache 孵化器,前景可期。其作者 Maxime Beauchemin 在這篇用淺顯易懂的方式解說 Airflow,值得一看。手癢的朋友可以參考 Quickstart 以及 Tutorial

SmartNews 也有在使用 Airflow,我也寫了一篇給新手看的 Airflow 的指南:「一段 Airflow 與資料工程的故事:談如何用 Python 追漫畫連載」,你可以參考看看:)

多年前由 Facebook 開始使用,DAU / MAU 是一個 App 產業常用的指標,用來衡量使用者利用自家 App 的程度。

  • DAU:每天活躍人數(Daily Active Users)
  • MAU:每月活躍人數(Monthly Active Users)

DAU / MAU 則是這兩者的比例。可以想像當此比例越高,代表在每月活躍的使用者人數(MAU)中,每天活躍的人數(DAU)越高,可以說明使用者的黏著度越高。

但這篇重點在於說明不同服務、產品因為本身性質的不同,並不都適合用這個指標。像是 Airbnb 這種公司,有些使用者每年可能只使用一次(活躍次數一年才一次),但一次的消費金額很驚人。以 DAU 的角度來看這種顧客的話價值不高,但使用者的生涯價值(Life Time Value)卻很高。

雖然業界很常使用,不盲目使用 DAU / MAU 這個指標,而是依照自己的產品種類,選擇最能代表使用者價值的指標,並將其最大化才是上策。

結語

呼!以上就是這週的文摘內容了!儘管我們在這篇文摘裡頭只包含了 5 篇文章, 3 篇還是系列文,你應該也能感受到不同領域的知識在腦海中互相激盪吧!

在整理這幾篇文章的重點時我學到不少,希望你也一樣。之後會定期更新,可以隨時回來看看有沒有新文章。如果懶得每天打卡,但希望在新文摘出來的時候馬上收到通知的話,可以點擊下面的訂閱。如果你在閱讀完後有其他感想,也歡迎跟我分享:)

Stay tuned and happy data science!

跟資料科學相關的最新文章直接送到家。
只要加入訂閱名單,當新文章出爐時,
你將能馬上收到通知