InterviewsProblems

http://www.itdecent.cn/p/66ad2ee1558b

L1和L2正則化區(qū)別,為什么防止過擬合?

類別不平衡怎么解決?

Bagging和boosting?隨機森林?

判別學習和生成學習分別右那些?

優(yōu)化方法?Adam和sgd

遇到過擬合怎么辦?

怎么調(diào)參?

  • 自我介紹
  • 項目和深度學習基礎
  1. 我的網(wǎng)絡一些細節(jié),不展開
  2. 那你的網(wǎng)絡跟xxx網(wǎng)絡很像啊,你能詳細說說xxx網(wǎng)絡嗎?(表示我根本沒聽過他說的這個網(wǎng)絡,我還反問面試官那是個啥樣的網(wǎng)絡2333,因為我這個網(wǎng)絡還沒有發(fā)論文,我還挺擔心撞idea的)
  3. 你網(wǎng)絡里用了殘差,說說殘差;
  4. 說說你知道的對于網(wǎng)絡結(jié)構(gòu)的改進,比如卷積上的一些改進,或者訓練方式上的trick,或者loss,什么都可以(我一開始說了兩個結(jié)構(gòu)上的,他就不斷的問我還有嗎,然后我每說一個他都要叫我介紹一下,說一下優(yōu)缺點之類的,直到我真的啥也說不出來了)
  5. 看你用了BN,說一下BN
  6. 說一下vgg的不同版本?(這個問題其實我沒聽清,我感覺是問vgg,這種問題我一聽就不會,所以也沒追問;我表示我看過他的論文,但是因為跟我的方向不太貼合(vgg主要還是用來分類?),所以沒有深入去看,面試官表示好的他知道了)
  7. 如果你的網(wǎng)絡不好訓練咋辦?
  • 問我平時用啥語言,我說c++和python,做了兩道題,寫完追問時間復雜度
  • 啥時候能來實習,今年情況特殊確定能來嗎
  • 反問環(huán)節(jié),我問我有啥欠缺的,面試官表示可能對于不是我方向的一些問題我了解的太少了,深度學習是相通的我不應該不是自己方向就不看;但他表示感覺我代碼能力還挺不錯的(開心)

然后面試官表示他去叫二面面試官,然后大概十分鐘之內(nèi)吧又來了一個面試官二面

  • 自我介紹
  • 項目
  1. 你網(wǎng)絡里上采樣是怎么做的(我表示調(diào)包,具體方法應該是雙線性插值)
  2. 那你知道雙線性插值的細節(jié)嗎(我表示我知道他是怎么算的,但是特別細節(jié)的話可能講不清楚,面試官表示沒關系那你可以寫代碼來說明.....于是我立刻給他講清楚了.....)
  3. 平時用啥語言,做個簡單題吧(dp基礎題,機器人走方格那種)
  4. 反問

深度學習一些基礎的問題
過擬合
正則化
BN什么的

第一題是雙哈希表完成O(K)復雜度在一個list里找到滑動窗口的眾數(shù)

比如神經(jīng)網(wǎng)絡里的BP算法用Numpy寫出來

三面:
項目中的一些問題,主要是會問你項目中的方法和其他論文究竟有哪些不同,這就要求你不但要對自己的項目熟悉,還得對一些其他類似的論文熟悉才行,我估計是想看你有沒有看過源碼結(jié)構(gòu)什么的,怕你是“調(diào)參俠”。不要慌,能記起來的盡量回答。

算法題,買賣股票DP問題,秒答暴力法,然后面試官說有沒有更好的方法,我說DP法,然后寫了個DP,leetcode簡單題。
問項目,問測試礦泉水流程。問計算機網(wǎng)絡,TCPIP什么的
算法題,輸入一個list然后輸出這個list的全排列,leetcode簡單題。
問了項目,測試抖音青少年模式怎么搞,Python的一些基礎問答。
算法題,給定一個list然后求出和為K的兩個數(shù),也是leetcode簡單題,雙指針秒答。
接著問項目,測試微信的發(fā)消息功能等等,依舊是Python的一些基礎問答。
關鍵是知道自己的優(yōu)勢和劣勢在哪里,不用特地的避諱;

1.機器人面:

正則化解釋一下

度量兩個分布的距離的方法

LSTM比普通RNN優(yōu)勢在哪

數(shù)據(jù)降維的辦法

過擬合是什么,如何處理

2.一面技術面

自我介紹,講項目

有一道場景題,有點忘記了

3.二面技術面
平時怎么讀論文

Unet講一下

給你幾片論文,你要如何對其中的算法做一個總結(jié)

4.三面hr面

優(yōu)點缺點

有沒有對象

期望薪資

1、最長公共子序列
2、括號合法匹配問題

一面:

1 - 算法題:樹的層序遍歷的遞歸和非遞歸做法

2 - 算法題:給定一個字符串,一個子串集合,要求不斷刪除字符串中的子串,直到?jīng)]有可以刪的為止

3 - 自我介紹

4 - 介紹項目

5 - 冷啟動問題,這里其實不是嚴格的冷啟動問題,而是面試官問我新節(jié)點來了怎么辦,孤立的點,完全沒有邊關系(其實他說的這種情況在我定義的模型中是不存在的,,,,,或者嚴格一點,存在的概率很小。)

6 - 上一個問題,引申到下一個問題,deepwalk這類圖結(jié)構(gòu)的embedding和普通embedding相比,哪一個解決新節(jié)點問題更好。(問到這里的時候懵了,因為在我的印象里,無論冷啟動還是新節(jié)點問題,解決方法都是自己定義的,這些embedding的方法只是說,生成的embedding的質(zhì)量不一樣。我不知道是不是我理解錯了意思)

