Merge pull request #27 from morningsky/master

add 面试题
This commit is contained in:
RuyiLuo
2021-11-27 12:54:25 +08:00
committed by GitHub
4 changed files with 224 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
# 3.1 机器学习相关
## 3.1.1 机器学习
- 介绍一个最熟悉的机器学习算法
- 介绍下GBDT
- 介绍XGBoost
- 介绍下LightGBM
- LightGBM相对于XGBoost的改进
- GBDT中的梯度是什么怎么用
- GBDT如何计算特征重要性
- 介绍XGBoost中的并行
- 介绍XGBoost中精确算法与近似算法
- XGBoost如何处理空缺值为何要进行行采样、列采样
- 为什么高维稀疏数据LR比GBDT要好
- 随机森林与GBDT采样的区别
- 随机森林中列采样的作用
- bagging与boosting对比
- bagging与boosting分别从什么角度降低过拟合
- 逻辑回归如何避免过拟合
- 推导逻辑回归损失函数和损失函数求导
- 正则化项L1和L2为什么有用
- l1正则不可导如何优化
- 什么样的特征容易产生比较小的权重
- 随机森林采样n次n趋于无穷大oob样本的概率接近于
- 逻辑回归与树模型的优缺点
- 对于高维稀疏数据,树模型能训练吗?一般怎么处理
- 树模型一般有哪些参数,分别有什么作用
- 随机森林如何处理空缺值
- 介绍kmeans与其他聚类算法的对比
- 机器学习导致误差的原因?过拟合、欠拟合对应的偏差和方差是怎样的?
- 如何解决过拟合问题?哪些角度
## 3.1.2 深度学习
- 优化器SGD与Adam的异同点
- SGD缺点已经有什么改进的优化器
- 网络权重初始化为0有什么影响初始化为一个非0的常数呢
- embedding如何设置维度越大越好还是越小越好
- transformer中计算attention除于根号d的作用
- embedding如何训练
- 介绍下attention相比cnn、lstm的优势
- word2vec如何进行负采样
- word2vec两种训练方法的区别具体损失函数
- 介绍LSTM每一个门的具体操作一个LSTM cell的时间复杂度是多少
- transformer中encoder和decoder的输入分别是什么
- transformer中encoder与decoder的QKV矩阵如何产生
- transformer中QKV矩阵是否可以设置成同一个
- transformer与bert的位置编码有什么区别
- BERT中计算attention的公式
- BERT中LayerNorm的作用为什么不用BN
- BERT中的两种预训练任务介绍
- 深度学习中BN的好处最早提出BN是为了解决什么问题BN具体怎么实现的
- 激活函数中sigmoidtanh有什么不好的地方relu有什么优势
## 3.1.3 特征工程
- 特征工程一般怎么做
- 特征数值分布比较稀疏如何处理
- 正负样本不均衡如何处理
- 连续特征离散化的作用
- 对id类特征onehot导致维度过高如何处理
- 如何进行特征筛选
## 3.1.4 评估指标
- auc的含义和计算方法
- 如果对负样本进行采样auc的计算结果会发生变化吗
- 交叉熵跟MSE有什么区别
- micro-f1解释
- 介绍下排序指标ndcg

View File

@@ -0,0 +1,32 @@
# 3.2 推荐模型相关
## 3.2.1 召回
- 介绍双塔模型
- 双塔模型的输出用双塔embedding做内积+sigmoid和求余弦相似度+sigmoid的区别
- 双塔模型一般怎么做特征
- 双塔模型为什么不直接把两个塔合起来输入一个DNN
## 3.2.2 排序
- 为什么CTR中目前普遍使用深度学习模型替换树模型
- 为什么要有wide层、FM层deep层不也有记忆能力吗
- DeepFM与wide&deep的介绍与对比
- 对DeepFM进行优化有哪些思路
- DeepFM如果过拟合和欠拟合分别如何处理
- 介绍除了FM之外的特征交叉的模型
- 介绍DIN模型适合的场景
- DIN中如何计算attention
- transformer与DIN的区别和联系
- 介绍下listwise排序模型LambdaRank

View File

@@ -0,0 +1,54 @@
# 3.3 热门技术相关
## 3.3.1 Embedding
- 介绍下item2vec模型
- embedding冷启动怎么做
## 3.3.2 多任务学习
- 多任务学习模型的发展历史详细介绍
- 为什么要用多任务学习
- 介绍MMOE、PLE、ESMMPLE相对MMOE的改进
- ESSM算法原理和解决的两个问题
- ESMM中如何解决CVR样本过于稀疏的问题实际上解决了吗
- ESMM训练是否使用全量样本
- 介绍PLE模型
- PLE里面loss如何平衡
- PLE模型中是否有尝试对不同的gate用不同的特征是否有尝试不同业务用不同的特征组合
- gradnorm介绍
- 介绍关于多任务权重设置的相关模型或者策略
- 如何平衡不同任务的loss
- 如果一个特征对任务a是正相关对任务b是负相关如何处理这个特征
- CTR和CVR任务放在ESMM都是曝光空间里和放在PLECTR点击空间CVR曝光空间里哪种效果好
## 3.3.3 图神经网络
- GNN在推荐系统中有哪些用法
- GCN、GraphSAGE、GAT的区别与联系
- node2vec对比deepwalk的改进
- GraphSAGE对比GCN的优势
- transductive与inductive的区别
- 训练图模型的loss有哪些
- graph embedding的作用

View File

@@ -0,0 +1,15 @@
# 3.4 业务场景相关
- CVR相比CTR的区别、特点
- 搜索与推荐的区别,你认为哪个难度更大
- 广告与推荐的区别
- 什么时候用策略规则,什么时候用模型
- 线上如何生成最终的排序得分
- 正负样本介绍(规模和比例),如何构造负样本
- 低活用户特征稀疏如何解决