數字裡的魔鬼:探索Airbnb的Data Science與Machine Learning

Alice Yang
11 min readMar 21, 2020

--

“Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it”

— — Dan Ariely, Professor, Duke University

“大數據就像青少年間的性愛:每個人談論它,但沒有人真正了解它; 每個人覺得其他人都在做,因此堅稱自己也做了。“

— — 丹·艾瑞里,杜克大學教授

被稱作是「21世紀最性感的職業」,人們對於「資料科學家」一詞懷有無盡的幻想,另一方面卻對「大數據」、「機器學習」等絢麗名詞背後的含義一知半解。究竟,什麼樣的人可以成為資料科學家?在矽谷的科技公司,資料科學家又是如何為公司創造價值?這集的專欄,就讓前Twitter、現任Airbnb的資料科學家 Robert來分享身為資料科學家在職場的觀察,以及「刻意練習」的自學心法。

談Data Science與Machine Learning

Q: 如何用「人類理解」的語言解釋何謂「資料科學」 和「大數據」:

資料科學的精髓在於,把原始資料,經過分析和整理,提供可執行運用的洞察資訊來讓公司做更好的決定。拜現今科技公司所賜,資料不止拿來做決定,還可以拿來做一些以前建不了的產品,像是搜尋排名推薦系統和個人化等需要大量資料才能建出來的產品。

至於「大數據」則是當你在建立資料產品的時候,資料量超越你的本地電腦可以運行的能力,就可以視為是大數據。

Q: 「資料科學家」的分類:

比起軟體工程師一詞存在已久,資料科學家相對而言是個新型態,並且成長中的領域,業界也沒有制式的分類,但我個人傾向把資料科學家分成兩類:Type A,A代表著分析和Type B,B代表著建造,分辨不同資料科學家類型的方式也很直觀,Type A 資料科學家的產出多為分析資料後的意見,提供給決策者作出決定,Type B 資料科學家的產出則像是 ETL pipeline、機器學習的模型,背後有個系統在運行,出了問題必須要處理。

Q: 好的資料科學家 vs. 壞的資料科學家:

除了技術能力之外,經驗或是技術不足的資料科學家往往只靠單一技術解決問題,但是我覺得好的資料科學家在面對問題時,不應該只依賴某種特定解法,而是能夠在當下的時間限制和擁有資源的權衡下,找出解決問題最佳的模式。

Q: 從Twitter到Airbnb資料科學家角色的轉換:

初入職場,我其實並沒有一個很明確的概念,加上工作在資料科學這個新的領域,我也是靠著經驗累積和與別人工作的過程中了解到如何成為一個好的資料科學家。在選擇方向上我會近乎「刻意」的選擇沒有嘗試過的新領域,就好比我在 Twitter 做比較多Type A 的分析、跑實驗工作,到了Airbnb之後,我便希望能夠接觸機器學習和資料工程相關的專案。

想要選擇什麼樣的專案來做也不是想像中的簡單,當我從 Twitter 到 Airbnb 後,因為我之前已經做了許多資料分析的工作,大家會想要延續你固有的技能,因此如果想要轉換方向,「時機」和「溝通」變得相當重要,我也是在一次與之前同個團隊,之後升到團隊當經理的同事聊天中得知一個運用機器學習預測 Airbnb 房子價值的專案,便就此打開我轉做機器學習之路。也是因為做了這個專案,我開始和系統團隊(Machine Learning Infrastructure team)合作,建立了人脈,從起初需要自己去爭取,爾後演變成「即使你不在會議室裡,任何有關機器學習的專案都會想到你」。

Q: Airbnb Plus 專案與機器學習:

影片來源:Airbnb利用機器學習提升房源照片分類準確度

Airbnb Plus 是在2018推出,主打「嚴選房源」,必須透過 Airbnb 的專人審核才能被認可,目的在於提供旅客更安心、更有設計感的住房體驗,吸引不同的客源,同時也為屋主帶來更多收入。我在這個專案負責的是,如何建立機器學習的模型來判斷特定房源成為 Airbnb Plus 的可能性,以下我也將分享這個專案的進程,以及機器學習在Airbnb內部的實踐。

