面試了 8 家公司,社招機器學習面試題
來自專欄 AIQ | 機器學習社區
轉載請註明 AIQ - 最專業的機器學習大數據社區 http://www.6aiq.com
面試了 8 家公司,他們問了我這些機器學習題目……
翻譯 | 王柯凝
出品 | AI 科技大本營(公眾號 ID:rgznai100)
【導讀】今年年初以來,作者一直在印度找數據科學、機器學習以及深度學習領域的工作。在找工作的這三十四天里,他面試了 8 到 10 家公司,其中也包括初創公司、基於服務的公司以及基於產品的公司。作者希望他的面試經驗能夠為求職者提供一些有用的信息,因而撰寫了此文。希望你讀後能夠有所收穫!
首先自我介紹一下:
我在機器學習(語音分析、文本分析和圖像分析領域應用)領域有 4 年以上的從業經驗。總的來說,我認為這個領域的大多數工作職位主要包括文本分析(自然語言處理)和圖像分析(計算機視覺)。很少有公司招聘語音或音頻分析的人才。我現在的目標是應聘一個中高級職位,可以帶領一個深度學習或機器學習團隊做一些有趣的項目。
下面是我在應聘過程中被問到的問題,希望能夠對你有所幫助。
公司一:基於全球性服務的某公司(面試時長:20-25min)
- 你在簡歷中提到曾經構建過一個文檔挖掘系統,你都做了哪些工作?能否在主題建模(topic modeling)中使用 LDA 技術實現文檔聚類?
- 假設你有數百兆位元組的數據文件,這其中包括 PDF 文件、文本文件、圖像、掃描的 PDF 文件等等,請你給出一個分類方案。
- 你如何閱讀掃描版 pdf 文件或圖像格式的書面文件的內容?
- 樸素貝葉斯為什麼被稱為「樸素」?
- 請詳細介紹一下樸素貝葉斯分類器。
- 什麼是深度學習?深度學習和機器學習的區別是什麼?
體驗?****:除此之外面試官還問了一些問題,但是都把我問懵了,我完全不知道他想聽到什麼答案。我一直都想深入的聊一些技術層面的問題,比如訓練一個 tesseract(一款由 HP 實驗室開發由 Google 維護的開源 OCR 引擎)或語言模型,但是他似乎並不感興趣。或許他只是想聽到一些已經實現的成果或者是一個好的解釋,又或者是一些更好的方案。我感覺他們面試一個新手和面試一個有經驗的專業人員之間並沒有什麼區別。
公司二:基於全球性服務的某公司(面試時長:40-45min)
- 在無監督學習中,如何進行文件聚類?
- 如何找到與某些查詢語句 / 搜索相關的文件?
- 解釋下 TF-IDF 技術。
- 根據我的經驗來看,TF-IDF 技術在文件分類或聚類上效果並不好,你將如何改進?
- 什麼是長短期記憶神經網路(LSTM)? 解釋下其工作原理。
- 什麼是 word2vec 模型?
- 解釋下 python 中的可變對象和不可變對象。
- 你在 python 中使用過什麼數據結構?
體驗?**:** 整個面試過程都是圍繞著文本相似度提問的,我都順利通過了。但是這次仍舊沒有更深層次的技術探討。或許是公司在文本分析領域有幾個小項目,最終我拿到了公司的 offer。
公司三:基於全球性產品和服務的某公司(面試時長:40min)
- 如何使用不平衡數據集( unbalanced dataset)處理多類別的分類問題?
- 你如何從一個文本語句中進行語言識別?
- 如何表示中文或日文中的象形字元?
- 如何設計一個聊天機器人?(我沒什麼想法,但我嘗試用基於 TF-IDF 相似性的意圖和反饋來回答這個問題。)
- 能否使用循環神經網路設計一個聊天機器人來對輸入的問題進行意圖和回答響應。
- 假設你在 Reddit 數據集上使用循環神經網路或長短時記憶神經網路設計了一個聊天機器人,它能夠提供 10 種可能的回復,如何選擇最佳回復,或者說如何刪除其他的回復?
- 解釋一下支持向量機(SVM)如何學習非線性邊界。
** 體驗?:** 還有幾個問題我已經記不清了,這是我第一次在面試中深入談論技術細節,隨後我也拿到了這家公司的 offer。
公司四:成立一年的醫療初創公司(面試時長:50min)
- 什麼是精確率(precision)和召回率(recall)?在醫療診斷中,你認為哪個更重要?
- 解釋一下精確率和召回率。
- 如何繪製受試者工作特徵曲線 (ROC 曲線)?ROC 曲線下面積是什麼意思?
- 如何為多類別分類任務繪製 ROC 曲線?
- 列舉多類別分類任務其他的度量標準。
- 什麼是靈敏度(sensitivity)和特異度(specificity)?
- 隨機森林中的「隨機」指什麼?
- 如何進行文本分類?
- 如何確定已經學會了一個文本?沒有 TF-IDF 技術是不是不可能實現?(我回答說使用 n-gram 模型(n=1,2,3,4),並使用 TF-IDF 技術創建一個長的計數向量)
- 你還能利用機器學習做些什麼?(我建議將長短期記憶神經網路和 word2vec 結合起來,或者是一維循環神經網路與 word2vec 結合起來,進行分類。但面試官希望改進基於機器學習的演算法。)
- 當神經網路由線性節點構成時,神經網路如何學習非線性形狀?它學習非線性邊界的原因是什麼?
體驗?**:** 還有幾個很好的問題我沒有記住。儘管整個面試過程很不錯,但是我們在一些問題上看法並不一致。並且在面試期間,我發現作為一個初創公司,目前只有 2-3 個人在做 ML、DL 和 DS。最後我沒有面試成功。
公司五:亞馬遜公司(面試時長:50-55min)
- 訓練決策樹時,其參數是什麼?
- 在決策樹的某個節點處進行分割,其分割標準是什麼?
- 基尼係數的計算公式是什麼?
- 熵的計算公式是什麼?
- 決策樹如何決定在哪個特徵處必須進行分割?
- 如何利用數學計算收集來的信息?
- 簡述隨機森林的優點。
- 簡述 boosting 演算法。
- 梯度提升演算法(gradient boosting)是怎樣工作的?
- 簡述 AdaBoost 演算法工作原理。
- SVM 中用到了哪些內核?SVM 的優化技術有哪些?
- SVM 如何學習超平面?論述下其數學運算細節。
- 談一談無監督學習?都有哪些演算法?
- 如何定義 K-Means 聚類演算法中 K 的值?
- 列舉至少 3 中定義 K-Means 聚類演算法中 K 的方法。
- 除此之外你還知道哪些聚類演算法?
- 介紹一下 DB-SCAM 演算法。
- 簡述下分層凝聚聚類(Hierarchical Agglomerativeclustering)的工作原理。
- 解釋一下主成分分析演算法(PCA),簡述下使用 PCA 演算法的數學步驟。
- 20. 使用 PCA 演算法有哪些缺點?
- 談談卷積神經網路的工作原理?詳細說明其實現細節。
- 解釋一下卷積神經網路中的反向傳播。
- 你如何部署機器學習模型?
- 我們大部分情況下都要用 C++ 從零開始搭建一個機器學習模型,這一點你能做到嗎?
體驗?**:** 我面試的是亞馬遜 level 6 的職位。他們的主要關注點是在演算法和數學上。但是我並沒有準備數學方面的知識,我只是談論了我所了解的東西,並沒有在數學的細節上做更為詳細的探討,因此面試官認為我並不適合 level 6 的工作。我相信如果你能記住機器學習演算法在數學上的通用表示,就可以很輕鬆的通過亞馬遜技術面試。
公司六:某全球服務巨頭(面試時長:50-55min)
- Sigmoid 函數的範圍是什麼?
- 說出 scikit-learn 能夠實現邏輯回歸的包的名稱。
- 標準正態分布的均值和方差分別是多少?
- 你在 Python 中都使用什麼數據結構?
- 文本分類的方法有哪些?你會怎麼做分類?
- 解釋 TF-IDF 技術及其缺點,如何克服 TF-IDF 的缺點?
- 什麼是雙詞搭配 (Bigrams) 和三詞搭配(Trigrams)?用一個文本語句解釋一下雙詞搭配和三詞搭配的 TF-IDF 技術。
- 舉例說明 word2vec 有哪些應用。
- 如何設計一個神經網路?如何做到「深度」?這是一個基礎的神經網路問題。
- 簡述 LSTM 的工作原理。它是如何記住文本的?
- 什麼是樸素貝葉斯分類器?
- 拋 10 次硬幣,4 次是正面的概率是多少?
- 如何獲取 Python 列表中元素的索引?
- 如果合併兩個 pandas 數據集?
- 從用戶行為來看,你需要模擬一個欺詐活動,你會如何解決這個問題?這是可能是一個異常檢測問題或分類問題!
- 決策樹和隨機森林,你更喜歡哪一個?
- 邏輯回歸和隨機森林有什麼區別?
- 你會用決策樹還是隨機森林來解決分類問題?隨機森林有什麼優點?
體驗?**:** 我也拿到了這家公司的 offer。事實上,我很喜歡這次技術交流。或許你會覺著這些問題是機器學習和數據科學領域最基礎的問題,但是我感覺面試官可能不是這一領域的,或者是對這個領域的發展了解的並不多。
公司七:全球性商業管理公司(面試時長:25-30min)
- 在不平衡數據集中,你會選擇什麼模型:隨機森林還是 Boosting?為什麼?
- 你所了解的 Boosting 技術有哪些?
- 採用監督學習解決分類問題,你會選擇哪個模型?假設有 40-50 個分類!
- 你怎樣使用合奏(Ensemble)技術?
- 簡述支持向量機(SVM)的工作原理。
- 什麼是 Kernel?簡單介紹一下。
- 如何實現非線性回歸?
- 什麼是 Lasso 回歸和 Ridge 回歸?
體驗?**:** 說實話,這次面試有點水,以至於我沒有認真對待。但是問題問的很不錯。我面試的職位是要帶領一個十五六人的團隊做項目,在這之後是經理面試和 HR 面試。最終他們給我提供了崗位諮詢以及不錯的薪資。
公司八:成立 4 年的生產和服務型公司(60 分鐘)
- 你在簡歷上提到曾經做過演講中的發音識別,具體來講講你的實現方法是什麼?
- 什麼是梅爾頻率倒譜(MFCCs)?
- 什麼是高斯混合模型,它是如何完成聚類的?
- 如何實現期望最大化?講講其實現步驟。
- GMM 模型中的概率如何計算?
- 在進行發音識別時,你是如何為 GMM-UBM 技術執行 MAP 調整的?
- 談談你所用的 I-vector 技術 。
- 在分析語境時,主要因素是什麼?
- JFA 和 I-vector 的區別是什麼?為什麼選擇 I-vector 而不是 JFA?
- 你有沒有用過 PLDA I-vector 技術嗎?
- 有沒有讀過百度的 Deep Speaker 論文?
- 如果有兩個模型可供你選擇,你選擇的依據是什麼?(考察模型選擇的技術)
- 簡述下貝葉斯信息度量(BIC)和赤池信息量(AIC)的數學工作原理。
- 貝葉斯信息度量和赤池信息量的工作原理是什麼?
- 如果 MFCC 特徵向量矩陣中的數據發生丟失,應該怎麼辦?
- 如何進行語音辨識?有什麼特點?
- 你的分類器是語音和音樂的分類器,還是語音和非語音的分類器?
- 深度神經網路是如何應用在語音分析中的?
體驗?**:** 是的,你可能會驚訝這都是些什麼問題。巧合的是,我們兩個人的研究領域都是語音分析(尤其是發音識別)。所以整個面試過程一直在圍繞語音分析進行提問。很顯然,面試官很專業,並且給了我一個正面反饋。之後,這家公司給我提供了 AI 解決方案架構師的工作。
一些建議
在這整個求職過程中,我大概和 25-30 位專業人士有過交流,下面是我為讀者以及求職者提出的建議:
- 簡歷很重要。一定要在簡歷中寫清楚你參加過的項目、Kaggle 競賽、獲得的 MOOC 課程證書或者論文。我就是在沒有任何推薦人推薦的情況下接到了亞馬遜的面試電話。你的簡歷是打動 HR 和面試官的利器。
- 自信心和熱情是成功的一半。參加面試時一定要自信,並且向面試官展示出你的熱情(這一點在面試創業公司和基於服務的公司時尤為重要)。
- 不要過於急著回答面試官提出的問題。花些時間組織好答案再回答,如果對問題有不理解的地方,一定要請教面試官。還有就是在面試時一定要冷靜!
- 在解釋概念時一定要恰當的表現自己。舉幾個你已經實現過的項目,並且一定要熟悉簡歷中提到的熟練技能和做過的項目。
- 大多數情況下,面試官都是在尋找這個領域內有經驗的技術人才。如果你在這個領域還是一個新手,在創建簡歷時可以從自己做過的項目開始。你的 GitHub 賬號也很有說服力。除此之外,還可以多參加 Kaggle 競賽和 MOOC 課程。
- 面對面試官的時候,一定要謙虛,注意傾聽面試官的意見,否則你就會被拒之門外。有的時候,使用 R 語言和 Python 語言的人會相互鄙視,你最好不要陷入這種爭論當中,否則也容易被拒。我個人認為 R 語言和 Python 語言都是實現邏輯和概念的工具。
最後,祝大家面試成功!
原文鏈接:
https://appliedmachinelearning.wordpress.com/2018/04/13/my-data-science-machine-learning-job-interview-experience-list-of-ds-ml-dl-questions/
轉載請註明 AIQ - 最專業的機器學習大數據社區 http://www.6aiq.com
推薦閱讀:
※面試時,如何巧用提問機會獲取你想要的信息
※當年歐洲找工作的那些事
※還在等待其他offer?如何為已有offer爭取更多考慮時間?
※面試官都有哪些套路?
※寫好工作郵件有哪些技巧?