【學長姊帶路】Taboola 、台達研究院、工研院、群聯、仁寶、英業達、永豐 資料科學工程師 面試經驗

原標《資料科學面試經驗( Taboola 、台達研究院、工研院、群聯、仁寶、英業達、永豐商業銀行)》

文/Z.E.Y.

壹、背景

⒈ 國立清華大學-工學院學士班   

第一專長:化學工程學系   

第二專長:工業工程與工廠管理學系

⒉ 國立成功大學-工業與資訊管理研究所

⒊ 國立成功大學-統計學課程助教

貳、自學資源 ㄧ、數學相關知識

⒈ 線上課程

① 高婌蓉教授-微積分

② 莊重教授-線性代數

③ 鄭少為教授-機率論 、鄭少為教授-統計學、鄭少為教授-數理統計

⒉ 教科書

① S. L. Salas , G. J. Etgen , E. Hille – Calculus: One and Several Variables ② S. H. Friedberg, A. J. Insel, L. E. Spence – Linear Algebra ③ K. Hoffman and R. Kunze – Linear Algebra ④ K. Hrbacek, T. Jech – Introduction to Set Theory, Revised and Expanded

【學長姊帶路】Taboola 、台達研究院、工研院、群聯、仁寶、英業達、永豐 資料科學工程師 面試經驗
根據面試經驗,程式相關面試考題主要針對 Python 。

二、資料科學相關知識

⒈ 線上課程

① 林軒田教授-機器學習基石 、林軒田教授-機器學習技法

② 李宏毅教授- Machine Learning (2016~2021)

⒉ 教科書

① P.-N. Tan, M. Steinbach, A. Karpatne, V. Kumar – Introduction to Data Mining

⒊ 工具書

① B. Lubanovic – Introducing Python

② J. VanderPlas – Python Data Science Handbook

③ A. Géron – Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow

④ Beighley, Lynn – First Head SQL

⑤ 洪維恩— C 語言教學手冊

⑥ 程杰-大話資料結構   

參、準備方向

一、程式   

根據面試經驗,程式相關面試考題主要針對 Python 。因此,程式相關筆試題目大多為 Python 語法。程式設計方面,則是參考 LeetCode 考題,難度大概落在 Easy 、 Medium ,並且專注於非動態規劃問題。   

根據上述,我認為將 Python 作為主力程式語言以熟悉語法,並以 Top 100 Interview Questions 作為練習。如此一來,便可以應付大部分的面試問題。然而,對於比較偏重工程的公司,這樣的準備方式可能遠遠不足。因此,可能需要其他版友的心得分享了。

二、機器學習理論  

關於機器學習理論,我將林軒田教授、李宏毅教授在課堂上教授的觀念,以及在研究所學到的資料探勘、機器學習所提到的概念精讀。包含模型的數學、統計學概念、概念間的關係等等。而在串接這些理論概念,所使用的數學工具,都可以在鄭少為教授統計學、莊重教授線性代數中學到。   

然而,我認為這些理論不需要太深入地研究。主要原因是所花費的時間成本過高。再者,實際在面試時,對於機器學習的概念講解得太深入,可能會面臨兩個問題:面試官可能不那麼在乎數學理論,僅以任務完成為優先;太過理論會讓面試官認為你對工程沒有興趣,甚至擔心是否只對理論感興趣,無法適應業界。因此,我認為對理論背後的數學,可以稍加研究即可,不需要完全記憶模型的推導過程、統計理論的支持等等。唯在推導過程中,使得推論成立的條件必需稍加注意。

三、數學   

在面試過程中,可以發現統計學的重要。甚至某些公司對於統計學的要求,不是理工科所開設的統計課程能夠支撐。因此,我認為如果想要將統計學運用在工作中,數理統計是基本要求,機率論則是理解統計學重要的理論,因此建議如果希望透徹了解模型背後的意義,機率論與統計學必須有一定的掌握。   線性代數在面試過程中,出現的頻率不高。比較重要的部分,我想是矩陣分解、逆矩陣相關概念。學習線性代數,我很推薦參考 K. Hoffman 與 R. Kunze 所著的教科書。研讀完這本書,能夠以較高的觀點理解這些理論。

