面經 | 萬字乾貨!親歷N家機器學習崗面試,騰訊演算法題、美團場景題最全覆蓋
- 2020 年 7 月 30 日
- AI
記得點擊藍字,關注我們呀~



作者:狗皮膏藥,畢業於中國人民大學
本文總結了機器學習演算法崗的面試過程,作者結合自己的面試經歷整理了一份機器學習演算法崗面試時遇到過的問題,同時還有部分回答。

就自己的經驗總結一些準備機器學習演算法崗位求職的粗淺經驗,簡要地分享一下。一個完整的機器學習工程師的面試過程主要有以下這些環節:自我介紹、項目介紹、演算法推導和解釋、數據結構與演算法題(寫程式碼)。
關於自我介紹,主要就是簡單介紹下自己的教育背景,在校期間的研究方向和所做的項目以及在項目中所充當的角色等等,為之後的面試做個鋪墊,讓面試官從中捕捉點來問。
項目介紹是最為重要的,這也是體現你綜合實力的地方,對項目背景、項目實現的方案,項目所實現的東西都要了如指掌,做機器學習的,必然需要準備一到兩個重點的機器學習項目,可以是比賽,也可以是實驗室項目,關鍵是項目中間的技術細節都要了如指掌,比如你用了樹模型,就得知道所有樹模型相關的推導和原理,決不能含糊,一旦你說不太清楚,面試官就會對項目的真實性存疑。參加比賽應該是沒有實驗室項目的同學最佳的積累經驗的途徑,比較好的比賽平台有Kaggle、天池大數據、datacastle等
接下來就是機器學習演算法原理和推導,這也是要重點去準備的,在面試前得達到,給你一張白紙,你可以把推導的每一步寫的清清楚楚的,推導的話面試常考邏輯回歸和SVM的推導,關於原理面試官常會問你幾個樹模型之間的對比等等等,其他的演算法比如LR、SVM、EM、Adaboost、PageRank、 FFM、決策樹,隨機森林, GBDT , XGBoost 、推薦演算法、聚類、CNN、RNN、LSTM、Word2Vec等等,以及他們的適用場景,再如一些機器學習的理論,非平衡問題、過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題。這一部分我會在文末貼出一個問題集錦,大家按照這個去準備就行。還有必看的書李航的《統計學習方法》、周志華的《機器學習》、項亮的《推薦系統實踐》
最後就是寫程式碼了,很多非電腦出身的大都會栽在這個地方,程式碼寫得少,訓練不到位,就會導致當場思路不清晰,不知從哪寫起,但目前市面上已經有很多專門為這塊總結的一些書籍,推薦使用《劍指offer》、《王道程式設計師求職寶典》等等,有時間的話再刷一下leetcode。排序演算法、查找演算法、二叉樹遍歷這些最基本的一定要很順溜的寫下來,其他的就看自己去拓展了。
至於進入互聯網公司之後,演算法工程師或者數據挖掘工程師的工作內容有哪些呢?大部分的同學就是在跑數據,各種MapReduce,Hive SQL,數據倉庫搬磚,然後進行很耗費時間的數據清洗,對業務進行分析,對案例進行分析,不斷的找特徵,再丟到模型裡面。大部分的與業務結合緊密的模型的演算法優化都是有足夠業務經驗的數據科學家在做,而沒有經驗的應屆生需要慢慢培養對業務的敏感度和對數據的認知,這也是稱為數據科學家必需的技能。
以下是我總結出來的在演算法崗面試過程中可能會遇到的問題,都分門別類的按照演算法排列好了,大家可以在系統地梳理了一遍演算法之後對問題進行排查,爭取每個問題都可以答得上來,當然針對自己項目里的遇到的演算法,就更需要熟悉掌握了。
此外,在準備面試的過程中,我自己總結了幾個系列的筆記,【機器學習系列】【數據結構與演算法】【自然語言處理】【深度學習】【數據分析】等,大家可以直接訪問個人部落格://plushunter.github.io
SVM:
-
簡單介紹SVM(詳細原理):從分類平面,到求兩類間的最大間隔,到轉化為求間隔分之一,等優化問題,然後就是優化問題的解決辦法,首先是用拉格拉日乘子把約束優化轉化為無約束優化,對各個變數求導令其為零,得到的式子帶入拉格朗日式子從而轉化為對偶問題, 最後再利用SMO(序列最小優化)來解決這個對偶問題。svm裡面的c有啥用。
-
SVM的推導,解釋原問題和對偶問題,SVM原問題和對偶問題的關係,KKT限制條件,KKT條件用哪些,完整描述;軟間隔問題,解釋支援向量、核函數(哪個地方引入、畫圖解釋高維映射,高斯核可以升到多少維,如何選擇核函數),引入拉格朗日的優化方法的原因,最大的特點,損失函數解釋。
-
SVM與LR最大區別,LR和SVM對於outlier的敏感程度分析,邏輯回歸與SVM的區別。
-
為什麼要把原問題轉換為對偶問題?因為原問題是凸二次規劃問題,轉換為對偶問題更加高效。為什麼求解對偶問題更加高效?因為只用求解alpha係數,而alpha係數只有支援向量才非0,其他全部為0.alpha係數有多少個樣本點的個數?
-
加大訓練數據量一定能提高SVM準確率嗎?
-
與感知器的聯繫和優缺點比較?
-
如何解決多分類問題、可以做回歸嗎,怎麼做?
-
它與其他分類器對比的優缺點,它的速度?
-
機器學習有很多關於核函數的說法,核函數的定義和作用是什麼?
-
支援向量機(SVM)是否適合大規模數據?
-
SVM和邏輯斯特回歸對同一樣本A進行訓練,如果某類中增加一些數據點,那麼原來的決策邊界分別會怎麼變化?
-
各種機器學習的應用場景分別是什麼?例如,k近鄰,貝葉斯,決策樹,svm,邏輯斯蒂回歸和最大熵模型。
-
Linear SVM 和 LR 有什麼異同?
LR
-
LR推導(伯努利過程,極大似然,損失函數,梯度下降)有沒有最優解?
-
LR可以用核么?可以怎麼用?l1和l2正則項是啥?lr加l1還是l2好?加哪個可以用核(加l2正則項,和svm類似,加l2正則項可以用核方便處理)。
-
LR可以用來處理非線性問題么?(還是lr啊 只不過是加了核的lr 這裡加核是顯式地把特徵映射到高維 然後再做lr)怎麼做?可以像SVM那樣么?為什麼?
-
為什麼LR需要歸一化或者取對數,為什麼LR把特徵離散化後效果更好,為什麼把特徵組合之後還能提升,反正這些基本都是增強了特徵的表達能力,或者說更容易線性可分吧。
-
美團技術團隊《Logistic Regression 模型簡介》:
//tech.meituan.com/intro_to_logistic_regression.html
-
SVM和logistic回歸分別在什麼情況下使用?
//www.zhihu.com/question/21704547
-
邏輯斯蒂回歸能否解決非線性分類問題?
//www.zhihu.com/question/29385169
-
為什麼LR可以用來做CTR預估?
//www.zhihu.com/question/23652394
-
邏輯回歸估計參數時的目標函數 (就是極大似然估計那部分),邏輯回歸估計參數時的目標函數 (呵呵,第二次) 邏輯回歸估計參數時的目標函數 如果加上一個先驗的服從高斯分布的假設,會是什麼樣(天啦。我不知道,其實就是在後面乘一個東西,取log後就變成加一個東西,實際就變成一個正則項。)
-
邏輯回歸估計參數時的目標函數邏輯回歸的值表示概率嗎?(值越大可能性越高,但不能說是概率。)
-
手推邏輯回歸目標函數,正類是1,反類是-1,這裡挖了個小坑,一般都是正例是1,反例是0的,他寫的時候我就注意到這個坑了,然而寫的太快又給忘了,衰,後來他提醒了一下,改了過來,就是極大似然函數的指數不一樣,然後說我這裡的面試就到這了。
-
看沒看過scikit-learn源碼LR的實現?(回頭看了一下是調用的liblinear,囧)
-
為什麼LR需要歸一化或者取對數,為什麼LR把特徵離散化後效果更好,為什麼把特徵組合之後還能提升,反正這些基本都是增強了特徵的表達能力,或者說更容易線性可分吧。
-
naive bayes和logistic regression的區別:
//m.blog.csdn.net/blog/muye5/19409615
-
LR為什麼用sigmoid函數。這個函數有什麼優點和缺點?為什麼不用其他函數?sigmoid函數由那個指數族分布,加上二項分布導出來的。損失函數是由最大似然估計求出的。
-
了解其他的分類模型嗎,問LR缺點,LR怎麼推導(當時我真沒準備好,寫不出來)寫LR目標函數,目標函數怎麼求最優解(也不會)講講LR的梯度下降,梯度下降有哪幾種,邏輯函數是啥?
L1和L2
-
L2正則化,為什麼L2正則化可以防止過擬合?L1正則化是啥?
-
深度學習裡面怎麼防止過擬合?(data aug;dropout;multi-task learning)如何防止過擬合,我跟他列舉了4中主要防止過擬合方法:Early Stopping、數據集擴充、正則化法以及dropout,還詳細跟他說了每種方法原理及使用的場景,並解釋我在哪些項目里具體用到了這些方法。
-
機器學習中使用「正則化來防止過擬合」到底是一個什麼原理?為什麼正則化項就可以防止過擬合?//www.zhihu.com/question/20700829
-
機器學習中常常提到的正則化到底是什麼意思?
//www.zhihu.com/question/20924039
-
什麼是正則項,L1範式,L2範式區別是什麼,各自用在什麼地方?L1 與 L2 的區別以及如何解決 L1 求導困難。
-
L1正則為什麼能讓係數變為0?L1正則怎麼處理0點不可導的情形?(這個誰會?近端梯度下降。)
-
L0,L1,L2正則化(如果能推導絕對是加分項,一般人最多能畫個等高線,L0是NP問題)其實上面的這些問題基本都能在《李航:統計學習方法》《周志華:機器學習》裡面找到,能翻個4,5遍基本就無壓力了。
-
避免過擬合策略、如何提高模型泛化能力、L1與L2正則區別,優缺點、生成式,判別式模型、深度學習這塊了解多少?
-
如何克服過擬合,欠擬合。
-
L1 與 L2 的區別以及如何解決 L1 求導困難。
-
L1正則為什麼可以把係數壓縮成0,坐標下降法的具體實現細節。
-
為什麼L1正則可以實現參數稀疏,而L2正則不可以?為什麼L1很多係數可以被壓縮為0,L2是被壓縮至接近於0?
樹模型
-
rf , gbdt 的區別; gbdt , xgboost 的區別(爛大街的問題最好從底層原理去分析回答)。
-
介紹決策樹,談了3種決策樹及其區別和適應場景。
-
決策樹處理連續值的方法;簡單介紹決策樹幾種演算法,有什麼區別?
-
決策樹基本模型介紹?決策樹演算法中缺失值怎麼處理?決策樹演算法在應用中有什麼值得注意的地方。SVM、LR、決策樹的對比?GBDT 和 決策森林 的區別?決策樹的特性?(3 )決策樹處理連續值的方法。
-
解釋下隨機森林和gbdt的區別。gbdt的boosting體現在哪裡。解釋下隨機森林節點的分裂策略,以及它和gbdt做分類有什麼區別?哪個效果更好些?為什麼?哪個更容易過擬合?為什麼? 問了隨機森林的損失函數,和lr的優缺點對比, adaboost和隨機森林的比較,為了防止隨機森林過擬合可以怎麼做,是否用過隨機森林,怎麼用的。
-
隨機森林和GBDT的區別?CART(回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則)。
-
GBDT(利用損失函數的負梯度在當前模型的值作為回歸問題提升樹演算法中的殘差的近似值,擬合一個回歸樹)。
-
隨機森林(Bagging+CART)。
-
SVM與隨機森林比較。
-
改變隨機森林的訓練樣本數據量,是否會影響到隨機森林學習到的模型的複雜度。
-
Logistics與隨機森林比較。
-
GBDT與隨機森林比較隨機森林的學習過程;隨機森林中的每一棵樹是如何學習的;隨機森林學習演算法中CART樹的基尼指數是什麼?
-
RF 與 GBDT 區別,原理優缺點適用場景分析,哪個具備交叉驗證功能等。
-
接著寫一下資訊增益的公式。之後就是問機器學習相關演算法,說了一下bagging跟boosting,之後問了GBDT(沒做過,只能說說大體思路)。(2 ) rf , gbdt 的區別; gbdt , xgboost 的區別。
-
說說xgboost、gbdt區別、Tree-based Model如何處理連續型特徵。
-
讓我把一個完整的數據挖掘流程講一下,從預處理,特徵工程,到模型融合。介紹常用的演算法,gbdt和xgboost區別,具體怎麼做預處理,特徵工程,模型融合常用方式,融合一定會提升嗎?
-
gbdt樹根據什麼分裂(瞎扯的梯度近似殘差、梯度下降方向,其實還是資訊增益這種東西)。
-
gbdt怎麼並發(特徵選擇層面,樹層面不能並發)。
-
介紹LR、RF、GBDT ,分析它們的優缺點,是否寫過它們的分散式程式碼。
-
XGB和GBDT區別與聯繫也會經常問到:
//www.zhihu.com/question/41354392/answer/128008021?group_id=773629156532445184
-
CART(回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則)、Logistics(推導)、GBDT(利用損失函數的負梯度在當前模型的值作為回歸問題提升樹演算法中的殘差的近似值,擬合一個回歸樹)。
-
在面試過程中主動引導面試官提問,比如面試官讓你講解 gbdt 原理時,這會你可以跟他說,一般說起 gbdt ,我們都會跟 rf 以及 xgboost 一塊講,然後你就可以主動地向面試官輸出你的知識;面試並不是死板地你問我答,而是一種溝通交流,所以儘可能地把面試轉化成聊天式的對話,多輸出自己一些有價值的觀點而不是僅僅為了回答面試官的問題。
-
幾種樹模型的原理和對比。
-
特徵選取怎麼選? 為什麼資訊增益可以用來選特徵?
-
資訊熵和基尼指數的關係(資訊熵在x=1處一階泰勒展開就是基尼指數)。
-
介紹xgboost一下。寫下xgboost目標函數。(因為我提到xgboost在目標函數里顯式地加入了正則項..血雪崩)怎麼調整XGB參數;xgboost原理。
K-means
-
k-means 聚類的原理以及缺點及對應的改進;kmeans 演算法的優缺點。
-
kmeans 的原理,優缺點以及改進。
-
em 與 kmeans 的關係。
-
kmeans 程式碼。
-
說說 Kmeans 演算法, Kmeans 演算法 K 怎麼設置、適用什麼樣數據集、怎麼評價 Kmeans 聚類結果、 Kmeans 有什麼優缺點?你的項目中使用 Kmeans 遇到哪些問題,怎麼解決的 ?
-
用 EM 演算法推導解釋 Kmeans。
-
KMeans的演算法偽程式碼。
-
如何判斷自己實現的 LR、Kmeans 演算法是否正確?
-
如何優化kmeans演算法。
-
如何用hadoop實現k-means。
-
手寫k-means的偽程式碼(就6行)。
-
集成學習 。
-
bagging和boosting是怎麼做的和他們的比較。
-
詳細討論了樣本取樣和bagging的問題。
-
聊的比較多的是如何知道一個特徵的重要性,如何做ensemble哪些方法比較好。聊了聊計算廣告方面FM,embedding。
-
常見融合框架原理,優缺點,bagging,stacking,boosting,為什麼融合能提升效果。
-
是否了解線性加權、bagging、boosting、cascade等模型融合方式。
-
K-means起始點:
//www.cnki.com.cn/Article/CJFDTotal-DNZS200832067.htm
貝葉斯
-
樸素貝葉斯分類器原理以及公式,出現估計概率值為 0 怎麼處理(拉普拉斯平滑),缺點。
-
解釋貝葉斯公式和樸素貝葉斯分類。
-
貝葉斯分類,這是一類分類方法,主要代表是樸素貝葉斯,樸素貝葉斯的原理,重點在假設各個屬性類條件獨立。然後能根據貝葉斯公式具體推導。考察給你一個問題,如何利用樸素貝葉斯分類去分類,比如:給你一個人的特徵,判斷是男是女,比如身高,體重,頭髮長度等特徵的的數據,那麼你要能推到這個過程。給出最後的分類器公式。
-
那你說說貝葉斯怎麼分類啊?比如說看看今天天氣怎麼樣?我:blabla,利用天氣的歷史數據,可以知道天氣類型的先驗分布,以及每種類型下特徵數據(比如天氣數據的特徵:溫度啊,濕度啊)的條件分布,這樣我們根據貝葉斯公式就能求得天氣類型的後驗分布了。面試官:en(估計也比較滿意吧)那你了解關於求解模型的優化方法嗎?一般用什麼優化方法來解?
-
貝葉斯分類器的優化和特殊情況的處理。
深度學習
-
解釋一下CNN、介紹CNN、卷積公式,以及特點,假設面試官什麼都不懂,詳細解釋 CNN 的原理;問CNN的細節特點,哪些特點使得CNN這麼好用,哪些場景用CNN可以,抽象一下這些場景的特徵,可以降取樣但仍能保持主要資訊;局部連接可以保證獲取局部資訊;權值共享保證高效,DNN和CNN相比有哪些區別,用過RNN么?畫一下RNN的圖,你在深度學習過程中遇到過哪些問題?如果出現過擬合你怎麼辦?dropout是什麼?它有什麼用?你會怎麼用它?當全連接跟dropout連著用需要注意什麼?你之前過擬合怎麼解決的?如果本身training loss就很大你怎麼辦?如果數據不變,怎麼調整網路結構解決這個問題?(batch normalization)梯度消失知道么?為什麼會出現梯度消失?dnn和rnn中的梯度消失原理一樣么?dnn中是哪個部分導致梯度消失?(激活層如sigmoid)rnn中怎麼解決梯度消失問題?(lstm的結構相對普通RNN多了加和,為避免梯度消散提供了可能。線性自連接的memory是關鍵。)講一下CNN吧,有哪些重要的特點?CNN可以處理哪些場景?為什麼CNN要用權值共享?(每個卷積核相當於一個特徵提取器,它的任務是匹配局部影像中的特徵,權值共享後,匹配的特徵方式都是一樣的,提取若干特徵後就知道學習的是啥了)CNN裡面哪些層?講一下卷積。卷積的形式是啥樣?給定一個輸入,算輸出的feature map大小。卷積有啥用?池化有啥用?有哪些池化方式?池化除了降取樣還有啥用?(就不知道了)還有哪些層你用過?講講dropout。dropout內部是怎麼實現只讓部分訊號通過並不更新其餘部分對於輸入的權值的?講講BN(BatchNormalization)為什麼好?全連接有什麼用處?知道RNN么?講講RNN大致的實現思路。知道梯度消失么?為什麼會出現梯度消失?RNN里的梯度消失一般怎麼處理?細講下lstm的結構,這樣設計為什麼好?(門關閉,當前資訊不需要,只有歷史依賴;門打開,歷史和當前加權平均)你覺得梯度消失靠引入一些新的激活層可以完全解決么?為什麼?
-
問了做的比賽裡面使用tensorflow的細節,LSTM里調參的細節。
-
用過哪些庫或者工具,mkl,cuda這些會用嗎?
-
有一個弱分類器和大量未被標記過的影像數據,如何人工標記影像來對分類器進行提升。
-
介紹下RNN和它的優缺點。
-
讓我推導BP反向傳播、隨機梯度下降法權重更新公式。
-
卷積神經網路結構特點、各參數對模型結果影響、項目進展遇到的難題、推導BP神經網路參數更新方式、隨機梯度下降法(SGD)優化函數存在的缺點以及擬牛頓法在優化函數使用上更有優勢、修改Caffe開源框架、開源社區程式碼貢獻量就跟我聊了很多行業發展趨勢及問題,知道目前深度學習的一個趨勢,也了解到最新行業發展動態,改進相機智慧化程度,也聊到了美顏相機美顏效果以及小米相機人臉分類、年齡檢測等等不足之處,了解到新興行業大佬商湯科技和曠視科技(face++臉草)在研究的熱門方向。
-
看到有deep learning相關的項目,就問了deep learning 相關問題:如何減少參數(權值共享、VGG的感受野、GoogLeNet的inception ),激活函數的選擇(sigmoid->ReLu->LReLU->PReLU ),為什麼之前沒有深度網路出現(數據量不夠+機器性能),由數據引申到數據不平衡怎麼處理(10W正例,1W負例,牛客上有原題)。
-
後面問了下DNN原理,應用,瞎扯一通……
-
你了解神經網路嗎?我:了解一些,講感知機,然後是BP網路。簡單講了一下原理。
-
影像處理題:如何找相似圖片。我說用感知哈希演算法,計算漢明距離,他說這種方法精度不行;我說那就用SIFT演算法吧,他說SIFT效果還可以,但計算有點繁重,有沒有輕量級的方法?我想起來去年在美圖秀秀實習時,曾經做過一種影像濾波演算法,有一步是把像素點用K-means聚類。我就說先把圖片灰度化,然後用K-means聚類,把聚類後的各個中心點作為一張圖片的特徵向量如果兩張圖片的特徵向量相近則說明這兩張圖片相似。貌似我這個答案有點出乎他的意料,他意味深長地說了個「行吧」(個人覺得顏色直方圖匹配是個他期待的常規回答)。
-
介紹卷積神經網路,和 DBN 有什麼區別?
-
Deep CNN, Deep RNN, RBM的典型應用與局限,看Hinton講義和Paper去吧。
-
神經網路,plsi的推導。
-
驗證碼圖片的去噪和提取字元。
-
有限狀態自動機,然後要我畫狀態轉移圖。
聚類
-
用過哪些聚類演算法,解釋密度聚類演算法。
-
聚類演算法中的距離度量有哪些?
優化
-
梯度下降的優缺點;主要問最優化方面的知識,梯度下降法的原理以及各個變種(批量梯度下降,隨機梯度下降法, mini 梯度下降法),以及這幾個方法會不會有局部最優問題,牛頓法原理和適用場景,有什麼缺點,如何改進(擬牛頓法)。
-
常用優化演算法:1.梯度下降法:又有隨機梯度下降和負梯度下降,2.牛頓法 主要是問了各自的優缺點,速度,能不能得到全局最優解,牛頓法的二次收斂等。
-
問你如果有若干個極小值點,如何避免陷入局部最優解。
-
它們間的牛頓學習法、SGD如何訓練。
-
如何判斷函數凸或非凸?
-
線性回歸的梯度下降和牛頓法求解公式的推導。
-
最速下降法和共軛梯度法 wolfe條件 最速下降法和共軛梯度法的收斂速度如何判斷。
-
深刻理解常用的優化方法:梯度下降、牛頓法、各種隨機搜索演算法(基因、蟻群等等),深刻理解的意思是你要知道梯度下降是用平面來逼近局部,牛頓法是用曲面逼近局部等等。
推薦系統
-
介紹SVD、SVD++
-
推薦系統的冷啟動問題如何解決。
-
深度學習在推薦系統上可能有怎樣的發揮?
-
推薦系統的演算法中最近鄰和矩陣分解各自適用場景。
-
白板寫SVD/SVD++公式,SGD迭代更新p,q矩陣公式,SVD/SVD++優化方法。
-
對推薦演算法的未來看法。
-
用過什麼演算法?最好是在項目/實習的大數據場景里用過,比如推薦里用過 CF、LR。
-
我面的推薦,問了各類協同過濾的好與壞。
-
問了一個很有意思的問題,現實應用中的Top-N推薦問題和學術研究中的評分預測問題之間有什麼不同。問我ItemCF的工程實現,面對大數據如何實現,又追問了有沒有什麼工程優化演算法。這個問題我沒答好,一開始我說了一個MapReduce模型,他問能不能更快一點,我就卡那了。。。最後面試官告訴我,不能只從演算法角度分析,要從系統設計分析,利用記憶體來減小MapReduce的吞吐量。(當然也許從MapReduce那一刻開始我就輸了也不一定。)
-
推薦系統的演算法中最近鄰和矩陣分解各自適用場景:
//www.doc88.com/p-3961053026557.html
PCA
那你對pca了解嗎?我:了解啊,面試官:那講一下pca是用***嘛的?我:pca啊,可以用來分析主方向啊,降維啊,特徵篩選啊,具體方法是用svd分解得到特徵值矩陣和特徵向量矩陣,然後根據不同的任務對選擇特徵值或向量進行計算。
EM
-
採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?
NLP
-
用過哪些 NLP 演算法項目中用過哪些機器學習演算法。
-
海量的 item 算文本相似度的優化方法。
-
解釋 word2vec 的原理以及哈夫曼樹的改進;word2vec的原理。
-
二面面試官主要跟我聊簡歷上的幾個項目,他好像不能理解詞向量的形式,反覆解釋了很多遍,問的問題都比較簡單,有TF-IDF,餘弦相似度,分詞工具等等。
-
然後我說我做過LDA,問我,Dirichlet Distribution的定義和性質,並問我,為什麼它和multinomial distribution是共軛的,順便問了我啥叫共軛分布。
關聯分析
-
項目中涉及到頻繁模式挖掘,於是問了一下如何實現的? 用的是 Apriori演算法,描述他的原理過程,關鍵字眼:支援度,支援度計數,k項候選頻繁項集,怎麼從k項到k+1項等,連接剪枝過程。
hadoop
-
簡單介紹 MapReduce 原理,有沒有看過源碼,說說 Map 階段怎麼實現的。
-
MapReduce 實現統計出現次數最多的前 100 個訪問 IP。
-
MapReduce 實現統計不重複用戶 ID,MapReduce 實現兩個數據集求交集。
-
HBase 行健怎麼設計,spark 性能一般優化方法,spark streaming 和 storm 區別.給了一張筆試題, 10 道選擇,一道大題。選擇題是 java 基礎知識,大題一個有三問:根據場景寫出 Hive 建表語句; Hsql 從表中查詢。
-
用MapReduce寫好友推薦,在一堆單詞裡面找出現次數最多的k個。
-
用分散式的方法做取樣怎麼保證取樣結果完全符合預期?
-
後面又問了Hadoop,Spark,storm下面的產品,原理,適用場景。
-
寫一個 Hadoop 版本的 wordcount。
HMM
-
實現 hmm 的狀態轉移程式碼。
機器學習理論
-
講機器學習中常用的損失函數有哪些?交叉熵有什麼好處?(凸優化問題)
-
判別模型與生成模型的本質區別是什麼。
-
分類模型和回歸模型的區別,分類模型可以做回歸分析嗎?反過來可以嗎?(我回答是分類不可以做回歸,回歸倒是可以做分類,不知道對不對。)
-
k折交叉驗證 中k取值多少有什麼關係 (我不知道,隨便答,然後面試官後面問我知道bias和variance嗎?估計是和這兩個東西有關, 知乎上有個問題討論了k值大小與bias和variance的關係)。
-
解釋局部相關性。
-
特徵選擇的方法。
-
在模型的訓練迭代中,怎麼評估效果。
-
特徵選擇方法有哪些(能說出來10種以上加分),之後和面試官仔細聊了一下特徵選擇的問題,我介紹了了解的幾種基本的特徵選擇思路(錯誤率選擇、基於熵的選擇、類內類間距離的選擇)。
-
有沒有接觸過機器學習的前沿,深度學習看過paper沒有?(並沒有)
-
如何用儘可能少的樣本訓練模型同時又保證模型的性能。
-
你讀哪些期刊會議的論文?你遇到的比較有意思的演算法?
-
生成模型,判別模型。
-
線性分類和非線性分類各有哪些模型。
-
比較各個模型的Loss function。
-
設計一個結構存取稀疏矩陣 (面試官最後告訴我了一個極度壓縮的存法,相同行或列存偏差,我當時沒聽懂,還不懂裝懂,最後還是沒記住)。
-
PageRank原理,怎麼用模型來查找異常用戶,我講了一大堆我的理解,然後面試官一句你怎麼不用規則把我噎到。
-
無監督和有監督演算法的區別?
-
經典演算法推導(加分項),原理,各個損失函數之間區別,使用場景,如何並行化,有哪些關鍵參數?
-
什麼叫判別模型什麼叫生成模型。
-
先針對項目十分細緻地詢問了各種細節,然後就問我如何處理數據中的雜訊點、數據清洗演算法(正好自己做了一個演算法)、如何選擇特徵等。
-
校招TST內推,面過了2面,還是跟之前那個有點類似的遊戲開發的安全部門,因為我也玩LOL,又問到怎麼來判斷玩家有沒有作弊之類的問題,這次我小心翼翼的說用模型怎麼做,用規則怎麼做,感覺這次聊的都挺開心的。
-
是否了解A/B Test以及A/B Test結果的置信度特徵工程經驗?是否了解mutual infomation、chi-square、LR前後向、樹模型等特徵選擇方式?
-
深刻理解各種演算法對應採用的數據結構和對應的搜索方法。比如KNN對應的KD樹、如何給圖結構設計數據結構?如何將演算法map-red化?
-
矩陣的各種變換,尤其是特徵值相關的知識;分散式的矩陣向量乘的演算法。
-
線性分類器與非線性分類器的區別及優劣;特徵比數據量還大時,選擇什麼樣的分類器?對於維度很高的特徵,你是選擇線性還是非線性分類器?對於維度極低的特徵,你是選擇線性還是非線性分類器?如何解決過擬合問題?L1和L2正則的區別,如何選擇L1和L2正則?
-
項目中的數據是否會歸一化處理,哪個機器學習演算法不需要歸一化處理 ?
-
並行計算、壓縮演算法LDA
//www.doc88.com/p-1621945750499.html
場景題
1. 百度IDL:無給定條件,預測蔬菜價格。 提幾個特徵做預測模型:肉的價格、土壤健康指標、天氣情況、國民收入、貨幣匯率等等。
2. 網易遊戲互娛:給三天時間,獲取全世界有多少人玩過德州撲克,只要玩過就算。直接爬蟲德州撲克的app。(感覺這個答的好蠢。)
3. . 騰訊MIG:獲取聊天表情的標籤,比如喜怒哀樂。對騰訊系產品的聊天記錄中,表情的上下文聊天文字做情感分析,然後給表情貼標籤。
4. 騰訊廣點通:給定某人的騰訊系產品資訊,判斷此人是否有車。我說先做一部分數據標註來判斷一部分人是否已經有車,然後提一些消費水平的特徵做預測模型。
5. 我回答地都很不好,一直覺得場景題不知道怎麼回答,直到廣點通的面試官很nice地指出了我的問題:我的方法成本高而且過於模糊,要求的是低成本、直接、精度高的方法,也就是人工規則。
6. 類似大眾點評的網站有正常用戶訪問流量,也有同類競爭商家的spider,怎樣區分spider和正常訪問,我想了下,他說簡單說說就行,我就從兩者的訪問特點分析了一下,對於這個二分類問題選用哪些特徵,然後他希望再從http的角度分析一下,然而並不懂,然後照例問有什麼問題,然後詳細介紹了一下上海這邊主要負責滴滴租車業務,業務框架,說的很仔細。
7. 拼車軟體是如何定價的以及如何優化。
8. 怎麼預測降雨量。
9. 預測平台每日外賣或到店客流量時,節假日往往會被作為噪音處理,但是美團點評演算法團隊需要給店家提供節假日的客流量預測,如何去預測這個異常值或者說噪音。
10. 遇到極端情況比如天氣或者其他因素,平台內會擠壓大量訂單等待處理,同時客戶等待時間會變長,如何設計調度系統使用演算法去協調運力或者控制溢價,在不影響用戶體驗的同時儘快處理擠壓訂單儘可能縮短外賣小哥的ETA。
11. 目前對於客流量預測精度為天很準確,如何設計online learning的model去對未來某一個特定時間點進行客流量預估。自己感覺這應該都是美團點評在真是業務場景中遇到的問題,自己也根據自己的想法與面試官做了討論,突然在說的一瞬間覺得這才是machine learning在工業界真實運用的場景,突然覺得自己天天看的書推的公式好渺小。
12. 開放問題:在車和乘客的匹配場景中(一個車匹配一個乘客,不考慮拼車),如何讓司機的接單率更高?
14. 給你公司內部群組的聊天記錄,怎樣區分出主管和員工?如何評估網站內容的真實性(針對代刷、作弊類)?路段平均車速反映了路況,在道路上布控採集車輛速度,如何對路況做出合理估計?採集數據中的異常值如何處理?如何根據語料計算兩個詞詞義的相似度?在百度貼吧里發布 APP 廣告,問推薦策略?100億數字,怎麼統計前100大的?
15. 問了一個預估的題目,讓你估計早餐市場的規模。
16. 系統設計題,給一個query,如何快速從10億個query中找出和它最相似的 (面試官說可以對每個query找1000個最相似的,存起來,每天離線更新)。
17. 設計一個合理的電梯調度策略,調度兩個電梯 ,考慮滿足基本的接送需求,滿足能耗最小,滿足用戶等待時間最短 (難到我了,我想的方法不好,面試告訴我了他的想法,類似於一個進程調度問題,每一時刻只可能有一個用戶按按鈕,把這條指令接收,判斷當前電梯能否滿足,能滿足就執行,不能滿足則放入一個隊列里,實際情況還要細化)。
18. 在互聯網分析中,通常會關注用戶的【第N日激活率】來衡量用戶品質。用戶的第N日激活指的是用戶在註冊的第N天登錄網站或App,即算為該用戶的第N日激活。第N日激活率指的是某日註冊用戶在第N天激活的數量除以該日所有註冊用戶數量。
19. 「赤兔」是領英中國針對中國職場人士推出的一款本土化的社交應用。如果你是領英中國的數據分析師,你會從哪些方面和維度來設計各項指標,給產品的設計和運營提供數據上的支援?請給出具體的維度和指標,並說明原因。
20. 比如你現在知道了一個用戶訪問網站的歷史記錄,比如時間,流量,高峰期或沒有訪問之類的數據,讓你來分析一下這個用戶。我:這個中間和面試官探討了半天,沒有回答好。
21. 做廣告點擊率預測,用哪些數據什麼演算法?
22. 用戶流失率預測怎麼做(遊戲公司的數據挖掘都喜歡問這個)?
23. 一個遊戲的設計過程中該收集什麼數據?
24. 如何從登陸日誌中挖掘儘可能多的資訊?
25. 如何做一個新聞推薦?
26. 開放性問題:每個實體有不同屬性,現在有很多實體的各種屬性數據,如何判斷兩個實體是否是同一種東西?
27. 如何從登陸日誌中挖掘儘可能多的資訊?//www.docin.com/p-118297971.html
27. 用戶流失率預測怎麼做(遊戲公司的數據挖掘都喜歡問這個)?//www.docin.com/p-1204742211.html
28. 一個遊戲的設計過程中該收集什麼數據?
29. 做廣告點擊率預測,用哪些數據什麼演算法//bbs.pinggu.org/thread-3182029-1-1.html
30. 場景題一般是面試官工作中遇到的問題,問題一般會比較細,比如說獲取某些item的屬性標籤。
31. 如果問題里沒有明確出現「預測」等字眼,最好不要用模型角度去回答問題。因為實際工作中,可能不會為了某個小問題,去動用集群來跑模型,這些小問題可能是用來給跑集群的模型加特徵的,應該優先以人工規則來解決。
32. 人工規則可能有隱藏先驗條件,就是可以用到這個公司其他產品數據。
33. 解決方案類題目為今日頭條設計一個熱門評論系統,支援實時更新給定淘寶上同類目同價格範圍的兩個商品A和B,如何利用淘寶已有的用戶、商品數據、搜索數據、評論數據、用戶行為數據等所有能拿到的數據進行建模,判斷A和B統計平均性價比高低。統計平均性價比的衡量標準是大量曝光,購買者多則高。有n個elements和1個Compare(A, B)函數,用Compare函數作為排序演算法中的比較運算元給elements排序。Compare函數有p的可能比較錯。排序完取Top m個元素,本來就在Top m並被正確分在Top m的元素個數是x。問x的數學期望。如何預測雙十一支付寶的負載峰值。
34. 給你1000w篇文檔或html,如何判斷是否為體育類的新聞,需要給出系統的方法;答:分詞+人工判定+詞庫+SVM訓練。
35. 設計一個系統可以實時統計任意 ip 在過去一個小時的訪問量。
鏈接:
//zhuanlan.zhihu.com/p/58434325
來源:知乎
著作權歸作者所有,AI職通車獲權轉載。

點擊圖片超鏈接參與話題討論
或掃碼進社區參與話題討論
有機會贏宗成慶新書《文本數據挖掘》一本~
上周話題獲獎者
看面經,拿offer!為助力學生和開發者們找到心儀的工作,AI 研習社將陸續放出面試經驗貼供大家參考。
另外,如果你是有著豐富面試經驗的學生、開發者,或是歷經千帆終成大咖的技術管理者,歡迎來這裡分享你的經驗,我們一起交流,共同進步!
有想法的開發者,歡迎添加管理員妹子微信(ID:ymj7777777),記得備註「面經」哦~
點擊 閱讀原文,查看跟多 AI 崗位。