天天看點

2023屆校招算法崗知識超全總結

又是一年「金三銀四」,在此為今年校招的同學準備了一份筆面試經驗大禮包。

去年我發過一篇 ​​論機械狗如何硬卷算法崗​​,主要是機械轉網際網路的經驗分享。

本文主要面向搜推廣nlp崗位的同學。

總體而言,個人認為算法崗要找的好,除了本身的長期積累沉澱的硬實力之外(Paper,比賽,實習,項目),主要考核的就是兩個方面的能力:基礎紮實程度和前沿知識廣度。

文章内容包括四個部分:基礎能力(基礎紮實程度)、搜推知識(前沿知識廣度)、nlp知識(前沿知識廣度)、總結。其中,基礎部分變化不大,前沿知識部分相較于我當年校招時變化較大,在此做了更新,希望能夠幫助到大家。

1. 基礎能力

1.1 Coding基礎

Leetcode刷200題+劍指offer(可在牛客網刷),尤其是連結清單、樹、動規。做資訊競賽的可忽略。這部分其實在筆試階段和一面階段都會涉及,是考核基礎能力的關鍵一環。尤其是一面的時候,如果沒有做出來代碼題,其實挺影響面試官給分的。題目難度視具體情況而變,大部分情況下"中等題"即可,當然實習和校招、不同公司都會有所差别。如果是博士,這個環節可能不會做硬性要求。

1.2 機器學習基礎

機器學習基礎變化不大。當年我主要看的李航老師的統計學習方法(LR,SVM,EM,最大熵,內建學習等)),值得反複看好幾遍,每一遍都會加深了解;尤其是學習理論:貝葉斯決策理論/假設空間概念/經驗風險, 結構風險/各類損失函數之間的差別與聯系/極大似然估計, 最大後驗估計, 貝葉斯估計的差別與聯系。此外,還涉及一些通用的基礎能力,例如:

  • 樹模型系列論文深入了解,gbdt,xgboost,lightgbm,catboost;
  • 深度學習基礎:過拟合問題、收斂性問題,dropout,bn,ln等;學習器,各種optimizer原理及對比;BP原理;各種激活函數等,最好用numpy手寫一遍MLP,包括train+infer。
  • 評估體系:Precision, RecallF1, AUC, ndcg,涉及如何選擇、名額的内涵、名額和樣本分布關系、離線驗證等。

這個部分重點關注原理+推導。

關于面試重點:

  • 樹模型知識:很愛問的知識。推薦wepon大神的總結:GBDT算法原理與系統設計簡介:http://wepon.me/files/gbdt.pdf,這份資料似乎連結打不開了。
  • 貝葉斯決策理論個人覺得非常重要,是機器學習/深度學習等各類學科的基礎。這裡頭最重要的MLE, MAP, 貝葉斯估計的差別與聯系,參考李文哲老師的總結:​​機器學習中的MLE、MAP、貝葉斯估計​​

1.3 數學基礎

數學題,比如貝葉斯公式算後驗機率(求機率),優惠券收集問題(求期望),蓄水池問題(采樣)等。還包括一些偏智力的題。這類問題主要難在了解題意,對數學中的機率/期望/微積分/極限等知識點會有些要求。之前看到的部分機率題總結,排版有點問題,湊合着看一些題型。有時間可以複習下概統、線代等課程,沒時間可以看看别人的總結,比如: 網際網路面試機率題總結

1.4 工程/大資料基礎

如大資料處理或分布式系統原理等。對于大資料題,如:海量資料求中位數等,主要涉及到哈希,堆,bit等資料結構,外加map-reduce程式設計範式的靈活應用。這類題型的總結百度一下非常多。

2. 搜推廣知識

找搜尋推薦廣告崗位的同學,這部分的學習要同時關注工業界和學術界,盡量從工業界的應用入手,來看看都用了哪些學術界的成果。這部分在面試過程也是必考核的點。

2.1 按照模型演進

  • 傳統的方法:LR+GBDT(facebook文章),FM,FFM,LambdaMART。
  • 深度學習的方法:Youtube DNN,Wide & Deep,DeepFM,DIN等。
  • 圖模型在推薦上的應用:GE、GNN。

可參考我的萬字推薦系統/排序學習和圖模型調研(推薦閱讀⭐)

  • 推薦系統調研:http://xtf615.com/2018/05/03/recommender-system-survey/
  • 排序學習調研:http://xtf615.com/2018/12/25/learning-to-rank/
  • ​​萬字長文 | 圖表示學習中的Encoder-Decoder架構​​

2.2 按照系統漏鬥

筆者近年來閱讀過的經典文章,值得讀一讀,對面試很有幫助。

查詢了解:搜尋上重要子產品

  • ​​業界盤點|Query了解在搜尋中的落地技巧​​
  • 全面了解搜尋query:https://zhuanlan.zhihu.com/p/112719984

召回:主要涉及向量化召回、樣本選取的藝術、雙塔模型、多興趣召回,還涉及模型索引聯合模組化等

  • 樣本構造:負樣本為王:​​評Facebook的向量化召回算法​​​,​​召回模型中的負樣本構造​​
  • 向量召回:​​KDD’21 | 揭秘Facebook更新版語義搜尋技術​​​,​​KDD’21 | 淘寶搜尋中語義向量檢索技術​​
  • 多興趣召回:​​推薦系統多興趣召回最新進展​​
  • 雙塔召回:​​雙塔召回模型的前世今生(上)​​​,​​雙塔召回模型的前世今生(下)​​
  • 模型索引聯合模組化:​​阿裡深度樹比對召回體系演進​​​,​​位元組跳動Deep Retrieval召回模型筆記​​​,​​TDM到二向箔:阿裡媽媽展示廣告Match底層技術架構演進​​

粗排:涉及全鍊路一緻性、雙塔粗排、對比學習、蒸餾等

  • ​​阿裡廣告技術新突破:面向最終目标的全鍊路一緻性模組化​​
  • ​​久别重逢話雙塔​​
  • ​​張俊林:從對比學習視角,重新審視推薦系統的召回粗排模型​​
  • ​​知識蒸餾在推薦系統中的應用​​

精排

  • ​​阿裡媽媽搜尋廣告預估模型2021思考與實踐​​
  • ​​萬字長文梳理CTR點選預估模型發展過程與關系圖譜​​
  • ​​你真的懂CTR模組化嗎?​​
  • ​​阿裡媽媽搜尋廣告瘦身之路?​​

重排

  • ​​重排序調研​​
  • ​​KDD’20 | Airbnb搜尋多樣化重排序​​

可以關注一些公衆号:推薦道、阿裡媽媽技術、美團技術團隊、RUC BOX、DataFunTalk、機器學習與推薦算法、圖與推薦等,了解業界最新動向。

2.3 按照技術方向

特征工程

  • ​​談推薦系統特征工程中的幾個進階技巧​​

特征互動

  • ​​一文梳理基于Graph的特征互動在CTR預估中的應用​​
  • ​​特征互動新路線|阿裡 Co-action Network論文解讀​​

多目标模組化:ESMM、MMoE、ESSM,PLE等。

  • 多目标學習在推薦系統的應用: https://zhuanlan.zhihu.com/p/291406172
  • ​​【推薦系統多任務學習MTL】ESMM 論文精讀筆記(含代碼實作)​​
  • ​​【推薦系統多任務學習MTL】MMoE論文精讀筆記(含代碼實作)​​

長短期序列模組化:DIN、DIEN、SIM、MIMN等。

  • ​​淺談行為序列模組化​​
  • ​​使用者行為序列模組化方法調研​​
  • ​​Recsys’21 | 基于Transformers的行為序列模組化​​

多興趣模組化:MIND、ComiRec等。

  • ​​推薦系統多興趣召回最新進展​​

圖模型

  • ​​2W字長文:漫談圖神經網絡推薦系統​​

對比學習

  • ​​談推薦場景下的對比學習​​
  • ​​張俊林:從對比學習視角,重新審視推薦系統的召回粗排模型​​

冷啟動

  • ​​新使用者冷啟推薦技巧總結​​
  • ​​冷啟動系統優化與内容潛力預估實踐​​

多模态

  • ​​十篇文章速覽多模态推薦系統的最新進展​​

因果推斷

  • ​​快手因果推斷與實驗設計​​
  • ​​清華崔鵬 | 因果推斷發展、思考和推薦系統應用​​

其它的方向:模型蒸餾,糾偏、跨域推薦、元學習、多模态等。

關于技術方向,推薦公衆号 ReadPapers。據我了解,能夠非常及時的推送最新的搜推廣新文,雖然隻是資訊的采集,沒有深入的解讀,但是對于想快速跟進前沿的同學來說很棒。

2.4 實戰

深度CTR模型開源項目:

  • DeepCTR: https://github.com/shenweichen/DeepCTR,可以深入了解各類state of the art的模型以及實作代碼細節。

圖模型開源項目:

  • DGL:Aws開源更新的更頻繁,支援多種深度學習架構,可能更值得關注;
  • PyG:斯坦福開源的pytorch的架構;
  • PGL:百度開源,PaddlePaddle寫的;
  • Euler:阿裡開源的,可以細緻觀看各類Encoder實作 (如ShallowEncoder, SageEncoder等);node2vec實作;底層C++圖引擎可以關注random walk和alias sampling的實作。僅作為學習。這個架構維護的不夠及時,靈活性以及分布式實作上仍然存在很多不足。

各大Top賽事開源方案:

  • ​​KDD 2020 Debias推薦賽題冠軍方案​​
  • KDD 2021 圖模型OGB-LSC開源方案:https://ogb.stanford.edu/kddcup2021/results/

可以關注一些競賽大佬的公衆号:比如”包包的算法筆記“、”kaggle競賽寶典“。

3. nlp知識

這部分新工作也是層出不窮,個人可能也沒有follow的很快,可能遺漏了一些,可以參考下。

  • nlp常見的概念:詞法、句法、語義等;困惑度等。
  • 了解重要的四大類nlp任務:分類任務、序列标注任務、句子關系判斷任務、生成式任務。
  • 傳統的模型:語言模型、HMM、CRF、LDA等;當年會問,現在可能不一定會問。
  • 深度學習模型:RNN, Seq2Seq,Transformer。
  • 預訓練模型,涉及傳統非上下文感覺的word2vec系列 (如Glove和PPMI等)、上下文感覺的BERT系列、Prompt Tuning、大模型、多模态等。
  • 邱錫鵬老師的survey:​​PTMs| 2020最新NLP預訓練模型綜述​​
  • 從Word Embedding到Bert模型—自然語言進行中的預訓練技術發展史: https://zhuanlan.zhihu.com/p/49271699
  • 放棄幻想,全面擁抱Transformer:自然語言處理三大特征抽取器比較: https://zhuanlan.zhihu.com/p/54743941
  • Prompt Tuning:劉知遠老師的分享,Model Knowledge Stimulation with Prompts for Pre-trained Language Models:http://114.215.64.60/~lzy/talks/2021_prompt_tuning_en.pdf
  • 大模型:​​清華劉知遠:大模型「十問」,尋找新範式下的研究方向​​
  • 多模态預訓練:​​從頂會論文看多模态預訓練研究進展​​
  • 預訓練在工業界的應用:相關性模型、互動式BERT/雙塔BERT、模型蒸餾、命名實體識别、查詢了解等。
  • 對比學習:​​丹琦女神新作:SimCSE​​
  • 近年來的其它熱點方向,知識圖譜,問答QA統一模組化,預訓練在圖像上的應用MAE;MLP/CNN/Transformers之争;
  • 最後推薦一個從各個應用方向出發,follow最新SOTA的網站:http://nlpprogress.com/
  • 2023屆校招算法崗知識超全總結

可以關注一些nlp大佬的公衆号或部落格:蘇劍林的部落格、夕小遙的賣萌屋、李rumor、高能AI、NewBeeNLP等。

總結

最後總結下,個人認為算法崗要找的好,除了本身的長期積累沉澱的硬實力之外(Paper,比賽,實習,項目),4者至少取其二。

主要考核的就是兩個方面的能力:

  • 基礎紮實程度(程式設計coding基礎;ML/DL算法的數學基礎):基礎紮實意味着圍繞某個知識點,面試官不管怎麼問,都難不倒。目标是應對筆面試過程中coding以及對知識深度的考察。
  • 前沿知識廣度(follow時下科研趨勢,如GNN,BERT,知識圖譜,對比學習,因果推斷等;以及了解工業界中推薦/搜尋/nlp的整體應用和流程等)。以應對面試中的對知識廣度、開放性問題的考察。

繼續閱讀