Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表
作者 | SladeSal & tcandzq
原文 | 文末『阅读原文』处
编辑 | NewBeeNLP公众号
继续来分享超赞的github项目,作者是滴滴出行的员工 @SladeSal 及其实习生 @tcandzq,分别从面试官以及面试者两个角度为大家整理了一份算法岗知识点必知必会小手册。主要涵盖了以下几大方向:
基础概念
数学
数据预处理
机器学习
深度学习
自然语言处理
推荐
风控
评价指标
附上github地址:https://github.com/sladesha/Reflection_Summary
以下内容来自作者本人:
以下内容为我作为面试管的提问,以及陪伴实习生同学@tcandzq参加2020届校招面试各类算法问题及个人理解的汇总,另外,恭喜tcandzq收割到腾讯UGC,阿里算法中台,头条广告推荐offer,????
部分内容为手记pdf内容,因为公式实在太多,手写比较快,笔记潦草,见谅,内容部分会引用第三方的观点,但是一定会结合自己的感受和体会,一定有存疑和不完善的地方,欢迎大家补充和质疑打脸
现在算法工程师的面试以下内容都不会直接提问,而是以项目交流的方式去挖掘在一个问题上的理论理解的深度,建议大家结合实际工作中的case去思考
基础概念
方差和偏差
解释方差
解释偏差
模型训练为什么要引入偏差和方差?请理论论证
什么情况下引发高方差
如何解决高方差问题
以上方法是否一定有效
如何解决高偏差问题
以上方法是否一定有效
遇到过的机器学习中的偏差与方差问题
就理论角度论证Bagging、Boosting的方差偏差问题
遇到过的深度学习中的偏差与方差问题
方差、偏差与模型的复杂度之间的关系
生成与判别模型
什么叫生成模型
什么叫判别模型
什么时候会选择生成/判别模型
CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型
我的理解
先验概率和后验概率
写出全概率公式&贝叶斯公式
说说你怎么理解为什么有全概率公式&贝叶斯公式
什么是先验概率
什么是后验概率
经典概率题
频率概率
极大似然估计 - MLE
最大后验估计 - MAP
极大似然估计与最大后验概率的区别
到底什么是似然什么是概率估计
AutoML
AutoML问题构成
特征工程选择思路
模型相关的选择思路
常见梯度处理思路
AutoML参数选择所使用的方法
讲讲贝叶斯优化如何在automl上应用
以高斯过程为例,超参搜索的f的最优解求解acquisition function有哪些
高斯过程回归手记
AutoSklearn详解手记
AutoML常规思路手记
数学
数据质量
期望
方差
标准差
协方差
相关系数
最大公约数问题
辗转相除法
其他方法
牛顿法
迭代公式推导
实现它
拟牛顿法
概率密度分布
均匀分布
伯努利分布
二项分布
高斯分布
拉普拉斯分布
泊松分布
平面曲线的切线和法线
平面曲线的切线
平面曲线的法线
导数
四则运算
常见导数
复合函数的运算法则
莱布尼兹公式
微分中值定理
费马定理
拉格朗日中值定理
柯西中值定理
泰勒公式
泰勒公式
欧拉公式
欧拉公式
矩阵
范数
特征值分解,特征向量
正定性
概率论
条件概率
独立
概率基础公式
全概率
贝叶斯
切比雪夫不等式
抽球
纸牌问题
棍子/绳子问题
贝叶斯题
选择时间问题
0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器
抽红蓝球球
数据预处理
数据平衡
为什么要对数据进行采样
是否一定需要对原始数据进行采样平衡
有哪些常见的采样方法
能否避免采样
你平时怎么用采样方法
异常点处理
统计方法
矩阵分解方法
特征值和特征向量的本质是什么
矩阵乘法的实际意义
密度的离群点检测
聚类的离群点检测
如何处理异常点
缺失值处理
是不是一定需要对缺失值处理
直接填充方法有哪些
模型插值方法有哪些?及方法的问题
如何直接离散化
hold位填充方法有哪些
怎么理解分布补全
random方法使用前提
总结
特征选择
为什么要做特征选择
从哪些方面可以做特征选择
既然说了两个方向,分别介绍一些吧
特征提取
为什么需要对数据进行变换
归一化和标准化之间的关系
连续特征常用方法
离散特征常用方法
文本特征
画一个最简单的最快速能实现的框架
机器学习
聚类
请问从EM角度理解kmeans
为什么kmeans一定会收敛
kmeans初始点除了随机选取之外的方法
线性回归
损失函数是啥
最小二乘/梯度下降手推
介绍一下岭回归
什么时候使用岭回归
什么时候用Lasso回归
逻辑回归
logistic分布函数和密度函数,手绘大概的图像
LR推导,基础5连问
梯度下降如何并行化
LR明明是分类模型为什么叫回归
为什么LR可以用来做CTR预估
满足什么样条件的数据用LR最好
LR为什么使用sigmoid函数作为**函数?其他函数不行吗
利用几率odds的意义在哪
Sigmoid函数到底起了什么作用
LR为什么要使用极大似然函数,交互熵作为损失函数?那为什么不选平方损失函数的呢
LR中若标签为+1和-1,损失函数如何推导?
如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响
为什么要避免共线性
LR可以用核么?可以怎么用
LR中的L1/L2正则项是啥
lr加l1还是l2好
正则化是依据什么理论实现模型优化
LR可以用来处理非线性问题么
为什么LR需要归一化或者取对数
为什么LR把特征离散化后效果更好?离散化的好处有哪些
逻辑回归估计参数时的目标函数逻辑回归的值表示概率吗
LR对比万物
LR梯度下降方法
LR的优缺点
除了做分类,你还会用LR做什么
你有用过sklearn中的lr么?你用的是哪个包
看过源码么?为什么去看
谈一下sklearn.linear_model.LogisticRegression中的penalty和solver的选择
谈一下sklearn.linear_model.LogisticRegression中对多分类是怎么处理的
我的总结
决策树
常见决策树
简述决策树构建过程
详述信息熵计算方法及存在问题
详述信息增益计算方法
详述信息增益率计算方法
解释Gini系数
ID3存在的问题
C4.5相对于ID3的改进点
CART的连续特征改进点
CART分类树建立算法的具体流程
CART回归树建立算法的具体流程
CART输出结果的逻辑
CART树算法的剪枝过程是怎么样的
树形结构为何不需要归一化
决策树的优缺点
贝叶斯
解释一下朴素贝叶斯中考虑到的条件独立假设
讲一讲你眼中的贝叶斯公式和朴素贝叶斯分类差别
朴素贝叶斯中出现的常见模型有哪些
出现估计概率值为 0 怎么处理
朴素贝叶斯的优缺点
朴素贝叶斯与 LR 区别
随机森林
解释下随机森林
随机森林用的是什么树
随机森林的生成过程
解释下随机森林节点的分裂策略
随机森林的损失函数是什么
为了防止随机森林过拟合可以怎么做
随机森林特征选择的过程
是否用过随机森林,有什么技巧
RF的参数有哪些,如何调参
RF的优缺点
集成学习
介绍一下Boosting的思想
最小二乘回归树的切分过程是怎么样的
有哪些直接利用了Boosting思想的树模型
gbdt和boostingtree的boosting分别体现在哪里
gbdt的中的tree是什么tree?有什么特征
常用回归问题的损失函数
常用分类问题的损失函数
什么是gbdt中的残差的负梯度
如何用损失函数的负梯度实现gbdt
拟合损失函数的负梯度为什么是可行的
即便拟合负梯度是可行的,为什么不直接拟合残差?拟合负梯度好在哪里
Shrinkage收缩的作用
feature属性会被重复多次使用么
gbdt如何进行正则化的
为什么集成算法大多使用树类模型作为基学习器?或者说,为什么集成学习可以在树类模型上取得成功
gbdt的优缺点
gbdt和randomforest区别
GBDT和LR的差异
xgboost对比gbdt/boosting Tree有了哪些方向上的优化
xgboost和gbdt的区别
xgboost优化目标/损失函数改变成什么样
xgboost如何使用MAE或MAPE作为目标函数
xgboost如何寻找分裂节点的候选集
xgboost如何处理缺失值
xgboost在计算速度上有了哪些点上提升
xgboost特征重要性是如何得到的
xGBoost中如何对树进行剪枝
xGBoost模型如果过拟合了怎么解决
xgboost如何调参数
XGboost缺点
LightGBM对Xgboost的优化
LightGBM亮点
FM/FFM
SVM
简单介绍SVM
什么叫最优超平面
什么是支持向量
SVM 和全部数据有关还是和局部数据有关
加大训练数据量一定能提高SVM准确率吗
如何解决多分类问题
可以做回归吗,怎么做
SVM 能解决哪些问题
介绍一下你知道的不同的SVM分类器
什么叫软间隔
SVM 软间隔与硬间隔表达式
SVM原问题和对偶问题的关系/解释原问题和对偶问题
为什么要把原问题转换为对偶问题
为什么求解对偶问题更加高效
alpha系数有多少个
KKT限制条件,KKT条件有哪些,完整描述
引入拉格朗日的优化方法后的损失函数解释
核函数的作用是啥
核函数的种类和应用场景
如何选择核函数
常用核函数的定义
核函数需要满足什么条件
为什么在数据量大的情况下常常用lr代替核SVM
高斯核可以升到多少维?为什么
SVM和逻辑斯特回归对同一样本A进行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化
各种机器学习的应用场景分别是什么?例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归
Linear SVM 和 LR 有什么异同
深度学习
框架
为什么要用深度召回
dropout
dropout如何作用的
L1为什么在深度学习中不常用
用贝叶斯机率说明Dropout的原理
为什么有效
batch_normalization
你觉得bn过程是什么样的
手写一下bn过程
知道LN么?讲讲原理
bp过程
embedding
softmax
梯度消失/爆炸
残差网络
介绍残差网络
残差网络为什么能解决梯度消失的问题
残差网络残差作用
你平时有用过么?或者你在哪些地方遇到了
Attention
Attention对比RNN和CNN,分别有哪点你觉得的优势
写出Attention的公式
解释你怎么理解Attention的公式的
Attention模型怎么避免词袋模型的顺序问题的困境的
Attention机制,里面的q,k,v分别代表什么
为什么self-attention可以替代seq2seq
维度与点积大小的关系是怎么样的,为什么使用维度的根号来放缩
自然语言处理
GloVe
GolVe的损失函数
解释GolVe的损失函数
为什么GolVe会用的相对比W2V少
Word2Vec
从隐藏层到输出的Softmax层的计算有哪些方法
层次softmax流程
负采样流程
word2vec两种方法各自的优势
怎么衡量学到的embedding的好坏
word2vec和glove区别
你觉得word2vec有哪些问题
CRF
阐述CRF原理
线性链条件随机场的公式是
CRF与HMM区别
Bert+crf中的各部分作用详解
LDA
详述LDA原理
LDA中的主题矩阵如何计算
LDA的共轭分布解释下
PLSA和LDA的区别
怎么确定LDA的topic个数
LDA和Word2Vec区别?LDA和Doc2Vec区别
LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?trick?
使用过LDA,你有什么问题?
你用真实用过吗?对比过效果吗?
超参数\alpha \beta对训练的影响?
LDA你会有哪些常规的预处理步骤
LDA的最大似然不好求的原因?为什么不直接用EM?为什么LDA引入了一堆数学理论?
LSTM
GRU
Bert:实现/使用的代码
Bert的双向体现在什么地方
Bert的是怎样预训练的
在数据中随机选择 15% 的标记,其中80%被换位[mask],10%不变、10%随机替换其他单词,原因是什么
为什么BERT有3个嵌入层,它们都是如何实现的
bert的损失函数
手写一个multi-head attention
长文本预测如何构造Tokens
你用过什么模块?bert流程是怎么样的
知道分词模块:FullTokenizer做了哪些事情么
Bert中如何获得词意和句意
源码中Attention后实际的流程是如何的
为什么要在Attention后使用残差结构
平时用官方Bert包么?耗时怎么样
你觉得BERT比普通LM的新颖点
elmo、GPT、bert三者之间有什么区别
文本相似度计算
有哪些常用的方法
TextCNN
讲一下textcnn
textCNN中核的作用
max-pooling选择的目的
textcnn和fasttext区别
如果你知道上面说的核心问题,那么有什么解决方案吗?
为什么卷积核都不大?且常见都都是奇数?
为什么不建议用句长作为核大小
padding是不是对最后结果没有影响
推荐
DIN:实现/使用的代码
主要使用了什么机制
activation unit的作用
DICE怎么设计的
DICE使用的过程中,有什么需要注意的地方
DeepFM:实现/使用的代码
DNN与DeepFM之间的区别
Wide&Deep与DeepFM之间的区别
你在使用deepFM的时候是如何处理欠拟合和过拟合问题的
DeepFM怎么优化的
不定长文本数据如何输入deepFM
deepfm的embedding初始化有什么值得注意的地方吗
Xavier初始化
He初始化
YoutubeNet:实现/使用的代码
变长数据如何处理的
input是怎么构造的
最后一次点击实际如何处理的
output的是时候train和predict如何处理的
如何进行负采样的
item向量在softmax的时候你们怎么选择的
Example Age的理解
什么叫做不对称的共同浏览(asymmetric co-watch)问题
为什么不采取类似RNN的Sequence model
YouTube如何避免百万量级的softmax问题的
serving过程中,YouTube为什么不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法
Youtube的用户对新视频有偏好,那么在模型构建的过程中如何引入这个feature
在处理测试集的时候,YouTube为什么不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集
整个过程中有什么亮点?有哪些决定性的提升
Wide&Deep
MLR
Neural Network全家桶
XDeepFM:实现/使用的代码
选用的原因,考虑使用的场景是什么
什么叫显示隐式?什么叫元素级/向量级?什么叫做高阶/低阶特征交互
简单介绍一下XDeepFm的思想
和DCN比,有哪些核心的变化
时间复杂度多少
Recall
召回层构造loss和精排层的差异?
离线评估有什么办法
负样本为什么不能用点击未展示
解释一下hard negative
什么样本是hard和easy的
如何处理hard部分
风控
孤立森林
评分卡
评价指标
二分类
多分类
回归指标
聚类指标
排序指标
一起交流
重磅推荐!NewBeeNLP目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 面试交流 / 大厂内推 等),赶紧添加下方微信加入一起讨论学习吧!
- END -
全方位解读 | Facebook的搜索是怎么做的? 2020-10-09
记得把NewBeeNLP设为星标哦
等你在看