AI面试锦囊|字节算法工程师(搜索广告方向)三面分享
?原創作者?| 三金
寫在前面
目前短視頻行業越來越火爆,推薦算法、廣告算法引擎已經成為了各個大廠的核心業務系統。在此背景下,字節跳動的搜索團隊就主要負責抖音、今日頭條、西瓜視頻等產品的搜索算法創新和架構研發工作。今天小編給大家介紹便是搜索團隊的算法工程師崗位。
01 崗位介紹
崗位名稱:
算法工程師(搜索廣告方向)
工資待遇:
35K-65K
崗位要求:
1)出色的發現、分析、建模、解決問題的能力;良好的團隊合作意識和溝通能力;關注用戶體驗;
2)扎實的代碼能力、數據結構和基礎算法功底,熟悉Linux開發環境,熟練使用C++和Python語言;
3)熟悉至少一種主流深度學習編程框架(TensorFlow/PyTorch/MXNet),熟悉常用的深度學習算法 ;
工作地點:
上海/北京
從上述崗位介紹可以發現,算法工程師(搜索廣告方向)薪酬較高,且可選工作地點為國內最發達的兩座城市。對于崗位要求而言,其要求較為模糊,例如要求“熟悉常用的深度學習算法”,而并沒有寫明要求熟悉與該崗位相關的推薦算法等。值得注意的是該崗位沒有學歷背景要求,意味著本科生也可以進行投遞。
02 面經干貨
面經來源:小紅書(ID:茶語西瓜客)
A、一面
1. 編程題:關于二分查找。
AI面試指南參考答案:
編程題建議著重刷Leetcode HOT 100題庫以及《劍指Offer》。
2. 編程題:完成一個函數,輸入A、 B兩個等長的0-1序列,返回max(j-i)使得sum(A[i:j]) == sum(B[i:j])
AI面試指南參考答案:
編程題建議著重刷Leetcode HOT 100題庫以及《劍指Offer》。
3. 講一講簡歷上的項目。
AI面試指南參考答案:
首先要一句話介紹背景,然后介紹項目是怎么做的,最后介紹效果如何。此外還注意項目的創新點、衡量指標、你的貢獻等。
4.如何判斷模型是否出現了過擬合,如何判斷線上效果不好是過擬合導致的還是數據分布不一致導致的。
AI面試指南參考答案:
1)過擬合即模型訓練和驗證數據集上都表現得很好,但是在測試數據集上卻表現得很差。
2)進行數據重采樣,例如上采樣,若效果仍不好,則說明是過擬合導致的,反之則是數據分布不一致。
5.如何抑制過擬合?
AI面試指南參考答案:
1)從數據入手進行數據增強,從而學習到更多的特征,減少噪聲的影響;
2)降低模型的復雜度,例如使用dropout、Eearly Stopping、剪枝等方法;
3)使用正則化方法,例如L1正則化、L2正則化;
4)使用集成方法,例如Bagging方法。
6.L1、L2哪一個使權重產生稀疏化?
AI面試指南參考答案:
L1使權重產生稀疏化。從導數角度來看,L1正則求導后,損失函數在0處是極小值,所以優化的時候會更容易得到權重等于0,而L2正則求導后,極小值不在0處。
B、二面
1. 編程題:不用二分、不用牛頓迭代,求解開根號問題?
AI面試指南參考答案:
使用梯度下降方法,其迭代公式如下所示,其中x為初始值,lr為學習率:
2.旋轉不降數組,找到第一個不大于target值的數字的下標。
AI面試指南參考答案:
思路:二分查找法
3.文本匹配如何改進效果,從哪里入手?
AI面試指南參考答案:
選擇合適的模型,例如BERT。利用BERT模型對文本進行向量化表示, 解決Word2Vec一詞多義的問題, 使用Transformer編碼器對文本進行特征提取, 獲取文本內部信息, 并考慮兩個文本之間的多層次交互信息, 最后由拼接向量推理計算出兩個文本之間的語義匹配度。
4.文本分類如何進一步改進模型?
AI面試指南參考答案:
不同的文本分類場景使用不同的模型,目前BERT是文本分類任務最常用的模型。對于BERT的改進可以從以下幾個方面進行:
1)從預訓練模型進行改進,即采用不同的預訓練模型,例如ALBERT、RoBERT等,一方面可以加快模型訓練速度,使其收斂更快,另一方面通常可以使模型達到更好的效果;
2)改進[Mask]策略,從而使結果更加精準。例如,原始的BERT使用的是subword維度,改進后的BERT WWM(Google)是按照whole word維度進行mask,能夠進一步學習詞之間的關系。
3)在保持BERT模型分類性能的同時,進行模型壓縮,從而減少推斷時間以及內存開銷。例如通過知識蒸餾的方法訓練小模型。
5. WGAN的推土機損失
AI面試指南參考答案:
WGAN使用的是推土機距離(wasserstein_loss),即目標值與預測值乘積的均值。
C、三面
1.項目介紹,有哪些難點,怎么解決的?
AI面試指南參考答案:
考察項目的熟悉度。
2.使用Int8量化時,如何防止數值溢出?
AI面試指南參考答案:
1)在計算卷積的時候,使用Int32作為中間值。因為Int8進行乘加操作后結果不會超出Int32范圍。
2)通過線性映射的方法,即在帶偏置的層中,先將Int8轉為Float32計算出結果,再轉為Int8。
3.ALBERT相對于BERT有哪些優點與改進。
AI面試指南參考答案:
ALBERT是輕量級BERT,ALBERT采用了一種因式分解的方法從而大幅度減少了BERT的模型參數,解決了參數過多超出內存導致無法將網絡加深、加寬的問題。
4.優化BERT本身結構進而實現加速的模型。
AI面試指南參考答案:
1)DistilBERT:在BERT的基礎上用知識蒸餾技術訓練出來的小型化BERT。
2)ALBERT :輕量級BERT,采用了一種因式分解的方法,從而大幅度減少了BERT的模型參數;
3)TINYBERT:在DistilBERT的基礎上做了改進——針對Transformer結構的知識蒸餾以及針對pre-training和fine-tuning兩階段的知識蒸餾。
5. BERT模型蒸餾是如何做的?
AI面試指南參考答案:
1)精調階段蒸餾。例如在Distilled BiLSTM中,教師模型采用精調過的BERT-large,學生模型采用BiLSTM+ReLU進行蒸餾,蒸餾的目標是hard labe的交叉熵和logits之間的MSE。
2)蒸餾隱層知識。例如BERT-PKD是從教師模型的中間層提取知識,從而避免了蒸餾最后一層導致過擬合的風險。
3)預訓練階段進行蒸餾。例如DistillBERT是在預訓練階段進行知識蒸餾,新增加了一個損失函數——cosine embedding loss。
4)蒸餾注意力矩陣。例如MiniLM只蒸餾最后一層,并且只蒸餾教師、學生兩個矩陣的KL散度。
6.判重項目,非Bert模型與Bert模型是如何結合的,bagging嗎?
AI面試指南參考答案:
兩種模型一般是如何結合的?
可以通過模型融合的方法,例如
1)簡單的加權融合;
2)通過集成學習的方法。
7.模型集成有哪些手段,各自的優缺點是什么,有哪些應用的場景。
AI面試指南參考答案:
1)Boosting方法:訓練基分類器使用串行的方式,即分而治之,大部分情況下,經過 boosting 得到的結果偏差(bias)更小,缺點是數據不平衡導致分類精度下降,訓練比較耗時。例如Adaboost 和 Gradient boosting。
2)Bagging方法:訓練基分類器使用并行的方式,即集體投票決策,大部分情況下,經過 bagging 得到的結果方差(variance)更小,缺點數據樣本量小的時候性能表現較差,而且有時未必能保證基分類器之間相對獨立,例如隨機森林。
8.時間序列模型有哪些?
AI面試指南參考答案:
1)使用RNN來做CTR預估的模型。其中RNN適用于有序列(時序)關系的數據,CTR預估重點用于學習組合特征。
2)DeepFM模型。該模型兼顧了低階和高階特征,可以處理搜索廣告中與時間序列相關的數據。
9.場景題:抖音場景下,措建一個搜索廣告系統,如何平衡一個廣告的商業價值和用戶體驗呢?
AI面試指南參考答案:
主要從兩個方面考慮:1、讓用戶不用思考;2)不能引發用戶的防備。
例如打開APP之前的廣告展示,時間不能太長,廣告內容可以與用戶經常搜索的內容相關。
10.如何優化廣告搜索場景中的“相關性”?
AI面試指南參考答案:
通過用戶行為、用戶信息、時空信息、用戶的輸入、視頻文字理解等海量特征來找出符合用戶需求的結果。
11.代碼題:正則表達式匹配
AI面試指南參考答案:
1)思路一:回溯法,搜索全部場景匹配。
2)思路二:動態規劃。
相似例題參考:https://blog.csdn.net/kayle1995/article/details/106487236
03 結語
看完上面的面經,你覺得難度系數幾顆星呢?小編提醒,在這份面經干貨中,三次面試都有問到編程題,由此可見刷題的重要性!建議大家著重刷Leetcode HOT 100題庫以及《劍指Offer》。
此外,大家對自己簡歷上的項目一定要十分熟悉,面試官可能會根據項目進行深入提問,特別是技術路線、衡量指標等細節。
最后,希望屏幕前的你能夠成功上岸!
私信我領取目標檢測與R-CNN/數據分析的應用/電商數據分析/數據分析在醫療領域的應用/NLP學員項目展示/中文NLP的介紹與實際應用/NLP系列直播課/NLP前沿模型訓練營等干貨學習資源。
總結
以上是生活随笔為你收集整理的AI面试锦囊|字节算法工程师(搜索广告方向)三面分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 安装 pcre
- 下一篇: 导盲机器人 英语作文_雷军这回OK了!小