最後,我推薦 K. Hrbacek 與 T. Jech 所著的集合論。這本書大大地改變了我對於數學理論的想法,也讓我更理解數學理論是怎麼被建立、發展的,對於學習理論有很大的幫助。 肆、面試經驗   碩士論文與集成演算法相關,因此面試官提問大多集中於集成演算法之上。

一、程式測驗

⒈  Python :

語法。 例如:類別、 map 函數、 zip 、迭代生成式、各個內建資料型別比較。

⒉ 程式設計: LeetCode Easy 、 Medium 、 Hard 。 例如:迴圈與遞迴生成數列級數、排列、組合、快速找出連續數列中任意移除的一個數值、迴文判定、 N 個 Skip List 所構成串列找出同時出現 K 次的元素、串列中找出差值為給定數值之資料對、 N 皇后。

⒊  SQL : LeetCode Data Base Easy 。

二、數學測驗

⒋ 數學:離散數學、線性代數、機率論、數理統計。 例如:基本矩陣乘法、重複組合、期望值與變異數之間關係、條件期望值、條件變異數、各色數理統計概念。 三、機器學習測驗

⒌ 機器學習:資料探勘、機器學習、深度學習。 例如:集成學習基本模型與多樣性測度之間關係、多樣性測度監督集成學習之意義、狄氏先驗引入貝氏分類器之意義、介紹決策樹、隨機森林、 LSTM 及其所解決之問題、 XgBoost 與 LightGBM 之差異、 Dropout 意義、如何從無標記資料中萃取資訊、資料探勘關聯分析、如何驗證實驗結果中提升的顯著性、資料量與特徵數量之間的關係、 L1/L2 regularization 差異與選擇、何謂 Bert 、何謂反向傳播。

四、各公司面試經驗

⒈  Taboola   

一開始會是由人資進行聊天,之後會與台灣研發中心的工程師進行基本能力的確認。之後,便進入測驗。測驗時間可以自行決定,拿到題目之後會有五天的時間進行作答。題目包含兩題統計、兩題演算法、一題推薦系統。統計問題包含第一題的期望值與變異數之間的關係、第二題的條件期望值與條件變異數。其中,第二題統計題會存在某些狀況,是在條件屬於某個數值時,沒有資料被搜集到,因此必須要想辦法解決此問題。另一個細節,則是如何使用統計方法進行資料的分群,這些資料的期望值為分段函數,因此必須使用統計檢定進行判定。第三題則為 N 個 Skip List 所構成的串列,找出同時 K 個同時出現的元素。第四題則為快取的設計。最後一題則為推薦系統的設計,在給定文章之下,預測推薦商品點擊率。完成作業後,便會約作業討論。面試官會在你講解完題目後,開始問更多細節問題,例如:推導變異數之間的關係等等。最後,則是介紹公司的主要工作,以及請你給予面試的回饋。   

雖然這間公司很強調數學,不過對於工程能力更要求。因此,我想此職缺比較適合電資學院畢業,又擅長統計的版友挑戰。主要工作為推薦系統架設、自然語言處理等等。工作分配方面,是依照個人能力分配。整體來說,是一個極具挑戰性的公司,很適合對自己有期許,又剛好對推薦系統有興趣的高手們挑戰。

時程:

D+ 0:面試邀約 D+ 1:人力資源部門面試 D+ 2:台灣研發部門面試 D+ 7:作業 D+14:作業面談邀約 D+16:美國研發部門作業面談 D+19:面試結果

⒉ 台達研究院   

一開始是由工程師面試,自我介紹與碩士論文、專案報告等等。此部門是針對作業研究的研究院,非資料科學的研究院,所使用的人工智慧技術僅為強化學習。   

工作內容也是針對台達電子進行服務,偶爾接外部的研究題目。工作主要就是大家一起討論解方,並且實作概念。

時程:

D+0:履歷投遞 D+3:面試邀約 D+5:面試 D+6:面試結果

⒊ 工業技術研究院/綠能與環境研究所   

