NLPer拿下BAT 50萬offer,還順手總結了近百道面試題

以下是 七月在線 學員面經及面試題目的分享,希望對你有幫助。

溫馨提示:文末有免費試聽福利!

關注下方公衆號,領取面試資料

信息工程管理碩士,9年工作經驗,工作主要是做NLP以及一些數據挖掘的事情,同時也做一些工程的事情。其實我個人很早就關注july了,最早可以追溯到2012年左右的爲學論壇,那個時候我剛畢業沒多久找的是開發的工作,後來也一直看校長在csdn上面的博客,尤其是那篇SVM真的很好。

2017年開始我轉型專注做推薦系統以及一些NLP的事情,但前幾年NLP並沒有像現在這樣大幅度使用深度學習,我們當時的做法還是普通的機器學習和特徵爲主,後來感覺知識升級太快,而自己的經驗已經不夠用了,所以就開始在網上找一些課程零零散散地學習。最初一直在B站上看一些公開課,經典課程包括李宏毅、NG的課程,當然這些也都是理論爲主,自己實際應用的時候還是有點困難,直到有一次偶然看到七月在線的視頻,感覺內容很實用,有空就開始看了起來,後來才知道創始人就是july,所以就有了一種似曾相似的感覺。

從2017年左右我就一直學習七月在線的課程,學習過很多內容,包括:初級的機器學習、深度學習、推薦系統、高級的NLP5。總之,無論理論還是實踐對已經工作多年的我來說非常有用。我的知識體系重新進行了梳理。

準備好一份簡歷,對你找工作來說已經成功了一半,如果不知道怎麼寫簡歷也可以找就業老師幫忙,其實模版都是固定的,只要按照模版來認真準備自己的簡歷問題都不是很大。

第一點:針對簡歷項目內容

如果之前是從事於NLP或者數據相關的話,把自己的工作內容梳理好,然後把工作項目結合培訓課程,進行總結歸納整理就可以了,我個人最大的體會就是通過系統培訓後,我原有的任務可以通過適配升級,而且在老師講課的過程中我經常有一種醍醐灌頂的感覺,很多疑惑都得到了解答,當然這個也體現了自學的情況下很容易陷入誤區。

如果大家之前沒有AI相關的工作項目的話,那麼假設就是一個Python數據基礎瞭解或者之前從事Java等其它業務系統開發人員。這種情況屬於轉型的,針對NLP項目的話,可以考慮一些真實的項目進行練手,注意一定要自己動手,自己動手、自己動手。

總之,對簡歷項目部分還是多練習(自己工作項目、課程項目、比賽項目、github類似項目等拿來學習),再次提醒:一定要自己親自手寫代碼哦( 哪怕自己抄呢,總之寫出來纔能有更深的理解)

且最新一期的【NLP高級小班 第九期】重新梳理技術部分的所有內容,並增加了帶學環節,力求讓每位同學都深刻理解NLP各大模型的原理與應用,繼續由大廠技術專家手把手帶你實戰大廠項目。

-- 新內容包括 --

1、五大階段:分別從NLP基礎技能、深度學習在NLP中的應用、Seq2Seq文本生成、Transformer與預訓練模型、模型優化等到新技術的使用,包括且不限於GPT、對抗訓練、prompt小樣本學習等。

2、八大項目:提供文本分類、機器翻譯、問答系統、FAQ問答機器人、知識圖譜、聊天機器人等項目實戰、聊天機器人中的語義理解、文本推薦系統,以及一個開放式項目;

3、標準流程:環境配置與特徵工程、模型構建與迭代優化、模型評估與優化上線;

4、就業指導:就業部輔助BAT大咖講師做簡歷指導、面試輔導、就業內推。

完成項目進入就業階段後,BAT等大廠技術專家會一對一進行簡歷優化(比如將高級班項目整理到簡歷中)、面試輔導(比如面試常見考點/模型/算法),且和就業老師一起進行就業推薦等等就業服務。

(七月在線部分學員薪資展示)

機會永遠留給提前做好準備的人!如果你想從事NLP方向的工作,想在最短時間內成長爲行業中高級人才,進入知名互聯網公司,掃碼諮詢課程詳情!

掃碼“領取面試資料+課程試聽”

第二點:簡歷真實性

我們在寫簡歷的時候,不要過度包裝,要儘可能地真實,因爲最終你是需要在公司幹活的,到時候萬一簡歷很好看但在實際工作中卻不知道如何下手,這樣對自己的工作也會很不利。

關於面試公司,建議大家按照小公司-> 中型公司-> 大公司,這種順序進行面試練手,而且每次面試完都需要自己多進行總結經驗,不要每次在同一個地方跌倒。

總的來說一定要把自己簡歷裡面的內容寫地請清楚楚,別過度誇張,此外也要注意自己簡歷的整潔性,最好找老師要個好的模版。

關於面試題目,從五個大的方面準備

1、數據結構

2、機器學習知識

3、NLP面試相關題目

4、大數據相關的工具

5、線上工程開發

3.1 數據結構

這個基本在大廠都會考,我當時是先刷的劍指offer,裡面的題目基本都是經典題目很容易考到,其次也可以按照數據結構裡面的不同數據結構進行刷題大致分爲如下幾塊

1、字符串相關(編輯距離、字符串轉整數,找出數組k大,有序數組合並,公共子串等)

2、數組類

3、鏈表類型題目

4、二叉樹

5、圖搜索(深度優先、廣度優先)

算法的話基本會考:

1、動態規劃(揹包問題)

2、貪心算法

總之,這一部分,一定要刷,保持手感,其實我個人感覺在實際項目中數據結構有時候也會起到一定的作用

3.2 機器學習知識

LR,GBDT,xgboost,CRF、SVM這些常考即可

上述涉及到的原理、公式推導、損失函數之類要掌握,面試的時候基本上就沒什麼大的問題。

建議:如果大家有時間,最終可以把上述提到的算法通過代碼方式實現一篇(可以找些比賽的數據,例如:kaggle,或者github等),這樣可以加深印象。

3.3 NLP面試題目

大家本身就是NLP崗位工作,故這方面的內容相對比較多。

其實主要兩個方面:工作項目+理論知識

embedding 的一些知識(必須掌握,原理和區別)

Word2vec、glove、elmo、bert這些基本都會被問到,而且這幾個算法之間也存在着先後的演變關係,所以一定要熟練掌握,而且在我面試的過程中基本都會問到bert的問題,預訓練模型一定要好好地掌握

3.4 大數據相關的工具

這個涉及到自己工作日常需要用到的工具包括hive、spark、flink、kafka等,當然這個對於nlp工程師來說不是必須的,但是能夠掌握還是更好的。

3.5 線上工程開發

這個涉及到模型的蒸餾、高併發的情況處理、以及對外提供接口等,當然對於NLP工程師來說也不是必須的。

這裡面總結了NLP機器學習相關的常見面試題,供大家參考學習。

1、GBDT , XGBOOST, lightGBM 之間的異同。

2、XGBoost 的參數調優有哪些經驗(工程能力)

3、XGBoost 的正則化是如何實現的(工程能力)