百度一面說我沒有實習經(jīng)歷,都是比賽,對工業(yè)界了解的少。(內(nèi)心:所以我才要去找實習?。?/p>

二面:

1 - 自我介紹

2 - 主要用的是pytorch還是tf,介紹一下torch構(gòu)建一個簡單的dnn的流程

3 - 常見的激活函數(shù)有什么

4 - relu函數(shù)是做什么的,作用和是什么:我說是非線性激活函數(shù),把線性的映射到非線性空間中,如果不加relu,那不是和lr有點像了,直接是線性回歸了。

4 - 面試官又問,那dnn和lr什么區(qū)別,我說lr是線性的,dnn加了激活函數(shù)是非線性的。她說dnn不加激活函數(shù)也是非線性的,問我為啥。我說是因為它對高階交叉特征提取,所以增加了非線性的因素嗎(高階交叉特征應該是非線性的因素吧?),她說不是。然后我問那是為啥,面試官說,它就算是不加激活函數(shù),也可以對一些非線性的函數(shù)進行擬合

5 - 常見的embedding有那些。(我比較熟悉的就是graph embedding,她說就是常見的)然后embedding的作用是什么

6 - 梯度爆炸怎么解決
7 - 怎么做特征
8 - 如果一個特征是是負向的怎么辦
9 - 分布不一樣的特征是真實存在的,一般不會直接不用了,那要怎么辦,我說可以做一些調(diào)整
10 - 可以有哪些調(diào)整方法

11 - 為什么對推薦感興趣(其實我感覺后面她已經(jīng)不想面我了,我感覺是強行被我拉著扯了一點人生。。。然后她最后說整體挺好的,但也沒問算法題,感覺要gg了。她還給我推薦了一個知乎中搞推薦的人。我覺得大概覺得我雖然菜,但是還挺好學的。)

我看之前有人的面經(jīng),問的都是gbdt,xgb,lgb,到我這里就一頓nn的問,我跟面試官說我nn用的不是很熟,我了解gnn比較多。

常見算法排序,kmp,簡單dp代碼

聊簡歷。講故事一定要有邏輯性,即便你做的是一個很小的項目,亦或是很low的idea。(1)背景(場景是什么,說白了就是問題的各種約束條件);(2)要解決什么問題(motivation,相當重要,用簡單的幾句話講明白你要解決的問題);(3)方法,這部分都會被提問,你說的每個技術細節(jié)都會被問;(4)結(jié)論是什么,效率提升了?模型更小,效果相當?等等

與其說是引導,還不如說對自己簡歷上的各種東西都熟稔于心,問多深都能回答。

要提前準備面試官可能會問的問題,假如自己是面試官,你會問什么,如果自己回答不上來,趕緊學習。

1.為什么使用中位數(shù)對缺失值進行填充,這樣做的好處是什么?

2.隨機森林的基本原理?

3.講一下信息增益,信息增益比,Gini系數(shù)的關系?

4.講一下GBDT和Xgboost,說下他們的原理,以及不同點?

5.one-hot編碼的原理及意義?

6.特征維度很高時你是怎樣做的操作?

7.說下你的缺點和優(yōu)點?

8.最后讓我反問了幾個問題

一面

聊項目,問了類別不均衡問題,也問了模型可解釋問題,好像蘑菇街喜歡可解釋強的模型?然后當時引申的一個問題是,如果nn可以解決高維度離散問題,為啥還需要gcn來解決關聯(lián)性的問題。其它不記得了。

問的算法題很簡單,就是兩個排序數(shù)組合并成一個數(shù)組。

二面

自我介紹以后,面試官就問了我兩個大數(shù)相加的問題,寫代碼ing

然后就聊了聊項目。

三面

1 - 簡單介紹一個項目,這樣做的原因

2 - 你的gcn模型可解釋怎么辦

3 - 你說lr模型可解釋性高,它的可解釋性體現(xiàn)在哪里?是權(quán)重越大,可解釋性就越強嗎?

4 - F(N) = F(N-1) + F(N-2)的時間復雜度和空間復雜度問題

5 - 一個商家。第一天看A商品和B商品的點擊率。點擊率公式是點擊/曝光。然后,平均的是a的點擊加b的點擊/a的曝光加b的曝光。問,第二天發(fā)現(xiàn),a的點擊率和b的點擊率上升了,但是平均的下降了。是什么原因,從哪些方面入手去解決這個問題

這問題,我用公式角度回答的,然后面試官問我還要其它解釋嗎。。我不知道。。

三面的這幾個問題都回答的不好,感覺涼了。。。我已經(jīng)被leader掛出了心理陰影了。。

直接簡歷上的東西 稍微推了一下LDA主題模型
問了一些 LDA相關的20min LDA和LSA的關系問我的時候我沒答上來..
但是 我說了我直接LDA做的 不了解LSA什么的
鏈表的冒泡排序 面試官說沒問題
之后寫了一個LR 沒問題
問了一些LR的問題
再之后說了一下分類 然后bagging boosting 以及場景
然后寫了一個二叉樹的所有右葉子結(jié)點之和

1.介紹項目。
2.minibach SGD的minibatch怎么選擇,如果給1000萬的數(shù)據(jù),mimibach應該選多少。
3.Adadeta比Adagrad好在哪。
4.有沒有打開tensorflow框架看源碼。
5.給一個均勻生成1-7隨機數(shù)的生成器,怎樣均勻生成一個1-10隨機數(shù)的生成器。
6.用C寫個單類進程。
7.用C寫給一個數(shù)組和一個數(shù)s,返回兩個和為s的元素索引。

一面:1h

兩道代碼題,第一題最長自序和,秒;

第二題數(shù)組中最長字符串組合,這個沒有寫,說出了改寫Arrays comparator接口排序和hashMap查找

一、項目

機器學習中熟悉哪些算法

gbdt,xgb原理,區(qū)別,xgb做了哪些優(yōu)化(面試官很nice,還舉了應用場景幫助我理解)

二、算法相關

RNN lstm原理

CNN原理

三、基礎

Java collection基類有哪些接口及其實現(xiàn)類

Java線程六中狀態(tài)中的幾個轉(zhuǎn)換函數(shù)

TCP三次握手

四、聊天

喜歡看書嗎?回答喜歡。問看了哪些書?

說了數(shù)學之美,面試官問感想之類的

總體感覺:體驗很棒、面試官人很nice,是比較有涵養(yǎng)的那種感覺受過良好教育像領導,30歲左右。

二面:30min

一、項目,抓住一兩個點問的比較深

二、聊天:(我面試的時候也很蒙)

研究生規(guī)劃、放不放實習、老師不同意怎么辦、愿不愿意做Java開發(fā)(我感覺我要調(diào)劑去開發(fā)了....),實習時間等等

面試官也很nice,感覺很年輕很有活力那種

10個小球,隨機分到12個盒子里,求恰好10個盒子都為空的概率。要求用Python程序模擬十萬次,暴力求出該概率。

看到這題我懵了,讓我蒙特卡洛模擬?偽隨機數(shù)也不好近似出概率啊,誤差大的一批。頭一次見不要手推數(shù)學公式,特意要求你暴力的數(shù)學題。話不多說,動手開始寫,balabala,模擬完了,在??途W(wǎng)一運行,我懵了,輸出在十萬分之一到十萬分之3之間波動(十萬次只有兩三次恰好10個盒子為空),題目要求一共只能模擬十萬次,我開始懷疑人生,檢查代碼,并且重新設置了隨機種子,結(jié)果還是很小的概率。一下急了,情急之下打印出來前幾次模擬的結(jié)果,確實很難出現(xiàn)恰好10個盒子同時為空。然后就跟面試官說,這個概率太低了,同時模擬十萬次又太少,所以模擬出來的結(jié)果很小。然后面試官沒說啥了,直接下一題。好像他也是隨便選的題目,自己沒做過,只是看到這個題目在題庫里分類是數(shù)學,就選了這個。我也不知道這個題目的用意是啥,也不知道自己是不是想錯了。(PS: 面試之后我直接算概率,C(12,2)*210/(1210)=1.091e-06,如果我算錯了,歡迎各位指出。)

(寫這一題的時候我用的random包(牛客網(wǎng)系統(tǒng)不讓導numpy),random.randint(0,12),發(fā)現(xiàn)數(shù)組越界,事后發(fā)現(xiàn)原來API果然不一樣,random.randint(0,12)包括了右端點12,而numpy.random.randint(0,12)是不包括右端點12的,巨坑,平時使用numpy.random比較多,難怪面試的時候數(shù)組越界)

題目2:

二分查找元素在有序數(shù)組中的位置,如果不存在,輸出-1,如果存在,輸出下標(存在多個,輸出下標最小的)。

水的不能再水的題,但是一開始沒處理好有重復數(shù)字的情況,只過了30%用例(面試過程你可以自己提交代碼,并且可以看到一個錯誤用例,跟??途W(wǎng)練習模式一樣),比如4,4,5,6,7里面找4,我的代碼返回了1,本該返回0。后面處理了一下,AC了,二分都不能一次通過,差點急出一把汗。

題目3:

給定一個數(shù)組,找出數(shù)組的最長連續(xù)子序列。例:3,3,4,7,5,6,8,最長的連續(xù)子序列(這里的連續(xù)是說連續(xù)整數(shù),整個子序列是連續(xù)整數(shù),我一開始題都沒看明白)應該是(3,4,5,6),需要返回它們的下標(1,2,4,5)。如果存在多種答案,只需給出任意一組下標。

題目一出來,我就懵了,dp我真的不擅長。直接就聯(lián)想到最長上升子序列了,但是這個要求整數(shù)連續(xù),區(qū)別應該也不大,但是我不會寫啊,涼定了。

LIS:(我不記得LIS的代碼)
if nums[i]<nums[j]:
dp[i] = max(dp[i], dp[j] + 1)
盲猜只要改成如下:
if nums[i]==nums[j]+1:
dp[i] = max(dp[i], dp[j] + 1)

面試官看我不會,讓我先寫一個暴力的方法,我還是不會啊,然后一個小時過完了,涼涼。

1.快速傅里葉變換和離散傅里葉變換的主要區(qū)別是什么?
2.靜態(tài)方法和非靜態(tài)方法區(qū)別?
3.單例對象?

問了項目內(nèi)容,問了場景題和開放題,甚至還問了我職業(yè)規(guī)劃

一開始就自我介紹,然后問了數(shù)據(jù)預處理怎么做,怎么數(shù)據(jù)清洗,類別不均衡怎么處理的。

問了第一個項目的模型怎么構(gòu)建的,問了圖神經(jīng)網(wǎng)絡的發(fā)展,我的模型出于什么階段。

你覺得你的論文還有什么可以提升的點

之后就問了比賽,比賽中比較重要的是什么,是怎么分工的。

問了之后想要做的是研究還是應用一點,這些模型是自己動手優(yōu)化實現(xiàn)的,還是調(diào)包。

場景題是,對于團伙作案,從哪些維度考慮聚集性;對于無標簽的數(shù)據(jù),怎么考慮建模

開放題:

有一個人你知道他銀行卡金額上限和下限,猜銀行卡金額,猜對了就把金額給你,想要概率最大(猜的次數(shù)最少),金額最大,可以猜無數(shù)次,怎么優(yōu)化,怎么建模,可以先做一些實驗輔助。

面試官很會問問題,后面的開放題,她也一直在引導我,奈何我菜,沒有找到正軌,答得不好。

總的來說,問的問題比較廣泛,但都沒有特別深入的問下去,可能一面還是看知識廣度吧。

一二面:

1. 算法題:無序數(shù)組找前k大的數(shù),描述思路+復雜度分析

2. Python:callable,垃圾回收

3. 機器學習分類指標有哪些?AUC如何計算?

4. SVM和GBDT的比較?

5. attention說一下?

6. xgboost?lightGBM說一下改進點?

7. 隨機森林描述一下?

8. 深度學習模型壓縮有哪些方法介紹一下?

9. 關于項目的討論:關鍵工作?負責角色?難點及解決方案?是否有落地應用?

10. 連續(xù)值數(shù)據(jù)特征離散化的好處?原因?

11. 正則化的方法?作用?原理?

12. 常見Loss?物理意義?

13. 工程相關:項目中學到的東西舉例?如何解決bug?代碼優(yōu)化?量化代碼效率?緩存機制?

14. 操作系統(tǒng)是如何執(zhí)行C++代碼的?C++智能指針介紹一下?

15. 統(tǒng)計學習算法舉幾個例子來?能夠如何分類?分類的標準如何定義?

項目介紹完之后細扣項目,數(shù)據(jù)清洗,LSTM結(jié)構(gòu),如何評估,怎么調(diào)參的等等吧

前面聊的還行,后面寫題心態(tài)蹦了

SQL簡單題,奈何早忘的一干二凈了,難受

算法題,從n個數(shù)據(jù)中抽取m個數(shù)據(jù),保證每個數(shù)據(jù)被抽到的概率為m/n。沒見過這種題型,崩,最后說了思路。

這里建議非科班面大公司搞搞sql,AB測試,大佬隨意面。準備的模型推導一個沒問,裂開。

主要問了人工特征工程和lighgbm模型特征處理,有啥不一樣的,你為啥要構(gòu)造這特征。

然后就是一些樣本不平衡處理(重點聊了小樣本只有一個的時候),

神經(jīng)網(wǎng)絡利用dropout和多項式回歸利用正則項減輕過擬合的本質(zhì)是什么(為什么就能減輕過擬合了),

我項目有用到lightgbm和xgboost模型融合,就問了為啥要這兩個模型融合,lightgbm是xgboost的改進,那你為什么還要融合呢,懵了...

項目的主要問題還是特征構(gòu)建,會問你為什么要這樣構(gòu)造特征。

書本上基本知識得熟悉!會用!知道為啥用!

2、細扣實習項目(問的比較深)

3、數(shù)據(jù)清洗、數(shù)據(jù)平滑主要操作

4、有關一個時序列問題(具體還沒想起來)

好了梯度下降要來了

5、詳細說一下隨機梯度下降和批量梯度下降

6、線性回歸多變量求解的過程,為什么這樣求解?這樣求解為什么是最優(yōu)解?(我回答的是求導,也就是梯度下降)

7、怎么優(yōu)化梯度下降過程,主要是速度優(yōu)化?

8、自適應梯度優(yōu)化是什么樣子?

9、擬牛頓法能說說嗎?

10、學習率過大會出現(xiàn)什么問題,怎么解決

11、最大似然估計和貝葉斯估計的聯(lián)系和區(qū)別

12、如果我想預測的結(jié)果是一個置信區(qū)間你打算怎么建模型(這個是在最前面的問題)

13、一階導和二階導分別表示什么,能說一下意義嗎?

接下來就是聊人生了。

首先我介紹我的數(shù)據(jù)預處理,我說到類別不均衡問題,然后面試官打斷我,問我說的類別不均衡是什么意思

然后我解釋了,又問我為啥要用采樣解決,為什么不用修改目標函數(shù)。

圍繞這個問題,說了二十分鐘吧。

這不是我的重點,我想要一份均衡的數(shù)據(jù)集,避免它對我模型的影響,但同時我想對比各個模型的效果,所以修改了目標函數(shù)的話,其它對比模型面臨的還是類別不均衡的數(shù)據(jù)。

之后我說了我的模型,沒有問模型的問題,特征工程也只是問了問可用那些特征。

對于某些數(shù)據(jù)集類不平衡問題真的很重要,比如1%的癌癥和99%的癌癥,有些模型就會把所有樣本認為是健康的,就會有99%的準確度,但明顯是沒有意義的

單純上采樣有過擬合風險,單純下采樣肯定數(shù)據(jù)不全,而且采樣可能會對特征提取有影響,因為一些id稀疏,所以模型學不到什么東西。修改目標函數(shù)的話比較簡單,而且我感覺是從本質(zhì)上解決這個問題,就是減少了正樣本過少導致它的loss變化小。

面試官可能覺得通過采樣解決類別不平衡問題的話(相當于修改訓練集合數(shù)據(jù)分布),會導致測試數(shù)據(jù)和訓練數(shù)據(jù)不是同分布,這樣采樣以后還需要修正(比如小類別數(shù)據(jù)權(quán)重增加)。那么不如直接修改損失函數(shù),增加小樣本的權(quán)重,然后用AUC來評估模型好壞。

第一次寫一點經(jīng)驗給大家分享,有什么問題希望別介意

首先先進行自我介紹(老規(guī)矩)

1.寫一個代碼,樹的層序便利(寫出來了)

2.代碼:編輯距離(不懂的可以自己去百度一下,只說了思路,代碼沒寫寫出來)

3.圍繞簡歷問了一些項目相關的問題(略)

4.因為簡歷上寫了Cnn,所以問了一些cnn方面的東西(問的很多,我只說了一點點,效果不理想)

5.畢設做了推薦算法(本以為會問很多),結(jié)果只問了一個問題(計算用戶相似度的時候為什么用余弦,不用其他的算法)

細扣實習的東西(太深了)、
一階導二階導代表什么(看我太菜了)
還有關梯度下降

image.png

1.自我介紹,

2.你這個論文是怎么做的,場景是什么,你這個酒店數(shù)據(jù)集里面是個什么樣子,推薦出的東西是啥,如果我要預測用戶下一個購買的物品,你這個模型可以用嗎?

3.xgboost和gbdt的區(qū)別。

4怎么判斷過擬合,你一般怎么解決。

5,參數(shù)初始化的作用是啥,

6.會話的長度對你的效果有影響嗎?

7.graph-embedding的流程,和普通的word2vec效果的區(qū)別。

8.說一說偏差和方差吧,

9.什么模型能減小方差。

10.xgboost的二階泰勒展開為啥那么效果更好,

11.了解b+樹嗎?

12.寫個sql題吧。

13.講一下dp的思想,斐波拉契數(shù)列能用dp做嗎?什么問題適用于dp。

13.http里面get請求和post請求有啥不同。

14.你論文的數(shù)據(jù)預處理是怎么做的,你把那些出現(xiàn)次數(shù)少的給刪掉了,那你怎么推薦那些物品呢。

15.你的embedding維度是多少,

16.你了解mutil-task嗎?

17.你了解point-wise,pair-wise,list-wise嗎?

18.你覺得樹模型和神經(jīng)網(wǎng)絡的數(shù)據(jù)預處理有什么不同嗎?

19.講一下整個推薦系統(tǒng)的流程。

20.你知道位置偏差這個東西嗎?Position bais?21.mutil-task的任務是怎么優(yōu)化的?

22.比如我要針對一個指標,如mrr,ndcg這種,它是不可微的,該怎么處理。

23.推薦系統(tǒng)的可解釋性你了解嗎?有哪些方法,基于深度學習的推薦系統(tǒng)可解釋性你知道些什么。

24.你論文里面數(shù)據(jù)增強怎么做的,

25.高維稀疏的特征為啥不適合用xgboost

2道業(yè)務場景題-商品性價比和排序期望題

第1道題當場就給出了解決方案,二分類機器學習問題

對模型、推薦系統(tǒng)、項目線上經(jīng)驗等考察得比較深入。

leader面對機器學習考察得比較全面、深入,

- 最少時間復雜度求數(shù)組中第k大的數(shù),寫code

- 去除字符串S1中的字符使得最終的字符串S2不包含’ab’和’c’,寫code

- 長度為N的序列Sequence=abc….Z,問有多少不同的二叉樹形態(tài)中序遍歷是這個,寫遞推公式

- 給定整數(shù)n和m,問能不能找出整數(shù)x,使得x以后的所有整數(shù)都可以由整數(shù)n和m組合而成

- 中序遍歷二叉樹,利用O(1)空間統(tǒng)計遍歷的每個節(jié)點的層次,寫bug free的code

- 排序二叉樹轉(zhuǎn)雙向鏈表

- 一個運算序列只有+、*、數(shù)字,計算運算序列的結(jié)果

3、機器學習&數(shù)據(jù)挖掘問題

- L1和L2正則項 >> 它們間的比較

- 各個模型的Loss function,牛頓學習法、SGD如何訓練

-介紹LR、RF、GBDT ,分析它們的優(yōu)缺點,是否寫過它們的分布式代碼

- 介紹SVD、SVD++

- 是否了解線性加權(quán)、bagging、boosting、cascade等模型融合方式

- 推薦系統(tǒng)的冷啟動問題如何解決

- 是否了解A/B Test以及A/B Test結(jié)果的置信度

- 特征工程經(jīng)驗

- 是否了解mutual infomation、chi-square、LR前后向、樹模型等特征選擇方式

4.解決方案類題目

- 為今日頭條設計一個熱門評論系統(tǒng),支持實時更新

- 給定淘寶上同類目同價格范圍的兩個商品A和B,如何利用淘寶已有的用戶、商品數(shù)據(jù)、搜索數(shù)據(jù)、評論數(shù)據(jù)、用戶行為數(shù)據(jù)等所有能拿到的數(shù)據(jù)進行建模,判斷A和B統(tǒng)計平均性價比高低。統(tǒng)計平均性價比的衡量標準是大量曝光,購買者多則高。

- 有n個elements和1個Compare(A, B)函數(shù),用Compare函數(shù)作為排序算法中的比較算子給elements排序。Compare函數(shù)有p的可能比較錯。排序完取Top m個元素,本來就在Top m并被正確分在Top m的元素個數(shù)是x。問x的數(shù)學期望。

- 如何預測雙十一支付寶的負載峰值。

個人發(fā)展受限(瞎扯唄,就說自己剛畢業(yè)認知有限,好奇心比較重,年少輕狂),想從事新的行業(yè),別說老東家壞話,傳播正能量

2輪內(nèi)容都是項目相關,以及相關引申點,你面臨到了啥問題,怎么改善的之類的。

可能自己回答上面不夠自信 + 回答的點不夠全面吧emmm。

0. 項目介紹。

1. wide&deep等相關介紹。

2. 面臨的困難/注意做了啥部分。

3. 怎么改善呢?現(xiàn)在讓你重新思考這個ctr預估場景上線后的場景如何提高?

下周一再不變,基本上就可以等簡歷釋放其它bg撈了。

簡單總結(jié):

0. 講話要自信,不要遲疑,唯唯諾諾;

1. 項目要講清楚,所有點盡可能保證深度/廣度到位,突出自己的貢獻;

2. 回答問題的時候,做好條理清晰點,不要想到啥說啥,會顯得很沒邏輯,面試官聽著也很難受。

很常規(guī)的問題,做的項目是什么方向?怎么分工協(xié)作的?你做了哪些,怎么做的,中間克服了什么困難?為什么選擇騰訊?

詳細介紹了LSTM對RNN改進的地方
問了問我SVM的原理和優(yōu)點
最后做了一道算法題:是lc的原題(找出一個字符串中所有的回文串)

1.自我介紹。

2.講項目,三個項目都講了一遍。

3.問了對推薦方面的了解。 答:沒做過相關項目,但是有一些簡單的了解,比如,LR, FM, DeepFM, 協(xié)同過濾,矩陣分解。

4.問RNN有什么問題。 答:扯了長期依賴問題,attention的解決也不夠理想。目前基本朝著CNN+attention、transformer這個方向前進。

5.追問那為什么transformer這種更好。 答:因為并行,可以更好的attention。

6.RNN為什么梯度消失。 答:tanh激活函數(shù) 以及序列過長會導致梯度消失。

然后面試官和我解釋了一下其實還有個原因是因為RNN是每一步都共享權(quán)重的。(確實忘了)

7.算法題接雨水。 說了下思路,寫完之后面試官覺得有問題,現(xiàn)場跑了幾組樣例。都過了。

8.你有什么問題+部門介紹。

2、第一個項目為什么做了一年?這點東西居然需要一年?(這個人應該是個leader,第一個東西是一篇SCI一區(qū)論文)然后揪著這個項目問了十幾分鐘,所以一定要對自己項目非常了解。

3、最近看了什么論文?將一篇論文講清楚。

4、怎么調(diào)參的?怎么解決效果不好的情況?

2、介紹一下你論文中的注意力機制,為什么這樣設計?有什么優(yōu)點?

3、講講transformer 在那些地方做了改進?

4、講CycleGAN的結(jié)果,怎么處理字符漂移問題?

5、深度學習調(diào)參經(jīng)驗?

6、怎么處理大批量數(shù)據(jù)的讀入?(基于pytorch或tensorflow回答)

7、有什么問題想問的?

5、為什么loss會出現(xiàn)nan ?

然后問了LR和DecisionTree的區(qū)別

問了Stacking的原理(因為項目里有用到)

還問了Bagging和Boosting的區(qū)別

最后是業(yè)務場景題,問電商推薦可以用的主要特征有哪些

開門見山,自己講自己的論文,首先講自己的論文是做了一個啥東西,什么領域的 ==> 再講自己論文的動機是什么 ==> 然后再講自己論文中是怎么做的,為什么這么做,有什么直觀上的解釋 ==> 最后再提一下論文中的其他部分

  • 如果有n種類別(比如新聞類,體育類等)的網(wǎng)站,目前收集到一些網(wǎng)站,及其網(wǎng)站中不良信息的位置,那么新來一個網(wǎng)站,如何判斷該網(wǎng)站中是否含有不良信息,若含有,不良信息在哪個位置?

    • 這時我提問題,新來的這個網(wǎng)站的類別知道嗎?然后面試官說,知道和不知道,分別有什么處理方式?

      • 對于新來的網(wǎng)站知道類別的,我覺得既然要檢測不良信息在哪個位置,這種問題一般比較難,我說如果要考慮公司部署等問題的話,可以每種類別都有監(jiān)督的訓練一個模型,面試官聽了之后,具體細節(jié)面試官就沒問下去了。

      • 對于新來的網(wǎng)站不知道類別的,我說還是每種類別都有監(jiān)督的訓練一個模型,然后用判斷新來的網(wǎng)站跟哪個網(wǎng)站相似度更高,再用其訓練好的模型預測。

        • 這個問題是給自己挖了個坑,感覺答的很不好,新來的網(wǎng)站不知道類別的這種做法估計有挺大的問題。* 面試官聽完上述描述之后,也沒有做什么評價,然后他說,要不我們直接把問題簡單一點,如果收集到一些網(wǎng)站的語料,如何判斷這些網(wǎng)站中是否有不良信息。
    • 這個我就直接答了,我說這個直接跑一個BERT就可以了,先對網(wǎng)站預處理,如果過長就切成幾個para就好了,然后跑BERT做個分類即可;

      • PS:其實這里如果面試官問下細節(jié),怎么切?切的依據(jù)是什么?最后怎么綜合幾個para做分類的?我可能懵了,這塊細節(jié)沒去看。
    • 然后這時候面試官說,但是公司部署的話,一般不直接采用BERT,你有其他辦法嗎?我說那可以用tf-idf表示新聞語料,然后過一個LR就好了,用PCA降維之后,效果也還行,應該做的比較好有70%+的準確率。

      • 這時面試官就問了,那你說一下tf-idf的公式是怎么樣的?有什么缺陷?然后我有點懵逼,沒太答好

情景問題,他說如果有一些語料,然后還有一些關鍵詞,如何判斷這些語料中是否含有這些關鍵詞,然后我問,關鍵詞長度多少,是一個詞語還是一句話甚至更長,然后面試官說這個重要嗎?然后我就回答,如果只是判斷關鍵詞,那可以用原來的語料先分詞,然后再做一個vocabulary,再將vocabulary中的單詞做hash,這樣后續(xù)就能實現(xiàn)O(1)查找了。然后面試官問,那你這個建立vocabulary的過程的時間復雜度是多少?我說應該是O(n)吧,如果針對英文語料的話(畢竟直接空格隔開),然后他說如果是中文呢?時間復雜度是多少?我說中文還真沒了解過底層分詞的時間復雜度,然后他就問,那中文分詞有哪些處理方式,是怎么做的?我說CRF序列標注那一套?然后他讓我講一下CRF的原理以及分詞的過程,然后我說不會,面試官就沒有盤問下去了,便回到原來的問題,他說關鍵詞長度不限,有沒有什么好用的方法,然后我說那要不然kmp算法吧,然后他問我kmp算法的時間復雜度,我說O(m+n),然后我就讓我描述一下kmp算法的算法流程,orz,實在是想不起來了next數(shù)組的生成過程,就跟他說本科學過,也寫過代碼實現(xiàn),但是現(xiàn)在忘了。

介紹了一下簡歷上面的項目(問的不深)

準確率和召回率的概念

LR如何引入非線性

什么是卷積

什么是過擬合,如何改善

提取特征做過哪些預處理操作(我回答做過歸一化和圖片增強,問了一下歸一化具體如何做的)

邏輯題:0 1 2 3 4 5 6 7 8 9 下面寫一個數(shù),使得下面這個數(shù)剛好是這個數(shù)字在下面一行出現(xiàn)的次數(shù)

答案: 6 2 1 0 0 0 1 0 0 0

手寫快排

兩個字符串的最小距離(插入,刪除,改變一個字符)說一下思路和復雜度

4 場景題,給出用戶的數(shù)據(jù)和交易記錄,是否給他開通花唄

5 gbdt 和 xgb

6 做了個題目,https://zhuanlan.zhihu.com/p/112002408

7 什么情況下用動態(tài)規(guī)劃,如果換成遞歸會怎么樣

1.推薦系統(tǒng)有幾個步驟 為什么要召回?

2.你平時調(diào)參的時候,怎么設置神經(jīng)網(wǎng)絡的大小的?

3.深度學習用在推薦里的例子有哪些?能描述一下ncf的基本框架嗎?

4.python里的正則表達式

5.推薦系統(tǒng)里的排序算法有哪些

6.你處理數(shù)據(jù)集的時候,會遇到哪些關于數(shù)據(jù)的問題?你是如何處理的

  • 自我介紹。(這是你唯一能把握主動權(quán)的3分鐘?。。。?br> 上來先自我介紹,我主要從數(shù)學建模比賽(本科參加了很多次,崗位對這個比賽是nice to have)、項目、對強化學習的了解(這個部門主要是用強化學習)3個方面進行介紹,我并沒有按照簡歷照本宣科,而是分別拿出3個方面最值得介紹的經(jīng)歷,以講故事的方式來敘述,并且說完一個經(jīng)歷就會總結(jié)一句:我在這個經(jīng)歷中收獲最多的是xx(eg:快速學習能力、團隊合作意識等)。因為自我介紹是為了讓面試官了解你身上具備的優(yōu)點和潛質(zhì),至于你已有的能力,你的簡歷上已經(jīng)寫得清清楚楚,就不需要浪費這么寶貴的3分鐘。

    • 比賽、項目提問
      面試官會根據(jù)自我介紹的內(nèi)容進行提問,所以自我介紹顯得尤為重要,你可以引導面試官接下來會對你提問什么。我在自我介紹時說到比賽中快速自學了元胞自動機模型并得到了應用,兩面的面試官關于比賽的問題都問且只問了元胞自動機的相關知識,包括簡介、原理、應用場景、有沒有對其進行改進。
      至于項目,只要把涉及到的整體流程、每個算法的原理&使用的原因、難點搞清楚就差不多了,并沒有問到代碼具體實現(xiàn)。

    • 機器學習
      ①面試官:你參加那么多數(shù)學建模比賽,對機器學習方法應該挺了解,請你說下哪些模型可以用來做回歸?
      簡要:我把回歸分析里的方法都講了,并提到了支持向量回歸。

    ②面試官:請講下支持向量回歸原理。
    簡要:我說不會,但知道支持向量機

    ③面試官:支持向量機也差不多類似,那你說下吧
    簡要:我從SVM基本問題定義到對偶問題的推導過程,以及核函數(shù)、非線性問題、SMO、KKT條件都說了。

    • 深度學習
      ①面試官:講下BN。
      簡要:這個是??嫉?,一定要會。我從背景、原理、方法、訓練和測試的差異、意義,各方面都詳細說了。

    ②面試官:你剛說到BN要重構(gòu),請問為什么?
    簡要:我之前看過博客,說是如果不做的話會破壞淺層的特征,結(jié)果面試官說不重構(gòu)也可以學習到特征呀。然后又繼續(xù)反問我為什么要重構(gòu)。我想不出來。最后他告訴我是因為歸一化后會降低表征能力。

    ③面試官:你做過深度學習,那你說說卷積吧。
    簡要:我把卷積的整個過程詳細講了一遍。

    ④面試官:pooling有什么意義
    簡要:我從降維減少參數(shù)量和減少卷積后的冗余兩方面回答。結(jié)果面試官補充說pooling可以增大深層卷積的感受野。

    ⑤面試官:剛才說到感受野,那談談你對感受野的理解吧。
    簡要:這個我之前沒準備,就真的是憑自己的理解,結(jié)果也答的不好。面試官告訴我是一個卷積核可以映射原始輸入圖的區(qū)域大小。

    ⑥面試官:講下激活函數(shù)的意義
    簡要:講了常用的幾個的激活函數(shù)及意義

    ⑦面試官:為什么要用relu而不用sigmoid
    簡要:從飽和區(qū)間、敏感區(qū)間和梯度三個方面來回答。

    ⑧面試官:有了解過GAN嗎?
    簡要:沒有。。。

    • 強化學習
      ①面試官:講下q-learning。
      簡要:一步一步介紹了模型。

    ②面試官:有了解過DDPG嗎?講一下原理。
    簡要:我說是屬于Policy Gradient系列的,就從PG->Actor Critic->DDPG一路詳細地講了模型的流程和特點。

    • 語言
      ①面試官:講下python的staticmethod和staticclass
      簡要:沒聽過,但面試官談到了裝飾器,我就介紹了裝飾器相關的。

    ②面試官:講下python的匿名函數(shù)和意義
    簡要:講了lambda的形式和意義

    ③面試官:對淺拷貝和深拷貝有了解嗎,講一下。
    簡要:很清晰地介紹了它們的特點和區(qū)別。

    • 框架
      ①面試官:講下tensorflow搭建網(wǎng)絡和訓練的流程。
      簡要:從定義占位符開始一步一步說下來,可能說的很順暢,說到一半面試官就說不用了,下一個問題。

    ②面試官:有沒有學過pytorch
    簡要:我沒學過,但我說知道現(xiàn)在很流行,如果以后工作需要用這個框架,那我可以快速學習,因為框架之間應該都差不多,況且pytorch還更簡潔簡便。

    • 算法題
      面試官發(fā)了一個騰訊文檔,可以實時看到我敲的代碼。然后問我有沒有刷過算法題,我說這學期剛開始刷,刷了一些。他就說那我們先來一題簡單的。就現(xiàn)場從leetcode搜了一題easy的。然后給3分鐘思考,思考完跟他講思路,講完就讓我在文檔寫代碼,按leetcode的那種形式,給10分鐘??次液芸煜氤鰜聿⒑芸鞂懲?,他就說那再來一題。結(jié)果出了一題medium。恰好我做過原題,前兩天還復習了,所以秒解,用哈希集合+快慢指針,并且面試官問了我時間復雜度,因為快慢指針各遍歷一次,所以是O(n)。以下是題目:
      ①原地刪除排序后的數(shù)組中重復的數(shù)字。(要求空間復雜度為O(1))
      ②給定一個字符串,請你找出其中不含有重復字符的最長子串的長度。

    • 開放性問題(都跟他們的溫室挑戰(zhàn)賽有關)
      開放性問題是本來已經(jīng)結(jié)束了,都已經(jīng)在提問反轉(zhuǎn)環(huán)節(jié)了,說到一半他突然說問我一個開放性問題。
      ①面試官:如何設計一個算法來實現(xiàn)自動控制溫室種植,假設數(shù)據(jù)都已經(jīng)收集好。
      簡要:我說了用強化學習,并給了幾種現(xiàn)有算法。

    ②面試官:那如果不用強化學習,你覺得可以用什么方法做。
    簡要:想了半天想不出。。

    • 其他
      ①面試官:有沒有學過搜索算法?
      簡要:這學期剛好學了相關課程,就都說了。然后實現(xiàn)過一些,比如啟發(fā)式搜索算法:GA、SA等,都自己用代碼寫過,也在數(shù)學建模比賽中用過。

    • 提問反轉(zhuǎn)環(huán)節(jié)
      ①我問在騰訊我要怎么能得到系統(tǒng)性的成長。
      ②我問在騰訊的工作強度是怎么樣的。

  • 自我介紹:
    和一面一樣,不過面試官遇到感興趣的內(nèi)容會直接打斷來問你。

    • 比賽、項目提問
      這次項目問了很多算法實現(xiàn)的步驟,以及項目中遇到的難點,但都能回答的很順暢。

    • 機器學習
      ①面試官:為什么會發(fā)生過擬合?
      簡要:我講了先前總結(jié)過的幾種情況。

    ②面試官:那如何降低過擬合?
    簡要:講了幾種降低過擬合的方法,這個面試官一直問:還有嗎?強行憋出了6個。(降低模型復雜度、增大數(shù)據(jù)集、dropout、正則化、集成模型、BN)

    ③面試官:講下正則化
    簡要:講了L0\L1\L2,L1和L2的具體形式和反向傳播的時梯度的推導公式、以及它們?nèi)绾谓档瓦^擬合都詳細說了。

    ④面試官:泛化誤差如何產(chǎn)生,有哪些方法可以減小?
    簡要:講了泛化誤差的展開式,分別說了從bias、var和噪聲三個方面減小,并說了相關的方式,以及如何平衡bias和var。

    ⑤面試官:講下dropout原理。
    簡要:從背景、原理、實現(xiàn)詳細介紹。

    ⑥面試官:dropout訓練和測試有什么區(qū)別嗎?
    簡要:從期望的角度,說明了訓練時要除以概率p,或者測試時乘概率p。

    • 強化學習
      ①面試官:on-policy 和off-polic的區(qū)別
      簡要:先從蒙特卡洛強化學習的同策略和異策略模型來說明;再根據(jù)q-learning和sarsa的區(qū)別來說明。

    ②面試官:貪心策略和確定性策略區(qū)別

    簡要:從選擇action的概率的角度,介紹了區(qū)別,并介紹了兩種貪心策略:epsilon和softmax

    ③面試官:有一些真實例子,還有一個模擬器,如何訓練一個強化學習模型?(這個就是他們目前面臨的問題)

    簡要:講了可以先用直接模仿學習和逆強化學習,然后再用一個強化學習的模型。

    ④面試官:直接模仿學習和逆強化學習具體說下
    簡要:就按《機器學習》(西瓜書)中學到的詳細說了。但逆強化學習沒說太清楚。

    ④面試官:強化學習的baseline
    簡要:我懵了,因為我項目是用深度學習做多目標跟蹤的,對于強化學習只學了一些基本框架和基本的理論知識,但是還沒時間去看過強化學習的論文,所以不懂啊。然后面試官最后告訴我說就是采用一個隨機選擇action的策略。。。

    • 算法題
      ①求二維矩陣的人臉個數(shù)
      簡要:和leetcode的求島嶼數(shù)量那題非常像,算是medium的,剛好復習過,就秒解了,大概40行左右的代碼,很順地解下來。面試官看完說沒問題。

    • 開放性問題
      ①面試官:如何對一段python代碼做加速,可以自己假設代碼的應用場景
      簡要:這個問題又榨干我了,我一開始說了5種方式(優(yōu)化算法從而減少循環(huán)次數(shù)、調(diào)整if elif語句的順序、核心模塊用cython、多線程多進程、生成器減少內(nèi)存占用量)

    ②面試官:追問了多線程和多進程是什么?
    簡要:詳細說了區(qū)別,以及python中的實現(xiàn),并說python沒辦法利用多線程,因為有GIL,面試官說他沒聽過,問我是不是真的,然后讓我講一下GIL,我也詳細講了GIL的流程。

    ③面試官:還有什么辦法可以加速python代碼嗎?提示說可以假設是一個訓練神經(jīng)網(wǎng)絡的場景。
    簡要:我補充說可以用GPU、batchsize。然后面試官繼續(xù)追問還有沒有,最后他說了cpu加載數(shù)據(jù)和gpu訓練數(shù)據(jù)的差異,如果只用cpu加載,那發(fā)揮不出gpu的優(yōu)勢,可以用異步來加速,即先加載一部分數(shù)據(jù)到緩存。【我有一種醍醐灌頂?shù)母杏X】

    ④面試官:GPU如何加速?
    簡要:不懂。。

    • 提問反轉(zhuǎn)環(huán)節(jié)
      ①我問他們部門的工作機制是怎么樣的

    ②我問通過今天的面試,覺得我哪些方面需要加強
    面試官說覺得我基礎挺不錯的,但是缺乏經(jīng)驗,如果過去實習的話,需要適應一段時間他們的節(jié)奏。(當時我感覺涼了,沒想到過了兩天給我發(fā)了offer)

  • 比賽&項目:對用到的模型的原理都要能清晰地說出來,以及難點、創(chuàng)新點,都要明確。* 機器學習(傳統(tǒng)\深度學習\強化學習):大廠考察的基本都是底層的原理,要了解每個知識點的原理,最好是能用代碼自己實現(xiàn)過,這樣理解得更深。并且在準備的時候需要以點帶面,在一個知識點涉及到的內(nèi)容都要去掌握,因為面試官是串聯(lián)式地提問的,也就是對你之前回答的內(nèi)容中再提取新問題,如果你不懂,那就是相當于是給自己挖坑。對主流的框架要掌握,尤其是崗位對口的那個方向的相關方法,至少了解原理和步驟以及創(chuàng)新點,最好是用代碼實現(xiàn)過,并且有自己的一兩點想法。* 語言:AI相關崗位的話基本是用python,要對python的語言特性有全面的了解,還需要知道它們的應用場景。* 數(shù)據(jù)結(jié)構(gòu)與算法:按分類來刷leetcode的題,一開始刷的時候先找經(jīng)典的題,然后一題多練,經(jīng)典的題至少做3遍,有利于記下每類的模板。題目不貪多,要精刷,即做完一題一定要去看題解,一題盡量掌握3種解法,并且都要會討論時間、空間復雜度。做題要限制時間,因為面試的時候,3分鐘給你思考,然后你就得跟面試官講思路了,然后再給10分鐘寫代碼,唯手熟尓。此后我自己會每天保持刷題,這可是進入大廠的門檻啊,我覺得這次能夠順利通過,也主要得益于3道算法題我都在指定時間內(nèi)bug-free并給出最優(yōu)解法了。* 開放性問題:在面試前,最好去了解下這個部門主要是做什么的,有哪些成果,很可能他們會把他們遇到的問題來問你,這樣你可以有針對性地準備。因為我發(fā)現(xiàn),在面試的時候是很難臨時想出什么方法的。* 面試官:
    ①一面的面試官問的問題很廣泛,基本各個方面都問到了,加上項目和比賽的話應該有30個問題左右,但是問的方式很簡單,基本上就是:說下xx方法。那么你就可以根據(jù)你準備到的來回答,并且是串聯(lián)式的提問,即根據(jù)你對上一個問題的回答中提取內(nèi)容來提問,所以你要對自己說的話負責,哈哈,說到的東西就一定要懂,至少能說出原理,否則就干脆不要說,不然被問倒了就是坑自己。
    ②二面的面試官,差不多20個問題左右,但會更深入,并且提問的方式更難,主要提問方式是:說下有哪些方法可以解決xx問題?這比一面的那種提問方式難多了,因為需要你對這些方法有一個整體的認識,你的腦子里要有一個思維導圖,或者說一個知識體系,這樣的問法本身就更深入。所以腭面的體驗更差,就是感覺被面試官榨干了,我說了所有自己所知道的方法,面試官還一直說:還有嗎?還有嗎?這樣面試完就沒有一面時的那種舒暢,因為總感覺自己掌握的不全面,很有可能涼。但其實大部分都是可以準備到的,有一兩個點是需要大量的經(jīng)驗累積才會知道,所以這也不會有太大影響。

  • 神經(jīng)網(wǎng)絡解決梯度爆炸的方。

  • follow-up: dropout的tf實現(xiàn),

  • BN, dropout FC 連接的順序? BN和dropout連在一起會有什么問題

  • CRF理解、作用

  • coding: 最大連續(xù)子數(shù)組

  • 場景題: IR-QA實現(xiàn)方式

  • 語義匹配模型,(represent-based and interaction-based)

  • 場景題。問了很多KBQA IRQA實現(xiàn)設計細節(jié)

  • 什么時候會導致梯度不可導

  • DL中的廣播機制

  • BERT原理和應用。GPT BERT區(qū)別。預訓練模型演進。

  • HR面常見的問題,工作性格期望薪資等

  • 總體體驗還不錯

  • Offer

小紅書

  • coding: 也是分詞問題。輸入詞典和query,輸出分詞結(jié)果
  • ML基礎問題很少。GBDT/XGboost/lightGBM
  • 場景題很多。lexicon怎么收集 擴展,訓練數(shù)據(jù)怎么收集。
  • 面經(jīng)這么少是因為我真的記不清問了哪些技術相關的問題……小紅書的面試體驗就比較差了,流程(每面之間等待的時間比較長)、態(tài)度……、技術體驗都相對比較差,我一度覺得面試官對技術不太了解,或者說已經(jīng)不在一線技術了。
  • 因為簡歷上寫了了解hadoop、spark之類的,問我是看過還是做過項目,回答自己在學,搭建了虛擬集群,然后被問了pyspark中的dataframe和什么中(沒聽清)的dataframe有什么區(qū)別
    估計是聽我已經(jīng)搭建了虛擬集群,就認為比較熟悉了?但是我還沒有怎么用起來過
    本來就有點緊張,這個問題直接懵逼了,然后就跳過下一個了

    • 繼續(xù)追問項目(深度學習項目)中的細節(jié),項目中用了聚類和循環(huán)神經(jīng)網(wǎng)絡,就問循環(huán)神經(jīng)網(wǎng)絡是怎么搭建的、怎么調(diào)整設置超參的、訓練用了多久之類的,lstm為什么比rnn的效果好

    • 除過tensorflow還知道其他深度學習框架嗎

    • 還知道其他聚類算法嗎

    • 情境分析?假設某一產(chǎn)品銷售量突然下降,你該如何分析它?

    • 了解一般的機器學習嗎,隨機森林、xgboost、gbdt之間有什么區(qū)別和聯(lián)系

    • 介紹one-hot,為什么采用one-hot

    • 了解分類模型嗎,怎么處理數(shù)據(jù)不平衡

    • 過擬合原因及處理方法

