- 以下内容为我作为面试管的提问,以及陪伴实习生同学@tcandzq参加2020届校招面试各类算法问题及个人理解的汇总,另外,恭喜tcandzq收割到腾讯UGC,阿里算法中台,头条广告推荐offer,:clap:
- 部分内容为手记pdf内容,因为公式实在太多,手写比较快,笔记潦草,见谅,内容部分会引用第三方的观点,但是一定会结合自己的感受和体会,一定有存疑和不完善的地方,欢迎大家补充和质疑打脸
- 现在算法工程师的面试以下内容都不会直接提问,而是以项目交流的方式去挖掘在一个问题上的理论理解的深度,建议大家结合实际工作中的case去思考
- 另外,打个广告,南京蓝厂nlp/推荐均有坑位,做的方向是资讯的信息流推荐和短/小视频推荐,欢迎勾搭,广告完
- 方差和偏差
- 生成与判别模型
- 先验概率和后验概率
- 频率概率
- AutoML
- 数据质量
- 最大公约数问题
- 牛顿法
- 拟牛顿法
- 概率密度分布
- 平面曲线的切线和法线
- 导数
- 微分中值定理
- 泰勒公式
- 欧拉公式
- 矩阵
- 概率论
- 数据平衡
- 异常点处理
- 缺失值处理
- 特征选择
- 特征提取
- 聚类
- 线性回归
- 逻辑回归
- 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中对多分类是怎么处理的
- 我的总结
- 决策树
- 贝叶斯
- 随机森林
- 集成学习
- 介绍一下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
- batch_normalization
- bp过程
- embedding
- softmax
- 梯度消失/爆炸
- 残差网络
- Attention
- GloVe
- Word2Vec
- CRF
- 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
- DIN:实现/使用的代码
- DeepFM:实现/使用的代码
- 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:实现/使用的代码
- Recall
- 孤立森林
- 评分卡
- 二分类
- 多分类
- 回归指标
- 聚类指标
- 排序指标