字节跳动 | 算法面试复盘

2020 年 5 月 13 日 AINLP



作者 | 陈以二
整理 | NewBeeNLP


面试锦囊之面经分享系列,持续更新中 

赶紧后台回复"面试"加入讨论组交流吧 

写在前面

字节跳动是一直想去实习的公司,3月份的时候觉得自己学的还不够扎实,暂时没有投简历。4月14号在官网投了简历,4月15号就有小姐姐打电话预约面试时间,今天下午面试。

非本计算机专业出身,在研究生阶段做过基于机器学习和CNN的目标识别。没论文,没竞赛,只有所里的公司实习。编码方面也有些生疏,其实劣势蛮大的。

一面(约1h)

一面面试官是很亲切的小哥哥。在我回答问题的时候一直微笑点头,让我也不那么紧张了。

  • 自我介绍:姓名,年龄,本科和硕士学校,专业,相关经历,来这里实习的原因。
  • 讲一下熟悉的模型:说了项目里用到的RF,从特征构建、特征选择、模型选择、到模型调优。
  • 为什么选了RF?:项目里更关注性能和计算量的平衡,RF相对可控。
  • 用的什么指标进行衡量的?:一开始是acc,但是对于不平衡数据不够准确,后来基于混淆矩阵计算了一些指标。
  • 不平衡应该怎么做?:过多数据欠采样,过少数据过采样,另外还有一些基于模型的方法比如SMOTE方法等。
  • RF和GBDT的区别是什么?:都是集成方法,分别是Bagging和Boosting,并行和串行。
  • GBDT可以并行吗?:原理上是不行的,这也是训练过程比RF慢的原因。但是XgBoost作为GBDT的一种工程实现方法,在决策树的构建过程中加入了部分并行技巧,加快了速度。
  • GBDT和XgBoost的区别是什么呢?:XgBoost是GBDT的一个工程实现。1)在树的构建过程中加入了一些并行技巧;2)GBDT本身是没有预剪枝等过程的,XgBoost在构建的过程中加入了一些正则,起到了缓解过拟合的作用。
  • (因为提到了CNN相关的东西)ResNet的结构特点以及解决的问题是什么?:ResNet之前,大多认为深度越深,性能越好实际上不是,会出现信息消逝的情况。ResNet提出了“捷径”概念,将浅处的输出牵到深处,形成一个残差,相当于把信息又往深了传递了一下。
  • 了解BN吗?:为了解决网络中数据分布变化大,学习过程慢的问题。采用标准化,又引入两个可学习的参数来重建浅层网络学到的分布。
  • 编程题,构建哈夫曼树:本身不了解哈夫曼树,但是了解哈夫曼编码的一些思想,讲出来后,小哥哥引导着思路,然后我写出了代码。代码本身还有优化空间,但是小哥哥也说通过了。
  • 反问。

让我稍等下一面。

一面总结:
其实一面里问到的东西都还是偏基础的,基本上问题问出来后,一次回答就够了。面试官会再从回答中牵扯到的知识点问起。主要针对做过的项目提问。

二面(约1h)

