参考: 字节|算法|面经|2020| - leetcode 字节跳动data广告推荐算法实习面试经验 - leetcode 记录一次失败的字节跳动面试「算法」- leetcode 字节跳动丨算法实习丨面经已offer丨2021丨- leetcode 字节跳动算法岗武功秘籍(下)- 知乎 字节跳动丨算法工程师丨搜索方向丨面经 - leetcode 字节跳动 | 广告算法 | 暑假实习|2021| - leetcode 字节跳动 头条 算法 面经 已拿offer意向书 - 牛客网 春招算法面经 - 牛客网 字节跳动抖音广告算法社招三面凉经 字节安全风控算法暑假实习面经,许愿offer 2021 算法暑期实习申请 个人面经汇总 春招面经 字节AI nlp算法实习面经 已拿offer

开场

  • 自我介绍(1min)

    姓名,年龄,本科和硕士学校,专业,相关经历,来这里实习的原因。

  • 项目经历介绍(言简意赅)

  • 实验室介绍
  • cv转推荐的原因
  • 读研选择cv的原因
  • 自己的优点和缺点是什么?优势是什么?

基础知识

  • CNN中感受野/权值共享
  • 交叉熵的公式
  • 模型蒸馏的损失函数,T 调参
  • Resnet理解
  • Resnet相比全连接什么区别
  • Alexnet/VGG/Densenet/Googlenet
  • 什么是梯度消失/爆炸
  • 有什么方法能解决梯度消失/梯度爆炸
  • XGBOOST原理/理解(正则化项的参数,基分类器,分裂准则)
  • 特征选择的方法
  • 如何避免过拟合
  • XGBOOST理解/损失函数/正则怎么算
  • XGBOOST与GBDT对比/ Random Forest理解/Boosting与Bagging对比
  • 为什么XGBOOST在大赛上表现很好/与GBDT相比优势
  • L1、L2的区别, L1为什么图像是菱形

    我说菱形可以用取点值画出来,面试官问怎么取点,我就有点懵住了,面完才想起来菱形应该是 |x| + |y| = 1 的函数图像

  • 梯度下降系列算法有哪些

    我有点蒙住了,后来才想起来应该问问 momentum adam 之类的算不算

  • xgb介绍一下

  • 你知道有哪些损失函数?
  • softmax 与 二分类 比有什么特点
  • auc 介绍一下,给出计算公式
  • xgb怎么并行运算

    (除了自带的并行找特征分裂点,还说了一般模型的按数据和按特征并行)但是面试官一直追问详细的并行方法。。。

  • 有哪些常见的模型优化算法(优化器 SGD, Adam)

  • adam公式写一下(同时介绍了adam是momentum和RMSprop的结合)
  • RMSprop为什么比adgrad好?(答:利用了系数维护梯度平方,不是简单求和)
  • 为什么 adagrad 简单求和不好?
  • 深度学习四种归一化方法
  • 激活函数 relu, leakyrelu
  • 介绍Transformer结构, self-attention怎么做的, mask是怎么做的(源码怎么实现的)?
  • 你了解哪些解决不均衡样本的loss函数?
  • 介绍AUC指标
  • ROC曲线的横纵轴是什么
  • AUC是否对正负样本比例敏感
  • 数据集不平衡的处理方法
  • 用了哪些数据增强的方法
  • 剪枝的原理,为什么多头attention剪枝有用
  • transformer的并行,encoder decoder的细节结构
  • 进程线程的区别?进程和线程相比有什么好处?
  • 用户态和内核态
  • pyhton的 is 和 == 有什么区别?
  • python的class在继承父类时,super的作用是什么?

  • 介绍一下优化函数

  • 交叉熵是什么?式子怎么写?
  • 卷积网络了解吗?
  • 池化操作是什么?
  • max-pooling 的反向传播怎么做?
  • Iou、mIou
  • 增大感受野
  • 什么是深度可分离卷积
  • 数据分布不均衡怎么办?模型选择,以及损失函数选择(比赛项目里涉及到了)
  • 小样本学习
  • CRF
  • GCN 了解吗,讲一讲
  • C++ 构造函数,虚函数
  • C++ 熟练度与代码量,Python几个基础问题
  • 项目/比赛/论文 中遇到的困难讲述一下,如何解决这些问题,以及收获
  • python GIL
  • C++ static关键词的作用
  • 初始化参数列表有什么用

  • 收敛时,train_loss 和 valid_loss 的变化用什么loss处理的样本不均衡,为什么,讲讲原理

  • 讲下 SVM;你怎么做多分类的;既然毕业设计主要用到了应该毕竟熟练,公式推一下(卒。。。。。所以写了的东西一定要自己深入搞一下,不然不如不写)
  • 医学项目落地了吗;效果如何;数据集怎么采集和处理的;模型如何选取的;怎样做的集成;为什么使用了多任务,具体怎么想怎么做的。。。。。
  • 比赛经历,收获是什么

  • K-fold怎么知道模型过拟合了,如何应对过拟合

  • BN怎么做,原理
  • 讲了几个backbone,resnet,Xception
  • 1x3x1 与3x3卷积比较
  • 多尺度的好处
  • 为什么残差学习有效(这个答比较乱,,)

  • 了解CUDA吗?CUDA Stream、CUDA程序的原理、线程模型和内存模型?

  • 进程和线程的关系?优缺点?线程的通信方式?

    进程分配独立的系统资源,线程共享进程的资源。互斥锁、信号量、共享内存、事件等等

  • 单核CPU中的多线程是否需要线程锁?

    需要,CPU中线程是以时隙为单位交替执行的。

  • 介绍我的CV比赛项目
  • 介绍比赛中的有用的trick有哪些
  • 介绍一下 transformer 的原理
  • 为什么要用mask?

    padding mask和sequence mask。为什么要sequence mask?防止信息穿越

  • bert的两种预训练方式

  • 神经网络参数如何初始化(Xavier 初始化、He 初始化)

  • Dropout 在 forward 里面怎么做
  • L1 和 L2 正则化的区别
  • AUC 是什么,写一下代码

  • CART了解吗?怎么做回归和分类的?

  • 哈希表了解吗?有哪些解决冲突方法?
  • 堆空间栈空间了解吗?
  • 机器学习中一般怎么衡量模型效果?auc值怎么理解?
  • 怎么衡量两个分布的差异?KL散度和交叉熵损失有什么不同?关系是啥?
  • 怎么理解最大似然估计?
  • 说下红黑树叭,怎么插入的?
  • 简单一点的,比如AVL树呢?
  • python的GIL
  • python里的多线程,怎么让它占满核呢?
  • c++的虚函数和虚继承
  • logistic 回归里面,输出的那个0-1之间的值,是概率值吗?你看它又叫对数几率回归,怎么理解几率这个概念?
  • 比较下随机森林 RF 和GBDT

    都是集成方法,分别是Bagging和Boosting,并行和串行。GBDT是残差学习角度。

  • GBDT具体细节大致说了下思路,感觉答的不是很详细

  • GBDT可以并行吗?

    原理上是不行的,这也是训练过程比RF慢的原因。但是XgBoost作为GBDT的一种工程实现方法,在决策树的构建过程中加入了部分并行技巧,加快了速度。

  • GBDT和XgBoost的区别是什么呢?

    XgBoost是GBDT的一个工程实现。 1)在树的构建过程中加入了一些并行技巧; 2)GBDT本身是没有预剪枝等过程的,XgBoost在构建的过程中加入了一些正则,起到了缓解过拟合的作用。

  • 随机森林的随机怎么理解?体现在哪里?

  • 决策树了解吗?

    知道的有ID3,C4.5,CART树,分别用信息增益,信息增益比,基尼系数作为启发函数。

  • 写出信息增益的表达式

  • 代码写一个决策树,给定数据,启发函数是信息增益,假设所有特征的值都是数值类型的定义节点类、构建节点、选取当前节点的最优划分特征(计算所有特征的信息增益)、数据划分、构建子节点、考虑停止划分的条件。

    花了好长时间写了个代码框架,然后和面试官讲了思路。

  • 写的决策树是几叉树?

    暂时考虑的是有多少种不同的取值就有多少个分支,意识到这肯定是不对的,优化的话可以将所有取值进行划分,比如二划分就可以改成二叉树。

  • 决策树如何处理缺失值,是否敏感?

  • lightgbm和xgboost的区别
  • 设计能适应测试集里有缺失值的训练集没有的GBDT, 要求不能从填充数据的角度来做
  • 梯度消失/爆炸产生原因
  • 怎么解决梯度消失问题?
  • 怎么解决梯度爆炸问题?
  • 批量归一化的思想,还了解其他归一化吗?
  • 说下平时用到的深度学习的trick
  • 说下adam的思想
  • Adam和Adagrad的区别
  • 正则化的本质和作用是什么
  • 介绍一下你了解的优化器和各自的优缺点
  • 设计一个在CNN卷积核上做dropout的方式

  • ResNet的结构特点以及解决的问题是什么?

    ResNet之前,大多认为深度越深,性能越好实际上不是,会出现信息消逝的情况。ResNet提出了“捷径”概念,将浅处的输出牵到深处,形成一个残差,相当于把信息又往深了传递了一下

  • 了解BN吗?

    为了解决网络中数据分布变化大,学习过程慢的问题。采用标准化,又引入两个可学习的参数来重建浅层网络学到的分布。

  • 写逻辑回归的logloss损失函数
  • 逻辑回归损失函数可以用mse吗(从梯度角度)
  • 逻辑回归建模,如果只有9个正样本,一个负样本,那么有一列特征,这个特征对于的权重是正还是负

