【经验分享】鹅厂机器学习岗暑期实习面经总结
作者?| 空
學校?|?華南理工大學
研究?|?機器學習
出品 | AI蝸牛車?
個人經歷
本人本科雙非,華南某985碩士,本碩都是計算機專業。本科玩過一段時間ACM,巨菜(現在想想,不管是考研還是求職,這段經歷都為我帶來了許多便利)。
有一篇SCI一區的論文,方向比較偏,是智能電網相關的,面試官都不太感興趣。有一個國際大數據比賽的一等獎和一個國內數據挖掘比賽的冠軍。
面試情況
簡單介紹一下本人找暑期實習的情況,從2月中旬開始準備,投了字節閃電內推,鵝廠提前批,阿里CBU和企業金融的預面試。字節閃電內推簡歷被篩,鵝廠拿到了推薦崗的offer,阿里CBU過了一面,企業金融過了二面。拿到鵝廠offer后把其他家的面試都推了,因為想著就算發了offer可能也還是會選鵝廠。
整個實習的過程從開始準備到結束大概就是一個月,這一個月基本上也是邊面試邊刷面經,補基礎,還算十分充實吧233。事后想想,自己的六輪面試都過了,真的是十分幸運。
簡歷
簡歷一定要重視!簡歷的內容決定了你能否被撈,一定程度決定了你面試的時候會被問什么。關于如何編寫簡歷,我覺得有幾點建議可以跟大家分享一下:
① 頭像完全可以不放,如果要放,請盡量放西裝證件照,或者說高P過的照片。給HR和面試官一個比較好的初印象。
② 簡歷要突出重點。學歷的地方要寫清楚拿過什么獎學金,拿了幾次,績點排名多少,論文的部分要把期刊/會議的級別寫顯眼一些。這些都是HR比較關注的。比賽建議按照難點-方案這樣子的格式去寫,避免寫一大堆方案,面試官抓不到感興趣的點。
③ 不太熟的技術不要寫在簡歷上面。面試的時候面試官可能會問你簡歷上涉及的東西,問了后發現你一知半解會很降分。個人覺得,一個知識面不寬但是對相關的知識都比較熟悉的印象遠比什么都一知半解好。
④ 博客,github如果有比較亮眼的成果可以寫在簡歷上,可以自我介紹時講,HR會比較感興趣。
⑤ 簡歷盡可能簡潔,不重要的獎項(或者說跟你最好的獎項相比比較弱)可以去掉,只寫出你最亮眼的地方。比如一個rank不高的比賽,寫到簡歷上可能是個扣分項。當然,如果沒有更好的獎項了,可以寫上去表明自己做過這方面的工作。
面試
我們在牛客上可以看到很多人的面經,同樣一個崗位,有的人很難,有的人很輕松。我認為的原因有:
① 簡歷。經歷比較豐富的人,一般面試上來會被問比較亮眼的經歷,一輪面試的一半左右時間會花在這上面,而且因為是自己做過的工作,被問時基本不會有什么壓力。所以整體的面試難度會降低。
② 話題的引導。這個算是我自己幾次面試中領悟到的,我們在面試時要有意講話題引導到自己擅長的領域,比如我一般會有意避開NLP,CV,讓面試官問我機器學習相關的知識。所以面試官經常會說我“對機器學習比較熟悉,不過某些方面可以再加強一下”,這個印象其實我覺得還好,反正把握好自己擅長的地方,積極避開不擅長的領域相當重要。
③ 運氣。這個無可厚非,無法避免。有的部門面試就是很難,有的部門面試就是比較水,或者說這個部門認為你的經歷比較對口,那么面試難度也會降低不少。
在等待面試的期間,應該積極去牛客網刷對應的面經,把可能出現的問題抄下來,一個個去鞏固。面試問的題目在牛客面經上基本都是高頻問題。
可能會有用的事項
① 分享,交流。我本人和熟人相處時會比較放得開。因此,我會和關系比較好的朋友/同學分享,討論每一次的面試錄音。找出一些不足,一些可以改進的地方。另外,面試完在牛客網,QQ群分享面經也是一個不錯的行為,受了別人幫助,也要回報。
② 多關注招聘信息。招牌期間會有很多群,建議多加,了解一些全面的情況。
③ 不要一開始就面想去的公司,理由大家都懂。可以多投一些二線公司,或者不想去的一線公司,攢攢面經。
④ 像阿里的預面試,騰訊的提前批,這種機會不要錯過。可以積攢豐富的面試經驗。
準備工作
本人只針對機器學習/數據挖掘崗提出建議,CV,NLP崗可能情況不一樣哈。機器學習/數據挖掘主要需要準備的內容包括:
① ML相關的知識:這部分知識我下面會列出一些比較高頻的問題。需要特別注意GBDT,xgb和lgb的區別,建議實際使用過并看過原始論文。需要熟練手擼的簡單算法有LR, NB, Kmeans。對于LR和樹模型這種工程使用較多的,需要知道跟并行相關的一些知識。比如LR如何處理千萬級別的數據樣本,xgb如何并行等。
② 數學知識:這一塊主要是高數,線代,概率論,凸優化。高數上(加上無窮級數),線代,概率論需要熟練掌握,凸優化重點掌握一維搜索方法,一階/二階優化方法,KKT條件,對偶問題,線性規劃,二次規劃。
③ 基礎算法。這部分的重要性不用多說,刷leetcode。劍指offer的題目一定要達到秒殺級別。基本的都會了之后,算法崗重點強化DP,記憶化搜索這兩方面。對于筆試,建議多去牛客刷往年的真題,注意筆試的題目難度往往遠高于面試。(當然不會要求全部AC)
④ 場景問題:對于機器學習/數據挖掘崗,現在大多數的公司業務都是反欺詐(異常檢測)/推薦系統,對于這兩方面的基本內容和傳統方法要能講出來一些東西。這也是必問的問題。
⑤ 智力題:其實這個應該和算法題歸為一部分,智力題考來考去其實就這么幾道——瘋狗,毒水,海盜分金幣,兩根蠟燭,三門問題等。
⑥ DL相關知識:就算是機器學習崗,也需要了解一些深度學習的基本知識,常用的模型,如何調參等。最好了解一個框架(建議tensorflow或pytorch)。
⑦ 語言方面:建議熟悉C++ 和 python至少其一。
個人整理的一些高頻問題
lightgbm, xgboost RF和GBDT的異同(這個問題屬于必問問題,對于ID3,C4.5,CART也要了解,對于xgb的算法原理要充分理解,比如損失函數的推導過程,為什么要使用二階泰勒展開。最好有一些調參經驗)
svm損失函數推導
樸素貝葉斯公式推導與實現
處理不平衡常用方法
卷積層相比FC層有哪些優勢?
非線性分類算法有哪些
如何判斷一個算法是線性的還是非線性的?
stacking/boosting/bagging的區別
手動實現堆排序
求AUC
L1和L2的區別
實現快排
LR的實現,優點,如何并行,特征有共線性會怎么樣?14.pca和lda
常見激活函數的優缺點 16.從方差和偏差的角度比較bagging和boosting
經驗風險、期望風險、結構風險
分層采樣和蓄水池采樣,O(N)的洗牌算法
SVM與LR的區別
一階優化器,二階優化器
手寫kmeans
BN/LN/WN的區別
實際場景下做softmax容易出現一些問題,怎么解決
扔雞蛋問題(了解到O(kn)的做法即可)
進程和線程的區別
Python/C++多線程,多進程如何使用
Python迭代器,裝飾器
Bootstrap抽樣
特征選擇方法
野指針是什么意思
64匹馬,八個賽道,找出最快的四匹,最壞情況下最少要比多少次(更常見的是25匹馬,5個賽道找出最快的3匹)。
12個小球,其中有一個與其他的重量不一樣,給你一個天平,最壞情況下最少稱多少次可以找出重量不同的小球。
1000杯水中有一瓶是毒藥,小老鼠喝一滴一小時就會死,給你10只小老鼠,在一小時內找出這瓶水 。
P-R曲線和ROC曲線的區別
什么是凸問題?
常見的凸優化方法?
CNN/RNN/LSTM的原理
從方差,偏差,噪聲的角度解釋泛化誤差
特征工程相關。比如如何處理類別特征?onehot,tfidf會出現什么問題之類。
詞嵌入embedding相關知識(主要是word2vector)
梯度爆炸/梯度消失
池化層,卷積層的作用
dropout(訓練和測試階段分別如何處理)
MLE,MAP和貝葉斯估計的區別
DNN反向傳播的推導
LR為什么用交叉熵而不是MSE?
為什么LR權重可以全部初始化為0,NN不行
常見的幾個聚類算法
異常檢測/推薦基本方法(這個視部門業務而定)
判別式模型和生成式模型
相關書籍
本人看書不多,就推幾本比較熱門的書籍吧。
① 西瓜書,南瓜書,統計學習基礎。適合拿來刷機器學習基礎
② 動手學深度學習,花書。適合拿來刷深度學習基礎。特別是前者,有pytorch版本的代碼實現。
③ 深入理解XGBOOST。最近很火的一本書,看了一下質量相當不錯。
④ 劍指offer。這本不買也行,leetcode和牛客有對應題目
⑤ 程序員面試寶典。題目較多,較全,較難。在掌握了劍指offer和基本算法內容之后,可以作為進階食用。
后話
算法崗雖競爭較大,但手里有一些籌碼,準備充分的話其實也還好。有時間的情況下,建議豐富競賽,實習經歷。論文也是硬通貨,但是難度確實更大。當然有時候也很看運氣,但是運氣畢竟是不可控的。希望這篇文章可以幫到你早日拿到offer~
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的【经验分享】鹅厂机器学习岗暑期实习面经总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 备战2020腾讯广告算法大赛:(2017
- 下一篇: 算法漫画:什么是 “哈夫曼树” ?