二面是个小姐姐面的。难度也确实比一面更难些,问的更细了。

  • 自我介绍。同上
  • 介绍RF和GBDT:串行并行角度。GBDT是残差学习角度。
  • GBDT具体细节:大致说了下思路,感觉答的不是很详细。
  • 挑一个熟悉的项目说一下:RF提特征、选特征、调参、评估。
  • 有自己手写代码实现过RF吗?:没有....(得去看看了
  • 特征选择里提到的互信息选择,互信息的计算公式是什么?:忘记了..
  • 为什么选择了RF呢?RF由DT组成,有一定的解释性,性能和计算量相对可控。
  • 对于RF可解释性这一点,做了什么相关实验吗?:突然想到RF本身引入了随机性,可解释性没有很强,就说到对于里面的树的路径可以进行分析得到特征重要性。(这部分有点忘记了,赶紧补充学习)
  • DT了解吗?:知道的有ID3,C4.5,CART树,分别用信息增益,信息增益比,基尼系数作为启发函数。
  • 写出信息增益的表达式:直接在代码编译器中写,有点慌了,写出来的公式不够清晰,讲的时候也讲的不是很好...
  • 代码写一个决策树,给定数据,启发函数是信息增益,假设所有特征的值都是数值类型的:定义节点类、构建节点、选取当前节点的最优划分特征(计算所有特征的信息增益)、数据划分、构建子节点、考虑停止划分的条件。花了好长时间写了个代码框架,然后和面试官讲了思路。
  • 写的决策树是几叉树?:暂时考虑的是有多少种不同的取值就有多少个分支,意识到这肯定是不对的,优化的话可以将所有取值进行划分,比如二划分就可以改成二叉树。
  • 反问

二面总结:
确实比一面的时候挖的更深了,不仅问原理,还会问“你具体是怎么做的?”。如果说一面的问题是各种参考书里热门的话题的话,二面的问题会在此基础上深挖,挖到不那么热门但是细节上很重要的问题,会强调具体实现。

HR面

小姐姐很温柔,聊了28分钟的天,主要涉及到的话题:

  • 什么时候可以来实习?
  • 现在可远程办公,是否考虑转为日常实习?
  • 是主动官网投递还是在实习僧等网站投递?
  • 对搜索部门有了解吗?
  • 聊聊之前实习过程的内容,以及遇到的难点,怎么解决的?
  • 自己的优点和缺点是什么?优势是什么?
  • 有什么职业规划吗?
  • 为什么说喜欢字节呢?有哪些了解?:因为的确挺喜欢的,从氛围、技术、个人发展、城市这几个角度说了下。
  • 还有别的投递和Offer吗?:如实回答了。

总结&反思

字节面试的整体氛围还是很棒的,面试官会边出题边引导,能缓解紧张情绪;

很多公式记的不牢,还需要理解更深入些,记得更牢些;GBDT相关的细节需要再进步写;特征选择因为做的比较久远,有些忘记了,需要赶紧总结回忆;编码题没有要求Bug Free,但是本身编码上还需要加强。需要学习NPL相关的东西。自己简历上的东西还需要再升级些。

- END -


推荐阅读

AINLP年度阅读收藏清单

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

DistilBERT Understanding

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


登录查看更多
1

相关内容

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。
专知会员服务
139+阅读 · 2020年5月19日
【CVPR2020】MSG-GAN:用于稳定图像合成的多尺度梯度GAN
专知会员服务
28+阅读 · 2020年4月6日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】机器学习中的常识性问题
专知会员服务
74+阅读 · 2019年12月2日
【ICLR2020】五篇Open代码的GNN论文
专知会员服务
47+阅读 · 2019年10月2日
7轮面试,入职阿里,他做对了什么?
码农翻身
7+阅读 · 2019年9月5日
作为字节跳动的研发面试官,有些话我不得不说!
互联网架构师
12+阅读 · 2019年4月22日
备战AI求职季 | 100道机器学习面试题(下)
七月在线实验室
9+阅读 · 2019年3月22日
备战AI求职季 | 100道机器学习面试题(上)
七月在线实验室
9+阅读 · 2019年3月16日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
机器学习面试题精讲(一)
七月在线实验室
4+阅读 · 2018年1月11日
深度学习面试你必须知道这些答案
AI研习社
18+阅读 · 2017年10月31日
Graph Analysis and Graph Pooling in the Spatial Domain
S4Net: Single Stage Salient-Instance Segmentation
Arxiv
10+阅读 · 2019年4月10日
Arxiv
6+阅读 · 2018年3月29日
VIP会员
相关VIP内容
专知会员服务
139+阅读 · 2020年5月19日
【CVPR2020】MSG-GAN:用于稳定图像合成的多尺度梯度GAN
专知会员服务
28+阅读 · 2020年4月6日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】机器学习中的常识性问题
专知会员服务
74+阅读 · 2019年12月2日
【ICLR2020】五篇Open代码的GNN论文
专知会员服务
47+阅读 · 2019年10月2日
相关资讯
7轮面试,入职阿里,他做对了什么?
码农翻身
7+阅读 · 2019年9月5日
作为字节跳动的研发面试官,有些话我不得不说!
互联网架构师
12+阅读 · 2019年4月22日
备战AI求职季 | 100道机器学习面试题(下)
七月在线实验室
9+阅读 · 2019年3月22日
备战AI求职季 | 100道机器学习面试题(上)
七月在线实验室
9+阅读 · 2019年3月16日
BAT机器学习面试题1000题(331~335题)
七月在线实验室
12+阅读 · 2018年8月13日
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
机器学习面试题精讲(一)
七月在线实验室
4+阅读 · 2018年1月11日
深度学习面试你必须知道这些答案
AI研习社
18+阅读 · 2017年10月31日
Top
微信扫码咨询专知VIP会员