智力题/数学题

  1. 一根木棍分成3份,围成三角形的概率?

image.png

  1. 三门问题:有三扇关闭着的门,其中一扇门的后面有一辆汽车,另外两扇门后面各藏有一只山羊,选中后面有车的那扇门即可赢得汽车,否则就不能赢得任何奖品。当参赛者选定了一扇门,但未开启它的时候,节目主持人开启剩下两扇门的其中一扇,因为主持人知道哪扇门后面有汽车,主持人仅打开后面有山羊的一扇门,露出其中一只山羊。随后,主持人会问参赛者要不要换另一扇仍然关闭着的门?

    三门问题:为什么换门会增加得到汽车的概率

答:如下图所示,若选择换门,则选中汽车的概率为 1/3+1/3=2/3;若选择不换门,则选中汽车的概率为为 1/3
image.png

  1. 甲扔n次骰子,取其中最大的点数作为它的最终点数,乙扔一次骰子得到点数,求乙的点数大于甲的概率
  1. 某种病的发病率为1/100,某种检测该病的技术检测正确率为99/100,现有一人被检测到生病的概率为p,求他真实生病的概率是多少?
  1. 在上一问的基础上,现在连续两次检测为有病才会停止检测,求检测次数的期望值。
  1. 已知var(x),var(y),E(x),E(y)求 Var(x*y)
  1. 54 张牌分三份,大小王在其中一堆的概率

答:设分为 A,B,C 三份,假设大王在 A,那么 A 还有 17 张牌,总共还有 53 张牌,因此小王在 A 的概率为 17/53