NLP面經集結 | 達摩院、騰訊、微軟、美團、百度

寫在前面

本人情況:雙非本末流985研二,愛奇藝NLP日常實習經歷,無論文,投的都是 NLP 算法崗。

目前到手:微軟、騰訊,應該是選微軟了吧

阿里達摩院(掛)

一面(45分鐘)

上來面試官介紹他們組情況,問我有什麼想問的?我有點懵逼,這不是一般最後的環節嗎。

  • 問研究生期間的研究方向;
  • 研究內容有提到 DSSM,詢問是否知道現在對 DSSM 的改進模型,回答不知,現在更多做的生成模型,因此問題轉到生成模型;
  • 詢問對生成模型的瞭解,發展情況,詢問項目中的難點,回答解碼策略,談到了 Beam Search 和 Random Sample 策略。
  • CNN 模型中池化層的作用,Max Pooling 是如何反向傳遞梯度的。
  • 機器學習中正則化做什麼的?約束模型參數,防止過擬合。
  • 正則化有 L1 和 L2 正則化,區別是什麼?扯了一下解空間什麼的,這一部分參看《百面機器學習》中 【L1 正則化與稀疏性】部分的內容,基本就是我遇到的問題了,我沒回答上。
  • 問深度學習,Transformer 模型架構說一下?按照圖結構 balabala 說下。
  • Dropout 有什麼作用?類似於 Bagging 。在 Transformer 模型中 dropout 主要用在哪裡?dropout 在每個子層之間,設置為 0.1。看過源碼嗎?看過源碼,看的哈佛實現的那一版本。(面試官應該也看過這個版本,說寫的很好)
  • Transformer 用的 Layer Normalize 還是 Batch Normalize?Layer,有什麼區別?...
  • 傳統機器學習會哪些?決策樹和 GBDT 區別說下。
  • Sigmoid 和 ReLU 區別,ReLU 解決了什麼問題。
  • 怎麼學統計機器學習的?看視頻...
  • Python、C++、Java 哪個用的多一點?值傳遞和引用傳遞區別。
  • Python 垃圾回收瞭解嗎?用過,細節不清楚。
  • 進程和線程區別
  • Linux 多個進程如何通信的?socket 和管道
  • 貪心和 DP 區別?
  • DP 的一般做法流程?
  • 開放問題,海量商家和海量語料,語料不平衡,語料對商家 group by 後按照時間排序,怎麼解決。先扯了下哈希分桶,不平衡用歸併排序。

結束,他覺得還 OK,問了下有啥改進的?他說問機器學習這部分可以多看看,因為一方面部門有發論文要求,另一部分可以看出一個人的求知慾。。。

二面(80 分鐘)

面試官是個學術大佬,全程項目細節+前沿模型理論+項目落地實踐,談的多的主要包括有:

  • DSSM 語義匹配模型及其變種
  • 預訓練模型:Transformer、BERT、UniLM 等等模型細節,區別,模型中的 Attention 使用、Mask 使用
  • 文本生成任務實際問題:一對多訓練如何訓練(從數據角度、模型角度創建一對一條件)、如何創造無監督標籤、如何提高生成文本的信息含量避免安全回覆生成。


騰訊

投的 WXG,打電話問了下時間就再也沒後續了,被 PCG 撈了,難受。

QQ 看點 一面(60分鐘,掛)

  • 自我介紹
  • 個人研究內容,做法模型細節
  • 愛奇藝實習內容,細節
  • 做道題,輸出全排列,遞歸做法
  • 非做題部分大概有 50 分鐘,做題給了 15 分鐘,實際可能 5 分鐘。

不知為何掛了。。。

騰訊新聞 一面(80 分鐘)

面試官感覺沒看過簡歷,非常不耐煩什麼的,語氣也不是很好

  • 談下你做過項目(就是問簡歷),說了下研究內容與實習
  • 研究內容的流程細節
  • 實習經歷簡要掠過
  • Dropout 瞭解嗎,說下作用,白板編碼實現一下?
  • 梯度爆炸梯度消失瞭解嗎?
  • 一堆惡意文本 case,怎麼檢測去除(一些網頁上的廣告評論),傳統方法、AI 方法
  • 最長重複子序列,我自己實現了個暴力,又寫了個動態規劃。
  • 有序含重複值數組找某個值第一次出現的位置。

