首页 > 字节跳动『数据科学岗』面试都考点啥?(含思路+备考建议)
头像
六哥的小迷弟
发布于 2022-08-19 10:03 上海
+ 关注

字节跳动『数据科学岗』面试都考点啥?(含思路+备考建议)

大厂面经详解系列又来啦!
之前写过 字节跳动-数据分析岗的面经

近期收到很多私信说想了解『数据科学岗』都考点啥

本篇,就以字节面经作为切入点
挑选几道该岗位的典型题型带大家体验一下
『数据科学岗』的面试真题
(含参考答案+备考Tips)


------正文手动分割线------
本文结构速览:

一、SQL题

二、机器学习与概率论

三、AB实验

ps.文末有备考Tips~


一、SQL题

面试真题1

SQL的三种排序方式及其区别?

★ 参考答案

考查窗口函数中的序号函数

  • ROW_NUMBER()函数会依次进行排序且序号不相同

  • RANK()函数会依次排序如结果一样序号相同且会跳跃排名

  • DENSE_RANK()会依次排序如结果一样序号相同且不会跳跃排名


假设现有一张学生成绩表:


下面应用不同的排序方式进行排名:
select 
course_name
,student_name
,score
,ROW_NUMBER()over(partition by course_name order by score desc) AS `row_number` 
,RANK()over(partition by course_name order by score desc) AS `rank`
,DENSE_RANK()over(partition by course_name order by score desc) AS `dense_rank`
from course_score 
;


Tips:

为方便大家练习,提供表数据集

drop table course_score;
CREATE TABLE course_score
    (course_name varchar(45)
    ,student_name varchar(45)
    , score INT
    )
;

INSERT INTO course_score (course_name, student_name, score) VALUES 
('英语','张三',80)
,('英语','李四',70)
,('英语','赵五',90)
,('英语','高六',60)
,('数学','张三',70)
,('数学','李四',90)
,('数学','赵五',90)
,('数学','高六',40)
;

面试真题2

假设一个表有一列数字1,2,3,4,5,如何转成一行

如下图所示:



参考答案
考查CASE WHEN和聚合函数

SELECT 
    max(case when number=1 then number end) AS is_number1
    ,max(case when number=2 then number end) AS is_number2
    ,max(case when number=3 then number end) AS is_number3
    ,max(case when number=4 then number end) AS is_number4
    ,max(case when number=5 then number end) AS is_number5
FROM table_number

Tips:

为方便大家练习,提供表数据集

CREATE TABLE table_number (number int);
INSERT INTO table_number(number) VALUES (1),(2),(3),(4),(5);



二、机器学习与概率论

面试真题1

随机森林和XGBoost的区别是什么?

参考答案
  • 随机森林和XGBoost在树生成的原理上存在差异

  • 在避免过拟合问题上的处理也存在较大差异。


下面重点说明一下在避免过拟合问题上,两者算法的处理手段。

① 随机森林

利用随机采样,对数据样本和特征分别进行抽样,训练出多个树分类器,每个树的生产相互独立。为了避免过拟合:

  • 对训练样本数据进行有放回的抽样,生成K棵分类回归树

  • 假设特征空间有n个特征,每棵树的节点处随机抽取m个特征(m < n)

  • 每棵树最大限度生长,不做任何剪枝

  • 通过多棵树组成森林,分类结果按树分类器投票多少决定


② XGBoost

XGBoost原理可参考 -》六哥主页简介内以前文章:XGBoost原理解析

XGBoost本质可以理解为GBDT算法的改进,为了避免过拟合

  • 借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算

  • 在目标函数中加入了正则项,用于控制模型的复杂度

  • 先从顶到底建立所有可以建立的子树,再从底到顶反向进行剪枝,这样不容易陷入局部最优解;

  • 不仅使用到了一阶导数,还使用二阶导数,损失更精确,还可以自定义损失函数;



面试真题2

主成分分析的原理以及应用?

参考答案

 主成分分析的原理六哥主页简介内以前文章【数据分析岗】机器学习(二)

② 使用场景

    • 维度灾难:也就是变量多,在训练集保持不变的情况下,使用的变量越多,待估参数就越多,学习量上升、学习效率下降。

    • 变量之间的相关性高:变量之间的相关性高,说明数据是有冗余的,数据中的信息是有重叠的。

③ 业务场景举例

    • 人脸识别

    • 人口统计学

    • 数学建模


三、AB实验

▌面试真题1

现在抖音在推荐模块的底层推荐算法进行了优化,预计短视频的完播率会有明显的提升。针对这个问题,如何进行验证?


参考答案

可以通过AB实验进行效果验证。


面试真题2

针对这个问题如何进行实验构造?介绍一下你检验的过程


参考答案

针对打开抖音推荐模块的用户进行随机分组

然后通过假设检验进行验证。

① 实验设计

    • 对照组:老推荐算法模型。

    • 实验组:新推荐算法模型

② 建立假设

    • 原假设H0:实验组和对照组的人均完播的视频数量无差异。

    • 备择假设H1:实验组和对照组的人均完播的视频数量有差异。

③ 选择检验统计量

    • 假设每个用户的短视频播放相互独立,根据中心极限定理可知,实验组及对照组的人均完播的视频数量均服从正态分布,根据正态分布的可加性,可得到检验统计量

           

④ 选择显著性水平

    • 一般选择第一类错误5%是业界最常用的标准。接下来将两组样本的观看时长均值、方差、样本量计算出检验统计量z中,计算出z的取值结果。

    • |z|≥1.96时,认为在第一类错误5%的情况下,新推荐算法对用户人均观看时长有差异。

    • |z|<1.96时,认为在第一类错误5%的情况下,新推荐算法对用户人均观看时长无差异


面试真题3

视频的完播率,可以通过沿用前面的检验统计量的构造思路码?


参考答案

不可以。实验组和对照组的完播率计算的样本不满足样本独立性,所以实验组和对照组的完播率不服从正态分布。



▌备考Tips

除常规对简历进行深挖以外

字节『数据科学岗』相比一般的数据分析岗

机器学习模型因果推断原理要求比较高

可以看看下面的校招数科岗JD要求:




由于字节是典型的注重用数据驱动增长的公司

每天线上会同时运行大量实验快速验证、迭代策略

所以日常工作中会接触到大多因果推断的工作内容

因此无论是在JD要求上,还是面试的时候

也会着重考核AB测试相关的知识


建议大家务必要对AB实验原理进行熟练掌握

会举一反三,归纳、演绎变体考法

争取做一题,会一类,提高备战效率



以上AB实验面试真题还可衍生其他考点,例如:

  • 该实验的指标如何选取?
  • 实验周期如何确定?
  • 如何确保实验和对照组用户在测试前无差异?
  • ...等等



📌AB实验相关文章推荐阅读:
【数据分析求职】AB实验框架+高频考点汇总(一):https://www.nowcoder.com/discuss/826505
AB实验高频考点!命题面试官大白话讲懂『多重检验』https://www.nowcoder.com/discuss/1004929

往期分享帖推荐


更多文章,可见牛客主页
欢迎交流讨论,希望可以帮助到你~~



更多模拟面试

全部评论

(41) 回帖
加载中...
话题 回帖