一開始便進行自我介紹、碩士論文報告與專案報告,之後便會針對內容提問。包含如何驗證實驗結果、技術與模型的選擇依據。提問完後,便開始聊背景、學習歷程等等,並且聊到機器學習、統計學之間的概念。此部門主管是一個沈穩的長者,對於面試者,我想他們更期待找到一個具備學習能力的人。   

根據部門主管所提,本部門是接台電的計畫,進行一些預測、決策等任務。感覺工作內容相對比較單純,而進行專案時,也會是部門拉人進來一起解決問題,而非分組進行個別專案的開發。可以感受到此部門風氣相當好,在這裡工作我想壓力應該會相對低許多。

時程:

D+ 0:履歷投遞 D+ 5:面試邀約 D+11:面試 D+11:面試結果

⒋ 群聯電子   

一開始會測驗 Python 語法、機器學習概念與 SQL 情境題。接著就是自我介紹、碩士論文報告與專案報告。會針對報告內容提問,也會滿仔細的確認每一個概念的正確性。接著是小主管面試,包含一些人格特質問題、壓力排解等等。最後則是大主管面試,包含對於這份職缺的熱誠等等。我認為本部門相當注重面試者的感受,也希望員工都可以有好的狀態。值得注意的是,面試題目都會以簡單的點切入,然後深入的問問題。並且,面試官都會在回答後,加上一句:「對於此問題還有什麼需要補充的嗎?」,我覺得這樣的測驗方式相當高端,因為對想法很多的面試者,可以在此補充。這樣相對沒有標準答案的問題,更容易檢測出面試者是否有把整個機器學習的知識架構建立好。

時程:

D+ 0:內薦 D+13:面試邀約 D+23:第一次面試 D+24:面試結果 D+31:第二次面試 D+39:面試結果 D+42:電子錄取通知書

⒌ 仁寶電腦   

一開始也是自我介紹、碩士論文報告、專案報告。接著會針對內容提問,包含使用各項技術的原因、演算法中某項選擇設計的原因。接著,則是報告測驗題目。該題目為競賽題目,要在一週內完成,因此難度不低。並且,因為資料量不小,如何處理這樣大量資料的問題,是一個困難點。此測驗主要目的還是檢驗你對陌生資料的掌握,以及如何處理大量資料。 本職缺主要的工作是做異常偵測,另外還有自然語言處理、影像辨識的團隊。此部門就專注在解決公司問題,不像研究院有對內與對外兩種任務來源,對於想專心做好資料科學的版友,應該是一個選擇。

時程:

D+ 0:履歷投遞 D+ 5:面試邀約 D+13:面試

⒍ 英業達   

此部門為數位長新成立部門,更加專注在資料上的處理。技術長認為資料有好的處理,才可以有好的結果。此部門為研究單位,也是針對內部的問題進行解決,但也會花部分時間進行研究。主要的工作內容,是每一個員工都主持一個計畫,然後再與數據長進行討論。數據長非常希望可以幫助到每一位員工,因此計畫部分只要能夠幫助到公司,基本上都不會阻攔。但是,因為每一個人都需要主持一個計畫,因此研究能力、實作能力、數學能力都十分要求。這也對應到此部門的面試方式,此部分留待後面說明。整體來說,此部門真的很推薦想要學到技術的人進來,當初與我面試的面試官就是數學背景出身,也有在大學教課。在他身上真的可以看到很多值得學習的技術,如果對於增強自己有期待,或許可以來看看。   

面試過程十分地長,包含與數據長聊天的一小時,總共會需要四個小時的時間進行面試。

① 數據長面談  

數據長會與你留你過去的經歷,然後要你提出一兩個自己最自豪的經歷。我選擇我的碩士論文。在聊天過程中,數據長會當場為你的碩士論文提出建議,但卻不失尊重、禮貌。也很能體諒身為作者,對於自己作品的保護心態。整體來說,只要你對自己的作品有信心,而且也具有一定的價值,第一關面試應該會比較輕鬆、愉快。

② 程式測驗   

第二關是由工程師面試,工程師會當場貼 LeetCode 題目給你,題目難度從 Easy 到 Hard 各一題。這一關壓力相對提高,因爲要當場寫題目,並且確保通過所有測資,會相對比較慌張。但是,面試過程中,面試官不會剁剁逼人,而是會在你沒有想法時出聲引導。我建議可以在撰寫程式的過程中,也提出自己的想法,以激起面試官的回應,得到更多的資訊幫助解題。

