04.18 面試了10家公司,以下是一份機器學習面試內容總結

編者按:本文作者Abhijeet Kumar是一名有著五年機器學習和數據科學工作經驗的從業者。從今年年初開始,他開始在印度的數據科學、機器學習或深度學習領域找工作。在為期30—40天的求職過程中,他面試了8—10家公司,其中不僅包括剛成立一年的創業公司,也有亞馬遜這種電商巨頭。Kumar把每家公司的面試題記錄下來,為各位求職者提供經驗。以下是論智的編譯。

面試了10家公司,以下是一份機器學習面試內容總結

先介紹一下我自己,我有過4年以上機器學習的工作經驗,主要工作內容有話語分析、文本分析和圖像分析。我認為該領域最稀缺的人才是NLP專業,然後是圖像分析(CV),主要進行話語或音頻分析的較少。有了五年的工作經驗後,我的目標是中高層職位,可以帶領一個數據或機器學習團隊做一些有趣的研究。以下是我在面試過程中遇到的各種技術性問題,供大家參考。

全球服務性公司之一(20—25分鐘)

  1. 請問你在搭建文檔挖掘系統的過程中,做了哪些工作?

  2. 假設給你數TB的數據文件,其中包含PDF、文本文件、圖像、掃描的PDF文件等等。你將如何對其分類?

  3. 你如何閱讀掃描的PDF或書面文件?

  4. 為什麼樸素貝葉斯被稱為“樸素”?

  5. 詳細談談樸素貝葉斯分類器?

  6. 什麼是深度學習?機器學習和深度學習的區別在哪裡?

除此之外還有一些類似的問題,但是我對它們有些一頭霧水,完全不知道面試官想聽到什麼樣的答案。我一直想探討更深層次的技術層面的東西,但是他們一直沒有聊到這方面。而且當我扯起模型訓練、tesseract或者語言模型時,他們似乎完全不吃這一套。也許他們想聽到的是現成的成果,或是很簡單的解釋。這跟我五年前第一次面試的感覺非常相似。

全球服務型公司之二(40—45分鐘)

  1. 你如何能在無監督的方式下收集文件?

  2. 你如何找到與某些查詢問題相關的文件?

  3. 解釋一下TF-IDF。

  4. 根據我的經驗,TF-IDF在文檔分類或收集方面失敗了,你今後會怎麼改善?

  5. 什麼是LSTM神經網絡?解釋一下它是如何工作的。

  6. 什麼是word2vec向量?

  7. Python中可變和不可變對象是什麼意思?

  8. 你在Python中使用什麼數據結構?

雖然有幾個問題是圍繞文本相似度的,但我都順利回答出來了。不過這次和上次一樣,仍然沒有深層次技術上的探討,或許是考慮到公司有幾個關於文本分析的小項目,他們最終還是向我發出了offer。

全球生產和服務公司(40分鐘)

  1. 在不平衡的數據集中,你如何處理多類別的分類問題?

  2. 你是如何從文本句子中進行語言識別的?

  3. 你如何表示中文或日文中的象形文字?

  4. 該如何設計一個聊天機器人?(在這一點上我沒有太多想法)

  5. 輸入一對問題和回答,我能用RNN設計一個聊天機器人嗎?

  6. 假設我用Reddit上的數據集和RNN或LSTM創建了一個聊天機器人,它給了我10個備選回覆,我如何才能選擇最佳的那個?或者說,我如何刪除其他的回覆?

  7. 解釋一下SVM是如何學習非線性邊界的?

除此之外還有幾個問題我記不清了,不過這是目前為止第一個問技術性問題的公司,我感到非常欣慰。最後這家公司也向我發了offer。

