【面試招聘】 科班小碩的2020年面試小結
“作者為Pinkman,平臺的專欄作者之一,任京東算法工程師
背景???
? ? 作者是一名今年參加校招的應屆生,本文寫在校招結束后。
? ??經(jīng)過了兩個月的奮戰(zhàn),終于在9月末成功上岸。今年的算法崗真的可以說是 非常慘烈,到目前為止0 offer還有很多。希望通過這篇秋招總結幫助到學弟學妹,提前為以后的秋招做準備。先說一下我個人的情況,計算機專業(yè)本碩雙非,打過幾次比賽,成績最好拿到第四名,后面是三段實習經(jīng)歷(創(chuàng)新工場、滴滴、京東),最后經(jīng)過3個月在京東的實習,成功轉(zhuǎn)正。因為在京東實習期間時間比較緊,所以整個秋招面的公司不是特別多,很多時候時間沖突只能推掉,最后拿到京東、滴滴、天眼查和3家小廠的offer,經(jīng)過薪資和崗位的綜合比較最終還是選擇了京東。
? ? 在這里也歡迎各位從事推薦及NLP的小伙伴加入我們,一起交流學習,一起進步。
? ? 如下僅為部分面經(jīng),墻裂歡迎各互聯(lián)網(wǎng)大佬來撩。
前言??
? ??對于秋招的準備,我是從去年9月份開始的,從去年秋招的情況來看,算法 的競爭就已經(jīng)比較激烈了,再加上我雙非學校比較拖后腿,所以準備相對早一 些,笨?先?吧,哈哈。
? ? 我個人準備的情況,首先LeetCode無論對于算法還是研發(fā)都是必不可少 的,尤其是本科非cs出身的同學,這里不提前準備秋招的時候很容易吃虧。我刷了LeetCode前200題加上劍指offer的全部,加起來大概有270道題左右,如果熟 練掌握原理,應付面試以及筆試已經(jīng)夠用了(刷題的時候一定要一邊刷一邊自己 做題目分類和總結,而且要經(jīng)常回顧已經(jīng)做過的題,不然很難做到融會貫通)。
? ? 然后是算法理論部分,手推lr和svm是必須的,常用的機器學習算法、深度 學習算法和優(yōu)化算法也是基礎中的基礎,這里一定要熟練掌握,不能有任何死 ?,如果這部分基礎知識答錯或者答不上來,在面試官那里你就已經(jīng)進入待定狀態(tài)了。具體我找實習和秋招中遇到的問題我會在后面列出來,其實面試多了你會 發(fā)現(xiàn)基礎知識都是反反復復那一點,從今年京東同事面試的反饋來看,現(xiàn)在基礎 知識這部分已經(jīng)沒有什么區(qū)分度了,大家準備的都很充分,所以我前面也說了這里如果沒法順利答出來,你就自動降級了。
? ? 最后我想說一下提前出來實習的重要性,我是研二中間出來實習的,提前達到實驗室的畢業(yè)要求發(fā)了小論文,再加上老板比較好說話所以提前就跑出來了。像我這種雙非的菜?,在今年這么激烈的算法崗競爭中能拿到大廠的面試機會主要也是看我實習的經(jīng)歷比較豐富吧,不然和985的大佬們比完全沒有任何機會。實習分為暑期實習和日常實習兩種,暑期實習一般都是可以看你表現(xiàn)情況留用的,日常實習就要看組內(nèi)情況了,一般情況都是沒有轉(zhuǎn)正的。所以秋招想拿大廠offer的同學一定要爭取暑期實習的機會,如果成功留用你在秋招的時候就不會特別被動。我來京東是以日常實習身份過來的(上一份滴滴實習上線的模型排期一拖再拖,想把自己做的模型上線再走,所以錯過了找暑期實習的時機),好在面試的時候問了自己的mentor能不能有留用機會的時候,給的回復是表現(xiàn)好的話是有的,最后3級部?的leader在結合自己的成果進行轉(zhuǎn)正審批的時候也沒有再進行內(nèi)部面試直接給了轉(zhuǎn)正。我認為我個人是比較幸運的,實習的時候遇到了好的同事、mentor和leader,不然即使有轉(zhuǎn)正機會也不會這么順利。
實習面經(jīng)分享
oppo
一面
? ? 自我介紹。首先面試官讓介紹一下所做的項目.
由于面的nlp相關所以介紹了nlp方面的知識,從文本分類到生成式摘要。講述 的過程中在處理過?文本想用摘要去解決的時候,面試官提出了一個方法可以解決過?文本問題(具體是什么方法不記得了)。然后在討論生成式論文的時候?qū)?于pointer network面試官提出了利用詞表解決OOV的問題。然后問到rouge評測方法。
選lstm,cnn,transformer,詳細的講一下,在將multi-head self-attention的時候提出最后8個頭不concat而是相加,然后做一層線性變換(發(fā)論文的點), 還有attention換成n-gram效果會更好不。
問熟悉什么語言,python底層是用什么寫的,問了list是利用什么數(shù)據(jù)結構實現(xiàn)的,sort數(shù)據(jù)的時間復雜度是o(n),dict中set()時間復雜度o(1)。
算法題:劍指offer原題數(shù)據(jù)流中的中位數(shù)。
介紹之前比賽用到什么模型,如何進行數(shù)據(jù)預處理。
介紹上一份實習中的項目。
算法題:兩個排序算法歸并排序和快速排序,說出時間復雜度以及是否穩(wěn)定。
滴滴地圖
一面
? ? 自我介紹。
介紹房租賽的整套方案,介紹模型融合的時候聞到xgb和lgb效果會有差異,是為什么?
講一下實習中做的東?,講分類,講和生成式摘要,從lstm講到transformer,transformer講到Encoder結束,沒有講完(似乎他也不懂,不感興趣),這次是對比lstm講的,下次對比部分講完了,嘗試問一下是否要繼續(xù)講后面的,省著做題。
實驗室地鐵流量的項目。
算法題:打印二叉樹的路徑。
針對cnn提問,卷積后的尺寸的變換由什么決定的(那個公式)。
最主要是通過什么方式進行降維操作的,(pooling層)。
resnet與cnn最大的不同體現(xiàn)在哪里?
畫一個block的dense net。
dense net和 resnet相比有什么優(yōu)化的地方(參數(shù)減少,反復學些,避免學習不充分)
滴滴簡歷推薦
一面
算法題:在一個字符串中找到一個子串沒有重復項。
問了比賽相關的,介紹一下xgboost,決策樹,問了bert相關的。
算法題:鏈表相加,將結果作為鏈表返回。
詳細的講了比賽。
字節(jié)
一面
與滴滴第一輪面的同一題。
介紹項目。
python常用函數(shù)的時間復雜度。
介紹一下gbdt。
說一下梯度(后面探討了gbdt的梯度,求導為什么要對yi求導,而不是對別的求導)。
什么是過擬合,如何解決過擬合。
騰訊
? 自我介紹。
處理不等?的文本除了用0 mask掉還有什么辦法?
如果用0 mask掉后雙向lstm如何保證不學習到那些被pad的信息?
在訓練模型的時候調(diào)過什么超參數(shù)嗎?(我只說了maxlen和batchsize,這倆貌似不是超參數(shù))
如何得知你訓練的模型是過擬合還是欠擬合。如果過擬合了該怎么做,欠擬合了該怎么做?
是否用過TensorFlow,訓練lstm的時候是如何讀取不同?度的字符的?
做一道題,兩個有序數(shù)組合并成一個有序數(shù)組。
python讀取字符串的格式。
對于一批數(shù)據(jù),內(nèi)存無法全部裝入,如何讀取并進行排序?
字節(jié)廣告推薦
? 自我介紹。
介紹滴滴做的事情。
介紹gbdt特征重要性如何得到?
xgboost如何處理缺失值?
樹模型捆綁特征為什么會提高指標?
寫反扒機制。
百度
一面
tf寫全連接網(wǎng)絡。
pooling層如何反向傳播的、分為哪幾類。
快排的時間復雜度,給與證明。
rf為什么有效?多個模型。那是不是說明樹越多越好?容易過擬合,隨機選取數(shù)據(jù)選多少?(效果好應該從bagging降低模型方差來,并結合投票來講)
介紹項目(難點如何解決)。
介紹gbdt和xgb的區(qū)別。
有什么gbdt的調(diào)參經(jīng)驗嘛?
數(shù)據(jù)清洗做過哪些,特征工程做過哪些?
連續(xù)特征離散化有什么好處(處理異常值,防止過擬合)?
算法題:逆序?qū)Φ念}。
阿里
一面
算法題:字母的全排列(遞歸+回溯),問了時間復雜度(階乘)。
算法題:逆序?qū)?/span>。
介紹滴滴項目。
Transformer模型結構。
resnet和densenet模型利用之前信息方式的區(qū)別。
auc的物理意義。
算法題:sqrt()。
算法題:求第k大的數(shù)。
Transformer模型。
batch Normalization有什么作用,為什么會有作用,兩個參數(shù),以及公式,如何學習的?
常用的優(yōu)化算法有哪些,有什么使用技巧嗎?
如何得知是不是過擬合,解決過擬合的辦法有哪些?
說一下lstm rnn cnn的pooling層的作用。
介紹滴滴做的項目(面試官臨時有會,提前結束了)。
京東
一面
gbdt和xgboost的區(qū)別。
介紹transformer。
畫一下densenet一個block的結構圖。
Transformer為什么有效(self attention)說一下Transformer的優(yōu)勢,哪一個部分的復雜度會別較高,全連接。
算法題:二叉樹的路徑。
算法題:尋找旋轉(zhuǎn)數(shù)組中的一個值。
問了rnn結構。
秋招面經(jīng)分享
天眼查nlp
一面
? ? 自我介紹。
Transformer結構。
高斯混合算法和kmeans的區(qū)別。
lightgbm和xgboost的區(qū)別。
什么時候適合使用樹模型?
attention和Self-Attention的區(qū)別。
rouge評測函數(shù)。
其他都是項目的細節(jié),需要細化一下文本分類的指標。
算法題:統(tǒng)計相同的字符串的前綴。
算法題:一個有序數(shù)組,尋找所有兩數(shù)之和等于target的組合,數(shù)只可以使用一次。后來又問無序怎么辦,利用dic存儲,然后遍歷數(shù)組做差,差值是否在dic中,hashmap查找時間復雜的為什么是1。
算法題:一個數(shù)組,連續(xù)最大累加和的切片,和dp那道題一樣,但是需要輸出個切片值。
死鎖的概念。
sql關聯(lián)兩個表。
項目:jd輸入輸出,評價指標。
主管面,主要就是聊天,沒有技術相關的東西。
熵簡科技
一面
jd的項目。
文本比賽的項目。
w2v為什么有效果:從詞向量的?度,可以把相同語意的詞映射到相同的語意空間內(nèi),可以提取前后信息的詞。
w2v存在哪些壁壘:1.模型太淺了,無法提取深層次的語義信息 2.對于不同語境內(nèi)的多義詞無法區(qū)分 3.window的限制,太大無法得到準確的詞,太小語義信息又不全面 4.oov的問題,訓練好固定的詞向量,存在不可覆蓋的問題。
bert為什么有效果:從Transformer的self-Attention的?度來答。
bert存在哪些問題:模型太大,不夠輕量;自編碼的問題;無法對全文進行訓練,利用Transformer-xl進行改進。
主要就是聊天。
mx player
一面
lr 和svm 有什么區(qū)別。
在線auc的計算。
算法題:歸并排序;選擇?度最?的回文串(動態(tài)規(guī)劃)。
介紹項目。
算法題:兩個字符串的最大子串;字符串的全排列。
快手
牛頓法有什么優(yōu)點,落入鞍點會有什么樣的特征(什么情況下容易陷入鞍點)。
滴滴的項目。
算法題:題目有效括號的匹配(回溯法)。
滴滴
一面
lstm和tranformer的區(qū)別。
gbdt和xgboost的區(qū)別。
介紹優(yōu)化算法。
mmoe模型結構,為什么會有效果?
bert效果為什么好?
二叉樹根節(jié)點到葉子節(jié)點的累加和。
說一下lr的目標函數(shù),為什么要使用對數(shù)似然?
svm基于什么分類的,距離是怎么計算的,和lr有什么區(qū)別,線性不可分怎么辦?
jd的項目,使用mmoe的動機是什么?
概率題,黑球和白球,已知各50個,放入兩個箱子,自己設置比例,如何在不知道每個箱子數(shù)量比例的情況下,摸到黑球的概率最大?
員工的工資。
選擇自己認為最具有挑戰(zhàn)性的項目聊一聊。
新氧
? ? 自我介紹。
xgboost和gbdt區(qū)別。
xgboost的并行是指什么并行。
手推lr公式。
介紹auc,auc是如何計算的?
介紹mmoe。
算法題:蓄水池的問題;如何估算圓周率。
卷積神經(jīng)網(wǎng)絡中卷積核的參數(shù)是如何更新的?
總結
往期精彩回顧
獲取一折本站知識星球優(yōu)惠券,復制鏈接直接打開:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群請掃碼:
