前言:若需獲取本文全部的手書版原稿資料,掃碼關(guān)注公眾號,回復(fù): 算法面經(jīng)35場 即可獲取。 一、面試準(zhǔn)備工作本文涵蓋了騰訊微信事業(yè)群模式識(shí)別中心,PCG和TEG事業(yè)群,阿里達(dá)摩院,螞蟻金服,百度研究院,京東研究院,頭條AI Lab,滴滴AI Lab,微軟亞洲研究院,微軟工程院以及聯(lián)想研究院等等多個(gè)公司NLP算法崗面試內(nèi)容奉上,其實(shí)面試內(nèi)容都大差不差,從大的來說就包含四塊內(nèi)容,下面我也就這四塊做一個(gè)簡要的說明: 簡歷中項(xiàng)目以及提到的相關(guān)算法 傳統(tǒng)機(jī)器學(xué)習(xí)相關(guān)算法原理及使用細(xì)節(jié) 深度學(xué)習(xí)算法相關(guān)算法原理及使用細(xì)節(jié) 手動(dòng)Coding,數(shù)據(jù)結(jié)構(gòu)的考察
1、簡歷首先也是重重之中,就是要準(zhǔn)備好一份漂亮的簡歷,簡歷的重要程度不用多說,我想大家首先給自己心理設(shè)下這樣一個(gè)標(biāo)準(zhǔn),我這份簡歷前后修改了有20個(gè)版本了沒有。 2、機(jī)器學(xué)習(xí)簡歷投出去之后就是自我的準(zhǔn)備工作,對于傳統(tǒng)機(jī)器學(xué)習(xí)算法,我列舉一些如:K-近鄰,K-Means,樸素貝葉斯,決策樹(ID3、C4.5、CART、GBDT、Xgboost、Lightgbm、隨機(jī)森林等),邏輯回歸,最大熵模型,支持向量機(jī)SVM,EM算法,隱馬爾科夫模型,條件隨機(jī)場等,這些傳統(tǒng)機(jī)器學(xué)習(xí)算法在面試中經(jīng)常會(huì)被問到原理,或者直接讓你公式推導(dǎo),推薦閱讀的書籍如:李航-統(tǒng)計(jì)機(jī)器學(xué)習(xí),周志華-西瓜書,劉鐵巖-分布式機(jī)器學(xué)習(xí)等 3、深度學(xué)習(xí)除了傳統(tǒng)機(jī)器學(xué)習(xí)就是深度學(xué)習(xí)算法的復(fù)習(xí),深度學(xué)習(xí)模型的考察通常會(huì)結(jié)合實(shí)際的項(xiàng)目場景進(jìn)行考察,那掌握模型的原理便是基礎(chǔ),??疾榈纳疃葘W(xué)習(xí)模型如 CNN,RNN/GRU/LSTM,Transformer(NLP特征提?。?/p> Word2vec,Glove,F(xiàn)astText,Elmo,Bert,F(xiàn)lair(預(yù)訓(xùn)練詞向量) CNN,RNN,RCNN,DPCNN,F(xiàn)astText,HAN,Bert(NLP分類模型) GNN,GCN,SGCN(圖模型) 深度學(xué)習(xí)算法復(fù)習(xí)推薦書籍如:花書-深度學(xué)習(xí),python神經(jīng)網(wǎng)絡(luò)編程等
4、Coding最后一個(gè)便是面試都少不了的coding,如果現(xiàn)場面試基本都會(huì)準(zhǔn)備一張紙一支筆然后手動(dòng)Coding,像今年遠(yuǎn)程面試那就都是線上coding,像頭條或部分公司就會(huì)使用牛客網(wǎng)在線編程環(huán)境,線上coding其實(shí)相對于手動(dòng)coding還是有好處的,因此平時(shí)就是在線上寫代碼,但如果是手動(dòng)coding大家需要注意一些問題,不要以為線上會(huì)coding,紙上也能完整的寫下來,需要提前在紙上寫一寫,因?yàn)榫€上coding是有可自動(dòng)補(bǔ)全的編程環(huán)境,會(huì)讓你舒服很多。手動(dòng)Coding的能力不是短時(shí)間可以練出來的,因此平時(shí)大家要多練習(xí),這個(gè)大家倒不用買什么書籍,就可以在Leetcode網(wǎng)站,??途W(wǎng)站上進(jìn)行練習(xí)。
NLP面試全記錄接下來就給大家奉上將近20家公司NLP算法崗的面經(jīng),供大家參考,我把面經(jīng)分為了暑期實(shí)習(xí)面試篇和日常實(shí)習(xí)面試篇,其實(shí)暑期實(shí)習(xí)和日常實(shí)習(xí)面試的內(nèi)容沒有太大的區(qū)別,只是在流程上暑期實(shí)習(xí)面試的流程很長,在招聘上公司也會(huì)更加的謹(jǐn)慎。 當(dāng)然只要大家對上面提到的四項(xiàng)內(nèi)容全都掌握,那么面經(jīng)倒也沒有太大意義了,如果大家想溝通面試經(jīng)驗(yàn)或者某些公司組別的相關(guān)情況可以關(guān)注公眾號后獲取我的聯(lián)系方式,希望和大家一起交流學(xué)習(xí)。
二、阿里螞蟻金服-人工智能部一、阿里一面(兩小時(shí)) 1、兩道算法題(50分鐘) (1) Leetcode139 單詞拆分 (2) 對算數(shù)表達(dá)式求值,如給定字符串’1+((2+3)4+(4+2))-5(2+1)’,求算數(shù)表達(dá)式結(jié)果 2、聊簡歷(40分鐘) 3、算法常識(shí)(30分鐘) (1) 偏差和方差的區(qū)別 (2) 介紹一些傳統(tǒng)機(jī)器學(xué)習(xí)的分類體系 (3) Bert和Elmo在工程中存在的一些Trick 二、阿里二面(四十分鐘) 1、聊簡歷(40分鐘) 三、阿里三面(三十分鐘) 1、聊簡歷(30分鐘) 四、阿里HR面(二十分鐘) 1、簡單介紹一下實(shí)習(xí)項(xiàng)目 2、以往實(shí)習(xí)經(jīng)歷的體驗(yàn)和收獲 3、自己性格的優(yōu)缺點(diǎn) 4、對工作地點(diǎn)和入職時(shí)間的確認(rèn) 阿里面試體驗(yàn): 根據(jù)很多同學(xué)交流反饋的不完全統(tǒng)計(jì),阿里面試一面難度最大,之后的面試好多都是只聊簡歷項(xiàng)目。阿里的HR權(quán)利很大,即使面到了最后一面HR面還是有很大可能會(huì)被掛掉,一句話夸張的概括一下阿里HR的存在吧,#阿里技術(shù)部的面試官是在給HR部門招人,而不是HR再給技術(shù)部招人#。而且阿里的流程走的是真的慢,很多同學(xué)都是在HR面后超過半個(gè)月才回收到offer意向書,所以面了阿里就得放平心態(tài)耐心等著吧。
三、騰訊WXG-模式識(shí)別中心一、 WXG一面 1、聊簡歷 2、結(jié)合簡歷詢問相關(guān)模型細(xì)節(jié)級工程細(xì)節(jié) 3、算法題 (1) 不用Python自帶的包實(shí)現(xiàn)INT轉(zhuǎn)為STR (2) 反轉(zhuǎn)鏈表,劍指offer原題/Leetcode206 (3) 給定一段文本Text,對文本做各種數(shù)據(jù)統(tǒng)計(jì) 二、WXG二面 1、聊簡歷 三、WXG三面 1、聊簡歷 2、算法題 (1) 字典樹的最大正向匹配算法實(shí)現(xiàn) (2) Leetcode146-LRU緩存機(jī)制 四、騰訊TEG-AI平臺(tái)事業(yè)部一、 TEG一面(兩小時(shí)) 1、算法常識(shí)(50分鐘) (1) 介紹過擬合的方法,L1和L2正則的區(qū)別,L1正則為什么產(chǎn)生稀疏解 (2) dropout方法如何防止過擬合,直接簡化網(wǎng)絡(luò)和dropout的區(qū)別 (3) 介紹深度模型中的優(yōu)化函數(shù)以及優(yōu)缺點(diǎn),介紹實(shí)際工程中如何判定過擬合 (4) 給房屋面積/房間個(gè)數(shù)/是否有電梯/是否南北通透/樓層數(shù)以及房屋價(jià)格,描述解決思路 2、聊簡歷(40分鐘) 3、算法題(30分鐘) (1) 實(shí)現(xiàn)dropout函數(shù) (2) 長度N的整數(shù)數(shù)組,只用乘法不用除法,求任意N-1個(gè)數(shù)乘積最大一組 (3) 二叉樹中的所有和為Target路徑,Leetcode113-路徑總和2 二、 TEG二面(四十分鐘) 1、問的都是工程方面開放性問題 (1) 多層次分類如何處理 (2) 分類文本中如果含有一些關(guān)鍵詞擾亂分類結(jié)果如何處理,舉例 (3) 分類文本中如果出現(xiàn)一些新詞無法識(shí)別導(dǎo)致分類錯(cuò)誤如何處理 (4) 分詞多個(gè)分類模型的優(yōu)缺點(diǎn)如CNN,RNN,F(xiàn)astText以及應(yīng)用場景 (5) 開放題: 農(nóng)夫山泉公司對水資源的開采是否會(huì)造成水資源的枯竭,如何看待 三、 TEG-HR面(十五分鐘) 1、聊了簡歷項(xiàng)目十分鐘 2、給了五分鐘問問題 騰訊面試體驗(yàn): 暑期實(shí)習(xí)在流程上騰訊和阿里比也快不到哪里,但是騰訊有一個(gè)特別好且可以利用來加快面試速度的小方法,那就是基本每個(gè)人都可以直接接觸到騰訊的HR,在面試進(jìn)度被卡時(shí),可以通過聯(lián)系騰訊HR來直接推進(jìn)面試進(jìn)度,HR小姐姐一般都很樂意幫忙。還有就是騰訊HR面完之后基本就挺穩(wěn)了,這點(diǎn)和阿里也差別很大。 五、頭條AI Lab一、 一面(一個(gè)小時(shí)) 1、聊項(xiàng)目 2、基礎(chǔ)知識(shí) 3、算法題:字符串s只包含字母'a’和'b’,請問同時(shí)滿足以下條件的字符串s’的最大長度(1)s’是s的連續(xù)子字符串,(2)s’里'a’和 'b’數(shù)目相等 ,(3) o(n)的時(shí)間復(fù)雜度 二、 二面(一個(gè)小時(shí)) 1、 聊項(xiàng)目 2、 基礎(chǔ)知識(shí) (1) python中的裝飾器、值傳遞和索引傳遞 (2) Word2vec和FastText模型以及二者的區(qū)別,F(xiàn)astText算法N-gram作用 3、 算法題:實(shí)現(xiàn)K-Means算法 三、 HR面(十五分鐘) 1、HR面試相對輕松,就是問了以前實(shí)習(xí)有沒有什么收獲以及之后的職業(yè)規(guī)劃,還有HR介紹了一波頭條的AI Lab 頭條面試體驗(yàn): 頭條給人的感覺就是嚴(yán)謹(jǐn),無論從HR或者到面試官,首先頭條的HR還是真的專業(yè),在面試前都有HR先和你溝通面試時(shí)間,有什么問題都可以和HR溝通。談到這點(diǎn)我就特想說,阿里的面試很多都是突然某個(gè)午休時(shí)鈴聲響起就這么突然地被面試了(基本都是用公用電話打,也不給你任何聯(lián)系他們的機(jī)會(huì),神秘的組織啊),至于HR嘛只有在HR面的時(shí)候你才能聽到他的聲音,但他還有決定你去留的強(qiáng)大權(quán)利。頭條的面試官嚴(yán)謹(jǐn)怎么說呢,就是頭條的每次面試基本都是一個(gè)小時(shí)左右,不少不多。但阿里和騰訊那就看面試官心情了。 六、阿里達(dá)摩院一、一面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、算法知識(shí) (1) CNN 模型中池化層的作用,Max Pooling 是如何反向傳遞梯度的。 (2) 機(jī)器學(xué)習(xí)中正則化做什么的?約束模型參數(shù),防止過擬合。 (3) 正則化有 L1 和 L2 正則化區(qū)別是什么 (4) Transformer 模型架構(gòu), Transformer 和 BERT 的位置編碼有什么區(qū)別 (5) Dropout 有什么作用 3、算法題:給定一個(gè)未排序的整數(shù)數(shù)組,找出最長連續(xù)序列的長度,o(n)時(shí)間復(fù)雜度,leetcode128原題 二、二面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、簡歷上設(shè)計(jì)的相關(guān)算法原理介紹 3、算法題:尋找兩個(gè)有序數(shù)組的中位數(shù),o(log(n))時(shí)間復(fù)雜度,leetcode4原題
七、新東方研究院1、聊項(xiàng)目(一個(gè)小時(shí)) 2、算法題:array=[1, 3, 7, 9, 12, 15, 21], target=21, 找出數(shù)組中所有和(n個(gè)數(shù),n=1,2,…)目標(biāo)數(shù)的數(shù)集合,leetcode39、leetcode40組合總和問題
八、聯(lián)想研究院知識(shí)圖譜1、聊項(xiàng)目(半個(gè)小時(shí)) 2、算法題 (1) 尋找二叉樹中任意兩個(gè)節(jié)點(diǎn)的公共父節(jié)點(diǎn),無指向父節(jié)點(diǎn)的指針且不準(zhǔn)添加 (2) 兩個(gè)list1,list2保存了電話信息,電話都是字符串且都有數(shù)字組成長短不一,查詢list2中電話在list1中出現(xiàn)的情況:如果完全匹配返回電話,如果只是前綴且僅是一個(gè)電話前綴返回電話,若是多個(gè)電話前綴則返回空,如果完全不匹配返回空
九、美團(tuán)知識(shí)圖譜核心組一、一面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目,介紹BERT、Attention、Transformer原理 2、場景題:對于分類問題中的多標(biāo)簽問題/或者多級字標(biāo)簽問題如何解決 3、算法題1:二叉樹的層次遍歷,leetcode102, leetcode107原題 二、二面(一個(gè)半小時(shí)) 1、聊簡歷項(xiàng)目 2、場景題:對于分類中為什么要采用數(shù)據(jù)不同比例 3、寫出交叉熵公式并解釋為什么要使用交叉熵作為損失函數(shù)去評估誤差 3、算法題1:leetcode15三數(shù)之和 4、算法題2:鏈表的歸并排序和鏈表的快速排序
十、騰訊自然語言處理組一、一面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、介紹Bert、XLNet、Attention、CNN的原理, 3、探討了rule激活函數(shù)如果不加在卷積層之后而是加在最大池化層之后有什么影響 4、算法題:快速排序 二、二面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、python中字典和集合的實(shí)現(xiàn)結(jié)構(gòu) 3、算法題1:使用Tensorflow實(shí)現(xiàn)Softmax函數(shù) 4、算法題2:給了一個(gè)文檔集合,計(jì)算每篇文檔中每個(gè)單詞的TF-IDF值 5、算法題3:二維平面有很多點(diǎn),判斷二維平面中是否存在平行線 三、三面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、簡歷上提到的所有算法原理過了一遍
十一、百度研究院1、聊簡歷項(xiàng)目 2、傳統(tǒng)機(jī)器學(xué)習(xí):L1/L2正則化及對損失函數(shù)造成影響的區(qū)別、邏輯回歸、GBDT原理以及殘差實(shí)現(xiàn)細(xì)節(jié)、GBDT和Xgboost對比、高斯過程原理、吉布斯采樣原理 3、算法題1:求一個(gè)整數(shù)的平方根 4、算法題2:給定兩個(gè)整數(shù)數(shù)組,對第一個(gè)數(shù)組進(jìn)行排序,整數(shù)順序由其在第二個(gè)數(shù)組中的位置決定,對于沒有出現(xiàn)在第二個(gè)數(shù)組中的整數(shù),應(yīng)排在末尾,其之間順序無限制。這里整數(shù)的取值范圍是[0, 2^32-1],例如第一個(gè)數(shù)組為5 1 6 2 1 2 3, 第二個(gè)整數(shù)數(shù)組為2 1 3, 則排序結(jié)果為2 2 1 1 3 6 5或2 2 1 1 3 5 6
十二、京東AI研究院1、聊簡歷項(xiàng)目,面試超水,聊完簡歷項(xiàng)目直接要了 十三、滴滴AI Lab1、聊簡歷項(xiàng)目 2、word2vec原理、如何得到詞向量,fasttext原理 3、GDBT梯度決策提升樹、xgboost、lightgbm原理及區(qū)別 4、算法題:給定數(shù)組例如[A,B,C,D,E,F],給定目標(biāo)數(shù)C, 得到數(shù)組[D,E,F,C,A,B]
十四、香儂科技一、一面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、算法題:兩數(shù)之和,從數(shù)組array中找出兩數(shù)之和為target 3、算法題:在一個(gè)坐標(biāo)系中給定(0,0)、(a,b)點(diǎn),從(0,0)點(diǎn)出發(fā),每次只能向右走一步或者向左走一步,到達(dá)目標(biāo)點(diǎn)(a,b)點(diǎn)一共需要走多少步 4、GBDT和Xgboost的原理,為什么常說Xgboost可以并行的,GBDT和Xgboost有什么區(qū)別 5、L1正則化和L2正則化的區(qū)別,L1正則為什么產(chǎn)生大量稀疏解 二、二面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、算法題:反轉(zhuǎn)鏈表 3、算法題:將多個(gè)排序好的鏈表合并成一個(gè)有序鏈表 4、一對夫妻有兩個(gè)孩子,第一個(gè)是女孩,問第二個(gè)是男孩的概率 5、CNN, RNN, LSTM, BERT全稱都是是什么
十五、百度知識(shí)圖譜一、一面(一個(gè)小時(shí)) 1、聊簡歷上的項(xiàng)目 2、激活函數(shù)有哪些以及激活函數(shù)如何選用 3、操作系統(tǒng)中進(jìn)程和線程有什么區(qū)別,通信方式 4、算法題:LCS、二分查找 二、二面(一個(gè)小時(shí)) 1、聊簡歷項(xiàng)目 2、介紹Bert、Transformer、Attention原理 3、手推SVM 4、算法題:在二叉樹中同層的節(jié)點(diǎn)之間添加左孩子到右孩子的指針
十六、微軟工程院Bing搜索一、面試時(shí)長一個(gè)半小時(shí) 1、聊簡歷上的項(xiàng)目 2、算法題:樹中任意兩個(gè)節(jié)點(diǎn)的最近公共父節(jié)點(diǎn),面試官讓使用兩種遞歸的方式實(shí)現(xiàn),并且又要求使用迭代形式實(shí)現(xiàn),迭代實(shí)現(xiàn)樹的中序遍歷 3、深度學(xué)習(xí)相關(guān)知識(shí):CNN架構(gòu)理解,梯度消失和梯度爆炸,L1正則和L2正則,損失函數(shù)
十七、微軟小冰核心對話組一、一面(一個(gè)半小時(shí)) 1、聊簡歷項(xiàng)目 2、算法題:LCS迭代實(shí)現(xiàn)、遞歸實(shí)現(xiàn)、LCS序列打印、算法優(yōu)化,LCS和最長公共子串區(qū)別 3、手推Bayes公式 4、手推CBOW和Skip-gram公式 5、許多開放性試題如:維護(hù)一個(gè)項(xiàng)目上線最主要的是什么,NLP領(lǐng)域都有哪些任務(wù),詞向量預(yù)訓(xùn)練發(fā)展整個(gè)過程等等 二、二面(一個(gè)小時(shí)) 1、聊簡歷上的項(xiàng)目 2、介紹HAN模型原理,Attention機(jī)制原理 3、算法題1:判斷一個(gè)序列是否是二叉搜索樹的后序遍歷序列 4、開放算法題2:在牛市實(shí)時(shí)數(shù)據(jù),不斷的有數(shù)字型數(shù)據(jù)流進(jìn)入,如何在每次進(jìn)入時(shí)得到當(dāng)前所有數(shù)據(jù)的中位數(shù) 三、三面(一個(gè)半小時(shí)) 1、求公選課人數(shù)的平均數(shù)(不知道每個(gè)公選課的選課人數(shù)) 2、給出QA中的Question和Answer,你能做些什么 3、word2vec中cbow\skip-gram滑動(dòng)窗口設(shè)定大小有何影響 4、有事筆記本電腦跑程序出現(xiàn)內(nèi)存不夠用,但是打開任務(wù)管理器發(fā)現(xiàn)還有空余內(nèi)存為什么 5、算法題:編輯距離 6、算法題:任意兩個(gè)樹節(jié)點(diǎn)的最近公共父節(jié)點(diǎn)
十八、微軟機(jī)器學(xué)習(xí)組一、一面(一個(gè)小時(shí)) 1、聊簡歷上的項(xiàng)目 2、手推邏輯回歸 3、CNN和RNN中反向梯度傳播過程,為什么會(huì)出現(xiàn)梯度消失或梯度爆炸 4、算法題:用前序序列和中序序列重構(gòu)二叉樹 二、二面(一個(gè)小時(shí)) 1、聊簡歷上的項(xiàng)目 2、算法題:設(shè)計(jì)一個(gè)游戲角色在地圖中從起始位置到目標(biāo)位置是否有可行路徑,如果有記錄下來 轉(zhuǎn):https://blog.csdn.net/feilong_csdn/article/details/114683230?spm=1001.2014.3001.5502
|