成立一年的醫療健康公司(50分鐘)

  1. 精確率(precision)和召回率(recall)是什麼?在醫學診斷中,你認為哪個更重要?

  2. 對精確率和召回率分別進行定義。

  3. 你如何繪製ROC曲線?ROC曲線下面積表示什麼?

  4. 在多類別分類任務中你如何繪製ROC曲線?

  5. 除此之外,還有哪些評估多類別分類任務結果的方法?

  6. 靈敏度(sensitivity)和特異度(specificity)是什麼?

  7. 隨機森林中的“隨機”指什麼?

  8. 你如何進行文本分類?

  9. 在沒有TF-IDF的情況下,你如何確定自己學會了文本?

  10. 你還能用機器學習做些什麼?

  11. 當神經網絡由線性節點構成時,它如何學習非線性形狀?它如何學會非線性邊界?

除此之外還有幾個不錯的問題。儘管面試過程感覺不錯,但是在某些問題上我們未能達成一致。而且在面試過程中,我發現公司只有2—3人專注於ML/DL/DS。

亞馬遜(50—55分鐘)

  1. 訓練決策樹時的參數是什麼?

  2. 在決策樹的節點處分割的標準是什麼?

  3. 基尼係數的公式是什麼?

  4. 熵的公式是什麼?

  5. 決策樹如何決定在哪個特徵處分割?

  6. 你如何用數學計算收集來的信息?你確定嗎?

  7. 隨機森林的優點有哪些?

  8. 介紹一下boosting算法。

  9. gradient boosting如何工作?

  10. 關於AdaBoost算法,你瞭解多少?它如何工作?

  11. SVM中用到了哪些核?SVM中的優化技術有哪些?

  12. SVM如何學習超平面?用數學方法詳細解釋一下。

  13. 介紹一下無監督學習,算法有哪些?

  14. 在K-Means聚類算法中,如何定義K?

  15. 告訴我至少3中定義K的方法。

  16. 除此之外你還知道哪些聚類算法?

  17. 談談DB-SCAM算法。

  18. 階層聚合式分類法(Hierarchical Agglomerative clustering)是如何工作的?

  19. 解釋一下PCA,使用PCA時有哪些數學步驟。

  20. 使用PCA有哪些缺點?

  21. CNN如何工作?詳細說一下使用細節。

  22. 解釋一下CNN中的反向傳播。

  23. 你如何部署機器學習模型?

  24. 大多時候,我們可能需要用C++從零開始搭建機器學習模型,你能做嗎?

我面試的是亞馬遜level 6的職位。我只能說,他們主要的關注點在算法和背後的數學上。不幸的是,我的面試都是即興的,並沒有準備數學方面的知識,我只說了我所記得的所有東西。不過面試官並不認為我適合level 6的工作。我相信只要你能記住通用的機器學習算法的數學細節,就能輕易地通過亞馬遜技術輪面試。

全球服務型巨頭(50—55分鐘)

  1. S函數的範圍是什麼?

  2. scikit-learn的哪個安裝包能實現邏輯迴歸?

  3. 標準正態分佈的平均數和變量是什麼?

  4. 你在Python中用什麼數據結構?

  5. 文本分類的方法有什麼,你都怎樣做?

  6. 解釋一下TF-IDF,它的缺點有什麼?你怎麼克服?

  7. bigrams和trigrams是什麼?用帶有文本句子的例子解釋一下bigram和trigram的TF-IDF。

  8. word2vec有哪些應用,舉個例子?

  9. 你會怎樣設計一個神經網絡?怎樣把它變深?

  10. LSTM是如何工作的?它是怎麼記住文本的?

  11. 什麼是樸素貝葉斯分類器?

  12. 拋10次硬幣,4次是正面的概率有多大?

  13. 如何獲取Python中列表元素的索引?

  14. 如果用pandas合併兩個數據集?

  15. 從用戶角度出發,你需要模擬欺詐活動,你會如何解決這個問題?

  16. 你更喜歡決策樹還是隨機森林?

  17. 使用邏輯迴歸和隨機森林有什麼區別?

  18. 在分類問題上,你會用決策樹還是隨機森林?用隨機森林有什麼優點?

最終這家公司向我發放了數據科學崗位的offer。事實上,我非常享受這次的技術性交流。你可能會覺得這些問題也是最基礎的機器學習和數據科學問題。不過在面試過程中我感到面試官可能不是這一領域的,或者對現在的發展瞭解的不多。

全球商業管理公司(25—30分鐘)

  1. 在不平衡的數據集中,你會選擇什麼模型:隨機森林還是boosting?為什麼?

  2. 你瞭解的boosting技術有哪些?

  3. 用監督學習的方法進行分類問題,你會選擇哪個模型?(大約40—50個類別)

  4. 你如何使用集成技術?

  5. SVM如何工作的?

  6. 什麼是Kernel?簡單介紹一下。

  7. 如何執行非線性迴歸?

  8. Lasso迴歸和Ridge迴歸是什麼?

說實話,這次面試有點水,以至於我沒有認真對待。不過問題還是不錯的。我面試的是領導一個15—16人的團隊,在這之後是經理面試和HR面試。最終他們給我提供了諮詢崗位以及不錯的薪水。

成立4年的生產和服務型公司(60分鐘)

  1. 簡歷上說,你曾做過用語音識別演講者,具體方法是什麼?

  2. 什麼是MFCCs?

  3. 高斯混合模型是什麼,它是如何完成聚類的?

  4. 如何實現期望最大化?其中的步驟是什麼?

  5. GMM中的概率如何計算?

  6. 在對演講者進行識別時,你是如何為GMM-UBM技術執行MAP調整的?

  7. 談談你所用的I-向量技術。

  8. 語境中的分析因素是什麼?

  9. JFA和I-向量的區別是什麼?為什麼選擇I-向量而不選JFA?

  10. 你用過PLDA I-向量技術嗎?

  11. 你讀過百度的有關Deep Speaker的論文嗎?

  12. 如果有兩個模型都可用,你會如何選擇?

  13. 貝葉斯信息度量(BIC)和赤池信息量(AIC)工作的數學原理是什麼?

  14. BIC和AIC背後的原理是什麼?

  15. 在你的MFCC特徵向量矩陣中,如果有數據丟失怎麼辦?

  16. 如何分辨語言?有什麼特點?

  17. 你的分類器更像是話語和音樂的分類器,還是話語和非話語的分類器?

  18. 在語言分析應用中,如何部署深度神經網絡?

是的,你可能會問這都是什麼問題。非常巧的是,我們兩個人的研究領域都是語音分析,特別是演講者識別。所以整個面試過程一直在圍繞語音分析。很顯然,面試官很專業,並且給了我非常積極的反饋。之後,這家公司給我提供了AI解決方案架構師的工作。

建議

在整個求職過程中,我大概與25—30位專業人士有過交談,以下是我在這之後能給出的建議:

  • 簡歷很重要。要在其中寫明參加過的項目、Kaggle競賽、MOOC證書或者論文。我就是在沒有任何推薦人推薦的情況下接到了亞馬遜的電話。你的簡歷是打動HR和麵試官的重要武器。

  • 自信心和驅動力是成功的一半。參加面試時一定要自信,並且展示出你的熱情(尤其是在創業公司和服務型公司)。

  • 面試時不要急著回答問題。花些時間想想如何組織答案,如果有不明白的地方一定要問。面試時一定要冷靜。

  • 在解釋概念時別忘了表現自己。你可以提幾個做過的案例,並且要熟悉你簡歷裡寫的技能和項目。

  • 如果你是這一領域的新人,在創建簡歷時可以從自己做過的項目開始,或者GitHub賬號也是很有說服力的。除此之外,可以多參加Kaggle競賽和MOOC課程。

  • 學會謙虛,注意傾聽面試官的意見。有的時候,R和Python的使用者會互相鄙視,最好不要這樣,不然很可能掛掉。

最後,祝大家面試成功!(小編:答案?擬答案什麼的是不可能的,這輩子都不可能的)


分享到:


相關文章: