騰訊NLP算法崗實習面經
ps:本文轉載自知乎用戶ID:George的NLP面筋。
文章目錄
一面(技術面)
1. 簡要的自我介紹。
2. 研究生階段最有挑戰的項目是什么?
3. 對于這個項目,傳統的方法是怎么樣的?
4. 列舉下這個任務在傳統用法的一些典型特征。
5. 看你簡歷里有QA相關的論文,大概介紹下里面用的方法。
6. 你在這篇論文里用到的是GloVe,為何不用word2vec,或者說word2vec與GloVe有什么區別?
7. 你清楚word2vec嗎,大致描述下word2vec的結構以及訓練方法。
8. 現階段NLP的研究相對CV發展還是很緩慢,你認為是什么原因?
9. 你知道隱馬爾可夫模型嗎,大概介紹下。
10. 維特比算法其實是一種動態規劃算法,動態規劃算法通常用來解決什么問題,在HMM里是怎么使用的?
11. 快結束時,來道算法題吧,在一個敏感詞過濾的場景下,要怎么在一個字符串里找出敏感詞的位置?
12. 算法復雜度是多少?
13. 你實習的時間實驗室有沒有什么要求,能實習嗎?
14. 你還有什么問題要問我的嗎?
二面(技術面)
1. 看你的簡歷上,在做一個相似性評估的項目,大致介紹下。
2. 了解,那么獲取的詞向量你是怎么獲取的?
3. 你的詞向量自己訓練過嗎?
4. 你的詞向量自己訓練過嗎?
5. 你知道幾種詞向量的方法?
6. n元模型了解嗎,如果共現頻率為零怎么解決?
7. 你認為為什么BERT能達到這么好的效果?
8. 注意力機制你了解多少,或者說你了解哪幾種?
9. LSTM你了解嗎,它的大致結構是怎么樣的?
10. 假設輸入是 x x x維,LSTM的參數量為多少?
11. 正則化你用過嗎,有哪些正則化方法?
12. 還有其他的嗎?
13. 文本相似性一般有那幾種度量方法?
14. 序列標注做過嗎?
15. HMM和CRF有什么區別?
16. 傳統機器學習算法了解嗎,比如XGBoost和SVM這些?
17. 那你講一下SVM吧。
18. 為什么SVM求解要求解他的對偶問題?
三面(HR面)
小建議
Reference
首先來段簡單的自我介紹:2021屆碩士,碩士期間未有實習經歷,本科大三有過一次實習,小公司,可以忽略。本人投遞的是騰訊暑期實習:技術研究-自然語言處理方向。
騰訊校招開啟的比較早,提前批在3.5號就已經開啟了,我算是趕上了最早的那一批。本次的算法崗競爭同往年一樣,也蠻激烈的,我親眼看著,從投遞最初NLP崗的投錄比為3:1,面試時升到了4:1,最后完成流程后變為了5:1,NLP方向相對好些,CV、機器學習等競爭更大,CV 9:1,ML 10:1,聽師兄描述,算法崗到后面會到20:1都可能,所以還是要趁早準備。
本人的面試流程大概如下,3月1日找的內推,收到完善簡歷的鏈接,在官網投了簡歷,當時選擇的意向BG是WXG,3月2日上午收到HR小姐姐電話,說她們是PCG部門,問我面不面,我大概詢問了PCG的主要業務,得知是社交類的業務居多,然后就拒絕了,說還是優先考慮面WXG那邊,于是HR小姐姐便說幫我轉投。
這點很詭異,官網的顯示是,校招從3.5日開始提前批,但是實際上在這之前應該就開始篩簡歷并且面試了。
在騰訊,據說簡歷如果被撈了,如果同意面試簡歷就會被鎖定,從簡歷池中提到面試的部門,這樣其他的BG就看不到你的簡歷了,然后走官方流程,當時不知道,主要是考慮WXG當時更符合我的預期吧。
3月4日,再次收到HR電話,官網當時狀態是未發起面試,這次是直接約面試時間,問我啥時候有空,約了3月6日(在此之前大致準備了下算法題,但是沒有仔細準備,所以隔了兩天,再充分準備下)。3月6日下午,參加了電話面試,3.9,查公眾號狀態進入復試。期間等待了一段時間,3.15日收到二面電話,并且是當天面試,于是當天晚上8點面試,到9點左右結束。第二天,官網流程變為HR面,17日下午收到面試邀請鏈接,約20.40的視頻面試,20日狀態更新為已完成。
一面(技術面)
一面個人感覺面的不是很好,雖然大部分問題答出來了,但是還是有不清晰的地方,而且有些問題沒有答出來,甚至以為會掛,一面時間持續了大概有1小時2分鐘。面試形式:電話面試。
1. 簡要的自我介紹。
自我介紹之前大致準備了下,就主要介紹個人情況,我主要是按照簡歷上的內容,大概介紹了下,時間在3分鐘左右,但是個人感覺亮點不夠突出,這點大家可以再發揮。
2. 研究生階段最有挑戰的項目是什么?
我覺得這是我的一面面試官比較關注的點,這點聊了很久。因為我們組的主要方向是智能化軟件測試,或者說智能軟件工程,然后介紹了最近研究的一個項目。大概介紹了這個項目的動機,然后傳統的一些研究方法,以及我們準備采用的一些方法(NLP相關)。
3. 對于這個項目,傳統的方法是怎么樣的?
介紹了在軟件測試領域大致的做法,主要是機器學習相關的內容了,即人工抽取的一些特征,已經使用的方法。
4. 列舉下這個任務在傳統用法的一些典型特征。
我大概列舉了幾個,感覺這里的案例說的不是很清楚,因為那些工作主要不是我在做,我只是對這些工作有過一些了解。
5. 看你簡歷里有QA相關的論文,大概介紹下里面用的方法。
主要介紹了這篇論文用的模型,以及方法,細節面試官沒有深究。
6. 你在這篇論文里用到的是GloVe,為何不用word2vec,或者說word2vec與GloVe有什么區別?
我大致說了下他們的區別:word2vec是NNLM的一個較為典型的代表,其利用了DNN的方法來訓練獲取到詞向量,而且詞向量是中間產物,這個思路最早是Bengio提出,Google Brain提出的word2vec讓詞向量火了起來。而GloVe是采用詞頻統計信息,利用一些數學方法逐步優化得來,它沒有神經網絡的結構,所以詞向量訓練的速度相對更快。(這里當時不記得具體的公式推導了,原論文我倒是看過,但是當時記得不清了,實際上GloVe是詞共現矩陣+類SVD的方法)
7. 你清楚word2vec嗎,大致描述下word2vec的結構以及訓練方法。
清楚(好剛的我,面完發現答的有瑕疵),從宏觀上描述了DNN的一個結構,從輸入(大致帶過分詞,詞表構建,one-hot等過程),到隱層,到輸出層。然后詳細講了兩種訓練結構,即CBoW和Skip-Gram,但是當時這兩種方法被我說反了。(當時并無覺察)講完兩種訓練方法后,大致介紹了下訓練時候詞表大小過大,輸出層過大的優化方法,即:hierarchical softmax和negative sampling。
8. 現階段NLP的研究相對CV發展還是很緩慢,你認為是什么原因?
自然語言存在變化性,和不確定性,即語義的抽取對神經網絡來說是很難的,在英文,人腦可以通過詞形來建立詞與詞之間的關系,但是語義不確定性很強,比如歧義,一詞多義,詞序等等都會影響語義。而CV的特征相對固定,如圖像處理,filter提取的特征一般是某種輪廓或邊緣特征,這些特征對于特定的物體都是固定的,所以效果會更好。(說了很多廢話,不清楚,其實總結就是感知智能和認知智能,感知智能很容易實現,即CV,而認知智能有很多挑戰,即NLP)
9. 你知道隱馬爾可夫模型嗎,大概介紹下。
當時HMM的具體理論在準備階段就大致地看了下,面試官很nice,沒有很為難,理論的不記得那來實踐的,就接著這個問題,問了HMM的幾個要素,即:初始概率,狀態轉移矩陣,發射矩陣,這三個要素,然后我主要講了下這三個要素的運算過程,提及了一下維特比算法。(這里當時準備的不充分,說的不是特別清楚,后來我去惡補了一下)
10. 維特比算法其實是一種動態規劃算法,動態規劃算法通常用來解決什么問題,在HMM里是怎么使用的?
大致描述了下動態規劃的最優解問題,然后結合HMM的迭代過程說了一些。(后來仔細看了下,感覺面試官應該還是想聽到HMM的理論,因為HMM推導會用到它里面的假設,然后得到遞推關系,就可以分解為子問題,利用維特比算法求解)
11. 快結束時,來道算法題吧,在一個敏感詞過濾的場景下,要怎么在一個字符串里找出敏感詞的位置?
當時懵了,沒想出來,只說了一個暴力解。(面試官應該是想聽到KMP一類的算法)
12. 算法復雜度是多少?
大概算了下,面試官和藹的說,沒想到也沒關系。他還曾循循善誘,從多個敏感詞的詞表簡化到一個詞,我對不起他。
13. 你實習的時間實驗室有沒有什么要求,能實習嗎?
沒要求,當然能。(就這意思)
14. 你還有什么問題要問我的嗎?
咱們部門對實習生的預期目標是啥?
面試官很和藹地介紹了面試的BG是TEG,部門是AI產品部。大致介紹了下實習生的培養方式和考核方式。
工作期間的考核情況如何,比如周報、月報、日報這些頻繁嗎?
面試官大概介紹了周會情況、周報情況,并說明疫情期間,線上工作,可能會要求寫日報,方便查看工作進度之類,我表示理解。
時長:1 h 2 min,結束,表示感謝,感謝不殺之恩!
二面(技術面)
二面也是技術,但是和初面不同的是,二面沒有那么關注項目了(但是也是從項目開始問),比較注重理論層面。自初面結束之后,有一周時間的空檔,我惡補了基礎理論知識,首先是對初面的知識查漏補缺,再刷了劍指offer,撿起了李航《統計學習方法》,基本的機器學習算法以及推導。面試形式:電話面試。
個人發現,NLP崗位,很多面試官喜歡問:HMM、CRF、LDA這些知識。
1. 看你的簡歷上,在做一個相似性評估的項目,大致介紹下。
介紹了下我的這個項目的模型,以及用的一些方法。
2. 了解,那么獲取的詞向量你是怎么獲取的?
從word2vec中獲取,然后作為模型的輸入(講了一些實驗操作)。
3. 你的詞向量自己訓練過嗎?
我講了很多廢話。
4. 你的詞向量自己訓練過嗎?
沒有。(面試官心態:早說不就完了)
5. 你知道幾種詞向量的方法?
這里說的很詳細,我帶了一下傳統的,如IDF、詞袋、LDA,GloVe等偏統計方法,然后具體描述了NNLM下的模型:word2vec(和一面一樣,介紹的比較詳細),character level CNN Model(英文適用,中文不太適用);轉向RNN結構:傳統RNN將序列壓縮至向量的過程,LSTM解決RNN長依賴模型,雙向語言模型(BiLSTM);根據雙向語言模型,導出了ELMo以及內部細節;主流熱門的Transformer系列:Transformer內部細節詳細講了一下,然后轉向GPT(Transformer Decoder,單向模型,和之前的雙向模型做了個區分),詳細說了一下,然后是BERT(Transformer Encoder,雙向語言模型,和GPT的對比和ELMo的相同點,以及區別)詳解。
安利本人譯的一篇綜述:鄒智鵬:綜述:神經網絡語言模型(譯)
如果覺得翻譯不好的話,建議論文閱讀原文[ ]。
6. n元模型了解嗎,如果共現頻率為零怎么解決?
大致講了下ngram與n階馬爾可夫。共現為0的解決方案有點忘記了,但是提了一下在GloVe中有提及這個情況的解決方案,但是我也忘記了。
7. 你認為為什么BERT能達到這么好的效果?
我認為BERT的效果很大程度上取決于Transformer的一個Attention機制,即Self-Attention,正如原文標題《Attention is all you need》,注意力機制很好地找出了文本序列的語義相關度,在語義層面上,能夠提取到更關鍵的特征,比如理解序列中的指示代詞。其次是Transformer的結構優勢,沒有RNN的梯度消失問題,理論上支持任意長度的文本,用了position embedding(區別說明了下Transformer的三角函數和BERT的position embedding的不同)。
8. 注意力機制你了解多少,或者說你了解哪幾種?
注意力機制最初是在CV領域用的比較多,其次被應用到了NLP領域,并且取得了較好的效果。我主要研究NLP比較多,CV了解不深,所以只了解NLP的兩種attention。最早的Attention是在seq2seq中提出(或者說Encoder-Decoder模型),講了下這個模型注意力機制的細節,以及注意力獲取的方式,文獻名我忘記了,原始的論文應該是NMT相關場景。然后講了BERT的Self-Attention細節,比如Q、K、V這些。
這里到BERT想要繼續向后拓展的時候,被面試官打斷了。
9. LSTM你了解嗎,它的大致結構是怎么樣的?
大概描述了下它的三個門。
10. 假設輸入是 x x x維,LSTM的參數量為多少?
當時著急了,沒怎么算出來,事后算了下,還挺簡單的。
面試官:你下去可以再確認下。
11. 正則化你用過嗎,有哪些正則化方法?
用過,我了解的有L1、L2正則化,講了很多廢話。。。
嘗試講L1、L2的細節的時候,被打斷了。
12. 還有其他的嗎?
有,比如Dropout、Batch Normalization不知道算不算,但是它能達到正則化的效果。
13. 文本相似性一般有那幾種度量方法?
之前項目里有過這個相似性的問題,我不知道面試官具體想要的點在哪,就先說了下VSM的基礎知識,他又再次深入地問了下,可以用什么模型。
然后我大致說了下常用的方法,比如最簡單的word2vec加權,然后用VSM,RNN得到固定維度的向量后,用VSM,以及這一系列的方法。然后補充說了,利用深度學習轉化為二分類的問題的思路和方法,以及BERT中的使用,因為BERT是有做文本相似性任務的。 深度學習之外,還有很多方法,比如主題模型、LDA之類的,我當時沒想到,面試完后想到了。
14. 序列標注做過嗎?
沒有。
15. HMM和CRF有什么區別?
之前惡補了HMM的理論,詳細講了HMM,但是CRF只有大概了解,就沒仔細說。 HMM的2個假設,正向反向算法(遞推式推導),EM算法,維特比算法。CRF打破了兩個假設,所以效果更好。(說的比較大概,也和面試官說了這部分不是很了解,只知道個大概)
16. 傳統機器學習算法了解嗎,比如XGBoost和SVM這些?
了解。
17. 那你講一下SVM吧。
講了下SVM的推導:hard margin, soft margin, 幾何距離、函數距離,最優化,拉格朗日乘子法,對偶問題,KKT條件,損失函數,懲罰系數等。
18. 為什么SVM求解要求解他的對偶問題?
為了使原問題更好求解,因為原問題不好求解,引入對偶問題之后就更好求解了。
面試官:哈哈哈,就是因為這個?好吧。
其實,是因為對偶問題可以降低原問題的計算復雜度。
好了,結束,沒讓我問問題,當時是晚上8點開始面,面試官也忙,我表示感謝,他就匆匆掛電話了,時長:50 min。
三面(HR面)
HR面就不涉及技術了,主要是和HR各種聊,在這之前,看網上很多面經,都說HR面還是很多坑的,即有套路,但是好在面我的HR小哥哥比較真實,沒有過分的套路我。面試形式:視頻面試(騰訊會議)。
學校的基本情況,導師是誰,組里的研究方向是啥?
根據我的研究方向,問了下我們的工作。
有沒有了解行業內你這個領域的一些工作,即你們組的研究方向的落地情況如何?
聊基本情況,實習時間,畢業要求。
家庭情況,籍貫、家里成員、父母工作。
實習地點有沒有什么規劃?
HR小哥哥開始介紹他們部門的業務情況,業務方向等等。
你有沒有什么問題?
那么我這邊也沒有問題了,整個面試就算通過了,大概一周左右會有通知。(大概意思,算是口頭offer)
致謝,結束,時長:20-30 min。
恕我直言,17號面完HR,忐忑無比,開始日常刷流程,直到20日晚才刷到已完成。開始牛客找組織,看有沒有已完成,但是沒收到offer的同學(沒辦法,太恐怖了,眼看著3:1到我結束面試,已經5:1了,慌張)。然后開始關注內部狀態,?非常感謝?牛客?網的騰訊?大?牛們幫忙。經歷5個?工作?日 后,內部狀態變更更為:實習已錄?。
小建議
技術崗,刷算法題!時間來不及就先劍指offer 66道,相對簡單,多刷幾遍,然后做leetcode。
算法崗,基礎機器學習算法:SVM、Bayes、DT、Clustering、boosting(Adaboost、GBDT)、bagging(RF)、LR。
項目,一定要熟悉,不熟悉的就別往簡歷上寫。說不清楚的會被噴的很慘,一定會被diss,甚至會質疑簡歷真實性。簡歷上寫了的就要再次復盤,要了然于胸,不要忘記了然后講不明白。
論文,要熟悉所在領域的一些經典論文模型,里面的細節也要清楚,最好讀原文。
NLP的經典:HMM、CRF、LDA,我在很多次面試都碰到這些,重點圈出,個人遭遇,視情況準備吧。
HR套路,雖然面我的HR沒怎么 套路我,但是HR畢竟還是要盡量選擇穩定的人,所以HR面還是要長心眼,對某些敏感問題的態度要堅決,宗旨:我愛XX公司,我一定去,工作地點不挑,實習時間能滿足。
Reference
https://zhuanlan.zhihu.com/p/117450353
機器學習 自然語言處理基礎
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。