面試了10家公司,這是一份機器學習面試的內容總結
先介紹一下我自己,我有過4年以上機器學習的工作經(jīng)驗,主要工作內容有話語分析、文本分析和圖像分析。我認為該領域最稀缺的人才是NLP專業(yè),然后是圖像分析(CV),主要進行話語或音頻分析的較少。有了五年的工作經(jīng)驗后,我的目標是中高層職位,可以帶領一個數(shù)據(jù)或機器學習團隊做一些有趣的研究。以下是我在面試過程中遇到的各種技術性問題,供大家參考。
全球服務性公司之一(20—25分鐘)
-
請問你在搭建文檔挖掘系統(tǒng)的過程中,做了哪些工作?
-
假設給你數(shù)TB的數(shù)據(jù)文件,其中包含PDF、文本文件、圖像、掃描的PDF文件等等。你將如何對其分類?
-
你如何閱讀掃描的PDF或書面文件?
-
為什么樸素貝葉斯被稱為“樸素”?
-
詳細談談樸素貝葉斯分類器?
-
什么是深度學習?機器學習和深度學習的區(qū)別在哪里?
除此之外還有一些類似的問題,但是我對它們有些一頭霧水,完全不知道面試官想聽到什么樣的答案。我一直想探討更深層次的技術層面的東西,但是他們一直沒有聊到這方面。而且當我扯起模型訓練、tesseract或者語言模型時,他們似乎完全不吃這一套。也許他們想聽到的是現(xiàn)成的成果,或是很簡單的解釋。這跟我五年前第一次面試的感覺非常相似。
全球服務型公司之二(40—45分鐘)
-
你如何能在無監(jiān)督的方式下收集文件?
-
你如何找到與某些查詢問題相關的文件?
-
解釋一下TF-IDF。
-
根據(jù)我的經(jīng)驗,TF-IDF在文檔分類或收集方面失敗了,你今后會怎么改善?
-
什么是LSTM神經(jīng)網(wǎng)絡?解釋一下它是如何工作的。
-
什么是word2vec向量?
-
Python中可變和不可變對象是什么意思?
-
你在Python中使用什么數(shù)據(jù)結構?
雖然有幾個問題是圍繞文本相似度的,但我都順利回答出來了。不過這次和上次一樣,仍然沒有深層次技術上的探討,或許是考慮到公司有幾個關于文本分析的小項目,他們最終還是向我發(fā)出了offer。
全球生產和服務公司(40分鐘)
-
在不平衡的數(shù)據(jù)集中,你如何處理多類別的分類問題?
-
你是如何從文本句子中進行語言識別的?
-
你如何表示中文或日文中的象形文字?
-
該如何設計一個聊天機器人?(在這一點上我沒有太多想法)
-
輸入一對問題和回答,我能用RNN設計一個聊天機器人嗎?
-
假設我用Reddit上的數(shù)據(jù)集和RNN或LSTM創(chuàng)建了一個聊天機器人,它給了我10個備選回復,我如何才能選擇最佳的那個?或者說,我如何刪除其他的回復?
-
解釋一下SVM是如何學習非線性邊界的?
除此之外還有幾個問題我記不清了,不過這是目前為止第一個問技術性問題的公司,我感到非常欣慰。最后這家公司也向我發(fā)了offer。
成立一年的醫(yī)療健康公司(50分鐘)
-
精確率(precision)和召回率(recall)是什么?在醫(yī)學診斷中,你認為哪個更重要?
-
對精確率和召回率分別進行定義。
-
你如何繪制ROC曲線?ROC曲線下面積表示什么?
-
在多類別分類任務中你如何繪制ROC曲線?
-
除此之外,還有哪些評估多類別分類任務結果的方法?
-
靈敏度(sensitivity)和特異度(specificity)是什么?
-
隨機森林中的“隨機”指什么?
-
你如何進行文本分類?
-
在沒有TF-IDF的情況下,你如何確定自己學會了文本?
-
你還能用機器學習做些什么?
-
當神經(jīng)網(wǎng)絡由線性節(jié)點構成時,它如何學習非線性形狀?它如何學會非線性邊界?
除此之外還有幾個不錯的問題。盡管面試過程感覺不錯,但是在某些問題上我們未能達成一致。而且在面試過程中,我發(fā)現(xiàn)公司只有2—3人專注于ML/DL/DS。
亞馬遜(50—55分鐘)
-
訓練決策樹時的參數(shù)是什么?
-
在決策樹的節(jié)點處分割的標準是什么?
-
基尼系數(shù)的公式是什么?
-
熵的公式是什么?
-
決策樹如何決定在哪個特征處分割?
-
你如何用數(shù)學計算收集來的信息?你確定嗎?
-
隨機森林的優(yōu)點有哪些?
-
介紹一下boosting算法。
-
gradient boosting如何工作?
-
關于AdaBoost算法,你了解多少?它如何工作?
-
SVM中用到了哪些核?SVM中的優(yōu)化技術有哪些?
-
SVM如何學習超平面?用數(shù)學方法詳細解釋一下。
-
介紹一下無監(jiān)督學習,算法有哪些?
-
在K-Means聚類算法中,如何定義K?
-
告訴我至少3中定義K的方法。
-
除此之外你還知道哪些聚類算法?
-
談談DB-SCAM算法。
-
階層聚合式分類法(Hierarchical Agglomerative clustering)是如何工作的?
-
解釋一下PCA,使用PCA時有哪些數(shù)學步驟。
-
使用PCA有哪些缺點?
-
CNN如何工作?詳細說一下使用細節(jié)。
-
解釋一下CNN中的反向傳播。
-
你如何部署機器學習模型?
-
大多時候,我們可能需要用C++從零開始搭建機器學習模型,你能做嗎?
我面試的是亞馬遜level 6的職位。我只能說,他們主要的關注點在算法和背后的數(shù)學上。不幸的是,我的面試都是即興的,并沒有準備數(shù)學方面的知識,我只說了我所記得的所有東西。不過面試官并不認為我適合level 6的工作。我相信只要你能記住通用的機器學習算法的數(shù)學細節(jié),就能輕易地通過亞馬遜技術輪面試。
全球服務型巨頭(50—55分鐘)
-
S函數(shù)的范圍是什么?
-
scikit-learn的哪個安裝包能實現(xiàn)邏輯回歸?
-
標準正態(tài)分布的平均數(shù)和變量是什么?
-
你在Python中用什么數(shù)據(jù)結構?
-
文本分類的方法有什么,你都怎樣做?
-
解釋一下TF-IDF,它的缺點有什么?你怎么克服?
-
bigrams和trigrams是什么?用帶有文本句子的例子解釋一下bigram和trigram的TF-IDF。
-
word2vec有哪些應用,舉個例子?
-
你會怎樣設計一個神經(jīng)網(wǎng)絡?怎樣把它變深?
-
LSTM是如何工作的?它是怎么記住文本的?
-
什么是樸素貝葉斯分類器?
-
拋10次硬幣,4次是正面的概率有多大?
-
如何獲取Python中列表元素的索引?
-
如果用pandas合并兩個數(shù)據(jù)集?
-
從用戶角度出發(fā),你需要模擬欺詐活動,你會如何解決這個問題?
-
你更喜歡決策樹還是隨機森林?
-
使用邏輯回歸和隨機森林有什么區(qū)別?
-
在分類問題上,你會用決策樹還是隨機森林?用隨機森林有什么優(yōu)點?
最終這家公司向我發(fā)放了數(shù)據(jù)科學崗位的offer。事實上,我非常享受這次的技術性交流。你可能會覺得這些問題也是最基礎的機器學習和數(shù)據(jù)科學問題。不過在面試過程中我感到面試官可能不是這一領域的,或者對現(xiàn)在的發(fā)展了解的不多。
全球商業(yè)管理公司(25—30分鐘)
-
在不平衡的數(shù)據(jù)集中,你會選擇什么模型:隨機森林還是boosting?為什么?
-
你了解的boosting技術有哪些?
-
用監(jiān)督學習的方法進行分類問題,你會選擇哪個模型?(大約40—50個類別)
-
你如何使用集成技術?
-
SVM如何工作的?
-
什么是Kernel?簡單介紹一下。
-
如何執(zhí)行非線性回歸?
-
Lasso回歸和Ridge回歸是什么?
說實話,這次面試有點水,以至于我沒有認真對待。不過問題還是不錯的。我面試的是領導一個15—16人的團隊,在這之后是經(jīng)理面試和HR面試。最終他們給我提供了咨詢崗位以及不錯的薪水。
成立4年的生產和服務型公司(60分鐘)
-
簡歷上說,你曾做過用語音識別演講者,具體方法是什么?
-
什么是MFCCs?
-
高斯混合模型是什么,它是如何完成聚類的?
-
如何實現(xiàn)期望最大化?其中的步驟是什么?
-
GMM中的概率如何計算?
-
在對演講者進行識別時,你是如何為GMM-UBM技術執(zhí)行MAP調整的?
-
談談你所用的I-向量技術。
-
語境中的分析因素是什么?
-
JFA和I-向量的區(qū)別是什么?為什么選擇I-向量而不選JFA?
-
你用過PLDA I-向量技術嗎?
-
你讀過百度的有關Deep Speaker的論文嗎?
-
如果有兩個模型都可用,你會如何選擇?
-
貝葉斯信息度量(BIC)和赤池信息量(AIC)工作的數(shù)學原理是什么?
-
BIC和AIC背后的原理是什么?
-
在你的MFCC特征向量矩陣中,如果有數(shù)據(jù)丟失怎么辦?
-
如何分辨語言?有什么特點?
-
你的分類器更像是話語和音樂的分類器,還是話語和非話語的分類器?
-
在語言分析應用中,如何部署深度神經(jīng)網(wǎng)絡?
是的,你可能會問這都是什么問題。非常巧的是,我們兩個人的研究領域都是語音分析,特別是演講者識別。所以整個面試過程一直在圍繞語音分析。很顯然,面試官很專業(yè),并且給了我非常積極的反饋。之后,這家公司給我提供了AI解決方案架構師的工作。
建議
在整個求職過程中,我大概與25—30位專業(yè)人士有過交談,以下是我在這之后能給出的建議:
-
簡歷很重要。要在其中寫明參加過的項目、Kaggle競賽、MOOC證書或者論文。我就是在沒有任何推薦人推薦的情況下接到了亞馬遜的電話。你的簡歷是打動HR和面試官的重要武器。
-
自信心和驅動力是成功的一半。參加面試時一定要自信,并且展示出你的熱情(尤其是在創(chuàng)業(yè)公司和服務型公司)。
-
面試時不要急著回答問題?;ㄐr間想想如何組織答案,如果有不明白的地方一定要問。面試時一定要冷靜。
-
在解釋概念時別忘了表現(xiàn)自己。你可以提幾個做過的案例,并且要熟悉你簡歷里寫的技能和項目。
-
如果你是這一領域的新人,在創(chuàng)建簡歷時可以從自己做過的項目開始,或者GitHub賬號也是很有說服力的。除此之外,可以多參加Kaggle競賽和MOOC課程。
-
學會謙虛,注意傾聽面試官的意見。有的時候,R和Python的
-
使用者會互相鄙視,最好不要這樣,不然很可能掛掉。
最后,祝大家面試成功!(小編:答案?擬答案什么的是不可能的,這輩子都不可能的)