第一步:了解問題及預估成效

任何資料科學都始於「到底需要解決什麼問題」,以 Airbnb Plus 的專案為例,要如何在七百萬個房源內挑選適合加入 Airbnb Plus,最具規模化的方式便是利用機器學習建立模型,如此一來每個房源便會有相應的分數,得以很快的判斷是否可以成為潛力邀請對象。在利用機器學習建模之前,若是採用先前無章法地尋找方式,可能一百個房源中只能找到一個,但若利用模型判斷後,準確率可以提升到每十個房源就有一個好的房源,如此一來便能大幅提升團隊的工作效率和精準度。

第二步:資料整理(Data Cleaning)及資料工程(Data Engineering)

機器學習模型需要去「預測」什麼樣的房源可以有資格成為 Airbnb Plus,現在我們的判斷方式是有一整個團隊的人力,每天去檢查房源的照片,來判斷能不能邀請成為 Airbnb Plus,因為我們有每個房子的特徵,像是價錢、住房率、評價數量、在哪一區等等,這些特徵可以讓我們計算每個房子的分數,便需要大量的資料整理和資料工程的工作。

第三步:建立機器學習模型

在每個房子有了相對應的分數之後,下一階段便是建立模型,有足夠的資料讓機器去「學習」,去判斷具有什麼樣特性的房子,能夠更接近我們想要預測的目標(成為 Airbnb Plus),在機器學習的過程中,能讓我們更加清楚什麼樣的特性對於預測結果的影響力程度。

第四步:模型上線

模型建立好之後,便要和現在的系統整合,當每天有新的資料進入到系統時,機器學習的模型就會判斷哪些房源比較有機會成為 Airbnb Plus,確保 Operations team 收到的資料有經過第一階段的審核,團隊的人力會對每個房間評分(房間內裝、擺設、敘述…等等),再把評分的結果傳給模型,而模型可以根據評分的結果從資料庫找其他的房源進行比對,由此可以學習到房源的特性和影響評分的關聯,餵給模型的資料越多,預測的結果也會越準確,如此一來就形成一個機器學習迴圈(feedback loop)。

第五步:模型調整與修正

上線之後我們會定期針對判斷的結果分析,特別是對於模型和人工判斷結果不同的房源,做進一步的檢查,來決定是否需要增加或是修正特徵,再重新讓模型學習。以 Airbnb Plus 專案為例,我們想要達成的目標是「全自動化」,最終希望能夠移除所有人工處理的階段,讓機器學習來分類、評分、邀請 Airbnb Plus 房源。

“機器學習的工作其實不如外界想像的如此光鮮亮麗,很多時候是非常細瑣的工作,你會發現加了某個特徵之後模型的預測結果變糟了,或是變好了,你要很清楚的知道是什麼原因影響了結果,再進一步的調整,這也是我覺得機器學習繁複,但也有趣的地方。”

Airbnb HQ @ San Francisco

談自學

Robert曾在 DataCamp上的訪問中提到自己從「慣於使用筆證明數學原理」的研究生,轉變到每天離不開程式碼的資料科學家,中間的過程靠著持續不斷的自學,讓人不得不好奇如此有架構的學習心法究竟如何培養?在工作之餘又該如何長保學習的動力呢?

Q: 從 R 到 Python、資料工程和深度學習,如何建立個人化課綱(personalized curriculum):

我覺得我比一般人更「挑剔」,從大學的時候就會去找評價好的課、好的教授和找好的教材來上,同時我也有記錄學習過程的習慣,因此當我確定我要學習新知識的時候,我會花一到兩週的時間搜集我覺得「看起來不錯」的學習資源,不管是線上課程、書本或是部落格,至於要如何找到適合自己的教材,我會在同個禮拜,把手邊蒐集到的資源,針對某個特定觀念快速的瀏覽一次,從過程中我就可以了解到什麼樣的資源是適合自己的。這個採樣(sampling)和精選(curation)的過程其實需要投入時間也非常個人化,但我覺得是不管是什麼樣的學習都適用的方法。

