今天我們不聊paper,換一個輕松一點的話題,聊一聊如何準備算法工程師的面試。
關(guān)于我
今年是我作為算法工程師工作的第七個年頭,期間拿到過hulu,阿里巴巴,騰訊,美團以及一些startup的算法工程師offer,也作為面試官面試過清北,海外,北郵,以及一些二本學(xué)校等不同背景的百余位candidates,作為面試者和面試官的經(jīng)驗還比較豐富。
所以希望自己的經(jīng)驗?zāi)軐δ阌兴鶐椭?,也非常歡迎其他面試官能夠多留言探討自己的面試經(jīng)驗。
面試要具備的技能
那我們直入主題,到底什么技能才是一名合格的算法工程師應(yīng)該具備的技能呢?面試官又會如何驗證你的這些技能呢?
雖然每個一個崗位都有JD,但拋開具體的崗位要求,從稍高的角度角度看待這個問題,一名算法工程師的技術(shù)素質(zhì)基本可以拆解成下面四個方面:知識、工具、邏輯、業(yè)務(wù)。當然廣義來講,這四項素質(zhì)也適用于所有IT工程師。
我非常喜歡用雷達圖來表示一個人的能力范圍,可能小時候看圣斗士看多了,當時研究官方出的黃金圣斗士能力雷達圖研究了半天,現(xiàn)在也沒好到哪去,只不過變成了喜歡研究候選人的能力雷達圖了。
下面畫出了大數(shù)據(jù)行業(yè)幾個相關(guān)職位的能力雷達圖,大家可以初步體會一下。
不同崗位的技能雷達圖
簡單來說,任何工程師都應(yīng)該滿足四項技能的最小要求,比如我曾經(jīng)面試過一位計算廣告算法工程師candidate,這位同學(xué)發(fā)過一些計算廣告相關(guān)的paper和專利,從research的角度是不錯的人選,但當我想稍微驗證一下他coding的能力時,他明確告訴我說他不愿意寫代碼。這就是不滿足“工具”這項技能的最小要求,自然是不能通過面試的。
在最小要求的基礎(chǔ)上,算法工程師的能力要求是相對全面的。其實所謂算法工程師,就是因為你不僅應(yīng)該是一位合格的“工程師”,還應(yīng)該再次基礎(chǔ)上有算法的改進和實現(xiàn)的能力。除此之外,大數(shù)據(jù)工程師更注重大數(shù)據(jù)工具和平臺的改進,研究員則在知識和邏輯層面相對突出。有些臨時抱佛腳的同學(xué)喜歡惡補知識,不注重理解業(yè)務(wù)和模型本身的內(nèi)在邏輯,是我經(jīng)常見到的面試“悲劇”情況。
當然,只用四個詞描述四個方面的能力還是過于形而上了,這里我們用一些具體的內(nèi)容來描述一下算法工程師的四個技能點:
知識:主要是指你對machine learning相關(guān)知識和理論的儲備
工具:將你的machine learning知識應(yīng)用于實際業(yè)務(wù)的工具
邏輯:你的舉一反三的能力,你解決問題的條理性,你發(fā)散思維的能力,你的聰明程度
業(yè)務(wù):深入理解所在行業(yè)的商業(yè)模式,從業(yè)務(wù)中發(fā)現(xiàn)motivation并進而改進模型算法的能力
也許還不夠具體,那我們再從一個實際例子中體會一下,比如我去面試“計算廣告算法工程師”的職位,上面四項對應(yīng)著哪些具體的能力呢?
知識:主流CTR模型以及預(yù)算控制,流量預(yù)估,bidding策略等模型算法的原理和技術(shù)細節(jié)
工具:coding能力,spark、flink、tensorflow、ps-lite等模型訓(xùn)練、serving相關(guān)工具
邏輯:算法題,模型之間的演化關(guān)系
業(yè)務(wù):展示廣告和搜索廣告在構(gòu)建模型時的區(qū)別聯(lián)系,如何根據(jù)公司的business model制定模型的objective
當然,上面只是讓大家體會一下什么是這四項素質(zhì),真實的計算廣告算法工程師面試中,你不一定要都掌握,也不一定局限于這些內(nèi)容。如果你遇到一位資深的面試官,他不會預(yù)設(shè)一個框架往面試者身上套,而會從面試者簡歷出發(fā)檢驗面試者能不能達到這四項素質(zhì)的標準。
面試時如何限時考察
那么問題又來了,面試官會如何在"限定的時間內(nèi)"檢驗?zāi)氵@四項素質(zhì)能不能達到"技術(shù)合格"的標準呢?
既然是限定的時間,面試官就不可能拿出一本西瓜書,從頭問到尾,也不可能拿出一本葫蘆書(《白面機器學(xué)習(xí)》),從100道面試題中抽出50道給你來個馬拉松問答。面試官要做的是在1個小時的時間內(nèi)確認你能力的"深度"和"廣度"。 所以在這里面試官就像一個采樣算法,要從你腦子里采幾個點,把你的能力雷達圖描繪出來。
重點再重復(fù)一邊,
面試官會從“深度”和“廣度”兩個維度構(gòu)建你的能力雷達圖。
對于"深度"方面,有經(jīng)驗的面試官會從你已經(jīng)做過的項目中挑出你最擅長的部分做層次式的遞進。比如我在之前的知乎回答“如何準備機器學(xué)習(xí)工程師的面試 ?”中舉過的例子,
一位面試同學(xué)介紹自己實習(xí)時候用過XGBoost預(yù)測股票漲跌,那面試官可能會由淺入深依次考察下列問題:
GBDT的原理(知識)
決策樹節(jié)點分裂時是如何選擇特征的?(知識)
寫出Gini Index和Information Gain的公式并舉例說明(知識)
分類樹和回歸樹的區(qū)別是什么?(知識)
與Random Forest作比較,并以此介紹什么是模型的Bias和Variance(知識)
XGBoost的參數(shù)調(diào)優(yōu)有哪些經(jīng)驗(工具)
XGBoost的正則化是如何實現(xiàn)的(工具)
XGBoost的并行化部分是如何實現(xiàn)的(工具)
為什么預(yù)測股票漲跌一般都會出現(xiàn)嚴重的過擬合現(xiàn)象(業(yè)務(wù))
如果選用一種其他的模型替代XGBoost或者改進XGBoost你會怎么做,為什么?(業(yè)務(wù)+邏輯+知識)
這是一條由簡歷出發(fā),由“知識”為切入點,不僅考察了“知識”的深度,而且還考察了“工具”、“業(yè)務(wù)”、“邏輯”深度的面試路徑。
當然,如果你介紹的項目是實現(xiàn)了一種類似阿里DIN的CTR預(yù)估模型。那么問題路徑可能是這樣的:
softmax函數(shù)的定義是什么?(知識)
神經(jīng)網(wǎng)絡(luò)為什么會產(chǎn)生梯度消失現(xiàn)象?(知識)
常見的激活函數(shù)有哪些?都有什么特點?(知識)
挑一種激活函數(shù)推導(dǎo)梯度下降的過程。(知識+邏輯)
Attention機制什么?(知識)
阿里是如何將attention機制引入推薦模型的?(知識+業(yè)務(wù))
DIN是基于什么業(yè)務(wù)邏輯引入attention機制的?(業(yè)務(wù))
DIN中將用戶和商品進行了embedding,請講清楚兩項你知道的embedding方法。(知識)
你如何serving類似DIN這樣的深度學(xué)習(xí)模型(工具+業(yè)務(wù))
這條路徑側(cè)重于考查“知識”深度的路徑。為了彌補其他方向考察的不足,面試官肯定還會問一個從工具或者業(yè)務(wù)出發(fā)的問題來確定你其他方面的深度。
因為面試官選擇的是你最熟悉的領(lǐng)域深入下去,我們可以假設(shè),如果一位面試者在最擅長的項目中都答不上一些細節(jié)性的問題,那幾乎可以肯定你在任何其他領(lǐng)域的鉆研都不夠深入,你的技能雷達圖的面積肯定是一個很小的面積。也有像我之前所提到的一些臨時抱佛腳的面試者,也許知識方面達到了要求,但經(jīng)不起面試官對“工具”和“邏輯”的考察,這也毫無疑問會“悲劇”。
如果面試者的能力深度達到了最低的要求,下一步面試官會確定你能力的廣度,對于任何算法工程師,我都會隨機check以下幾個知識點:
NN,RNN,個別聚類算法,模型評估等知識的理解程度
spark的調(diào)優(yōu)經(jīng)驗,model serving的主要方法,parameter server的原理
GAN,LSTM,online learning的基本理解
embedding方法,attention機制,multi task,reinforcement learning,online learning的基本理解
對于廣度的檢查是比較隨意的,個別答不上來無傷大雅,但如果超過一半以上的知識點都miss了,可能有點說不過去。因為我要知道你是一個關(guān)注前沿,喜歡學(xué)習(xí)的人,試想除了你自己做過的項目,其他知識了了,那我可以肯定你不是一個對技術(shù)有熱情的人。很多面試官很看重“熱情”這個屬性,因為正是對技術(shù)的熱情支撐你今后的學(xué)習(xí),有些問題你可能不知道,你也要盡量用自己的理解去推導(dǎo),去討論。
好了,關(guān)于算法工程師面試中的能力雷達圖講完了,如果你嫌我太啰嗦,沒關(guān)系,甩給你一張思維框圖,你發(fā)給任何沒看過這篇文章的人,也都會對我說的內(nèi)容一目了然。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4789瀏覽量
101598 -
算法
+關(guān)注
關(guān)注
23文章
4646瀏覽量
93717 -
CTR
+關(guān)注
關(guān)注
0文章
37瀏覽量
14191
原文標題:算法工程師必須要知道的面試技能雷達圖
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
EMC工程師需要具備哪些技能?
嵌入式工程師需要哪些關(guān)鍵技能呢
FPGA工程師需要具備哪些技能?
軟件工程師面試前需要準備什么
成為算法工程師前需要知道什么
Python工程師面試時需要準備什么
深信服面算法工程師面試經(jīng)歷
合格的電子工程師需要掌握那些知識和技能的詳細資料說明

評論