目前就職于騰訊,想内推朋友可以發我履歷(校招/社招都要),郵箱[email protected],注明崗位和工作城市。
這個崗位叫法很多,算法崗,資料挖掘崗,機器學習崗,基礎研究等等,總結一下從16年9月校招的面試情況。
百度:
師姐給我内推的,一面聊了2個半小時,基本在寫代碼。用MapReduce寫好友推薦,在一堆單詞裡面找出現次數最多的k個;設計一個棧,O(1)時間傳回最值;求多叉樹深度。二面基本都在問hadoop,資料結構與算法。聊了1個半小時,hadoop原理,shuffle如何排序,map如何切割資料,如何處理資料傾斜,join的mr代碼如何寫。動态規劃,樹結構,連結清單結構等等。三面是經理面,問了些性格方面的問題,還有些比賽和項目中遇到的問題,隻聊了半個小時,要了身份證,說後面會安排筆試,後來筆試通過了,談了一下給special offer。
阿裡:
因為拿過天池競賽top名次,直接給終面,但是不想去菜鳥就拒絕了。然後我就叫朋友幫我内推了螞蟻金服,1面聊機器學習裡面的東西,資料結構算法,比賽,項目。2面問了如何在海量資料中查找給定部分資料最相似的top200向量,向量的次元也很高,以前了解過類似問題,直接就說可以用KD樹,聚類,simhash。然後又問怎麼衡量兩個商品的成本效益,從二分類的角度大概描述了一下,後面問了些比賽和項目。終面的時候跟我說螞蟻金服沒名額了,問我願不願意去架構部門做java web開發,果斷拒絕。沒有參加正式校招的筆試,現在想起來挺後悔,校招過了很久之後因為其他比賽拿到top名次的原因重新邀請面試,沒什麼狀态直接放棄。
騰訊:
内推到王者榮耀跪掉了,于是參加了正式校招的筆試。一面的時候,手推了一些模型公式,LR,SVM,XGB。AUC的定義和本質,有哪些計算方法,代碼實作。聊了些比賽和項目,總之聊的比較開心。二面 要求用C++寫字元串拷貝……直說我不會C++,但是應該有安全性問題需要考慮下,我記得字元串結尾有\0這種容易掉坑的地方。後面聊了動态規劃,還有些劍指offer上常見的題目,hadoop,spark,storm下面的産品,原理,适用場景,DNN原理,應用,接着繼續聊項目和比賽。HR面就随便聊天,問比賽和項目裡遇到過的困難,問了自己的優勢。還問了我拿到了哪些公司offer,對意向的公司的一個排序是什麼,期望待遇。然後說是9月28之前出結果,過與沒過都能在微信上查到。9月27号上午,收到騰訊offer。
華為大牛專場筆試滿分,現場面了2面裝逼過度被刷了。後來參加過今日頭條的比賽拿到top名次邀請面試,沒什麼狀态也放棄了。研究所學生快畢業的參加了京東的一個算法比賽,拿到亞軍。直接總監面,過了一周之後發了special offer。
總結
經常會問到的問題,經典算法推導(加分項),原理,各個損失函數之間差別,使用場景,如何并行化,有哪些關鍵參數
比如LR(并行算法的幾種優化方法經常被問到),FFM,SVM,RF,KNN,EM,Adaboost,PageRank,GBDT,Xgboost,HMM,DNN,CNN,RNN,LSTM,推薦算法,聚類算法,圖像,自然語言,等等機器學習領域的算法,這些基本都會被問到。
XGB和GBDT差別與聯系也會經常問到。一些評估函數,F值,mae,logloss,AUC,[email protected],特别是AUC是如何計算的;哪些優化方法,随機梯度下降,牛頓拟牛頓原理;生成模型,判别模型;線性分類和非線性分類各有哪些模型;SVM核技巧原理,如何選擇核函數;特征選擇方法有哪些;常見融合架構原理,優缺點,bagging,stacking,boosting,為什麼融合能提升效果;資訊熵和基尼指數的關系(資訊熵在x=1處一階泰勒展開就是基尼指數);如何克服過拟合,欠拟合;L0,L1,L2正則化(如果能推導絕對是加分項,能畫個等高線是最基本的,L0是NP問題);模型性能如何評估=方差+偏差+噪聲;方差:訓練集error低,驗證集error高,偏差:訓練集驗證集error都高。
其實上面的這些問題基本都能在《李航:統計學習方法》《周志華:機器學習》裡面找到,能翻個4,5遍基本就無壓力了
另外可以報一下小象學院的機器學習班,等到開團的時候報也就300左右,講的挺不錯的,有算法推導和代碼實作,我也是看了之後才明白很多算法的原理。還會問一些常見的資料結構和算法,寫代碼的題基本都是出自《劍指offer》和《微軟面試100題》,隻要刷幾遍,代碼題這裡搞定也是加分項。
其餘的基本就是問問比賽,項目,遇到的問題,如何解決,在團隊中的角色,評價自己;面試官問你還有問題要問沒,就别瞎問了吧,多看看别人的面經;比如問點現在這個部門做的業務,遇到過的問題,部門發展的一個規劃;最好别叫面試官評價你,要是評價不好會影響心情,自己的面試表現自己應該清楚。
可以在自己面試的時候做記錄,經常複習,先從小公司面起,積累經驗;另外要定位準确,自己的水準自己清楚,不要死磕大公司,浪費了大量時間還經常1面被刷;沒事審視下自己的履歷,不要把自己不熟悉的東西寫上去,像什麼精通之類的建議改成了解吧,不然會被問哭的;不要裝逼寫2頁,我很多項目比賽都沒寫進去,隻寫了幾個名次靠前的比賽,能吹一點的項目,其他沒寫進去的可以找機會主動說出來;項目即使很水,也要吹的很難很厲害的樣子;比賽和項目盡量突出裡面的難點,自己做的貢獻。
多刷題也比較重要,我自己的感受是内推問的問題會比通過了筆試問的要難一些,深一些;算法的推導同樣重要,之前我也是看到那些公式就蛋疼,後面沒辦法,看書看視訊,多手推幾遍,這樣面試的時候更有底氣;個人覺得在面試的時候能手推算法的應該比較少,是以優勢是很大的;實習生面試BAT跪掉的原因就是沒有複習,對算法的原理了解不夠深入,是以在校招的時候,9月開始用了将近一個月的時間來複習,效果挺好。
建議多交一些牛逼的朋友,我們有個專業打比賽群,6個人,有4個百度offer,有3個騰訊offer,還有個研二估計是下一個阿裡星吧(一年前的預測成真了,wepon真的拿到阿裡星了……天音也拿到阿裡offer了,群裡bat齊了,後來有個大佬去頭條了,現在看來是明智的決定)我們經常一起打比賽,在群裡讨論學術,裝逼扯淡什麼的,今年隻要參加了的比賽,基本都拿獎了吧。
另外感覺大公司也并沒有學校歧視,我的學校211都不是,問都沒問過學校的問題。我大學是個學渣,找不到工作就考研,讀研開始寫代碼,是以兩年,可以改變很多事情。
下面是我準備面試整理的一些資料,裡面有很多算法以及面試問題
http://download.csdn.net/detail/bryan__/9640531
大量算法題參考資料
http://blog.csdn.net/v_july_v/article/details/6543438
http://blog.csdn.net/hackbuteer1
機器學習公開課
https://www.julyedu.com/video/play/18/10
面試算法資料
http://www.cnblogs.com/tornadomeet/p/3395593.html
機器學習知識點總結
https://bbs.aliyun.com/read.php?spm=5176.100258.100258.8.bhrQ8k&tid=294564&displayMode=1&page=1&toread=1#tpc
http://m.blog.csdn.net/article/details?id=50244695
面試程式設計題十大經典算法
http://mp.weixin.qq.com/s?__biz=MjM5Nzk2MDU5NA==&mid=2652545706&idx=3&sn=87e964154fa54999719c34c4b67dfff7&scene=0#wechat_redirect
知乎上的問題,如何準備機器學習工程師的面試,非常全,多往後面翻,收獲會很多
https://www.zhihu.com/question/23259302
如何判斷深度學習面試者水準
https://www.zhihu.com/question/41233373
最後是我參加資料挖掘競賽的情況,截止17年6月,天池積分榜排名第五,拿到3次top3,獲得天池平台的資料科學家稱号,2年競賽生涯圓滿。
另外,想要來騰訊,可以掃碼内推