3.DL基礎(正則化,數(shù)據(jù)不平衡,negative sampling)

4.coding(找到小于N的素數(shù)個數(shù),一開始給了naive的遍歷,后來想到了篩法)

二面:

被虐暴的一面。。

1.介紹公司做的項目

2.ML基礎(手推LR,stacking/boosting/bagging的區(qū)別,如何理解L1/L2正則化)

3.Coding(手擼heapsort。??蓱z我之前最多是用一用python的heapq包啊啊啊啊。。。)

鏈表,隊

判斷兩個鏈表相交

不用+-*/,讓一個數(shù)擴大7倍

測試開發(fā)要做些什么

邏輯地址和物理地址

3.6(視頻面試)

自我介紹

介紹一個項目

線程和進程的區(qū)別,優(yōu)缺點

編程(輸入數(shù)組b, 把b1*b2+1,放回b1,b2;問最后數(shù)組最大值最小值)

騰訊:(騰訊科技 北京 運營開發(fā))

3.11(電話面試)

自我介紹

項目中遇到的問題,是怎么解決的

StringBuilder和StringBuffer的區(qū)別

數(shù)據(jù)庫中,左刪右刪和***的區(qū)別

Equals和==的區(qū)別

字節(jié)跳動(測試)

3.17

自我介紹

實習時測試的情況

數(shù)據(jù)庫索引(B+樹)

TCP三次握手

TCP為什么是安全的

TCP四次揮手

HTTPS三次(?)(握手還是協(xié)議來著)(?)

Linux查詢語句

單鏈表找環(huán)算法(口述)

返回單鏈表倒數(shù)第k個數(shù)據(jù)(口述)

測試一個大樓里新裝的電梯

測試支付寶綁定信用卡功能,客戶端,服務器端

0概率p,1概率1-p,構(gòu)造一個方法使得兩個都是1/2(口述)

編程:輸入鏈表排序

3.22 滴滴出行(測試 電話面試)

項目是什么,重難點

Spring框架了解多少

本地上傳視頻至服務器,測試

上傳不成功,怎么debug,怎么找是前端還是后臺的問題

如何實現(xiàn)多線程

3.30 騰訊 (后臺開發(fā) 電話面試)

Linux指令

Java基本數(shù)據(jù)類型有哪些

==和equals()什么區(qū)別:

TCP和UDP什么區(qū)別:

Time_wait出現(xiàn)在什么位置:

數(shù)據(jù)庫索引的優(yōu)缺點:

數(shù)據(jù)庫的鎖:

抓包:

項目難點:怎么判斷勝利和失敗

排序算法有哪些,歸并排序的偽算法是什么

數(shù)組和鏈表區(qū)別

面試一共兩輪,第一輪技術面試,第二輪是主管+hr(可能會問項目,技術涉及不多)

1. arraylist初始大小為5,添加15個元素,會報錯嗎?

2. 有沒有遇到過數(shù)據(jù)庫死鎖?講講x鎖和s鎖的區(qū)別。死鎖和數(shù)據(jù)庫索引有關嗎

3. 推薦使用mysql存儲過程嗎?

4. 線程池用什么類?get是干什么的?(submit future中的get)

5. 重復元素怎么快速去重,如果要保持有序呢?(考察數(shù)據(jù)結(jié)構(gòu))

6. 策略模式知道嗎?單例模式

7. 用過mybatis嗎?原理?

8. 兩個包下有同樣的類名,Spring允許用依賴注入加載嗎?

9. ==和equals區(qū)別

10. 如果某個字段是非必填的,在設計該字段相關的方法時參數(shù)設計為int還是Integer?(考察int和Integer區(qū)別)

11. Inner join和left join的區(qū)別

12. static靜態(tài)變量,用在什么地方,修飾變量和方法的作用

13. Java和其他語言的區(qū)別以及繼承、封裝、多態(tài)。

14.快排

15.平衡二叉樹和為什么要有平衡二叉樹(二叉搜索樹的性能退化),以及了解紅黑樹嗎

記得也有問jvm相關的問題,具體什么記不清楚了

全程結(jié)合我的論文在問,我是做推薦系統(tǒng)的:

1. 解釋你的論文該如何應用到真實場景中去

2. 介紹你的數(shù)據(jù)集

3. 怎么求的地理區(qū)域的用戶偏好(我是做興趣點推薦的)

4. 用戶歷史記錄特別稀疏的時候怎么辦

5. 如何進行TOP-K的推薦

6. LR的優(yōu)缺點

7. 手推LR損失函數(shù)(口頭推導的)

8. L1與L2的區(qū)別聯(lián)系

9. AUC的實現(xiàn)方式

10. 協(xié)同過濾中UserBased和ItemBased的區(qū)別和應用場景

11. GBDT介紹一下

12. 協(xié)同過濾中的一個較深的知識點,忘記了,反正我沒會回答上

13. 算法題:求n個篩子和為s的概率,leetcode原題,媽蛋,我寫出來了的,但是有一個判斷條件寫錯了,結(jié)果出錯,然后算法題就10分鐘,面試官說8點要去面下一個,指出了我的錯誤就說ok了

經(jīng)驗:

1. 為了表示我的謙虛,在詢問某一個知識點的時候,我用的措辭有“我記得是,我印象是.....”,然后面試官說,面試的時候不要說這次詞匯,一定要表示自己掌握了的

2. 可以刷一些項目(諸如競賽啥的),面試官知道我是學術型碩士,理解我沒有參與過工程項目

3. 面試官人很好。我感覺可能撈我的這個團隊真的是做推薦的(廣告?視頻?),可惜我沒把握住。

內(nèi)容生態(tài)產(chǎn)品崗,問題記不太清了,大概如下:
1.我現(xiàn)在實習負責的短視頻的內(nèi)容生態(tài),然后針對于這個內(nèi)容生態(tài)細挖,例如:生態(tài)存在什么問題,怎么解決的
2.原創(chuàng)和搬運:怎么定義視頻/圖文是原創(chuàng)的,如果兩個視頻非常相似,先發(fā)的就是原創(chuàng)嗎
垂直搬運需不需要打壓,怎么打壓,原創(chuàng)怎么保護
3.生產(chǎn)者激勵:怎么給生產(chǎn)者劃分等級,對于每一級生產(chǎn)者評估的緯度是什么,激勵的措施是什么,希望不同身份/等級的生產(chǎn)者的占比達到多少
4.B站的內(nèi)容生態(tài)有什么問題,B站如果想主打別的品類,B站還可以在哪些品類找突破點,怎么找到這些品類找到自己的用戶,怎么做用戶泛化
5.平時使用微博主要是干什么,能滿足你什么需求,頭條和微博的區(qū)別在哪
6.頭條有關的一些策略,比如如果要打壓新聞品類,怎么控制內(nèi)容品類的流量閥
7.信息傳播類app例如抖音、小紅書、頭條、微博等等,他們的天花板用戶量級是多少(具體的數(shù)字),你怎么分析的,怎么驗證你說的是對的(這個題差點逼死我,答的一塌糊涂)
每一條進行了細挖,但是面試官態(tài)度非常好,我中間掉線了兩次,面試官都沒有不耐煩,是我答得太菜了?。。?br> 頭條的面試官用實力告訴我,我不應該拒西瓜的offer,謝頭條爸爸教我做人

主要問了人工特征工程和lighgbm模型特征處理,有啥不一樣的,你為啥要構(gòu)造這特征。

然后就是一些樣本不平衡處理(重點聊了小樣本只有一個的時候),

神經(jīng)網(wǎng)絡利用dropout和多項式回歸利用正則項減輕過擬合的本質(zhì)是什么(為什么就能減輕過擬合了),

我項目有用到lightgbm和xgboost模型融合,就問了為啥要這兩個模型融合,lightgbm是xgboost的改進,那你為什么還要融合呢,懵了...

項目的主要問題還是特征構(gòu)建,會問你為什么要這樣構(gòu)造特征。

1. wide&deep等相關介紹。

2. 面臨的困難/注意做了啥部分。

3. 怎么改善呢?現(xiàn)在讓你重新思考這個ctr預估場景上線后的場景如何提高?

下周一再不變,基本上就可以等簡歷釋放其它bg撈了。

簡單總結(jié):

0. 講話要自信,不要遲疑,唯唯諾諾;

1. 項目要講清楚,所有點盡可能保證深度/廣度到位,突出自己的貢獻;

2. 回答問題的時候,做好條理清晰點,不要想到啥說啥,會顯得很沒邏輯,面試官聽著也很難受。

一二面:

1. 算法題:無序數(shù)組找前k大的數(shù),描述思路+復雜度分析

2. Python:callable,垃圾回收

3. 機器學習分類指標有哪些?AUC如何計算?

4. SVM和GBDT的比較?

5. attention說一下?

6. xgboost?lightGBM說一下改進點?

7. 隨機森林描述一下?

8. 深度學習模型壓縮有哪些方法介紹一下?

9. 關于項目的討論:關鍵工作?負責角色?難點及解決方案?是否有落地應用?

10. 連續(xù)值數(shù)據(jù)特征離散化的好處?原因?

11. 正則化的方法?作用?原理?

12. 常見Loss?物理意義?

13. 工程相關:項目中學到的東西舉例?如何解決bug?代碼優(yōu)化?量化代碼效率?緩存機制?

14. 操作系統(tǒng)是如何執(zhí)行C++代碼的?C++智能指針介紹一下?

15. 統(tǒng)計學習算法舉幾個例子來?能夠如何分類?分類的標準如何定義?

1.lr公式推導
2.算法題,求a^n
3.DNN反向傳播公式推導
4.CNN反向傳播公式推導

一面問了我實習的項目,考了道算法題:長度為n的數(shù)組里放了n+1個大小在[1,n]的數(shù),必然至少有一個重復的數(shù),找出來。

二面面試官對我不敢興趣,全程不咋說話,讓我講了一下自己對NLP的理解,講了一下文本分類的發(fā)展史,主流分類方法的發(fā)展,然后考了一道概率題:求一根繩子被切兩刀能組成一個三角形的概率。

三面主管面:FM推導,deepfm原理,graph embedding,問了之前的一些項目。

四面交叉面:模型上線時應該注意的事,如果請求過高模型服務掛了怎么辦,tensorflow和torch的區(qū)別,如何降低模型復雜度。

一面,算法題:快排非遞歸,旋轉(zhuǎn)有序數(shù)組找某個值

二面,算法題:一個二維數(shù)組,上有0和1,把所有相鄰的1給連起來,求最終有幾塊連起來的1。 L1和L2正則區(qū)別,softmax損失函數(shù)。

三面,MapReduce原理,聊人生理想。

一面,算法題:bitmap
二面,算法題:鏈表去重,擴展:刪除鏈表中的所有重復值
三面,聊人生聊理想

一面問了實習項目,算法題:旋轉(zhuǎn)有序數(shù)組找某個值
二面也偏重項目,算法題:使用O(N)復雜度完成GBDT分裂
三面還是項目,算法題:找出無序數(shù)組中相隔距離最長的逆序?qū)?br> 四面只問了項目

一面問了項目,算法題:一個數(shù)組里只有0和1,把0換到1前面,不能使用統(tǒng)計次數(shù)的方法。擴展:如果有0,1,2三個數(shù)咋辦?
二面項目,算法題:無向圖的迪杰斯特拉算法實現(xiàn)。

一面,算法題:在大量文本中匹配詞表

二面,算法題:字符串編輯距離,求第n個丑數(shù),最長公共子串

三面,算法題:設計一個hashmap

算法精英加面一面:算法題:長度為n的數(shù)組里放了n+1個大小在[1,n]的數(shù),必然至少有一個重復的數(shù),找出來。

算法精英加面二面:純項目,聊人生理想。

一面,算法題:鏈表快排
二面,智力題:100個球,甲乙兩個人依次拿球,每次只能拿1-5個,甲先拿,求甲必勝的方案。

一面:聊項目,XGB與LGB區(qū)別,Bagging和boostting區(qū)別,概率題:一個袋里有很多紅球和白球,隨機拿出10個球,其中7個紅球3個白球,求取出一個球為紅球的概率最大是? 這個概率題求大佬解,不會

二面:聊人生理想

三面:聊人生理想,10萬個手機號排序。

一面:聊項目,然后面的組是做倉儲物流算法的,考了一個場景題,一個訂單調(diào)度系統(tǒng),每個訂單可以有多個商品,每類商品對應一個貨架,倉庫里有10臺運輸車,每臺運輸車每次可以拿10個訂單,設計算法求如何安排訂單才能使運輸成本最低。

二面:聊人生,項目,然后考了道英文題,用英文介紹自己最喜歡的科目。

筆試:前兩道很容易,第三道是一個線段樹的應用
一面:聊項目,手寫代碼,最長遞增子串。
二面:聊項目,手寫代碼,大量數(shù)據(jù)中找中位數(shù)。

熟悉C++/java編程語言,主要研究方向是深度學習、NLP方向,一直有l(wèi)etcode刷題的習慣,有過阿里天池的比賽經(jīng)歷(大概是top15)和實驗室的項目經(jīng)歷。最后是在去年4月份的時候拿到了騰訊應用研究崗校招提前批的Offer。

一輪面試

往年騰訊算法崗的一面是在3月中旬左右,一般都是一些基礎的技術問題,考察你對常見機器學習算法的了解,建議去Letcode、牛客網(wǎng)、七月在線等平臺多刷一些算法題,以及多看《劍指offer》這類面試必備的書籍。
(1)LR、XGB、隨機森林的原理、優(yōu)缺點以及應用場景。這類問題幾乎逢面必問,不光是騰訊,美團、頭條等其它公司也是經(jīng)常會問,建議大家好好準備一下這類問題;
(2)LR和XGB算法做特征處理有什么區(qū)別?隨機森林怎么進行特征選擇?等特征處理方面相關的問題;
(3)如何判斷一個單鏈表是否有環(huán)?以及環(huán)的入口?二叉樹的求解等一些常規(guī)算法題;(鏈表和樹這類問題會常被問到)
(4)最后也會問一些簡歷相關的問題,比如:你簡歷中的項目、比賽等,而且會問的比較細。(比如:我當時和師兄一起做了一個天池工業(yè)大數(shù)據(jù)應用的項目,被一直追著問......)

二輪面試

二面也是在3月中旬,一般是和一面隔2-4個工作日左右,我當時是一面結(jié)束后的3天收到了二面,整體感覺和一面問的內(nèi)容差不多,但除了常見的機器學習問題外,還會問一些算法上的優(yōu)化、論文相關的問題。
(1)常規(guī)的機器學習算法問題,比如:XGB和GDBT相比有什么優(yōu)勢?
(2)深度學習相關。問了RNN、Text-CNN等一些神經(jīng)網(wǎng)絡的原理和應用;
(3)簡歷相關。相較于一面,除了比賽和項目,還問了我論文的情況,感覺二面的面試官對論文比較感興趣。。。
(4)論文相關。大概給我講一下論文的核心思想,你的方法和別人的方法有什么不同?論文中的方法還有哪些可改進的地方等;
(5)可能當天面試的時間沒有那么趕,面試官還問了我有什么問題想要問他?通常遇到這類問題,我的一般做法是詢問面試官針對上面某個問題的答案,或者是針對自己簡歷中的某個比較熟悉的項目往深了探討一下。(個人的一點經(jīng)驗,僅供大家參考。)

三輪面試

二面后其實還是有點忐忑的,感覺自己有幾個問題沒答好,感覺自己可能會跪~~~。不過大概是兩天后還是收到了三面的邀請,感謝面試官的不殺之恩。。。
(1)項目相關,講講你天池工業(yè)大數(shù)據(jù)的這個項目,遇到了些什么問題,如何調(diào)優(yōu),你覺得還有哪些不足等等;
(2)常規(guī)算法題,鏈表、topk的解法等。因為從本科就一直有在Letcode刷題的習慣,所以最不擔心的就是這類問題,哈哈;
(3)對深度學習了解的多嗎?Bert有用過嗎?講講Attention,講講深度學習不平衡分類算法;
(4)最后就是一些討論,有問過我如何去落地一個機器學習項目,并且面試官給了他的看法。感覺騰訊的面試官,人都非常nice,沒有想象中的那么嚴。

四輪面試

三面過后等了大概一周左右,迎來了四面。騰訊技術崗的四面才是總監(jiān)面,后來才知道我四面的面試官是隔壁中心的一個總監(jiān),據(jù)說都快要上GM了??偙O(jiān)面相較于前面的三輪面試,最大的感受是他會問針對某個問題或是項目的解決思路,不會針對某個算法扣的太細。
(1)針對高維數(shù)據(jù),如何做特征選擇的?
(2)問了幾種評價指標,以及在項目實際上線時候關注的指標;
(3)ID3、C4.5、CART樹是什么?分別說下它們的優(yōu)勢?
(4)問了一下簡歷中項目是怎么完成,怎么落地的,自己在團隊中扮演什么角***r /> (5)聊了一下論文和學校的事;
(6)最后還讓我做了個簡單的自我評價,問了我有什么缺點,哈哈~

HR面試

通常,過了總監(jiān)面有80%以上的概率差不多可以上岸了,只要你在HR面中規(guī)中矩的答下來,盡量用肯定的語氣讓HR覺得你很想留下來,盡量多說,引導HR的思路,不要只說一句,也不要做杠精。。。
(1)談談你在校期間最難忘的經(jīng)歷;
(2)項目中遇到最大的困難是什么?如何解決的?
(3)怎么看待AI整個行業(yè)的發(fā)展?
(4)有女朋友嗎?讀書還是工作?(典型的查戶口啊......)
(5)除了騰訊,最想去的公司是哪?為什么?
(6)還有什么要問我的嗎?
......

最后,大概是將近一周多的時間拿到了Offer,后面就順利實習,感覺我們組的工作氛圍還是蠻不錯的。

【總結(jié)】

騰訊機器學習算法崗的面試算是非常正規(guī)的了,整套面試流程下來幾乎能把你幾年所學的東西都問到。所以,不要存在僥幸心理,踏踏實實的刷題,復習好常規(guī)機器學習算法,尤其是算法的原理和應用場景。

另外,項目和比賽經(jīng)歷非常的重要,往往面試官都是根據(jù)項目里用到的方法拓展提問,對項目的優(yōu)化和改進也問的比較多。還有就是能內(nèi)推的一定去找學長學姐或是其它資源去內(nèi)推

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容