2020年校招已经开始了,在疫情全球肆虐的背景下,全球就业情况异常艰难,加上美国对中国企业打压持续升级,对于马上开始秋招找工作的毕业生而言,更是难上加难。我们不能凭一己之力改变现状,但我们可以凭借自己的努力改变自己,想要找到心仪的工作,唯有提升自己的硬件实力。
互联网面试通常都是有套路的,特别是算法面试环节,对于算法相关基础的的考察。因此,推荐本资源,整理了300多道算法岗位相关的面试题目并给出了详细的答案,涉及算法基础知识、推荐系统、机器学习、深度学习、自然语言处理、数学基础知识、数据预处理等相关问题,由互联网一线资深的面试官整理,非常值得深入学习,温故而知新。
资源整理自网络,感谢作者细致整理和无私分享,源地址:https://github.com/sladesha/Reflection_Summary
300问题及最新答案下载地址:
微信公众号“深度学习与NLP”回复关键字“sfie20”获取下载地址。
基础概念
方差和偏差
o解释方差
o解释偏差
o模型训练为什么要引入偏差和方差?请理论论证
o什么情况下引发高方差
o如何解决高方差问题
o以上方法是否一定有效
o如何解决高偏差问题
o以上方法是否一定有效
o遇到过的机器学习中的偏差与方差问题
o就理论角度论证Bagging、Boosting的方差偏差问题
o遇到过的深度学习中的偏差与方差问题
o方差、偏差与模型的复杂度之间的关系
生成与判别模型
o什么叫生成模型
o什么叫判别模型
o什么时候会选择生成/判别模型
oCRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型
o我的理解
先验概率和后验概率
o写出全概率公式&贝叶斯公式
o说说你怎么理解为什么有全概率公式&贝叶斯公式
o什么是先验概率
o什么是后验概率
o经典概率题
频率概率
o极大似然估计 - MLE
o最大后验估计 - MAP
o极大似然估计与最大后验概率的区别
o到底什么是似然什么是概率估计
AutoML
oAutoML问题构成
o特征工程选择思路
o模型相关的选择思路
o常见梯度处理思路
oAutoML参数选择所使用的方法
o讲讲贝叶斯优化如何在automl上应用
o以高斯过程为例,超参搜索的f的最优解求解acquisition function有哪些
o高斯过程回归手记
oAutoSklearn详解手记
oAutoML常规思路手记
数学
数据质量
o期望
o方差
o标准差
o协方差
o相关系数
最大公约数问题
o辗转相除法
o其他方法
牛顿法
o迭代公式推导
o实现它
概率密度分布
o均匀分布
o伯努利分布
o二项分布
o高斯分布
o拉普拉斯分布
o泊松分布
平面曲线的切线和法线
o平面曲线的切线
o平面曲线的法线
导数
o四则运算
o常见导数
o复合函数的运算法则
o莱布尼兹公式
微分中值定理
o费马定理
o拉格朗日中值定理
o柯西中值定理
泰勒公式
o泰勒公式
欧拉公式
o欧拉公式
矩阵
o范数
o特征值分解,特征向量
o正定性
概率论
o条件概率
o独立
o概率基础公式
o全概率
o贝叶斯
o切比雪夫不等式
o抽球
o纸牌问题
o棍子/绳子问题
o贝叶斯题
o选择时间问题
o0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器
o抽红蓝球球
数据预处理
数据平衡
o为什么要对数据进行采样
o是否一定需要对原始数据进行采样平衡
o有哪些常见的采样方法
o能否避免采样
o你平时怎么用采样方法
异常点处理
o统计方法
o矩阵分解方法
o特征值和特征向量的本质是什么
o矩阵乘法的实际意义
o密度的离群点检测
o聚类的离群点检测
o如何处理异常点
缺失值处理
o是不是一定需要对缺失值处理
o直接填充方法有哪些
o模型插值方法有哪些?及方法的问题
o如何直接离散化
ohold位填充方法有哪些
o怎么理解分布补全
orandom方法使用前提
o总结
特征选择
o为什么要做特征选择
o从哪些方面可以做特征选择
o既然说了两个方向,分别介绍一些吧
特征提取
o为什么需要对数据进行变换
o归一化和标准化之间的关系
o连续特征常用方法
o离散特征常用方法
o文本特征
o画一个最简单的最快速能实现的框架
机器学习
聚类
o请问从EM角度理解kmeans
o为什么kmeans一定会收敛
okmeans初始点除了随机选取之外的方法
线性回归
o损失函数是啥
o最小二乘/梯度下降手推
o介绍一下岭回归
o什么时候使用岭回归
o什么时候用Lasso回归
逻辑回归
ologistic分布函数和密度函数,手绘大概的图像
oLR推导,基础5连问
o梯度下降如何并行化
oLR明明是分类模型为什么叫回归
o为什么LR可以用来做CTR预估
o满足什么样条件的数据用LR最好
oLR为什么使用sigmoid函数作为激活函数?其他函数不行吗
o利用几率odds的意义在哪
oSigmoid函数到底起了什么作用
oLR为什么要使用极大似然函数,交互熵作为损失函数?那为什么不选平方损失函数的呢
oLR中若标签为+1和-1,损失函数如何推导?
o如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响
o为什么要避免共线性
oLR可以用核么?可以怎么用
oLR中的L1/L2正则项是啥
olr加l1还是l2好
o正则化是依据什么理论实现模型优化
oLR可以用来处理非线性问题么
o为什么LR需要归一化或者取对数
o为什么LR把特征离散化后效果更好?离散化的好处有哪些
o逻辑回归估计参数时的目标函数逻辑回归的值表示概率吗
oLR对比万物
oLR梯度下降方法
oLR的优缺点
o除了做分类,你还会用LR做什么
o你有用过sklearn中的lr么?你用的是哪个包
o看过源码么?为什么去看
o谈一下sklearn.linear_model.LogisticRegression中的penalty和solver的选择
o谈一下sklearn.linear_model.LogisticRegression中对多分类是怎么处理的
o我的总结
决策树
o常见决策树
o简述决策树构建过程
o详述信息熵计算方法及存在问题
o详述信息增益计算方法
o详述信息增益率计算方法
o解释Gini系数
oID3存在的问题
oC4.5相对于ID3的改进点
oCART的连续特征改进点
oCART分类树建立算法的具体流程
oCART回归树建立算法的具体流程
oCART输出结果的逻辑
oCART树算法的剪枝过程是怎么样的
o树形结构为何不需要归一化
o决策树的优缺点
贝叶斯
o解释一下朴素贝叶斯中考虑到的条件独立假设
o讲一讲你眼中的贝叶斯公式和朴素贝叶斯分类差别
o朴素贝叶斯中出现的常见模型有哪些
o出现估计概率值为 0 怎么处理
o朴素贝叶斯的优缺点
o朴素贝叶斯与 LR 区别
随机森林
o解释下随机森林
o随机森林用的是什么树
o随机森林的生成过程
o解释下随机森林节点的分裂策略
o随机森林的损失函数是什么
o为了防止随机森林过拟合可以怎么做
o随机森林特征选择的过程
o是否用过随机森林,有什么技巧
oRF的参数有哪些,如何调参
oRF的优缺点
集成学习
o介绍一下Boosting的思想
o最小二乘回归树的切分过程是怎么样的
o有哪些直接利用了Boosting思想的树模型
ogbdt和boostingtree的boosting分别体现在哪里
ogbdt的中的tree是什么tree?有什么特征
o常用回归问题的损失函数
o常用分类问题的损失函数
o什么是gbdt中的残差的负梯度
o如何用损失函数的负梯度实现gbdt
o拟合损失函数的负梯度为什么是可行的
o即便拟合负梯度是可行的,为什么不直接拟合残差?拟合负梯度好在哪里
oShrinkage收缩的作用
ofeature属性会被重复多次使用么
ogbdt如何进行正则化的
o为什么集成算法大多使用树类模型作为基学习器?或者说,为什么集成学习可以在树类模型上取得成功
ogbdt的优缺点
ogbdt和randomforest区别
oGBDT和LR的差异
oxgboost对比gbdt/boosting Tree有了哪些方向上的优化
oxgboost和gbdt的区别
oxgboost优化目标/损失函数改变成什么样
oxgboost如何使用MAE或MAPE作为目标函数
oxgboost如何寻找分裂节点的候选集
oxgboost如何处理缺失值
oxgboost在计算速度上有了哪些点上提升
oxgboost特征重要性是如何得到的
oxGBoost中如何对树进行剪枝
oxGBoost模型如果过拟合了怎么解决
oxgboost如何调参数
oXGboost缺点
oLightGBM对Xgboost的优化
oLightGBM亮点
FM/FFM
SVM
o简单介绍SVM
o什么叫最优超平面
o什么是支持向量
oSVM 和全部数据有关还是和局部数据有关
o加大训练数据量一定能提高SVM准确率吗
o如何解决多分类问题
o可以做回归吗,怎么做
oSVM 能解决哪些问题
o介绍一下你知道的不同的SVM分类器
o什么叫软间隔
oSVM 软间隔与硬间隔表达式
oSVM原问题和对偶问题的关系/解释原问题和对偶问题
o为什么要把原问题转换为对偶问题
o为什么求解对偶问题更加高效
oalpha系数有多少个
oKKT限制条件,KKT条件有哪些,完整描述
o引入拉格朗日的优化方法后的损失函数解释
o核函数的作用是啥
o核函数的种类和应用场景
o如何选择核函数
o常用核函数的定义
o核函数需要满足什么条件
o为什么在数据量大的情况下常常用lr代替核SVM
o高斯核可以升到多少维?为什么
oSVM和逻辑斯特回归对同一样本A进行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化
o各种机器学习的应用场景分别是什么?例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归
oLinear SVM 和 LR 有什么异同
深度学习
dropout
batch_normalization
o你觉得bn过程是什么样的
o手写一下bn过程
o知道LN么?讲讲原理
bp过程
embedding
softmax
梯度消失/爆炸
残差网络
o介绍残差网络
o残差网络为什么能解决梯度消失的问题
o残差网络残差作用
o你平时有用过么?或者你在哪些地方遇到了
Attention
oAttention对比RNN和CNN,分别有哪点你觉得的优势
o写出Attention的公式
o解释你怎么理解Attention的公式的
oAttention模型怎么避免词袋模型的顺序问题的困境的
oAttention机制,里面的q,k,v分别代表什么
o为什么self-attention可以替代seq2seq
o维度与点积大小的关系是怎么样的,为什么使用维度的根号来放缩
自然语言处理
GloVe
oGolVe的损失函数
o解释GolVe的损失函数
o为什么GolVe会用的相对比W2V少
Word2Vec
o从隐藏层到输出的Softmax层的计算有哪些方法
o层次softmax流程
o负采样流程
oword2vec两种方法各自的优势
o怎么衡量学到的embedding的好坏
oword2vec和glove区别
o你觉得word2vec有哪些问题
CRF
o阐述CRF原理
o线性链条件随机场的公式是
oCRF与HMM区别
oBert+crf中的各部分作用详解
LDA
o详述LDA原理
oLDA中的主题矩阵如何计算
oLDA的共轭分布解释下
oPLSA和LDA的区别
o怎么确定LDA的topic个数
oLDA和Word2Vec区别?LDA和Doc2Vec区别
oLDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?trick?
LSTM
GRU
Bert:实现/使用的代码
oBert的双向体现在什么地方
oBert的是怎样预训练的
o在数据中随机选择 15% 的标记,其中80%被换位[mask],10%不变、10%随机替换其他单词,原因是什么
o为什么BERT有3个嵌入层,它们都是如何实现的
obert的损失函数
o手写一个multi-head attention
o长文本预测如何构造Tokens
o你用过什么模块?bert流程是怎么样的
o知道分词模块:FullTokenizer做了哪些事情么
oBert中如何获得词意和句意
o源码中Attention后实际的流程是如何的
o为什么要在Attention后使用残差结构
o平时用官方Bert包么?耗时怎么样
o你觉得BERT比普通LM的新颖点
oelmo、GPT、bert三者之间有什么区别
推荐
DIN:实现/使用的代码
o主要使用了什么机制
oactivation unit的作用
oDICE怎么设计的
oDICE使用的过程中,有什么需要注意的地方
DeepFM:实现/使用的代码
oDNN与DeepFM之间的区别
oWide&Deep与DeepFM之间的区别
o你在使用deepFM的时候是如何处理欠拟合和过拟合问题的
oDeepFM怎么优化的
o不定长文本数据如何输入deepFM
odeepfm的embedding初始化有什么值得注意的地方吗
Xavier初始化
He初始化
YoutubeNet:实现/使用的代码
o变长数据如何处理的
oinput是怎么构造的
o最后一次点击实际如何处理的
ooutput的是时候train和predict如何处理的
o如何进行负采样的
oitem向量在softmax的时候你们怎么选择的
oExample Age的理解
o什么叫做不对称的共同浏览(asymmetric co-watch)问题
o为什么不采取类似RNN的Sequence model
oYouTube如何避免百万量级的softmax问题的
oserving过程中,YouTube为什么不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法
oYoutube的用户对新视频有偏好,那么在模型构建的过程中如何引入这个feature
o在处理测试集的时候,YouTube为什么不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集
o整个过程中有什么亮点?有哪些决定性的提升
Wide&Deep
MLR
Neural Network全家桶
XDeepFM:实现/使用的代码
o选用的原因,考虑使用的场景是什么
o什么叫显示隐式?什么叫元素级/向量级?什么叫做高阶/低阶特征交互
o简单介绍一下XDeepFm的思想
o和DCN比,有哪些核心的变化
o时间复杂度多少