点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要17分钟
跟随小博主,每天进步一丢丢
每日英文
All lay loads on a willing horse.
好马重负。
Recommender:云不见
作者:SladeSal、tcandzq
链接:https://github.com/sladesha/Reflection_Summary
编辑:深度学习自然语言处理公众号
这个仓库的作者是滴滴出行的员工SladeSal,同时也是互联网一线资深的面试官,他结合自己作为面试管的提问和自己的实习生tcandzq(拿到腾讯UGC,阿里算法中台,头条广告推荐offer)在参加2020届校招面试中遇到的各类算法问题,为大家写出了这份算法岗的面试知识点及个人理解的汇总。每个问题下面都有作者对这个问题的精炼总结,不罗嗦,简单易懂。非常感谢作者细致整理和无私分享。
本资源整理了300多道算法岗位相关的面试题目并给出了详细的答案,包含统计学基础概念、数学基础、数据预处理、机器学习、深度学习、自然语言处理(NLP)、推荐系统、风控、评价指标等相关问题,非常值得深入学习,温故而知新。
作者(SladeSal)有话说
部分内容为手记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部分
示例:
孤立森林
评分卡
二分类
多分类
回归指标
聚类指标
排序指标
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!
后台回复【五件套】
下载二:南大模式识别PPT
后台回复【南大模式识别】
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析
整理不易,还望给个在看!