愛鋒貝
標(biāo)題:
萬字長文!我的校招算法崗面經(jīng)總結(jié)!
[打印本頁]
作者:
大白回收
時間:
2023-4-9 18:01
標(biāo)題:
萬字長文!我的校招算法崗面經(jīng)總結(jié)!
歡迎關(guān)注 @滬漂城哥 ,專注CV、推薦、NLP、知識圖譜、機器學(xué)習(xí)等領(lǐng)域
大家好,我是陌雨,一個和大家一樣身處新時代的“農(nóng)民工”。很高興受到學(xué)長的邀請,和大家分享我在NLP和搜廣推算法崗位方面的秋招面試經(jīng)驗。需要指出的是,面試經(jīng)驗是非常主觀的,不同的部門會給不同的人留下不同的印象。
本文將盡可能客觀地描述我所見所聞,供大家參考。希望我的經(jīng)驗?zāi)軐硐霃氖滤惴ㄐ袠I(yè)的每一位有所幫助。
--->學(xué)術(shù)、面試、技術(shù)交流,移至文末加入我們
先給面友們羅列下我的背景信息以供參考。
學(xué)歷:
211本 + 985碩
論文:
一A一作 + 一A二作
實習(xí):
一段鵝廠TEG的NLP算法崗暑期實習(xí)
項目:
無重大項目
比賽:
無權(quán)威比賽
代碼:
leetcode 500+,面試手撕代碼環(huán)節(jié)沒出過大問題;筆試比較拉稀,只亂殺過網(wǎng)易和半亂殺了華為,pdd壓線,其他廠幾乎都是跳過筆試。
基礎(chǔ):
DL和NLP的相關(guān)知識都沒大問題;ML相對薄弱一些;搜廣推沒系統(tǒng)學(xué)習(xí)過。
嘴炮:
這是很容易忽視的一項,“你很優(yōu)秀”和“你能讓面試官覺得很優(yōu)秀”是有g(shù)ap的。陌雨自我感覺這次秋招嘴炮屬于中等偏上、偶爾拉滿。臨場反應(yīng)和freestyle發(fā)揮都挺好,反問環(huán)節(jié)的面試反饋通常也比較正面,反而是我的airpods pro被diss了好多次收音垃圾。
秋招面試結(jié)果出來啦!我這次共計向12家公司投遞了簡歷,很幸運的是幾乎都成功通過了大部分公司的面試環(huán)節(jié),并且最終也收到了不少心儀公司的錄取意向,整體表現(xiàn)還算不錯哦。
可惜的是,由于時間原因,我沒有來得及投遞給一些外企和銀行。因此,本文的參考性僅覆蓋國內(nèi)這部分大廠。
騰訊:
NLP算法(1面 -> 2面 -> hr面 -> gm面 ->
意向
)
阿里:
廣告算法(筆試 -> 1面 -> 2面 -> 3面 -> hr面 ->
意向
)
字節(jié):
廣告算法(1面 -> 2面 -> 3面 -> hr面 -> 4面 ->
意向
)
百度:
搜索算法(1面 -> 2面 -> 3面 ->
意向
)
美團:
NLP算法(1面 -> 2面 -> hr面 ->
意向
)
拼多多:
搜索算法(筆試 -> 1面 -> 2面 -> 3面 -> hr面 ->
意向
)
京東:
NLP算法(1面 -> 2面 -> hr面 -> 3面 ->
意向
-> 4面 -> 5面 ->
等待ing
)
快手:
推薦算法(1面 -> 2面 -> 3面 -> hr面 ->
意向
)
華為:
NLP算法(筆試 -> 1面 -> 2面 -> 3面 ->
意向
)
網(wǎng)易:
NLP算法(筆試 -> 1面 ->
2面掛
)
_
蝦皮:
推薦算法(__筆試掛_)
_
米哈游:
NLP算法(__簡歷掛_)
我分別從“簡歷、自我介紹、論文、實習(xí)、基礎(chǔ)、手撕代碼和反問”這幾個方面,和大家分享我個人在秋招面試中的體會。
恰好,后六個環(huán)節(jié)都是每場面試依次遇到的,時間分配大概如下:“自我介紹3分鐘,論文&實習(xí)30-40分鐘(這兩個環(huán)節(jié)不定,有些面試官只問論文,有些只問實習(xí),有些會兩個都問,合起來大概用這么長時間),基礎(chǔ)5-15分鐘,手撕代碼10-20分鐘,反問5-30分鐘”。希望我的分享能夠?qū)Υ蠹以诿嬖囍杏兴鶐椭?br />
1 簡歷
1.1 簡歷內(nèi)容
遇到的面試官幾乎只會focus下面兩點,其他的一些東西得過什么獎學(xué)金啊,績點多少,有無社交牛逼癥,樂觀開朗,精通windows啥的,感覺面試官都不太關(guān)注,可以選擇性寫一些豐富簡歷。本人面試的時候是幾乎所有的火力都集中在第二點,我當(dāng)時還專門有個other章節(jié)寫了一些別的東西,想強調(diào)沒有相應(yīng)的項目,但是這些我也會,但從來沒有面試官問過。所以簡歷可以做的有的放矢和稍微簡潔一些,把
必要的個人信息 + 論文、比賽、項目和實習(xí)給陳述好
,再適當(dāng)挑選一些其他比較有意思的豐富下簡歷。
家住哪/學(xué)校哪,愿不愿意到公司城市發(fā)展,意向和本崗位match嗎,什么時候能畢業(yè)
有哪些論文、哪些比賽、哪些項目和哪些實習(xí)
如果n很大,1/n桶水的東西就別往簡歷上寫了,會留大坑,容易偷雞不成折把米。身邊有同學(xué)剛?cè)腴T某些東西就往簡歷上寫,想添彩,面試的時候剛好就被面試官逮著了,非常減分,自然而然是都被掛了。簡歷上的東西盡量吃到比較透,至少確保能和面試官來上幾個回合。
另外,強迫癥患者要注意別花過多時間在簡歷修改上,我秋招就三天兩頭改,怎么看怎么不順眼,浪費了超級多時間。我簡歷當(dāng)時在非上面兩點的other信息上有及其離譜的錯誤,但投了一圈都沒沉(除了米哈游)。后面反思這東西其實就是通過性考核,只要達(dá)標(biāo)(80分),能幫你走到面試環(huán)節(jié)就行,沒必要苛求細(xì)節(jié)完美(100分)。重點在面試表現(xiàn),你精心在簡歷搞各種小細(xì)節(jié),面試官可能壓根就不care。另外,最好找有經(jīng)驗的師兄/姐幫忙check。
1.2 簡歷制作
同學(xué)幾乎都用這網(wǎng)站,非常好用。不需要整得花里胡哨、五顏六色,黑白、突出重點即可。
1.3 簡歷投遞
Tips-1 投的要夠早,最好提前批開始的第一周就把簡歷甩出去。
多早算早
。老話都說金9銀10,但是這幾年互聯(lián)網(wǎng)招聘已經(jīng)變成金8銀9了,甚至一年比一年早,基本都在7月底和8月初就開始。所以一定要好好珍惜8月和9月,盡量不要拖拉,每天都安排利用起來,也隨時保持好面試狀態(tài)。
復(fù)習(xí)是永遠(yuǎn)復(fù)不完的。
無論復(fù)習(xí)多久,一定會有知識盲區(qū),要學(xué)會理性評估自己當(dāng)前的準(zhǔn)備情況,覺得差不多就盡早開干。面試官通常會從你身上出發(fā),都是在聊你會什么,而不是你不會什么,所以不要老想著自己還有多少多少東西是不會的,畏手畏腳。只要你沒菜到什么都不會,簡歷上有東西和面試官聊夠半個多小時就可以甩簡歷了,后面就邊實戰(zhàn)邊復(fù)習(xí)。
坑位有限,先到先得
。我的教訓(xùn)是shopee投晚了,我當(dāng)時以為外企要全英文面試,想認(rèn)真準(zhǔn)備,拖了好幾周才投。最終shopee早投的那波人表現(xiàn)比較common都可拿意向,后面投的不少top2或筆試全a或論文怪或bbater在筆試階段都給掛了,甚至正式批國內(nèi)直接“取消”算法崗。然后,我字節(jié)投的非常早,提前批第一周就開面。當(dāng)時加面有好些個問題回答的很拉,自我感覺表現(xiàn)一般,卻順利通過了。所以一定要趁早,早期坑位多而且bar也會低一點。
提前批是復(fù)活甲,面試是無限火力
。提前批等于白送一次機會,結(jié)果不影響后面批次,不投白不投。多數(shù)大廠都不會嚴(yán)格限制次數(shù),聽到都是掛了隔幾天又被別的部門撈起來,無限循環(huán)。其次,即使面試不通過也不要讓負(fù)面情緒影響自己,不要因為一次不好的體驗就aoe整家公司,個人覺得大廠更像是很多個用了同一個名字的小廠,不同部門和不同小組差距太大了(在我實習(xí)的同一個中心下,我們組leader人超好,氛圍超級和諧,隔壁組的leader就天天排隊訓(xùn)話,差別就是那么大),不可能次次都是奇葩,相信總會遇到好的。認(rèn)識一位7篇paper的巨佬,一面被宇宙公司的奇葩面試官給弄了,他中間一度曾放棄這家公司,覺得很莫名其妙+面評被寫死了,中間耽誤好幾周都沒進(jìn)展。最后想通了,第二趟輕松找回場子。
Tips-2 投哪些公司,面試難度、體驗和效率如何,部門怎么選,有什么渠道
面試難度
,個人的排序大概是:
字節(jié) 阿里 騰訊 百度 美團 快手 拼多多 京東 華為 網(wǎng)易。
前三家的難點不太一樣,字節(jié)是難到讓你掛的明明白白,騰訊和阿里則是難的不太明白,通常是面的比較輕松但過不了。個人覺得華為和網(wǎng)易會相對簡單一些,技術(shù)問題比較少,像聊天,有些輪次面試官講的時間比我還多。剩下的難度沒特別明顯的差距,如果信心還不太足,一上來盡量不要剛太難的廠,容易受打擊,盡可能先從中間這波廠開始。
面試體驗
,講道理個人覺得大廠的面試體驗整體都非常好,包括在脈脈上被噴成shit的字節(jié)和阿里(我字節(jié)一面和阿里一二面是我整個秋招最舒服的Top5)。我沒遇到過傳說中的kpi面,最壞只遇到過幾個靜態(tài)臉或者純問一些不知道想考核啥的面試官,btw對面都讓我通過了。我覺得這可能只是他們的面試style,和面評無關(guān),所以面友們遇到這種情況也不要輕言放棄。我秋招制定了策略,如果三面往后遇到傳說中讓人忍受不了的業(yè)余面試官,就舔著茍過去,入職大概率見不著他,但一二面遇到,反問環(huán)節(jié)就主動說不夠match,讓釋放流程。
面試效率
,字節(jié)獨一檔,我一面到意向11天,結(jié)果反饋超級快,都是“私人專享”的HR實習(xí)生在半小時內(nèi)通知。字節(jié)的每個部門差不多都這樣,效率特別穩(wěn)定,身邊同學(xué)拿到的第一個意向十有八九都是字節(jié)。其次是百度,一面到OC一共4天(不包周末2天),百度的效率沒字節(jié)穩(wěn)定,不同部門差距較大,但是百度允許多線程作戰(zhàn),不同部門、甚至一個部門的不同組可以同時發(fā)起面試流程,所以整體效率也比較高。剩下大廠沒太大差別,都維持一周一到兩面的頻率,整體流程大概是20-30天不等,而且它們多數(shù)都還會設(shè)魚塘,hr完要繼續(xù)等一段時間才有結(jié)果。想快速拿保底offer的卷王們建議秋招初期從字節(jié)和百度下手,真的超級快。
業(yè)務(wù)部門,
我的選擇方式很粗暴,我印象中百度搜索很牛逼,就投大x;字節(jié)和阿里廣告很牛逼,就投商xx廣告和阿里xx;快手算是推薦業(yè)務(wù)支撐,就投社x推薦。其他也是類似的想法,都是盡量選印象中比較卷、核心和技術(shù)有一定沉淀的業(yè)務(wù)部門。不同人有不同需求,千人千選,核心和卷并不是唯一標(biāo)準(zhǔn),面友們也可以參考一下下面這個 項目。
投遞渠道
,包括企業(yè)微信(騰訊)、招聘官網(wǎng)(快手、拼多多、網(wǎng)易、蝦皮)、面試群JD(字節(jié)、京東、米哈游)、熟人遞簡歷(華為、美團)、牛客網(wǎng)員工內(nèi)推(阿里、百度)。招聘官網(wǎng)和面試群遇到的JD都太隨機了,建議主動出擊,盡可能讓簡歷直達(dá)你的意向部門。
2. 自我介紹
我每次自我介紹都講大概3分鐘左右,甚至可以講更長,不然1個小時的面試時間都不知道要怎么耗過去,只能這些有的沒得多講一些。這一部分感覺不是很重要,我每次都是一樣的說法,還沒被面試官challenge過。下面是我的模版,面友們也可以參考一下。
面試官老師,您好!我是xx學(xué)校xx專業(yè)的碩士研究生,大概xx年xx月畢業(yè)。本科就讀于xx大學(xué)xx專業(yè),在本科的時候?qū)W過xx,有過xx成果,最終在大四的時候順利保送到xx大學(xué)xx專業(yè),然后跟隨xx老師從事NLP的研究快xx年了,我們實驗室的研究方向是xx,研究生期間我發(fā)表了xx論文,做過xx項目,參加過xx比賽。此外,我平時還關(guān)注xx領(lǐng)域,對xx和xx也有一定的了解。我前段時間在xx公司的xx部門實習(xí)了xx久,部門主要負(fù)責(zé)xx公司的xx業(yè)務(wù),我在實習(xí)的時候主要做了xx工作。我個人的情況大概是這樣,老師,您有啥問題嗎?
3. 論文
怎么發(fā)論文。
論文比較吃自身科研sense和實驗室科研氛圍。最重要是實驗室得有經(jīng)驗豐富的師兄帶你。如果沒有,建議多打比賽和多搞項目,盡可能讓面試可以有些自己的東西講。又或者多去企業(yè)Lab實習(xí),企業(yè)Lab招實習(xí)生聽說不一定需要paper,反而是更看重coding。Lab里面有大牛mentor+多數(shù)實驗室都望塵莫及的計算資源,出paper概率要大很多。
論文的作用。
首先只要論文數(shù)量達(dá)到閾值就可以走頭部計劃,據(jù)我了解某些頭部計劃面試難度和普通批次并不會有質(zhì)變,無非就是有更高級別的leader來面你,區(qū)別更大的是論文數(shù)量有沒有達(dá)到閾值。其次,碩士生兩篇CCF A一作 + 其他方面不太拉垮,今年絕對大概率亂殺除頭部計劃以外的所有招聘。最后,論文可以讓你每場面試都擁有接近30min的“安全期”。
論文怎么講。
除了pdd,其他公司都允許共享屏幕。為了方便演示和更穩(wěn)定發(fā)揮,建議提前準(zhǔn)備ppt。演示內(nèi)容包括“任務(wù)定義(輸入是,輸出是,有無監(jiān)督等) - 任務(wù)難點 - 相關(guān)工作 - motivation - 提出的方法(創(chuàng)新點,有啥實現(xiàn)難度) - 實驗結(jié)果 - 后續(xù)改進(jìn)”
。
4.實習(xí)
實習(xí)選擇。
我個人理解是有兩種情況,第一種是選意向的核心部門,然后實習(xí)期間好好干,轉(zhuǎn)正拿好offer;另一種是選一個還行的大廠養(yǎng)老部門鍍金,每天快速干完mentor分配的任務(wù),稍微沒那么好好干和想辦法多擠出一些時間準(zhǔn)備秋招,再拿其他意向部門的好offer。
實習(xí)怎么講。
和論文類似,建議做一個ppt展示,介紹一下你們組是干啥的,以及這幾個月你做了些什么事,目的是什么,效果怎么樣,后續(xù)會怎樣改進(jìn)。因為業(yè)務(wù)算法長時間都是和數(shù)據(jù)打交道,幾個月的時間也很難做出很大的成果,如實寫上去就ok。個人發(fā)現(xiàn),做一些實際的數(shù)據(jù)處理帶來的性能提升比包裝一些亂七八糟的吹牛逼模型更能引發(fā)面試官的共鳴。
通過實習(xí) = 秋招有優(yōu)勢
。對于不少公司,你通過了它們的暑期實習(xí)面試,即使沒接offer,秋招也是有優(yōu)勢的,可以少面的幾輪的或者招聘還沒正式開始就私下約你面試。我了解到的是阿里可以直通終面,美團可以少面1-2輪不等,騰訊和字節(jié)是招聘沒開始就私約面試。建議卷王們暑期實習(xí)也多多折騰一下,既可以鍛煉和積累經(jīng)驗,又對秋招有好處。
暑期實習(xí) = 半個offer。
公司通常都更愿意把坑留給組內(nèi)的實習(xí)生,所以暑期實習(xí)除了豐富簡歷和增加秋招競爭力以外,還等于你收獲半個offer。個人的體會是只要不犯大錯,不刪庫跑路,mentor交代的東西也有踏踏實實的在做,通常有hc都會先留給你,大廠對實習(xí)生的預(yù)期沒有我們想象中那么高。身邊小伙伴暫時沒聽到轉(zhuǎn)正被刷的,然后開獎幾乎也都給sp+。
導(dǎo)師不放實習(xí),怎么辦。
建議先盡力和導(dǎo)師溝通,讓導(dǎo)師了解實習(xí)對于秋招的重要性。如果碩士期間你一直勤勤懇懇、踏踏實實和已經(jīng)順利達(dá)到畢業(yè)條件,導(dǎo)師多數(shù)情況也會理解你。實在不行就只能給你們一個不那么好的建議,可以
在盡可能保證自己能順利畢業(yè)的條件下
開溜。首先是實習(xí)不需要全勤,通常一周只需要三天,有些甚至可以遠(yuǎn)程。然后大廠的研究型或者養(yǎng)老部門的算法崗實習(xí)生任務(wù)比較輕,不用擔(dān)心擠壓掉實驗室的“科研”時間導(dǎo)致沒法交差。對于實驗室不需要打卡的同學(xué),時間可以卡極限一些,想辦法一周擠出三天去搬磚,市內(nèi)有急事來回頂多1小時。對于實驗室要天天打卡的同學(xué),就只能耐心點找遠(yuǎn)程實習(xí)了。
5. 基礎(chǔ)
5.1 機器/深度學(xué)習(xí)
ML本人的基礎(chǔ)相對薄弱一些,因為我開始學(xué)NLP的時候,已經(jīng)是DL年代了,當(dāng)時沒啥人搞傳統(tǒng)的機器學(xué)習(xí)方法,很多東西我都是匆匆茫??焖俜艘槐椋瑳]深入的推導(dǎo)過。我這次面試的時候,也很少會被問到傳統(tǒng)的機器學(xué)習(xí)方法,印象中只有字節(jié)和阿里的廣告算法崗會問一些,每次都是問我LR相關(guān)的,搜+NLP崗位的面試幾乎是沒問過。我的感受是,只需要將李航老師的《統(tǒng)計學(xué)習(xí)方法》認(rèn)認(rèn)真真翻完一遍,再額外補充一些面經(jīng)常見問題就可以應(yīng)對秋招了。另外,我還看了推薦度挺高的葫蘆書《百面機器學(xué)習(xí)》,一本QA形式的書,里面的問題都非常的經(jīng)典,十分適合秋招復(fù)習(xí)。
DL的話,感覺沒什么好講的,只要你平時有認(rèn)認(rèn)真真搞過NLP相關(guān)的任務(wù),這一部分肯定是難不倒的,都是問一些平時能夠接觸到的東西。我在復(fù)習(xí)的時候是看了邱錫朋老師的《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》,整個秋招體驗下來,面試已經(jīng)是非常夠用了。
下面給大家羅列一些印象中我或小伙伴秋招會被問到的問題。
SVM(原理)
LR(為啥用sigmoid函數(shù),交叉熵推導(dǎo),MAE和MLP,反向傳播,歸一化,正則化)
降維算法(SVD和PCA)
K-Means(手撕代碼實現(xiàn))
決策樹(各種生成和剪枝方法)
集成學(xué)習(xí)(隨機森林、XGBoost、AdaBoost、GBDT)
EM算法(原理)
過擬合(正則化、增加訓(xùn)練數(shù)據(jù)、數(shù)據(jù)增強、標(biāo)簽平滑、BatchNorm、Early-Stop、交叉驗證、Dropout、Pre-trained、引入先驗知識)
方差偏差分解(解釋什么是方差什么是偏差,公式推導(dǎo))
正則化(L1和L2的會有啥現(xiàn)象、解釋原因、分別代表什么先驗,bias要不要正則)
初始化(不同網(wǎng)絡(luò)初始化有啥區(qū)別,神經(jīng)網(wǎng)絡(luò)隱層可以全部初始化為0嗎)
激活函數(shù)(優(yōu)缺點,sigmoid、tanh、relu、gelu)
損失函數(shù)(用過哪些損失函數(shù),為啥分類不用MSE)
信息論(信息熵、條件熵、聯(lián)合熵、相對熵、互信息的概念,交叉熵和KL散度區(qū)別)
歸一化(為什么要做歸一化,各種歸一化的區(qū)別和優(yōu)缺點,NLP為啥不用BatchNorm)
梯度消失(殘差、門控、sigmoid換relu、歸一化)
梯度爆炸(截斷)
優(yōu)化器(原理和演進(jìn)過程,SGD、AdaGrad、RMSprop、AdaDelta、Adam、AdamW)
顯存爆炸(重計算、梯度累加、混合精度訓(xùn)練、Adam換成SGD、多用inplace)
學(xué)習(xí)率(衰減、warmup、自適應(yīng)、平時自己使用的時候?qū)r有什么調(diào)整心得嗎)
樣本不均衡(降/過采樣和帶權(quán)重的loss)
數(shù)據(jù)預(yù)處理(離散特征和連續(xù)特征)
評價指標(biāo)(Acc、Precision、Recall、F1、ROC、AUC、代碼實現(xiàn)AUC)
神經(jīng)網(wǎng)絡(luò)(優(yōu)缺點、演進(jìn)和公式推導(dǎo),lstm、cnn、transformer)
OOV咋辦
5.2 NLP
NLP包括兩板塊,一個是通用的基礎(chǔ)(所有面試官都可能問)和你個人研究方向的基礎(chǔ)。
個人研究方向基礎(chǔ)沒啥好說的,比如你做生成,面試官就很可能讓你手寫beam search;做序列標(biāo)注的就可能讓你推viterbi解碼、HMM和CRF區(qū)別之類的;做文本匹配可能就問你雙塔和concat模型、CLS塌縮和對比學(xué)習(xí)之類的。這個需要大家根據(jù)自身的情況選擇性去復(fù)習(xí)。
通用NLP基礎(chǔ)我和小伙伴暫時能想起來的主要包括下面這些了。
經(jīng)典模型的原理和手?jǐn)]代碼
文本關(guān)鍵詞抽取
(textrank和tf-idf)
詞向量模型
(NNLM、word2vec和glove)
相對于NNLM,word2vec的改進(jìn)有哪些
哈夫曼樹的構(gòu)建方法,在NLP有啥應(yīng)用
hierarchical softmax和負(fù)采樣的原理和復(fù)雜度
負(fù)采樣的具體實現(xiàn)方法
word2vec和glove的區(qū)別
怎樣評估詞向量的質(zhì)量
選出當(dāng)前query和100萬個key詞向量相似度的TopK,復(fù)雜度盡可能低(faiss)
預(yù)訓(xùn)練發(fā)展
word2vec - glove - ELMo - GPT - BERT - others的演進(jìn),每個模型分別解決什么問題
Transformer的細(xì)節(jié)
為什么要用多頭
(多個空間學(xué)習(xí)多種pattern、降低注意力學(xué)習(xí)的風(fēng)險)
為什么Q和K的映射矩陣不相同
(關(guān)系對稱、容易得到單位矩陣)
為什么注意力權(quán)重要除
(防止梯度消失)
為什么用乘性注意力不用加性注意力
(乘性計算量更???)
為什么要有FFN模塊
(增加模型的非線性能力)
Transformer和BERT的位置編碼有啥區(qū)別
(三角函數(shù)式和可學(xué)習(xí)向量)
殘差結(jié)構(gòu)及意義
(防止梯度消失和網(wǎng)絡(luò)退化)
哪個block中更耗時,哪個更占顯存
(序列短的時候FFN耗時,長的時候MHA耗時;FFN更占顯存)
transformer的LayerNorm有哪些
(post-norm和pre-norm)
如何對pad進(jìn)行mask
(將pad的attention_score加上-np.inf,過softmax后會變0)
怎樣解決曝光偏差
(訓(xùn)練時以一定的概率用上一時刻的輸出、NAR、占位符生成、基于負(fù)梯度構(gòu)建對抗樣本)
transformer加速
(NAR,知識蒸餾、剪枝、動態(tài)退出、稀疏注意力、線性注意力等)
attention瓶頸
(low rank,talking-head等)
BERT的細(xì)節(jié)
BERT怎么做分詞
(Basic Tokenizer和WordPiece Tokenizer)
WordPiece和BPE有啥區(qū)別
BERT的兩個預(yù)訓(xùn)練任務(wù)分別有啥優(yōu)缺點,后續(xù)有啥改進(jìn)工作
為什么BERT要用自己學(xué)習(xí)的位置編碼
(在訓(xùn)練充分的情況下,可學(xué)習(xí)的比三角函數(shù)式的的表示能力要更強)
BERT的位置編碼有啥缺點,還有哪些位置編碼
(絕對位置并不能很好的表示距離和方向,后面有相對位置編碼、復(fù)數(shù)位置編碼以及加入樹形的位置編碼等,參考tener,transformer-xl,t5,deberta,tupe和roformer等等)
BERT的FFN為啥要用GeLU激活函數(shù)
(非飽和區(qū)大同時非線性也
更強?)
BERT-Related-Works
Prompt
HuggingFace(
有些面試官會直接讓你看源代碼解釋某一些模型核心代碼
塊的具體作用,建議把BertModel給過一遍)
5.3 搜廣推
本人沒有搜廣推經(jīng)驗,但是經(jīng)過一些師兄和脈脈了解到搜廣推是當(dāng)前非常好的算法賽道。因此,秋招刻意選幾家大廠的看家業(yè)務(wù)部門嘗試了一下,我投遞的依舊是NLP算法工程師,但面了后發(fā)現(xiàn)這些部門里面多數(shù)崗位幾乎都不是純純的NLP,會用到但不局限于NLP,更多的是排序和預(yù)估相關(guān)的工作。秋招剛開始的時候非常擔(dān)心沒優(yōu)勢,抱著無限火力+復(fù)活甲的心態(tài)在面,沒想到最后都很順利挺過去,也挺舒服。
大家應(yīng)該比較關(guān)心“校招生沒有搜廣推相關(guān)經(jīng)驗,面試這些崗位會特別吃虧嗎”,這個問題我問過很多面試官,得到的回復(fù)大概都是“擁有搜廣推經(jīng)驗的校招生是非常少的,他們也很想找,但是很難有人在學(xué)校就專門研究,不強求,NLP和這些崗位要求的能力有一定的重疊性和可遷移性,所以也非常歡迎厲害的NLPer投遞這些崗位”。
關(guān)于搜廣推的面經(jīng),我大概只能一段話總結(jié):
NLPer面試這些崗位幾乎所有的時間都在聊你的論文、實習(xí)、項目和一些通用的DL/ML知識+一丟丟業(yè)務(wù)場景題,你做的東西被challenge的問題相對會少很多,面試翻車的概率感覺比NLP崗更低,面友們可以放心投。
另外
,
如果你平時還學(xué)習(xí)過推薦和廣告系統(tǒng),那么優(yōu)勢就非常明顯了,順便附上一位og寫的文章。
5.4 通用CS
計算機網(wǎng)絡(luò)、操作系統(tǒng)、計算機組成原理、數(shù)據(jù)庫和設(shè)計模式,這些我從來沒被問過。反而經(jīng)常會被問數(shù)據(jù)結(jié)構(gòu)和一些常用的搬磚工具,但是非常淺,這部分適當(dāng)瞄一眼就ok。
數(shù)組、鏈表、棧、隊列、堆
list,array,vector,unordered_set,set,dict等數(shù)據(jù)結(jié)構(gòu)的底層怎么實現(xiàn)的
二叉樹、平衡樹、搜索樹和紅黑樹,各種樹的演變
python裝飾器、深拷貝淺拷貝、垃圾回收機制
shell、git、hadoop、spark
還有些面試官喜歡問一些偏概率和數(shù)學(xué)的東西,下面是一些常見的概率題,最好準(zhǔn)備一下。
用rand7構(gòu)造rand10
山羊汽車問題
木棍截成三段,形成三角形的概率
拋一個6面的骰子,連續(xù)拋直到6為止,問期望的拋的次數(shù)是多少
給定概率不均勻的0和1隨機生成器,怎樣等概率隨機生成0和1
三角形里面隨機選3個點,構(gòu)成銳角三角形的概率
兩個人輪流拋硬幣,規(guī)定第一個拋出正面的人可以吃蘋果,求先拋的人吃蘋果的概率
一副撲克牌,分成三堆,大小王出現(xiàn)在同一份的概率
在半徑為1的圓內(nèi)隨機等概率采樣一個點
6. 手撕代碼
6.1 刷題網(wǎng)站
LeetBook:
https://leetcode-cn.com/leetbook/
劍指Offer:
https://leetcode-cn.com/problem-list/e8X3pBZi/
Hot-100:
https://leetcode-cn.com/problem-list/2cktkvj/
Tag:
https://leetcode-cn.com/problemset/all/
Labuladong:
labuladong 的算法小抄 :: labuladong的算法小抄
LeetCode 101:
https://github.com/changgyhub/leetcode_101
CodeTop:
https://codetop.cc/home
6.2 刷題經(jīng)歷
面試得分公式大概是“總分 = Sigmoid(手撕代碼) * 面試表現(xiàn)分”,手撕代碼更像面試表現(xiàn)分前面的門控系數(shù),撕不出來大概率涼,所以要重視一下。
我沒有參加過權(quán)威的coding比賽,也沒有系統(tǒng)刷過oj,是從基礎(chǔ)比較薄弱的菜 狀態(tài)下復(fù)習(xí)的,平時刷題會比較反胃,但是面試多數(shù)時候都覺得在牛刀殺雞。如果你學(xué)習(xí)能力和自制力都比較強,準(zhǔn)備2個月差不多可以搞定。另外,coding這東西不是一朝一夕可以鍛煉出來的,除了秋招要準(zhǔn)備外,平時也應(yīng)該多注意練習(xí),最好每周參加一下周賽,每天也抽空寫一下每日一題,下面是我的刷題經(jīng)歷。
刷LeetBook入門。
從簡單的數(shù)組章節(jié)開始,逐步加大難度,往難的動態(tài)規(guī)劃之類惡心人的算法上刷。LeetBook把題目都給歸類好了,刷題前也會介紹一些基本概念和常用的套路模版,方便沒系統(tǒng)學(xué)習(xí)過的面友們?nèi)腴T和鞏固。刷完LeetBook你的LeetCode榜大概就有100多道了,這時對各類算法問題都會有一個清晰的概念。有經(jīng)驗的LeetCoder可以直接跳過這一步,或者選擇性刷某些章節(jié)。
重點刷劍指Offer和Hot-100。
這上面的題面試出現(xiàn)的概率非常高,而且難度也適中,不惡心人。最好重復(fù)刷,確保這上面的題目出現(xiàn)你是能秒的。刷完這部分就可以開始甩簡歷,難度一般都不會超出這個范圍。
選擇性刷Tag拓展知識面。
例如蓄水池抽樣、拒絕采樣、數(shù)組差分、貪心、拓?fù)渑判蚝筒⒉榧鹊?。做到心里有?shù)就行,一般考察這類非劍指Offer和Hot-100的題目會非常baseline。
CodeTop刷意向部門崗位的面試原題
。通常面試都是約下午或晚上,當(dāng)天你會特別緊張,啥也不想干,這時候可以刷一下這個爆料網(wǎng)站的題目緩解一下,安慰自己手撕代碼準(zhǔn)備到萬無一失了,也可以保持下手感(雖然我每次面試遇到的都不是爆料的,可能投的太早了,好些題目是我爆料上去的,[裂開])
Labuladong和LeetCode 101
是我秋招看的比較多的算法刷題總結(jié),面友們可以瞅一下。
6.3 刷題心得
面試遇到?jīng)]見過的題盡可能先往暴力的方向想,先確保你自己能做出來,不要嫌棄想法過于傻逼和繁瑣就不說出來,沒準(zhǔn)就是這樣做的,寫出來一種方案總比啥都沒寫好。而且你想出了暴力寫法,面試官大概率會提醒你,讓你繼續(xù)優(yōu)化。甚至很多原創(chuàng)題目,你能寫出暴力的解法,面試官就通過了。遇到不會的題也不用太緊張,一般手撕代碼環(huán)節(jié)的題在代碼實現(xiàn)上都不會特別復(fù)雜,就是思路可能會繞,盡可能靜下心來思考分析,我有好幾次上來一看到題目就覺得要翻車,但最后都成功做出來了,要慢慢學(xué)會享受現(xiàn)場解題的刺激。
面試遇到見過的題目,不要上來直接無腦套最優(yōu)解。這樣不會加分,只會讓面試官覺得你剛做過原題,然后反手讓你證明算法的正確性或者再給你整一道難難的。最好走完一套流程,盡可能讓面試官覺得你現(xiàn)場是在思考的,先假裝在紙上寫寫畫畫,然后有思路了和面試官分析這類問題(不要說題目)應(yīng)該怎樣解決,通常用啥算法或模版優(yōu)化,最后再開始寫代碼。
語言可以直接用Python,沒有任何的限制,但是如果你本身非常擅長 c++,建議還是用c++刷,c++會有一定的印象分。沒時間復(fù)習(xí)c++也沒關(guān)系,對面試結(jié)果沒影響,好些次面試官都問我能不能寫c++,我都反向畫餅地說“本科肯定是用過的,但是最近兩年一直在用python,上一次用c艸還是保研機試,現(xiàn)在寫不了了,不過以后工作有需要撿起來也不會很難”。
如果僅僅只是想上岸秋招(無所謂亂殺和收不收割機),我覺得有劍指Offer+Hot100就已經(jīng)非常足夠。劍指Offer+Hot100以外的很多題目都非常長尾,你整個秋招都不一定能遇到一次,不停地刷下去,性價比超低。如果搞完劍指Offer+Hot100后還有充足時間,建議你再復(fù)習(xí)一遍,因為真的超級容易忘記和面試超級大概率是這上面的原題。
手撕代碼環(huán)節(jié),我個人90%以上都只用寫核心代碼 + 面試官肉眼debug和人腦運行。但是筆試環(huán)節(jié)是都需要自己構(gòu)建控制臺輸入,平常要注意練習(xí)一下,不要小看這小小的輸入環(huán)節(jié),可以去??蜑g覽下有多少人筆試是死在輸入邊界條件處理不對。
筆試是一個容易翻車的環(huán)節(jié),筆試和面試的題目差異非常大,并且筆試會相對偏門和瑣碎一些,很容易出邊界錯誤導(dǎo)致卡case,面友們可以到??途W(wǎng)找一些企業(yè)真題體驗一下。應(yīng)對筆試環(huán)節(jié),像我這等菜 的建議是跳過它。首先是多數(shù)公司(字節(jié),百度,京東和快手等)的提前批是無筆試的,大家只要抓緊時間,簡歷盡早投就ok;其次還有一些公司(騰訊,阿里,美團)是可以不看筆試的,直接找熟人遞簡歷,看上你就會立馬發(fā)起面試,整個流程也會順暢很多。最后還有些公司的實習(xí)筆試可以順延(華為),只要你實習(xí)通過筆試,秋招不用重新弄,建議趁實習(xí)有空的時候也多折騰一下,既能鍛煉又有好處。
手撕代碼不一定每輪都有,有些輪次是不用寫題的,沒有也沒啥事,不代表面試官放棄你,我好多輪都沒有。其次,一般手撕代碼是在你面試流程的最后一環(huán),如果你前面的項目和基礎(chǔ)part聊的特別開心,題目相應(yīng)也會簡單一大截。為了手撕代碼更順利,前面要好好使勁。
6.4 面試題目
騰訊
無代碼考察
阿里
實現(xiàn)堆
蓄水池抽樣(數(shù)組抽1個、數(shù)據(jù)流抽1個、數(shù)據(jù)流抽k個、分布式數(shù)據(jù)流抽1個)
字節(jié)
數(shù)組找Top-K(實現(xiàn)堆 + 快速選擇)
二叉樹的最大路徑
代碼實現(xiàn)AUC
給定兩種沙漏,計時分別是3分鐘和5分鐘的,問兩種沙漏能表示7分鐘嗎;能表示任意分鐘嗎;求表示任意分鐘需要的最少沙漏數(shù)量
識別Python腳本的每行縮進(jìn)是否正確
美團
旋轉(zhuǎn)數(shù)組找最小值(數(shù)字有重復(fù))
用最少數(shù)量的箭引爆氣球
旋轉(zhuǎn)數(shù)組找target(數(shù)字有重復(fù))
百度
給定序列的入進(jìn)棧順序,求出棧有幾種可能
括號生成(只有一種括號和有三種括號)
鏈表的歸并排序
京東
數(shù)組找Top-K(實現(xiàn)堆 + 快速選擇)
旋轉(zhuǎn)數(shù)組找target(無重復(fù)數(shù)字)
前綴樹
鏈表相交節(jié)點的個數(shù)(2個鏈表、N個鏈表和當(dāng)鏈表有環(huán))
二叉樹的層序遍歷
華為
最長有效括號
三數(shù)之和
拼多多
一個講不出來的特殊排序
中文分詞的前向算法
快速冪
快手
二叉樹的右視圖(非層序遍歷寫法)
給定一個升序數(shù)組,返回所有可能的二叉搜索樹
網(wǎng)易:
無代碼考察
7. 反問
反問環(huán)節(jié)通常都會有15-20分鐘左右,我基本都問下面幾個問題,面試官也都很樂于解答。大伙有啥特別想知道的都可以大大方方的問,但是盡可能要注意下用詞,禮貌一些。有些交叉面和加面沒有反問環(huán)節(jié),因為面試官不是你面試小組的人,寫完題就結(jié)束面試。
小組大概是做什么的,業(yè)務(wù)方向、具體用到的技術(shù)棧和目前遇到的挑戰(zhàn)和瓶頸
小組成立多久、規(guī)模多少人、有哪些base、在公司定位以及資源傾斜、未來幾年發(fā)展規(guī)劃
怎樣培養(yǎng)新人,新人過去大概的上手流程是怎樣的,會有多長的適應(yīng)期
小組內(nèi)的工作強度怎樣,每天大概幾點上班和幾點下班,周末加班嗎
x老師,針對剛剛的面試表現(xiàn),您覺得我還有哪些方面要再加強一下
x老師,我最近比較有空,如果您覺得我還ok的話,可以盡快幫我排一下后面的流程
8. 其他
知識面寬更有利于面試,很少面試官會只抓住一個點狂問,除非你主動說你精通某個東西,一般都是問的相對比較淺和比較寬,而且知識面寬也有助于業(yè)務(wù)場景題和臨場發(fā)揮。
大廠實習(xí)比頂會論文要更靠譜。兩者其實都可以幫你上岸,但明顯大廠實習(xí)要更穩(wěn)妥。頂會這個東西太玄學(xué)了,一年也投不了幾次,投出去也要等好幾個月,然后審稿又巨吃人品。相比之下,大廠實習(xí)的機會要多多了。如果你兩個都沒,建議優(yōu)先考慮大廠實習(xí)。
NLP算法還沒到算法崗勸退帖子那么邪乎,動不動就bar要高到要會手寫xlnet、n篇頂會和n段實習(xí),又或者算法崗已經(jīng)不招人啥的。我個人更傾向另一種觀點“
不少部門算法崗其實都缺人,但是又招不到合適的人,有些連hc都發(fā)不出去
”。至于NLP算法崗的bar,我感覺我在眾多NLPer里應(yīng)該還勉強可以算得上中等水平,能代表大多數(shù)人,可以參考一下。
在秋招開始前,焦慮是正常的,還沒有經(jīng)歷過,肯定會恐懼,經(jīng)歷過后你就會覺得其實也不過如此。不要讓焦慮過度影響自己,要學(xué)會享受和緩解焦慮,有空的時候多看一些面經(jīng)和總結(jié)。給面友們推薦卷王rumor大佬的面經(jīng)醬,可以直接wx訂閱各大平臺的NLP面經(jīng)。
避免尷尬,要預(yù)先準(zhǔn)備好臺詞去“舔”投的每家公司。因為hr一定會問你為什么選擇xx公司。每家公司也確實都有讓人選擇的理由,可以從企業(yè)文化、平臺規(guī)模、業(yè)務(wù)方向和業(yè)務(wù)增長空間、技術(shù)口碑、公司所在城市以及薪資待遇等等角度去分析。
本篇文章是我本次秋招的所見所聞和心得體會,個人能力有限,肯定有局限和理解不到位的地方。如果有表述不好或錯誤的觀點,求各位大佬輕噴,我們可以在評論區(qū)或者私信多多交流。
最后,今年還在堅持算法崗的面友們是真的挺有勇氣和挺不容易的,也該到收獲的季節(jié)了,我在這里祝愿大伙都可以順利收割各大意向公司的offer~
技術(shù)交流群
論文探討、算法交流、求職內(nèi)推、干貨分享、解惑答疑,與10000+來自港大、北大、騰訊、科大訊飛、阿里等開發(fā)者互動學(xué)習(xí)。
想要技術(shù)交流群的同學(xué),可以直接加微信號:
mlc2060
。加的時候備注一下:
研究方向+學(xué)校/公司+知乎
,即可。然后就可以拉你進(jìn)群了。
強烈推薦大家關(guān)注
@滬漂城哥
知乎賬號,可以快速了解到最新優(yōu)質(zhì)文章。
精選文章
用通俗易懂的方式講解:NLP 這樣學(xué)習(xí)才是正確路線
保姆級教程,用PyTorch和BERT進(jìn)行文本分類
保姆級教程,用PyTorch和BERT進(jìn)行命名實體識別
一網(wǎng)打盡:14種預(yù)訓(xùn)練語言模型大匯總
盤點一下 Pretrain-Finetune(預(yù)訓(xùn)練+精調(diào))四種類型的創(chuàng)新招式!
NLP中的數(shù)據(jù)增強方法!
總結(jié)!語義信息檢索中的預(yù)訓(xùn)練模型
深度梳理:實體關(guān)系抽取任務(wù)方法及SOTA模型總結(jié)!
【NLP】實體關(guān)系抽取綜述及相關(guān)頂會論文介紹
【深度總結(jié)】推薦算法中的這些特征工程技巧必須掌握!
12篇頂會論文,深度學(xué)習(xí)時間序列預(yù)測經(jīng)典方案匯總
一文梳理推薦系統(tǒng)中的特征交互排序模型
Meta AI提出PatchConvNet:利用基于注意力的聚合來增強卷積網(wǎng)絡(luò)
DeepMind加持的GNN框架正式開源!TensorFlow進(jìn)入圖神經(jīng)網(wǎng)絡(luò)時代
我今年89歲,剛剛拿了個物理學(xué)博士學(xué)位
-----------------------------
歡迎光臨 愛鋒貝 (http://m.7gfy2te7.cn/)
Powered by Discuz! X3.4