機器學習工程師是現在的熱門職位, 因為其極高的薪資成為很多技術人的晉升目標。 本文總結了部分一線互聯網公司機器學習工程師的面試題及面試指南, 希望對各位技術人員的進階之路有所幫助。
阿裡巴巴
根據參加過阿裡巴巴機器學習演算法工程師面試的技術人員回饋, 總共需要經過四輪面試, 前兩輪為技術考察, 第三輪是交叉面試, 最後一輪是人力面試。 每輪面試大概持續時間為40到50分鐘, 面試內容由專案經驗詢問和基礎機器學習演算法詢問兩部分組成。
基礎機器學習演算法主要包括LR和SVM有什麼區別,
可能會碰到演算法題和智力題, 但數量不會很多。 根據回饋, 演算法題可能會與陣列相關, 比如存在一個陣列, 大小為98, 裡面的元素均為[1,100]區間內, 且無重複, 不申請額外空間的情況下, 在時間複雜度為O(N)情況下, 找出確定的兩個元素值。
華為
基礎知識部分可能會讓技術人員介紹幾個簡單的機器學習模型的主要思想, 比如貝葉斯、SVM等。 除此之外, 都是一些概念問題:決策樹和adaboost的區別;介紹你曾經做過的專案(CNN),
接下來根據求職者的專案經驗詢問, 比如如果求職者曾經的某個項目中用到了A框架, 面試官可能就會詢問你為什麼選擇A框架, 與B框架、C框架有什麼區別?華為內部的機器學習使用到了caffe框架, 求職者在面試之前可以適當瞭解一些caffe框架方面的知識。
百度
百度對技術的要求比較高, 因此百度的面試輪次和麵試時間都比較長, 技術不過硬的可能得做好被虐的心理準備了, 各種基礎概念問到你懷疑人生。 百度對資料採擷的使用程度更深, 所以深度學習方面的問題可能不多。
基礎問題涉及網路基礎和資料採擷兩部分。
第二、三面涉及的基礎概念更為詳細, 但跟貼近你的項目經驗, 面試官留給你的思考時間不是太久, 所以一定要事先梳理整個專案用到的技術和知識點。 對於K-means、二叉樹插入方法等演算法都可能需要現場寫代碼, 有可能手寫, 也可能給你一個無法切出去的共用編輯器頁面。
騰訊
經歷過百度的捶打, 再看騰訊的面試過程就會感覺輕鬆很多。 如果是校招, 更多的問題會根據發表過的論文以及參加過的競賽獲獎情況為基礎考察, 如果論文層次水準較高, 並且可以清楚表達出論文的整體結構、簡要內容和創新點, 整個面試過程中基礎概念的考察會被縮減。
如果你的專案經驗非常豐富, 那麼完整的面試過程會涉及基礎概念的考察, 專案經驗的詢問,
京東
京東的面試基本分為兩輪技術面試和一輪人力面試。 搞機器學習有幾點需要主要, 比如如何處理過擬合的現象(專案中使用到的會被問到, 一般不會超綱), 如何判別哪些特徵比較重要, 不要糾結自己程式設計語言的掌握情況, 可以閱讀一下《統計學習方法》。
面試官首先會要求求職者自我介紹並講解相關專案經驗, 面試官會根據求職者的介紹詢問一些細節, 會被要求手寫一些簡單的公式或演算法, 比如有技術人被要求寫決策樹中資訊增益的公式, 順便解釋資訊增益代表什麼意思, 包括在哪些情況下資訊增益中的H最大等問題。 如果你參加過一些機器學習方面的競賽並取得過不錯的成績也要提一下,會增加面試官的好感。(如果是在校期間參加的小型比賽就沒必要說了,自己判斷比賽的含金量)
第二輪會圍繞幾個大問題展開,比如一個推薦演算法的設計、調優過程涵蓋的協同過濾、喜好權重、LR、特徵提取等概念;隨機森林整個相關的基礎內容,比如決策樹,隨機森林是過擬合還是欠擬合等。最後,如果面試官的感覺不錯,會和你聊一下京東的機器學習業務,比如使用者行為分析、推薦演算法、倉儲預測等等。
最後是人力面試,也就是聊聊基本待遇。京東最人性化的地方在於,如果面試官認為你的能力過關,求職者可以根據自己的興趣選擇想去的業務部門。面試部門如果不合適,人力也會協調調整到其他部門,這一點特別人性化,可以內部調劑。
美團
如果水準一般,美團的面試會把你虐的很慘。美團的面試官一看就是擅長實戰,自我介紹之後直接進入程式設計演算法階段。
接下來詢問求職者最熟悉的機器學習演算法,如果你回答了SVM,面試官會讓你推公式、回答如何分類非線性問題、知道XX核函數嗎.....總之就是根據求職者的回答層層追問,步步緊逼。其他面試題如下:
其他被提到的概念還包括協同過濾、KNN模型、負載均衡演算法.....每一個都不是簡單的說說自我理解和概念就可以過的,面試官每一次發問都會往下深挖一層。即便你的基礎過硬,狀態不行估計也會招架不住。
滴滴
首先,滴滴有自己的演算法大賽,條件允許,不妨參加一下,如果成績不錯很可能直接被滴滴看重。(滴滴演算法大賽解決方案,來源網路,侵權可刪:https://www.cnblogs.com/TextEditor/p/5546397.html)面試過程中切記自己說得明白的,理解的概念可以適當展開說明,自己不是很明白的就不要提了,以免被追問。
其他面試題如下,感謝作者“一棵賽艇”的分享:
今日頭條
今日頭條的面試過程時間上不會佔用太久,面試官主要考察求職者的實戰經驗。不要在面試前臨時刷面試題,等到面試的時候,你就會發現沒啥用。今日頭條的面試官會問關於開源框架或工具的很多細節問題,同時求職者還要理解這些框架所涉及的具體演算法和代碼實現。最好的回答是理論知識加上個人實踐體會。
結語
其他互聯網公司,比如58同城、知乎、網易、小米等基本流程差不多。總體來看,這些面試中被考察的基礎概念相差無幾,面試官通常都很喜歡步步追問,你說出答案的時候就應該有心理準備。相比之下,百度、美團和滴滴的面試過程會比較燒腦,其他幾家的難度基本差不多,京東的面試最人性化,會根據求職者的興趣內部微調崗位。
如果你參加過一些機器學習方面的競賽並取得過不錯的成績也要提一下,會增加面試官的好感。(如果是在校期間參加的小型比賽就沒必要說了,自己判斷比賽的含金量)第二輪會圍繞幾個大問題展開,比如一個推薦演算法的設計、調優過程涵蓋的協同過濾、喜好權重、LR、特徵提取等概念;隨機森林整個相關的基礎內容,比如決策樹,隨機森林是過擬合還是欠擬合等。最後,如果面試官的感覺不錯,會和你聊一下京東的機器學習業務,比如使用者行為分析、推薦演算法、倉儲預測等等。
最後是人力面試,也就是聊聊基本待遇。京東最人性化的地方在於,如果面試官認為你的能力過關,求職者可以根據自己的興趣選擇想去的業務部門。面試部門如果不合適,人力也會協調調整到其他部門,這一點特別人性化,可以內部調劑。
美團
如果水準一般,美團的面試會把你虐的很慘。美團的面試官一看就是擅長實戰,自我介紹之後直接進入程式設計演算法階段。
接下來詢問求職者最熟悉的機器學習演算法,如果你回答了SVM,面試官會讓你推公式、回答如何分類非線性問題、知道XX核函數嗎.....總之就是根據求職者的回答層層追問,步步緊逼。其他面試題如下:
其他被提到的概念還包括協同過濾、KNN模型、負載均衡演算法.....每一個都不是簡單的說說自我理解和概念就可以過的,面試官每一次發問都會往下深挖一層。即便你的基礎過硬,狀態不行估計也會招架不住。
滴滴
首先,滴滴有自己的演算法大賽,條件允許,不妨參加一下,如果成績不錯很可能直接被滴滴看重。(滴滴演算法大賽解決方案,來源網路,侵權可刪:https://www.cnblogs.com/TextEditor/p/5546397.html)面試過程中切記自己說得明白的,理解的概念可以適當展開說明,自己不是很明白的就不要提了,以免被追問。
其他面試題如下,感謝作者“一棵賽艇”的分享:
今日頭條
今日頭條的面試過程時間上不會佔用太久,面試官主要考察求職者的實戰經驗。不要在面試前臨時刷面試題,等到面試的時候,你就會發現沒啥用。今日頭條的面試官會問關於開源框架或工具的很多細節問題,同時求職者還要理解這些框架所涉及的具體演算法和代碼實現。最好的回答是理論知識加上個人實踐體會。
結語
其他互聯網公司,比如58同城、知乎、網易、小米等基本流程差不多。總體來看,這些面試中被考察的基礎概念相差無幾,面試官通常都很喜歡步步追問,你說出答案的時候就應該有心理準備。相比之下,百度、美團和滴滴的面試過程會比較燒腦,其他幾家的難度基本差不多,京東的面試最人性化,會根據求職者的興趣內部微調崗位。