③ 機器學習概念討論   

第三關為機器學習概念的聊天,幾乎沒有考試。從何為機器學習、為何機器學習成功、機器學習成功的關鍵、機器學習與函數之間的關係與差異、決策樹、隨機森林、梯度提升決策樹、各個神經網路簡介與之間關係、卷積神經網路與特徵萃取之間關係。基本上都是在聊天,只是在過程中會帶你檢視一遍機器學習的整個大架構,是一個非常有趣、收穫良多的面試經驗。

④ 統計概念討論   

此面試官十分強大,是數學背景出身的博士,也有在大學教課。面試官會針對統計學的概念進行提問,包含缺失值補植的選擇依據與所使用的統計學概念、離群值的判定、如何設計一個不必然輸出離群值的檢測法、移動平均與常態分配之間的關係、探討各個估計量、共軛先驗的概念、收斂的概念等等。面試前,可能需要把這些知識複習回來。由於我在做研究時,沒有用到太過深入的統計學知識,因此這些重要而基本的概念掌握度不高。或許對於統計系畢業的版友相對輕鬆,但是對於一般工科畢業的學生,可能會相對吃力。

時程:

D+ 0:履歷投遞 D+ 1:面試邀約 D+ 8:第一次面試 D+17:面試結果 D+24:第二次面試 D+32:面試結果

⒎ 永豐商業銀行   

一開始會請你介紹背景、碩士論文。技術長會深入提問,並且對於所有用到的理論,都仔細提問。因此,簡報上最好只放上有把握的技術。接著,則是程式測驗。技術長會當場定義一個概念,並且請你當場實作。由於我提供的程式碼比較簡單,所以也無法有太大的鑑別度。 本職務有七成時間在進行工程相關的工作,僅有三成時間進行研究。如果,對於研究比較感興趣的話,推薦英業達 Data Scientist 職缺。工程相關的工作,就是在解決銀行所需的功能,並將其實作。研究方面,則是研究最新模型,並想辦法實作等等。印象中,技術長有提到會有 paper 報告、讀書心得報告的活動,如果對最新技術感興趣的版友,或許可以去看看。

時程:

D+ 0:履歷投遞 D+ 7:書面審核 D+10:面試邀約 D+19:面試

伍、附件   

由於非電資學院畢業,所以提供主動邀約、投遞有效的公司,讓同樣背景的版友參考。 一、主動邀約 ⒈  A10 Networks – Software Engineers ⒉  International Business Machines Corporation – Associate Application Consultant ⒊  NTT Data Taiwan – InsurTech Data Engineer ⒋  Taboola – Algorithm Engineer ⒌  Teradyne – Field Application Engineer ⒍ 台灣積體電路製造- F14A 智慧製造工程師、 Fab PC Planner 、 Supervisor 、 Supply Chain Logistic Management Engineer ⒎ 麟點科技-量化研究與交易員 (Fresh Grad) 二、主動投遞、邀約面試 ⒈ 永豐商業銀行-儲備 AI 科學家 ⒉ 仁寶電腦-資料科學家 ⒊ 台達研究院- Al Optimization/Operations Research Scientist ⒋ 英業達- Data Scientist ⒌ 工業技術研究院綠能與環境研究所-人工智慧工程師 ⒍ 群聯電子-資料科學工程師 三、錄取 ⒈ 禾多移動多媒體-資料探勘工程師 ⒉ 帝濶智慧科技- Machine Learning Engineer ⒊ 英業達- Data Scientist ⒋ 工業技術研究院綠能與環境研究所-人工智慧工程師 ⒌ 群聯電子-資料科學工程師

本文由 DCARD 網友 授權轉載, 原文《資料科學面試經驗( Taboola 、台達研究院、工研院、群聯、仁寶、英業達、永豐商業銀行)》

你也有經驗想分享嗎?快來投稿賺稿費吧!

瀏覽 316 次

覺得不錯的話就分享出去吧!

發佈留言

Back to top button