4、XGBoost的並行化部分是如何實現的(工程能力

5、Xgboost 優化點

6、決策樹節點分裂時如何選擇特徵,寫出Gini index 和Information Gain 的公式並舉例

7、分類樹和迴歸樹的區別是什麼?(理論基礎)

8、與Random Forest 作比較,並以此介紹什麼是模型的Bias 和Variance(理論基礎)

9、xgboost 是用同一個模型嗎?

10、談談判別式模型和生成式模型?

11、各種聚類算法的優缺點劃分:K-means 層次:AGNES 密度:DBSACN 模型:EM

12、Xgboost 優化點、LightGBM 與XGboost 的聯繫及區別,是都試過了麼

13、如果選用一種其他的模型替代XGBoost,你會選用什麼?

14、bagging、boosting、stacking 的異同。

15、embedding 的作用是什麼?

16、embedding 物理意義?

17、神經網絡中的梯度消失和梯度膨脹是什麼,怎麼解決?

18、激活函數的作用

19、如何檢驗過擬合,數據量很小怎麼辦?

20、CRF 的算法的解釋。

21、介紹momentum,RMSprop 和Adam 等優化方式

22、word2vec 算法推導

23、word2vec 的優化

24、glove 和word2vec 對比有什麼區別?

26、attention 的原理,計算公式。

27、seq2seq 的缺點,如何改進?

28、循環神經網絡RNN 怎麼解決長期依賴問題?LSTM 的結構是怎樣的?

29、怎麼理解“長短時記憶單元”?RNN 中的隱狀態ht 與LSTM 中的記憶狀態Ct 有什麼區別?

30、Transformer 原理。手撕

31、Transformer Encoder 與Decoder 有哪些不同?

32、Encoder-Decoder attention 與self-attention

33、Multi-Head attention、多頭的理解

34、Position Embedding 位置編碼

35、Bert 訓練的一些參數?

36、bert 算是去年的工作了,有了解今年有哪些新的技術嗎?簡單講講。

37、BERT 原理。

38、BERT 適合哪些場景,不適合哪些場景。

39、BERT 訓練過程中用到涉及到的哪些任務,這些任務如何去實現完成的。

40、如何使用bert?Bert 調參數的心得。

41、在做NER 任務時,lstm 後面可以不用加CRF 嗎?

42、BERT 和GPT 的區別

43、如何使用bert?

44、TextRank 原理?

45、聚類方式。K-means,層次聚類,DBSCAN...

46、樣本不平衡的解決方法?

47、介紹一下,一些基於BERT 的改進的模型。

48、寫下bilstm+crf 的損失函數?損失函數中的max 有什麼作用,爲什麼要減去這個max?具體的emission score 與transition score 是如何得到的?

49、推導LR 的損失函數與梯度下降更新參數(必須要手推一下,當時就沒準備好)

50、如何理解過擬合,怎樣解決過擬合現象(當時沒說全,過擬合現象的原因沒有講清楚)

51、Transformer 在GPT 和Bert 等詞向量預訓練模型中具體是怎麼應用的?有什麼變化?

52、NLP 特徵抽取機制有哪些?(基於DN), 各有哪些優缺點

53、爲什麼是縮放點積,而不是點積模型?

54、爲什麼是雙線性點積模型(經過線性變換Q !=K)?

55、相較於加性模型,點積模型具備哪些優點?

56、用到了什麼激活函數,怎麼選擇激活函數的使用。

57、講一下高方差和高偏差。

58、下cnn,爲什麼cnn 中要padding,池化呢。

59、自然語言中如何選擇使用cnn 和rnn。

60、因爲項目中使用到了macro-f1,所以問了marco-f1,爲什麼不用Precision、recall?

61、瞭解python 的深淺拷貝嗎?裝飾器呢?

62、請簡要介紹下SVM

63、請簡要介紹下tensorflow 的計算圖

64、歐氏距離、曼哈頓距離

65、tf-idf 怎麼做的

66、手寫一個tfidf

67、讀取文件,計算TF-IDF

68、爲什麼tf-idf char 會對結果有提高?

69、glove 和fasttext 怎麼訓練的?

70、詞向量如何訓練的?(word2vector)

71、word2vector 爲啥語義相近的詞的詞向量相近?怎麼達到效果的?

72、softmax 和sigmod 區別?

機會永遠留給提前做好準備的人!如果你想從事NLP方向的工作,想在最短時間內成長爲行業中高級人才,進入知名互聯網公司,學長學過的【NLP高級班】限時免費試聽,掃碼諮詢課程詳情!

掃碼“領取面試資料+課程試聽”