【數據挖掘面經】騰訊+百度+華為(均拿到sp offer)


《數據挖掘——從入門到求職》

by ZakeXu

PS:文中所涉及資料可從以下鏈接獲取(包括簡歷模版)

http://pan.baidu.com/s/1o8r0ux0

最近秋招也已經慢慢接近尾聲了,從去年8月底開始,先后參加了datacastle,阿里天池,牛客網各自舉辦的數據挖掘比賽(都是top10),今年4月份又先后去百度,騰訊實習,到現在秋招快結束,也將近一年的時間,最終拿到手的比較有分量的offer主要是騰訊,百度,華為三家企業的offer,都是sp,下面就將過去一年的一些經驗做一下小總結,不一定是最合適的方法,但是當毫無頭緒的時候,可以參考參考。

(一)簡介

1.首先介紹企業對該崗位的一些能力需求,直接貼bat在該方向的相應崗位jd:

(1)百度:機器學習/數據挖掘工程師


 

(2)阿里:算法工程師


 

(3)騰訊:基礎研究


 

2.個人感覺數據挖掘是一個比較大的概念,可以理解為:

數據挖掘 = 業務知識 + 自然語言處理技術(NLP)+ 計算機視覺技術(CV)+ 機器學習/深度學習(ML/DL)

(1)其中業務知識具體指的是個性化推薦,計算廣告,搜索,互聯網金融等;NLP,CV分別是處理文本,圖像視頻數據的領域技術,可以理解為是將非結構化數據提取轉換成結構化數據;最后的ml/dl技術則是屬於模型學習理論;

(2)在選擇崗位時,各個公司都沒有一套標准的稱呼,但是所做的事情無非2個大方向,一種是主要鑽研某個領域的技術,比如自然語言處理工程師,計算機視覺工程師,機器學習工程師等;一種是將各種領域技術應用到業務場景中去解決業務需求,比如數據挖掘工程師,推薦系統工程師等;具體的稱呼不重要,重要的是平時的工作內容;

PS:在互聯網行業,數據挖掘相關技術應用比較成功的主要是推薦以及計算廣告領域,而其中涉及到的數據主要也是文本,所以NLP技術相對來講比較重要,至於CV技術主要還是在人工智能領域(無人車,人臉識別等)應用較多,本人了解有限,相關的描述會較少;

3.根據之前的分析,也可以看到該崗位所需要的3種基本能力分別是業務經驗,算法能力與工程能力;

(二)入門

1.工程能力

(1)編程基礎:需要掌握一大一小兩門語言,大的指C++或者JAVA,小的指python或者shell腳本;需要掌握基本的數據庫語言;

建議:MySQL + python + C++;語言只是一種工具,看看語法就好;

推薦書籍:《C++ primer plus》

(2)開發平台:Linux;

建議:掌握常見的命令,掌握Linux下的源碼編譯原理;

推薦書籍:《Linux私房菜》

(3)數據結構與算法分析基礎:掌握常見的數據結構以及操作(線性表,隊,列,字符串,樹,圖等),掌握常見的計算機算法(排序算法,查找算法,動態規划,遞歸等);

建議:多敲代碼,多上OJ平台刷題;

推薦書籍:《大話數據結構》《劍指offer》

(4)海量數據處理平台:hadoop(mr計算模型,java開發)或者spark(rdd計算模型,scala開發),重點推薦后者;

建議:主要是會使用,有精力的話可以看看源碼了解集群調度機制之類的;

推薦書籍:《大數據spark企業級實戰》

2.算法能力

(1)數學基礎:概率論,數理統計,線性代數,隨機過程,最優化理論

建議:這些是必須要了解的,即使沒法做到基礎扎實,起碼也要掌握每門學科的理論體系,涉及到相應知識點時通過查閱資料可以做到無障礙理解;

(2)機器學習/深度學習:掌握常見的機器學習模型(線性回歸,邏輯回歸,SVM,感知機;決策樹,隨機森林,GBDT,XGBoost;貝葉斯, KNN,K-means,EM等);掌握常見的機器學習理論(過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等);掌握常見的深度學習模型(CNN,RNN等);

建議:這里的掌握指的是能夠熟悉推導公式並能知道模型的適用場景;

推薦書籍:《統計學習方法》《機器學習》《機器學習實戰》《UFLDL

(3)自然語言處理:掌握常見的方法(tf-idf,word2vec,LDA);

3.業務經驗

(1)了解推薦以及計算廣告相關知識;

推薦書籍:《推薦系統實踐》《計算廣告》

(2)通過參加數據挖掘競賽熟悉相關業務場景,常見的比賽有Kaggle,阿里天池,datacastle等;

PS:以上都是一些入門級別的介紹,在長期的學習中,應該多看頂會paper,多讀開源代碼,多學習優秀解決方案;

PS:以上推薦的書籍對應的電子版可以聯系本人(Q:1434909067)

PS: 鏈接:http://pan.baidu.com/s/1o8r0ux0

(三)求職

1.簡歷

(1)格式:個人信息(姓名,聯系方式,教育背景,求職意向,照片可有可無)+ 競賽經歷+ 實習經歷 + 項目經歷 + 掌握技能 + 獲獎情況;

PS:最好寫成一頁;

(2)加分:博客,github,競賽top10,頂會paper;

PS:如果感興趣的話可以聯系我要簡歷模板(Q:1434909067)

PS:牛逼的簡歷可以讓你有更多的面試機會,更關鍵的是讓面試官在面試時潛意識給你打高分,當然前提是簡歷要真實,所以平時得為了牛逼的簡歷多做准備工作;

2.海投

(1)國內設有該崗位且還不錯的公司:

百度,騰訊,阿里,網易(互聯網,游戲,有道),華為,今日頭條,滴滴研究院,一點咨訊,360,美團等;

(2)如果選擇留在廣東深圳發展,就業的機會比較少,比較好的主要就是百度深研,騰訊總部,華為深圳,京東好像在深圳也有個做數據挖掘的團隊;(樓主傾向去深圳發展)

(3)個人建議在3月份的時候可以通過實習生的身份進入相關企業,爭取實習生留用;一般企業給應屆生的hc分配比例大概是實習生留用:校招提前批:校招正式=4:3:3,實習生留用相對比較容易;

(4)一般投遞簡歷時,盡量聯系公司內部的師兄師姐或者熟人,幫忙將簡歷直接給到團隊leader手中,這樣做的好處是可以同時面試同個公司的多個團隊,前提是簡歷在公司校招系統未被鎖定的前提下,具體情況多咨詢公司內部熟人,在求職過程中,信息來源非常重要,一定要注意這點,不然會踩很多坑;

(5)加入各種求職交流群,多認識些人,共享資源;

(6)投簡歷時候盡量內推,很多公司內推可以免筆試;

PS:筆試純屬看rp,總之就是多刷題,上牛客網多練練並針對性復習就好;

3.面試

(1)一般該崗位的面試起碼都有3輪,2輪技術面,1面hr面,hr面主要看情商,這里不多說;2輪技術面的區別就是越到后面面試官的級別越高,所以面試的風格也可能越偏向於技術視野等一些吹水的話題上;

(2)一般技術面有以下一些環節:自我介紹,項目介紹,算法提問(推公式),數據結構提問(寫代碼);

1)自我介紹:一般盡量簡短,主要講清楚自己的研究方向,所取得成就以及優勢所在即可;

2)項目介紹:簡歷上的項目一定要熟悉,介紹時候分三部曲:項目背景,項目方案,項目成果;對項目中涉及到的一些技術點一定要很熟悉;

3)算法提問:一般是問常見機器學習模型原理或者一些機器學習常見問題的解決方案(比如正負樣本不平衡之類的),所以常見的機器學習模型一定要很清楚原理,必須會推公式,能知道工程實現的一些trick的話,那你就離sp不遠了;

4)數據結構提問:常見的數據結構一定要掌握,基礎的代碼一定要會手寫(快排,冒泡,堆排,歸並排序,二分查找,二叉樹的遍歷,二叉樹增刪查改);劍指offer的題目要會;有精力的話可以刷下leetcode;

(3)面試的時候多准備一些素材,在面試過程中主動引導面試官提問,比如面試官讓你講解gbdt原理時,這會你可以跟他說一般說起gbdt,我們都會跟rf以及xgboost一塊講,然后你就可以主動地向面試官輸出你的知識;面試並不是死板地你問我答,而是一種溝通交流,所以盡可能地把面試轉化成聊天式的對話,多輸出自己一些有價值的觀點而不是僅僅為了回答面試官的問題;

(4)在面試過程中,除了基礎的東西要掌握,可以適當地向面試官展示你的一些其他的亮點,比如跟面試官談論某些最近paper的進展以及一些技術方面的想法等,突出自己的與眾不同;

(5)不同公司的面試風格都略有不同:

1)百度:技術派,現場面,最大的風格就是寫代碼,2面技術加一面經理面,技術面必寫代碼;

2)阿里:內推可以電話面,主要是聊項目跟問一些基礎的數據結構方面的知識,看看劍指offer一般可以應付;

3)騰訊:內推可以電話面,主要聊項目跟推公式;

4)華為:主要聊項目,智力題以及聊價值觀之類的東西;

5)滴滴研究院:百度系,面試風格跟百度差不多;

(6)常見面試題(由於有的面試時間較久,主要靠記憶寫下來)

1)幾種模型(svm,lr,gbdt,em)的原理以及公式推導;

2)rf,gbdt的區別;gbdt,xgboost的區別(爛大街的問題最好從底層原理去分析回答);

3)決策樹處理連續值的方法;

4)特征選擇的方法;

5)過擬合的解決方法;

6)kmeans的原理,優缺點以及改進;

7)常見分類模型(svm,決策樹,貝葉斯等)的優缺點,適用場景以及如何選型;

8)svm為啥要引入拉格朗日的優化方法;

9)假設面試官什么都不懂,詳細解釋CNN的原理;

10)海量的item算文本相似度的優化方法;

11)梯度下降的優缺點;

12)em與kmeans的關系;

13)L1與L2的區別以及如何解決L1求導困難;

14)如何用盡可能少的樣本訓練模型同時又保證模型的性能;

15)解釋word2vec的原理以及哈夫曼樹的改進;

16)對推薦算法的未來看法;

17)在模型的訓練迭代中,怎么評估效果;

18)有幾個G的文本,每行記錄了訪問ip的log,如何快速統計ip出現次數最高的10個ip;如果只用linux指令又該怎么解決;

19)一個繩子燒完需要1個小時,假設所有繩子的材質都不一樣,也不均勻,怎么取出1小時加15分鍾;

20)假設有個M*N的方格,從最左下方開始往最右上方走,每次只能往右或者往上,問有多少種走法,假設中間有若干個格子不能走,又有多少種走法;

21)實現hmm的狀態轉移代碼;

22)最短路徑代碼;

23)拼車軟件是如何定價的以及如何優化;

24)100張牌,每次只能抽一張,抽過的牌會丟掉,怎么選出最大的牌;

25)怎么預測降雨量;

26)kmeans代碼;

27)mr方案解決矩陣相乘的代碼;

28)sql語句的一些優化技巧;

29)關於集群調度的一些經驗trick掌握多少;

30)設計一個系統可以實時統計任意ip在過去一個小時的訪問量;

31)設計LRU系統;

PS:以上的面試題僅供參考,主要是提供一個方向,大概了解這個崗位的面試考核方向,具體還得多刷刷面經(牛客網);

 

 

點擊作者姓名與作者大佬交流~

作者:ZakeXu

來源:

牛客網(www.nowcoder.com)

- 互聯網名企筆試真題

- 校招求職筆經&面經

- 程序員/產品/運營求職實習信息

- 程序員/產品/運營學習交流社區


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM