KKStream 實習生從資料人才種子計畫,啟動數據職涯起點

資料人才種子計畫是 ALPHA Camp 與 iCook 合作的最新課程,學員要用六週的時間,實作出推薦系統。課程的安排爲前三週學習、後三週實作,這其中還穿插許多能提升學習效益的活動。課程前,沒什麼業界經驗的我感到非常焦慮。但在學習過程中,漸漸對自己有了小期許。到後來,在同儕與導師學習下,收穫滿滿,並啓發我進修相關學位。非常榮幸能夠參與這個極具挑戰性的課程!

課程內容與學習體驗

前三週,課程提供影片及文章讓學生學習,再以課程內的案例,實作該類型 (Ruled-Based, Content-Based, Collaborative Filtering) 的推薦系統,並以提升 recall rate 為目標。

後三週,結合所學的各類型推薦系統、進行應用。該資料集為 iCook 愛料理的真實用戶資料,且每週也都有要完成的程式作業。

課程也安排了許多活動,提升學習體驗。每週都有工作坊會討論學生各自學習的內容和分析個案;在show & tell 時,則會挑選三位同學的作業與大家分享。

焦慮與期許

我很晚才開始學習程式。大學以前,我從沒有想過會主修資訊工程和資訊管理;更想不到會在 KKStream – KKCompany 種子培育計畫當實習生時,也有機會透過資料人才種子計畫,學到如何設計一個完整的推薦系統。

參與課程前,有提及要活用 Python 套件,例如:numpy 和 pandas。這些我都只是略懂而已,所以很怕自己會跟不上大家,更擔心做不出作業。

在第一次工作坊,我發現同學們都是在各領域中有相當程式經驗的人,尤其很多本身就是資料分析專業,也有人是在電商產業工作,這些都令我感到與他們在背景知識上的差距。

但我決定要更努力地向這些前輩們學習。我對自己的期許是:今天的我,要比昨天更努力!

與同儕學習

身為小小實習生的我,在寫第一個作業時感到巨大的挫敗感,因爲我沒有處理數據的相關經驗,根本不知從何開始。所幸幾位同學很厲害地在作業繳交期限前兩天就寫出作業,而其中一位同學之前一起帶過營隊,早已見識到他的能力、學習方法與態度。我打從心底崇拜他,尤其欣賞他清晰的邏輯思路,和寫程式的方式。我才得以觀摩、參考,進而獲得解救。

之後每一個作業,我都會先參考其他同學的做法。一個原因是害怕自己做不好;另一個原因是想看看其他有數據相關經驗的同學,會以什麼角度切入作業和問題。

有位同學是在 show & tell 時讓我印象非常深刻。他所寫的 README 檔案令人非常驚艷,其中敘述的程式邏輯不但有順序性、很有條理,也有實作出課程所提到的延伸作法 Matrix Factorization。另外,他分析資料的方式也很特別,例如利用商品價錢、或業務的角度切入。而在圖表的部分,他也具有很棒的統整性。從他的產出,可以看出資料集的大方向。

和這位同學相比,目前我還沒辦法在 colab RAM 的空間限制下,做出詳細且具有統整性的資料分析,更沒有和他一樣的資料洞察力。我對他佩服地五體投地,是我主要學習的對象之一。

在課程接近尾聲時,有位同學是在實作後三週 iCook 專案時,模擬自己就是要去愛料理平台上找食譜的使用者,並演練出使用者實際會用怎麼樣的詞語做搜尋。這位同學實作出以多種方法混和出來的推薦系統。這提醒了我,所有推薦系統都要以使用者的角度去思考,才能做出能吸引人的推薦系統,讓使用者長期留在平台上。

與導師學習

後三週課程是由 iCook 愛料理技術長 Richard 介紹愛料理如何打造出他們的推薦系統。從中,我更能夠從商業面和使用者導向面,思考資料背後的意義,也更願意去嘗試不同的可能性。

愛料理是 user-generated content,資料是創作者上傳的食譜,故在上傳格式上,難免會有差異。例如,是否有放圖片、是否有將食材做主食和醬料的分類…等等。

當食譜間的關聯性是食材,文字處理便是推薦系統中一個很大的 key factor。

技術長 Richard 更分享,一些食譜其實沒有辦法被完全歸類於某個類別。例如,隨處可見的義大利麵,應該是放在「異國料理」,還是「家常菜」中呢?聽到這邊,真的很有感觸。因為我就是把義大利麵當家常菜煮的人!

或者,哪些菜應該算是「年菜」呢?能正確地找出使用者真正所需的食譜,就是愛料理推薦系統的功能之一。

Because after all, users are the one who create data.

Key Takeaway

  • EDA 很重要。統整性地看出每個欄位的特徵和用處,在後續的推薦系統中,才能判斷哪些欄位是重要的指標。
  • 常以使用者觀點思考,才能找出能讓推薦系統更好的方法!
  • 在實作前,練習整理好自己的邏輯和思緒。這能幫助自己熟悉資料、提升掌握度,也能進而提升後續實作的思考速度。
  • 能用的方法就是好方法。越複雜的算法,不一定能提升 recall rate 。後來,發現大部分的同學都是以最基礎的 ruled-based 為主。而實作出最高分 recall 的方法也是 ruled-based 而已。

未來方向與期許

六週的時間,說短不短,說長也不長。課程眨眼就過去了,但我知道自己成長了好多。每次工作坊,我都收穫滿滿。而課程資料量也總是大到,時常來不及處理就結束了。幸好,我抄了許多筆記,未來能慢慢回味、吸收、再應用。在這樣優質的學習環境中,我和同學們一起提升能力,並朝著各自的目標,努力地前進!

資料人才種子計畫,讓我瞭解到資料集的多變性和複雜度,這使我想轉換跑道至資料工程。未來,我規劃要去德國慕尼黑理工大學 TUM 讀資料工程與分析碩士。期許能應用課程所學在留學生涯中,慢慢地增進自己的能力。更期待在未來職涯中,能以在課程中的累積,面對各種挑戰。

很感動、也很感謝 ALPHA Camp 編排、用心規劃這樣精彩的課程;iCook 無保留的分享、和認真參與課程的大家。最後,也謝謝我的主管,讓我知道有這個這麼棒的課程。

本文轉載自作者部落格