近幾年我傾向學習和工作領域相關的知識,如此一來我在還沒開始學習前,就可以清楚地知道這個知識該如何應用在工作上,在瀏覽材料的同時,我也會開始制定階段性的學習進度,當我完成了初步計畫後,很重要的關鍵是我會請教我認為「在這個領域上很了解,又很會教學」的人,來「驗證」我的學習計畫,如此一來我就可以清楚掌握該學與不該學的知識點。自學其實就是一個拼湊與建立概念的過程,與其盲目的只照著某堂線上課程學習,我覺得一開始的探索、挑選,到其後的反饋讓我學習到的更多。

Q: 在工作之餘,如何保持自學的動力和閱讀習慣:

我個人自學的慾望算是很高的,在時間管理上,因為我每天有兩個小時的通勤時間,我會把這個時間拿來學習,如果是書或是部落格文章,我就會在火車上看,影片的話我會事先下載,再以兩倍速來看。自學是個很花時間的過程,但是「一分耕耘,一分收穫」,時間久了,你也會發現自己有達成某個目標的信心和動力。

至於閱讀習慣,我最大的資源來自於 Twitter,我會在 Twitter 上面追蹤我感興趣領域的專家,時不時的就會發現有趣的 tweet,近期我開始比較系統化整理,把一些平常沒時間好好看的連結用 App 保存起來,像是NotionPocket等,等到週末再一次性的瀏覽,真正覺得有用的引言我會另行標註。

我覺得閱讀對我的重要性,可以用以下的引言來概括:

“In my whole life, I have known no wise people (over a broad subject matter area) who didn’t read all the time — none, zero. You’d be amazed at how much Warren reads — and at how much I read. My children laugh at me. They think I’m a book with a couple of legs sticking out.” — Charlie Munger, talking about Warren Buffett and himself

“在我的一生中,我從沒遇到有智慧,但卻不閱讀的人,一個也沒有。你會很訝異巴菲特讀了多少書 — — 也訝異我讀了多少,我的孩子老是嘲笑我,他們認為我就是一本書,只是多長了四隻腳。”

查爾斯·孟格,波克夏·哈薩威公司(Berkshire Hathaway)副董事長(董事長為華倫·巴菲特)

後記:Robert 說近幾年自己每年都會幫自己設定一個學習的目標,2016年是 Python、2017年是資料工程、2018年是深度學習,讓人不禁好奇那麼他 2019 和2020年的學習目標為何?在 Airbnb 邁入第 4 個年頭,Robert 說,他並沒有想要成為「地表最強資料科學家」(因為不可能),也沒有只想擔任Data Science Manager,他希望做的,是改變資料科學家的工作模式,因此他在下半年即將轉往 Airbnb 的系統團隊擔任產品經理:

“我心目中資料科學家的工作模式,和現在在 Airbnb 運行的還有ㄧ段差異,因此我選擇到系統團隊,以產品經理的角色來管理所有 Airbnb資料科學家使用的工具,從過往的使用者變成建造者,我的角色變成不只是解決單一問題,而是能夠改變所有人的工作模式,這樣的影響力是遠比做一個 Data Science manager 來得更廣。而我也深信一旦有了好的系統、好的底層架構,資料科學家就可以把時間花在更有意義的地方,而不是花費大量的時間做底層的工作。”

「領導、溝通、影響力」這三項軟實力的增進是 Robert 給自己在2019和2020年的課題,究竟他會在這樣的轉型之中發掘出什麼樣的學習模式呢?讓我們拭目以待。

希望這篇文章對你有幫助,這篇貼文達到200個分享, 將有機會邀請Robert來分享下集,如果你對Airbnb、機器學習、資料科學或是自學有任何疑問,請在底下留言,也歡迎分享文章到相關的社群!別忘了到我的專頁/IG/Youtube看更多文章!

--

--

Alice Yang

Software Engineer @ Bay Area. I also write tech/education related article. 👩‍💻 https://linktr.ee/aliceinsiliconwonderland