2019年字節(jié)跳動(dòng)招聘算法崗,他們最看重哪些新技術(shù)能力?
來(lái)源:
奇酷教育 發(fā)表于:
算法工程師必須具備的四個(gè)技能點(diǎn):知識(shí)、工具、邏輯和業(yè)務(wù)。
1
◆◆ 四個(gè)技能點(diǎn):知識(shí)、工具、邏輯和業(yè)務(wù) ◆◆
算法工程師必須具備的四個(gè)技能點(diǎn):知識(shí)、工具、邏輯和業(yè)務(wù),我可以用一個(gè)實(shí)際例子中說(shuō)明一下,比如我去面試“推薦算法工程師”的職位,具體是什么能力呢?
知識(shí):主流CTR模型以及預(yù)算控制,流量預(yù)估,bidding策略等模型算法的原理和技術(shù)細(xì)節(jié)
工具:coding能力,大數(shù)據(jù)相關(guān)的spark、flink、深度學(xué)習(xí)tensorflow、pytorch、ps-lite等模型訓(xùn)練、serving相關(guān)工具
邏輯:算法題,模型之間的演化關(guān)系
業(yè)務(wù):推薦業(yè)務(wù)邏輯包括冷啟動(dòng)、召回和排序等在構(gòu)建模型時(shí)的區(qū)別聯(lián)系,如何根據(jù)公司業(yè)務(wù)模型制定模型的目標(biāo)效果
算法基礎(chǔ)是個(gè)基本功,需要在學(xué)習(xí)階段夯實(shí),千萬(wàn)不要在這個(gè)階段過(guò)于深究類似于SVM、EM、HMM等這些需要深?yuàn)W的數(shù)學(xué)邏輯層面的理解,會(huì)把人耗死而且也極易讓你喪失信心。你需要量力而行,不是所有的算法都要搞清楚,抓住主流的算法模型,可以從各大公司的JD里發(fā)現(xiàn)面試官比較關(guān)心的算法模型有哪些,我總結(jié)了一些主流的算法如下:
LR、決策樹、SVM、EM、Adaboost、PageRank、 FFM、隨機(jī)森林、 GBDT 、XGBoost 、聚類、CNN、RNN、LSTM、Word2Vec,F(xiàn)CN、RestNet、Fast R-CNN 、MobileNet、SSD
我學(xué)習(xí)期間匯總了300+道NLP、搜索推薦、機(jī)器學(xué)習(xí)算法的面試常見(jiàn)題,總結(jié)一下:
NLP項(xiàng)目——要寫上深度學(xué)習(xí)模型,19年面試NLP基本上都會(huì)問(wèn)到Bert,Attention機(jī)制,最好準(zhǔn)備下。
搜索推薦——相關(guān)崗位,感覺(jué)除了考察算法外,工程上考的也比較多,面一個(gè)做搜索的公司就讓設(shè)計(jì)一個(gè)方案統(tǒng)計(jì)商品近6小時(shí)實(shí)時(shí)點(diǎn)擊率。當(dāng)時(shí)有點(diǎn)蒙,回答的并不是很好,有回答使用Storm來(lái)實(shí)時(shí)計(jì)算,具體實(shí)現(xiàn)并不太熟悉。
機(jī)器學(xué)習(xí)算法——GBDT基本上必問(wèn),Xgboost,LR、決策樹模型也問(wèn)的很多,沒(méi)有遇到手推算法,常見(jiàn)機(jī)器學(xué)習(xí)模型的損失函數(shù)要清楚。
GBDT的原理
決策樹節(jié)點(diǎn)分裂時(shí)是如何選擇特征的?
寫出Gini Index和Information Gain的公式并舉例說(shuō)明
分類樹和回歸樹的區(qū)別是什么
與Random Forest作比較,并以此介紹什么是模型的Bias和Variance
XGBoost的參數(shù)調(diào)優(yōu)有哪些經(jīng)驗(yàn)
XGBoost的正則化是如何實(shí)現(xiàn)的
XGBoost的并行化部分是如何實(shí)現(xiàn)的
為什么預(yù)測(cè)股票漲跌一般都會(huì)出現(xiàn)嚴(yán)重的過(guò)擬合現(xiàn)象
如果選用一種其他的模型替代XGBoost或者改進(jìn)XGBoost你會(huì)怎么做,為什么?
NLP:
有沒(méi)有自己改過(guò)模型?類似Google Inception這種的;
你了解attention機(jī)制嗎?seq2seq,有用到attention機(jī)制嗎?
了解最新的bert,transformer嗎?
怎么優(yōu)化深度學(xué)習(xí)模型性能?
你們有用到哪些激活函數(shù)?NLP中有沒(méi)有用到?
LSTM和GRU那個(gè)性能更好,什么情況下gru的效果會(huì)比lstm好?
講一下Word2vec原理;
商品購(gòu)買評(píng)論,分成10個(gè)類,怎么聚類?把整個(gè)流程從頭到尾講一下。
搜索推薦:
設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成搜索詞類目預(yù)測(cè),設(shè)計(jì)一個(gè)關(guān)鍵詞分類系統(tǒng),搜索行為日志中有搜索關(guān)鍵詞和對(duì)于的點(diǎn)擊,購(gòu)買商品日志,每個(gè)產(chǎn)品知道具體的分類,怎么處理同一個(gè)關(guān)鍵詞多分類的情況?怎么處理誤點(diǎn)擊數(shù)據(jù)?
廣度考察:
Adaboost、 FFM、隨機(jī)森林、個(gè)別聚類算法,模型評(píng)估等知識(shí)的理解程度
Spark的調(diào)優(yōu)經(jīng)驗(yàn),Model Serving的主要方法,Parameter Server的原理,GAN,Online Learning的基本理解
Embedding方法,Attention機(jī)制,Multi task,Reinforcement Learning
2
◆◆根據(jù)個(gè)人背景,調(diào)整簡(jiǎn)歷,突出重點(diǎn) ◆◆
建議:面試過(guò)程中,面試官常根據(jù)你的簡(jiǎn)歷追問(wèn)一些細(xì)節(jié)問(wèn)題,簡(jiǎn)歷上寫的技能和知識(shí)點(diǎn),自己一定要熟悉,不熟悉的不要寫上去。簡(jiǎn)歷寫和目標(biāo)崗位相關(guān)的項(xiàng)目,之前工作中不太相關(guān)的項(xiàng)目可以去掉,簡(jiǎn)歷整體項(xiàng)目經(jīng)歷要和目標(biāo)崗位匹配。
3
◆◆ 你該了解的算法崗面試環(huán)節(jié)和重點(diǎn) ◆◆
一個(gè)完整的算法崗面試過(guò)程主要有以下幾個(gè)主要環(huán)節(jié):自我介紹、項(xiàng)目介紹、算法推導(dǎo)和解釋、數(shù)據(jù)結(jié)構(gòu)與算法題(寫代碼)。
關(guān)于自我介紹,主要就是簡(jiǎn)單介紹下自己的教育背景,在?;蛟诼毱陂g的研究方向和所做的項(xiàng)目以及在項(xiàng)目中所充當(dāng)?shù)慕巧鹊龋瑸橹蟮拿嬖囎鰝€(gè)鋪墊,讓面試官?gòu)闹胁蹲揭恍c(diǎn)來(lái)向你提問(wèn)。
項(xiàng)目介紹是最為重要的,這也是體現(xiàn)你綜合實(shí)力的地方,對(duì)項(xiàng)目背景、項(xiàng)目實(shí)現(xiàn)的方案,項(xiàng)目所實(shí)現(xiàn)的東西都要了如指掌,做機(jī)器學(xué)習(xí)的,必須準(zhǔn)備一到兩個(gè)重點(diǎn)的機(jī)器學(xué)習(xí)項(xiàng)目,關(guān)鍵是項(xiàng)目中間的技術(shù)細(xì)節(jié)都要了如指掌,比如你用了LR、或樹模型,就得知道所有LR或樹模型相關(guān)的推導(dǎo)和原理,一旦你說(shuō)不太清楚,面試官就會(huì)對(duì)項(xiàng)目的真實(shí)性存疑。
接下來(lái)就是機(jī)器學(xué)習(xí)算法原理和推導(dǎo),這也是要重點(diǎn)去準(zhǔn)備的,在面試前你需要能給你一張白紙,可以把推導(dǎo)的每一步寫的清清楚楚的,面試??歼壿嫽貧w和樹模型的推導(dǎo),關(guān)于原理面試官常會(huì)問(wèn)你幾個(gè)樹模型之間的對(duì)比等等,其他的算法比如LR、SVM、EM、Adaboost、FFM、決策樹、隨機(jī)森林、 GBDT、XGBoost 、推薦算法、聚類、LSTM、Word2Vec等等,以及他們的適用場(chǎng)景。
技術(shù)面主要會(huì)圍繞簡(jiǎn)歷項(xiàng)目展開(kāi),大廠面試官問(wèn)的很細(xì),阿里的基本上涉及到的每個(gè)模型每層參數(shù)結(jié)構(gòu)、原理、模型損失函數(shù),為什么要用這個(gè)損失函數(shù)等問(wèn)題,所以簡(jiǎn)歷上寫到的相關(guān)技術(shù)最好搞透徹。小公司一般會(huì)問(wèn)一些工程上面的問(wèn)題,一般算法崗位也會(huì)做工程相關(guān)的工作,如大數(shù)據(jù)和接口服務(wù)。
最后就是寫代碼了,很多非計(jì)算機(jī)出身的大都會(huì)栽在這個(gè)地方,代碼寫得少,訓(xùn)練不到位,就會(huì)導(dǎo)致當(dāng)場(chǎng)思路不清晰,不知從哪寫起。
4
◆◆2019年的算法崗面試的新套路 ◆◆
面試算法崗的新套路,會(huì)有如下建議:
講述項(xiàng)目的基本情況,項(xiàng)目的背景、規(guī)模、用時(shí)、用到的技術(shù)以及各個(gè)模塊。重點(diǎn)突出自己比較熟悉的技術(shù),防止在面試官打斷的提問(wèn)的時(shí)候,問(wèn)到自己最薄弱的環(huán)節(jié)。
主動(dòng)說(shuō)出自己做了哪些事情,這部分的描述要盡量和自己的技術(shù)背景一致,描述自己在項(xiàng)目中的角色。描述模塊中用到的技術(shù)細(xì)節(jié),這部分一定要注意,一定要把話題引到自己最熟悉模塊的技術(shù)細(xì)節(jié)。
一定要主動(dòng):作為面試者,應(yīng)該能夠主動(dòng)并且邏輯清晰的說(shuō)出自己的項(xiàng)目中有哪些亮點(diǎn),能夠主動(dòng)的把自己的閃光點(diǎn)在短短幾十分鐘的面試中都展現(xiàn)出來(lái)。
總結(jié):
真正合格的算法工程師一直是短缺的,努力做金字塔上部的那塊磚。