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