万字长文 | 2023届校招算法岗知识总结

大家好,我是蘑菇先生。

为今年校招的同学准备了一份笔面试经验大礼包。主要结合本人当年校招时候的经验"2021届校招算法岗知识点总结"以及近两年工作学习过程中的感悟收获。主要面向搜推广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,这份资料似乎链接打不开了。故特意上传了,公众号后台回复”GBDT“即可获取。

  • 贝叶斯决策理论个人觉得非常重要,是机器学习/深度学习等各类学科的基础。这里头最重要的MLE, MAP, 贝叶斯估计的区别与联系,参考李文哲老师的总结:机器学习中的MLE、MAP、贝叶斯估计

1.3 数学基础

数学题,比如贝叶斯公式算后验概率(求概率),优惠券收集问题(求期望),蓄水池问题(采样)等。还包括一些偏智力的题。这类问题主要难在理解题意,对数学中的概率/期望/微积分/极限等知识点会有些要求。之前看到的部分概率题总结,排版有点问题,凑合着看一些题型。有时间可以复习下概统、线代等课程,没时间可以看看别人的总结,比如:

互联网面试概率题总结:https://blog.csdn.net/BertDai/article/details/78070092

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

长短期序列建模:DIN、DIEN、SIM、MIMN等。

  • 浅谈行为序列建模

  • 用户行为序列建模方法调研

  • Recsys'21 | 基于Transformers的行为序列建模

多兴趣建模:MIND、ComiRec等。推荐系统多兴趣召回最新进展

图模型2W字长文:漫谈图神经网络推荐系统

对比学习

  • 谈推荐场景下的对比学习

  • 张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型

冷启动

  • 新用户冷启推荐技巧总结

  • 冷启动系统优化与内容潜力预估实践

多模态

  • 十篇文章速览多模态推荐系统的最新进展

因果推断

  • 快手因果推断与实验设计

  • 清华崔鹏 | 因果推断发展、思考和推荐系统应用

其它的方向:模型蒸馏,纠偏、跨域推荐、元学习、多模态等。

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届校招算法岗知识总结_第1张图片

可以关注一些nlp大佬的公众号或博客:苏剑林的博客、夕小遥的卖萌屋、李rumor、高能AI、NewBeeNLP等。

总结

最后总结下,个人认为算法岗要找的好,除了本身的长期积累沉淀的硬实力之外(Paper,比赛,实习,项目),4者至少取其二。

主要考核的就是两个方面的能力

  • 基础扎实程度 (编程coding基础;ML/DL算法的数学基础):基础扎实意味着围绕某个知识点,面试官不管怎么问,都难不倒。目标是应对笔面试过程中coding以及对知识深度的考察。

  • 前沿知识广度 (follow时下科研趋势,如GNN,BERT,知识图谱,对比学习,因果推断等;以及了解工业界中推荐/搜索/nlp的整体应用和流程等)。以应对面试中的对知识广度开放性问题的考察。

硬实力有的前提下,这三个方面扎实的话,我觉得拿offer是完全可以的。

当然,包括谈吐交流找对内推人运气都是技术本身之外非常重要的东西。

最近行业变化较大,希望大家都能顺利找到心仪的工作。

——The  End——

万字长文 | 2023届校招算法岗知识总结_第2张图片

13458fc4902d0b9ecfa850312376a96c.png

喜欢的话点个赞或在看吧

你可能感兴趣的:(算法,机器学习,人工智能,java,深度学习)