多多少少看了一些别人的面经,发现基本上都是非常相似的,说明大厂对招聘的要求也是高度一致,我分为以下几个方面进行分析总结
基础
数学基础
首当其冲是数学基础,这是一切算法的基础:
高数,线代,概率论(基础级别)
矩阵论,随机过程,高级概率论(进阶)
泛函分析,流形(理论机器学习级别,花书里面多次提到过)
机器学习基础
机器学习算法
只提几个出现率最高的:(NLP视角)
HMM ,CRF,SVM,XGBoost,TF-IDF,LDA,GBDT,bagging,boosting,stacking,LR
CRF为什么比HMM性能更优秀,二者的原理与区别,维特比算法
SVM为啥要求解对偶问题(降低求解的复杂度)
XGBoost的原理
正则化
正则化的作用
L1, L2分别用在什么情况,区别,L1满足什么分布
Dropout为什么work
Batch Normalization,Layer Normalization(特别是transformer为什么不用BN而用LN)
杂项
Sigmoid 和 ReLU 区别,ReLU 解决了什么问题
梯度爆炸梯度消失了解吗?
如何选择合适的损失函数?
如何防止过拟合
深度学习基础
CNN中pooling的作用
LSTM和GRU的原理,为什么work
LSTM里面为什么有些激活函数用sigmoid,有些用tanh
残差连接为什么work
NLP基础
关于transformer的一切
知道几种词向量的方法:
- 基于 one-hot、tf-idf、textrank;
- 主题模型:LSA(SVD)、pLSA、LDA;
- 基于词向量的固定表征:Word2vec、FastText、GloVe;
- 基于词向量的动态表征:ELMo、GPT、BERT
训练词向量时候的优化方法
是否了解常用分词方法?
BPE,word piece,Unigram
ngram共现频率为零怎么解决
BERT的Self-Attention细节,比如Q、K、V
注意力机制为什么work
bert有什么可以改进的地方
bert的mask策略
Word2vec的两种训练目标是什么,word2vec和GloVe的区别
bert的position embedding
BERT ELMO XLNET 区别
GPT和BERT的区别
文本分类,NER,文本匹配
项目
自己的项目中运用到了些什么技术,传统方法是什么样的,做了什么样的改进,遇到了什么样的问题
(感觉有项目的好像不多所以这方面比较少)
论文
介绍自己论文的模型和方法
(没看到几个有论文的…)
算法基础
由于是ACM出身,没仔细看这部分,但是题目都不难,好好刷题即可
总结
总的来说最明显的特点就是注重基础,会问一些很细的问题,基础不牢固的话一下子就会露馅,在平时学习的过程中要注重算法的理解,并且要自己思考并发现一些问题,而不是只浮于表面,用nz哥的话来说:透过现象看本质。
对项目和论文并没有太高的要求(可能是知道大部分人也没有,而且那些小项目也只是玩具),所以把重点放在加强基础的学习就好,多学习,多思考,多总结。
(持续更新ing…)