騰訊新聞 二面(80 分鐘)

  • 研究內容,並畫出 Seq2Seq 模型結構;
  • 實習工作細節,如何引入知識圖譜(不會,隨便說了下);
  • 天池比賽細節,思路來源;
  • Python 列表合併方法有哪些:加法、extend,區別,舊內存如何處理;
  • 概率題:甲乙扔骰子,獲勝概率相同,投 10 次,已經 5 次了,甲已經贏了 3 次,問甲獲勝概率。

騰訊新聞 HR 面

起床前來了個電話大概五分鐘,談了下實習時間、地點,實習不一定能轉正什麼的。官網狀態變成了已完成,說本週或者下週一二給 Offer。

微軟

一面 IC1(50 分鐘)

  • 問研究方向與實習工作內容
  • Transformer 結構,BERT 有幾種 Embedding 編碼,分詞方法?
  • 能否實現下 Word Piece ?忘了步驟了,換成實現一下從若干文件中生成一個詞典,即 word2idx 和 idx2word
  • 算法題:給一個數組 A = [2, 4, 8, 3] 輸出一個數組 B,其中 B[i] 值為 A 中小於 A[i] 的元素值之和,B 應該為 [0, 5, 9, 2](小於 2 的有 [0],小於 4 的有 [2, 3] ...)
  • 上述題目用到了 sort 能否自己寫一下 sort 函數,寫了個快排

二面 Lead(60 分鐘)

微軟有 IC1 和 IC2 平行兩輪,任意一輪通過則進入 Lead 面,後續可選可能存在 AA 面。

  • 自我介紹
  • 問研究方向和實習工作內容(30分鐘左右),主要還是研究方向的背景和任務、實習期間的工作,遇到什麼問題,怎麼解決的
  • 算法題 1:原地移動數組,使得元素對應順序不變,0 值移動到末尾,LeetCode 283
  • 算法題 2:二叉樹直徑,LeetCode 543

美團

一面(40 分鐘)

  • 研究方向和實習
  • 開放性問題:如何根據美團的商品評論,生成商品的描述。傳統抽取方法,語料大後上深度模型。採用類似於 TF-IDF 的思想避免抽取的描述太大眾化沒有特點。
  • 算法題:打印 N 個數組整體最大的 Top K:有 N 個長度不一的數組,所有的數組都是有序的,請從大到小打印這 N 個數組整體最大的前 K 個數。

二面(60 分鐘)

  • 研究方向與實習經歷
  • 天池比賽怎麼做的(唯一一個問我比賽的)
  • 算法題 1:牛妹在練習打字,現在按照時間順序給出牛妹按下的鍵(以字符串形式給出, '
  • 算法題 2:在這個特殊的假期裡,由於牛牛在家特別無聊,於是他發明了一個小遊戲,遊戲規則為:將字符串數字中為偶數位的數字進行翻轉,將翻轉後的結果進行輸出。(頭尾雙指針)
  • 算法題 3:牛牛有一個 n 個數字的序列,現在牛牛想把這個序列分成 k 段連續段,牛牛想知道分出來的 k 個連續段的段內數字和的最小值最大可以是多少?(我用的遞歸,似乎大數據過不了,應該考慮尾遞歸或者用個 Map 存一下已經計算過的片段值)

三面(50 分鐘)

  • 自我介紹
  • 研究內容細節,實現方法,準備如何使用 BERT,BERT 這一塊問的很多,包括對 BERT 怎麼理解的等等。
  • 實習經歷細節
  • 算法題:最長公共子串
  • 提問環節:問了下對方工作內容與現行技術,基本以 BERT 為主的各種文本任務。

官網投遞,筆試兩道編程都沒 AC,其他倒是寫了很多

一面 (50 分鐘)

  • 項目研究內容,粗談一下,沒問細節;
  • 概率題,三個硬幣,一個硬幣兩面人頭,一個硬幣一面人頭一面數字,一個硬幣兩面數字,問隨機拿去一個硬幣,其中人頭向上,問另一面人頭也向上概率;
  • 編程題:升序倒序數組找 target,做題有點久,其他很短

二面(40 分鐘)

  • 數組 Top K 數
  • 個人研究怎麼做的
  • 談談 Transformer、BERT、GPT2
  • Sigmoid、Tanh 函數與導數
  • 梯度爆炸怎麼解決
  • 最近在看什麼論文


分享到:


相關文章: