- 面经熊整理
- 阿里面经
- 百度面经
- 华为面经
- 快手面经
- 美团面经
- 拼多多面经
- 腾讯面经
- 字节面经(下次更新从面经熊字节篇16开始看)
除了第二面是视频面,其余均电话面 内容太久了,没有记录
主要围绕了几个问题:
- 项目相关:从特征工程到模型选择到最终上线都问的比较透彻
- 机器学习的常见问题,例如 LR 和 SVM 区别
- 对于深度学习,例如 LSTM 等的理解,还有它的改进 GRU,还有梯度消失、梯度爆炸等等
- 对深度学习框架的熟练程度
- 代码考察:快排、最小的 K 个数、扑克牌、跳台阶等常问问题
- 语言基础:C 的相关特性、多态、对于 python 的熟练程度等
- Linux:常见的操作指令,还有一些场景题:例如 shell 里面写查询一个服务器日志文件中访问最多的那个 ip
- 数据库相关操作
- 一些概率题、智力题
- 推荐相关,例如 DNN、FM
- 学习能力,对于哪些方面比较关注和了解,结合着顶会说比较有说服力
- offer 情况
- 自我介绍
- 城市意愿
- 女朋友
- offer 情况和比较
- 有成就感的事情
- 实习时间
- c++程序从启动到运行成功的详细过程;
- java 中的 finally 语句块是否一定会执行;
- java 中的 map 是否是有序的,要如何实现有序(说实话这题我根本没懂他啥意思,也不 说到底是按插入顺序有序还是按 key 有序,我问有序的意思是不是遍历出来之后 key 是按序 排列的,他支支吾吾说不是,然后又支支吾吾说这题过吧,你特么好歹说下你的有序啥意思 啊);
- linux 中查看进程状态和查看开放端口的命令;
- 如果服务器启动的时候我想执行一些命令,该如何实现;
- sql 语句中的 group 的处理过程;
- 数据库中为什么要定义范式,如果不定义会怎么样;
- 随机森林与 gbdt 的异同;
- bagging 的思想是什么,本质是什么;
- embedding 的作用是什么;
- 神经网络中的梯度消失和梯度膨胀是什么,怎么解决;
- 激活函数的作用;
- 如果选出好特征,去掉不好的特征;
- 如何检验过拟合,数据量很小怎么办;
- 如果线下 auc 很高,线上各项指标都不好,可能是因为什么,怎么解决。
说真的要是没有后半部分那些问题,我真怀疑我不是在面算法岗。 面试官全程语气充满质疑和嘲笑,我回答问题的话通俗了一些他还会以充满嘲笑的语气复述 一遍,然后说句行吧。。还喜欢用充满嘲笑的语气问我:你确定是这样?比如 11 题,我说 梯度裁剪,限制梯度值可以避免梯度爆炸,他说:你确定??行吧我不确定,是我太菜了。 面试官看着我的竞赛经历,说了句:我看你这些比赛,天池什么的,都没听说过,我看你们 计算机的不是都参加那什么 acm 么,学校好像还有那种队伍?你没参加过?。。。阿里的面试官,不知道数据竞赛为何物,没听过天池,甚至 acm 也不了解的样子,我当时有些语塞。 因为我计算机基础那些东西复习的实在不到位,很多东西都是本科时候的,现在忘得一干二 净,所以前半部分的问题答的稀烂,确实很菜。最后面试官问我:我看你计算机科班出生的, 怎么前面那些问题啥都不会?。。把我整的异常尴尬,我觉得我真的给南大丢脸了。
二面全程聊项目,中间穿插着一些问题。 我的项目就是比赛经历,中间问的有些东西毫无意义我就不说什么了,面试官居然因为我比赛没有调过参,没有怼模型,就说我不够专业,没有深度。。好吧一面面试官不知道数据竞赛是啥,二面面试官知道竞赛是啥了然而一点也不了解竞赛,不了解就算了,我给你讲不就行了,偏要自以为是,自己觉得是什么就是什么,你以为你是 hxm。
一面结束就非常难受,二面结束更加糟心,只想直接把我挂掉。我还真的从来没有面大厂还希望自己直接挂掉的经历。
-
一面: 自我介绍,然后面试官从简历最下面的项目开始问,问我做了几件事(3 件),问了大概 15 分钟,问的比较浅,讲了整个流程;然后开始问比赛,给他讲了整个流程,问了些细节,我 没讲明白,然后把流程图画了出来,继续给面试官讲。接着问了另一个比赛,讲了下整个流 程,然后问对模型有没有什么改进,输入进生成模型的是啥,有没有对生成式模型改进。感 觉面试官还是比较满意的,问我平时做题多不多,能不能写个内存拷贝(。。。),那你写个二 叉树的中序遍历吧(我只会递归的),写完后他让我说写非递归的思路,说完后我又推了两 下把循环的写了出来。
-
二面: 自我介绍,然后只问了一个项目,全程都在问你做这个的意义在哪,我没能 get 到面试官的 点。面试官也觉得我不理解他说的,中间问的太多,很多忘了,两个人都 get 不到对方,来 回了 4、5 次,然后跳过了,就说了另一个问题,问我有没有想过为什么同样的数据,二分 类的效果就好,多分类的就差?(回答的很不好,我是从数据标注质量这个角度回答的,之 前没想过为什么不好,只知道堆模型,一个项目聊了得 40 多分钟)。然后问我平时写程序 吗?(懵)我说写一些神经网络的,然后实验室做一些业务项目,不涉及算法,他接着问本 科写过什么程序,我说就做过一个软件杯,然后面试官不想问了,他让我写个组合的问题, dfs 写了,问我这个程序有没有啥问题,我没明白意思。。。然后问我让你写排列的话怎么办, 然后给他讲了下我认为的排列和组合区别,然后让我改成排列。
-
三面:
上来让我自我介绍,然后开始问我问题,这一面真的自闭了。你为什么投大搜?你了解大搜 吗?未来 3-5 年的规划?然后又问我,平时一般做啥,然后优点,缺点(想了半天就想到一 个),然后就开始给我介绍三个大组,让我想想自己适合什么,然后就开始让我提问。(这一 面整个都很爆炸,感觉被劝退)
-
四面:
自我介绍,详细点,这样他就不问细节了。然后聊规划,问我平时有啥爱好。然后给我介绍 他们大组的 3 个小组。最后让我向他提问,我问了很多,面试官一直提醒我优秀的同学一般 都会问这个问题, 我始终没问出他想让我问的(因为不优秀所以问不出吧。。),后来他说让 我随便问关于大组、部门和整个百度的都可以。然后最后不是太满意吧,我问的问题挺 low 的,最后我问他你觉得我能进你们组吗?(双方都很尴尬)
大搜面试过程很舒服,面试官虽然没用过自己简历里的方法,但是很认真的听,提问,过程 中一直引导,面试官很专业, 面试体验非常好。
-
一面: 自我介绍,上来先做 2 道题,一道是堆排序,一道是加权采样(面试官临时想的一个问题), 然后就是项目时间,大概 20 多分钟聊了下项目,然后开始问基础,问了 lstm,让画图讲, 让讲 textrank 原理,写公式,对着讲,问有没有做过聚类(没有),有没有用传统方法做过 分类(没有),有没有做过传统机器学习模型(没有),走时问我知不知道聚类的算法(只知 道 kmeans,没操作过,其实我还知道个 DBSCAN,但是还没说完面试官就走了)
-
二面: 自我介绍,对着项目问,具体细节就不说了,让我讲 transformer 的原理,结构图,bert 原 理,gpt,elmo,xlnet,Erne,问为啥不用 xlnet 和 Ernie(不会用,没 pytorch 版,bert 资料 多),bert 两阶段是如何执行的(。。。),推荐的算法懂吗(说了几个名词,具体让解释下, 一个都不会)这面面试官水平挺高的,还问了些记不太清了,就考道逻辑题,3 张扑克,一 张大猫,分成 2 堆,一堆有 2 张,一堆 1 张,从 2 张的那堆里去掉一张不是大猫的,问剩余 2 张各是大猫的概率。
-
三面: 自我介绍,开始向我提问,问了特别多,快 50 分钟,关于成长,压力,交际,工作,问题 太多,然后做了一道推荐的场景题,具体就不说了,我题都没听懂,最后我问了 3 个问题, 面试官说虽然你说你喜欢推荐,但是我感觉你完全不懂推荐,我送你出去。(告辞。。)
-
一面: 自我介绍,2 道题,C++状态码返回(就是异常处理,然后设置不同的返回值表示是否正常) 与 trie 树(字符串的搜索)。聊项目,然后想他提问。
-
二面: 自我介绍,让挑一个项目给他讲,然后做了一道题,阿拉伯数字+表示数字的中文字符转换 为数字,比如一千 3 百 0 五 ==> 1305
aig 面试官太厉害了,我简历上都是自己做的,有些时间太长不记得细节了, 搞的我都不敢 说是自己做的了。。。
-
一面:
聊项目,问 transformer 的 encoder 输出的 k,v 是不是相同的,如果相同,为什么需 要两个。问了 word2vec 的 cbow、skip gram、负采样的细节(非原理),然后问 bert 怎么的 源码一些细节,其余问题记不清了。编程题,给一个数组,将其中的非 0 元素移动到做边, 0 移动到右边,不改变非 0 元素的相对顺序。
-
二面:全程聊项目,问了下基础的机器学习的算法有用过吗(没用过,打扰了。。原理啥的 也记不太得了),编程题链表归并。 三面:等了一会,他们总监比较忙,(另外因为安排的原因,一面面试官其实是
-
三面技术面 试官)就挺幸运地跳了一轮技术面,直接到总监面。问了下未来的规划,自身成长经历等等, 介绍了他们部门和对应届生的成长规划。
美团的面试官水平真的高,技术面问的我都淌汗了,总监面也很专业。
一共面了才 30 分钟,不知道是不是凉了......
拼多多算法面试还是很注重基础的,可是我基础好久没看了......需要再复习复习算法基础......
基础知识: 先问了了解哪些机器学习算法,
之后又问了3 种决策树,区别,以及一个连续特征如何建树 逻辑回归的介绍,如何训练,几种训练方法
此外问了一些项目问题
20 多分钟之后,做了一道题,先说了思路,面试官肯定之后写完也没用测试,就结束了面试。
-
一面(1 个小时)
一面是个小姐姐面的,先是自己介绍,然后就是自己细讲项目,完了就是项目中用到的算法 以及里面的知识点什么的,因为间隔时间久远,想不起来问了什么具体的,最后就是一道编 程题,我做的是逻辑回归(ps:我面试之前看面经感觉人均快排,还准备了普通快排,链表快 排,堆排,并没有用上,所以编程题考什么我觉得对于别人不具有参考价值)
-
二面(一面 7 天以后,2 个小时) 这个应该是某个部门 leader 面的,先是两道编程题,编程题如果不看优化解法是属于 leetcode 简单题,两道题都是先用时间空间不优化的写出来,之后面试官让再写优化解法 (可能直接写优化解法就会省很多时间了,题目我就不讲了,因为太不具有参考价值了,就 是 leetcode 上的简单题),优化的话就是优化时间或者空间。两个编程完了就开始问问题, 也是从自己做的项目开始,这个细节问的会比较清楚。总体的其实跟一面差不多,不过二面 会问你为什么会想到这个方法去处理的在项目里的问题,主要考察独立解决问题的能力以及 自己是不是有能力去解决问题,当然后面也问了项目中用到的算法。嗷,忘记了,还问了数 据结构,计算机网络,以及操作系统的知识,就是这三个部分基础的知识,被问到的时候我 有点懵,因为有点突然,回答的时候战战兢兢(毕竟这三块的理论知识好久没碰了)。
总体来说我二面时间比较久,主要是编程花了很久,然后后面的知识问的范围比较广泛(计 算机网络,操作系统,数据结构,机器学习算法)。
-
hr 面(二面 7 天以后) 主要就是家在哪,有没有男朋友,希望在哪工作一类的,就是正常 hr 面的步骤。
-
总结一下
拼多多感觉主要考察点就是从项目开始发散,所以项目里用到的东西一定要认真准备,当然 没有项目可能连笔试机会也没,所以项目,论文,实习怎么也得有一个的。然后编程题主要 就是简单题为主,但是需要会简单题的优化算法(我觉得编程题的具体题目对于别人来讲参 考价值很低,可以作为面试前的练手)。面试感觉不错,一面二面的面试官都很友好,二面 的时候面试结束时间是晚上 12 点,面试官还是很辛苦的。 虽然我知道我的面经写的马马虎虎,啥都没有,但是希望对大家有一定的参考价值吧,反正 面试前就是几本常用的机器学习系列书籍,还有 svm,lr 这一类的推导,认真复习,自己想 好对于自己 的项目可能会问到什么,提前准备好,还是很有用的。 春招艰难,但是希望大家不要灰心,早日上岸。
- 自我介绍
- 项目介绍完之后细扣项目,数据清洗,LSTM 结构,如何评估,怎么调参的等等吧
ps:前面聊的还行,后面写题心态蹦了
-
SQL 简单题,奈何早忘的一干二净了,难受
-
算法题,从 n 个数据中抽取 m 个数据,保证每个数据被抽到的概率为 m/n。没见过这种题 型,崩,最后说了思路。
ps:这里建议非科班面大公司搞搞 sql,AB 测试,大佬随意面。准备的模型推导一个没问,裂开。
-
一面: 自我介绍,聊项目,项目涉及目标检测,手写 softNMS 代码
-
二面: 自我介绍,聊项目,写一题代码题:
输入正整数 N,从1开始打印不超过 N 位的所有数字,比如:
N=1, 打印 1,2,3,。。,8,9
N = 2,打印 1,2, 3, 。。。,98, 99
N = 3, 打印 1,2,3, 。。, 998, 999
一开始我还以为是快速幂, , 本质是用字符串来存储 N 位大数,从 0 开始用字符串加 法逐次加 1,然后打印出和,等最高位进位的时候就停止打印。
- 一面:
- 自我介绍
- 介绍项目,小样本问题
- 梯度消失,梯度爆炸
- BN,LN
- 过拟合,欠拟合,如何调参
- resnet,densenet
- 传统图像算法,lr和SVM
- 场景题:给两个商品,判断是不是同一款式
- 算法题:图上两点最短路径
- 二面:
- 介绍论文和项目
- faster,rcnn
- 推荐,搜索算法(不了解)
- 卷积定义和含义
- 有哪些正则,L1和L2,L1梯度,在零点怎么办
- LR,cross entropy和mse有什么区别
- 算法题,给有向无环图,输出其拓扑结构
- 三面(加面图像面)
- 介绍论文
- 算法题:字符串A交换两个字符任意次数能得到字符串B,则AB是同一类,给定字符串有多少类。
它不是那种凉不凉的问题。 他真的是那种,那种很少见的那种,让人感觉......这就完事儿了?
-
上来先自我介绍,然后讲了一个项目。
-
因为项目里提到 Faster RCNN 了,所以大致讲了一下 Faster RCNN,只记得上面那支叫 RPN 了......
-
然后小哥让提出 5 中方法加速 Faster RCNN 预测。......也就说了三种......,这个真的想不 到,可能也有点慌,思路打不开,在面试完的一瞬间突然又想到了一个......
-
就跟小哥解释说,平时想的都是加强 Faster RCNN 的性能,然后小哥说那你就说 5 种提 高的方式吧...... 然后就有点头大,然后天马行空的想出了多尺度 RPN 和深监督分类回归......
-
-
接着是笔试题
- 很基础,就是卷积大小和计算量的问题
- 然后让实现一个卷积操作,可以用 numpy,然后就用土法子做了一个,提交给小哥看 然后小哥一眼就发现了我的输入忘记 padding 了。。卷积结果忘记求和了......反正就漏洞百出。
然后就是问小哥问题,就结束了
总之就是感觉面试挺基础的,也注重思考,但是感觉自己有点慌,思路打不开,要么就是没 办法平静下来顺代码...... 唉...... 一 o(ffer)难求。
-
一面:聊项目,问了下 bert 的输入以及和 gpt,elmo 的区别,然后问知不知道 ernie 和 xlnet。 编程题一个棋盘,起始点在左上,终点右下,棋盘上有一些棋子,找到一条路径,使得经过 的棋子最多,并且记录下这条路径,最后面试官让我向他提问。
-
二面:全程聊项目,问了下知不知道 gbdt 和 xgboost(打扰了。),然后面试官说没事,做 了个堆排序的题,最后面试官让我向他提问。
我的面的公司比较少,感觉基本都在聊简历,另外,比赛、实习、论文、acm,个人觉得有 1-2 个就够了,做的出彩点就行,如果是比赛的话,名次靠前很有用。 最后,个人觉得刷题就完事了(虽然我也没刷几道),但这个收益真的大,算法、研发、外 企都用得上。
- 腾讯优图,初面,全程 50 分钟。
- 先说说感受吧,面试完成之后查了一下这个部门,呜呜好羞耻,自己真是班门弄斧了,关公面前耍大刀了。因为我项目中比赛作品比较多,有点偏机器视觉和图像处理,而面试官正是这些方向的 researcher。
- (腾讯优图实验室是腾讯旗下顶级的机器学习研发团队,专注于图像处理、模式识别、机器学习、数据挖掘、深度学习、音频语音分析等领域开展技术研发和业务落地。团队成员将近百人大都来自于清华、北大、中科院、上海交大、南大等顶级院校的博士、硕士,皆具有较深厚的学术研究背景,同时亦有较强的工程实践能力。)
- 好啦不说了,记录一下本次面试吧,全程问项目,中间穿插着一些基础知识的问答,先说说基础的吧
- Linux 下怎么改变所属用户组以及权限
- valotile
- 交叉编译工具熟悉哪个
- 项目中用到的图像处理算法的原理,一步步问(中间其实我还怕面试官懂不懂这些啊,现在后想起来真是羞耻啊)
- 要是给你设计个图书馆预约系统,说说你是怎么考虑的?
- 公司实习的做的什么东西?怎么克服遇到的问题的?
- 问我简历中使用到的框架如 Doubble 等
- 深度学习还有机器学习平时用到过吗?说说常用的框架和算法?
- 一面:2道题,树(一个字典,一个文本,找出字典中所有出现在文本中的词);给一个数组,求连续子数组和为 k 的倍数的所有子数组。然后围绕简历问,问 transoformer 能完全替代 rnn 吗,过拟合的几种图像,分析原因,诸如此类的问题,基本都是面试官自己日常中遇到和思考的问题,很有意义,都是很实际的问题,但是我没想过。答得稀烂。
- 二面:一个有序数组[0,0,0,1,1,1,1,1,1,3,3,3,3,,3],给一个 k,找出 k 的左边界,不存在就返回 -1(二分),聊简历,讲下 transformer 相对于其他 rnn 的优点,讲下 self-attention 和 attention。 聊了下 bert 的文本分类,然后扩展到场景题,问一个新的短文本,如何正确分到正确的类 别里取,不可能去重新训练模型(包括增量训练),也不是用规则这种。
- 三面:聊简历。然后问我神经网络怎么 work 的,提到了什么特征才使得他 work,全程懵。 编程 1-n 的全排列问题,输出所有的排列。
- 四面:全程开放性问题和场景问题。简单聊下项目,然后没问其他的问题。问听说过 multi- task 吗,bert 之后的几个新模型知道吗,只知道名字。问了下代价敏感学习和 adaboost,然 后问了下怎么判断过拟合,解决样本不均衡的方法,预防过拟合的技术,然后延伸到场景里 去,问该怎么用(不是只答个原理)。提了 2 个新概念,问了下想法(不具备普遍性就不说 了);bert 如何提取到更高层的特征。
- hr 面:时间比较晚了,简单问了下,身心健康,目前手里有没有其他 offer 感觉腾讯面试官更侧重应用场景,默认原理都知道,这几轮面试学到了很多。
-
面试官应该是在自己的出租屋内,着实让我惊讶于工资如此高,而房子为何如此简陋。
-
问题 1:描述一下自己的一个项目;
-
问题 2:给定两个数组,其中一个是二叉树的所有节点,另外一个是这些节点对应的父亲节点,现在给定任意一个节点,找出它对应的子树的节点。
-
问题 3:给定两个数组,x 和 y,验证是否存在任意一对(x, y),使得 x^y(x 的 y 次方) > y^x(y 的 x 次方)。
-
问题 4:有啥问题问我。
-
-
本来都打算放弃头条了,今天还是试了一下,这两个其实不算难,但是还是靠面试官稍微点拨了一下,都解决了,没想到立马凉凉,一脸懵逼的我。算了算了,此生与宇宙条无缘。发出来造福群众。
- 头条多媒体算法工程师,应该是拿到了白金码,跳过了笔试直接安排面试,一共四轮技术面。头条的面试是在牛客上面的,视频窗口很小,反倒是写代码的窗口巨大,几乎就是在牛客刷题时的界面。四轮下来整体感觉很良好,面试官都很 nice,HR 跟进也很快。我的方向相对较偏,但技术细节也很聊得来,这点很惊喜。最后拿下 offer。准备的时候从牛客得到不少帮助,来回馈。
- 背景是 985 本科,硕士国外不知名学校。一直做音频方向。具体的问题可能不太适用,不过可以感受一下面试官问问题的思路和感兴趣的角度。前两轮面试更加注重于专业知识,技术细节,了解你做的多深。后两面更注重了解你思考问题的方式以及想做的内容和团队是否 match。
- 一面44min
- 问项目
- 具体介绍论文的方案,算法的复杂度怎么优化。今后想要做什么方面的工作,算法研究还是产品落地。
- 编程题 isUniqueChar 一个字符串内是否有重复字符
- C++相关的问题,是否了解虚函数,虚继承,多态
- 二面44min
- 问项目
- 音频领域的一些具体问题
- 你的经验和产品有什么可以结合的地方
- 对工作有什么要求
- 感兴趣的方向
- 工程中遇到了哪些优化复杂度的方法。
- 对工作有什么要求
- C++基础问题,函数复用,行内函数
- 三面20min
- 介绍最得意的项目
- 一道算法题。只说思路不写代码。
- 想做什么方向
- 四面30min
- 聊聊行业现在前沿的技术
- 谈天说地
- 国外和国内研究的区别
- 本科和硕士阶段做的最不好的事情
- 头条算法三面凉经(小透明首答,CV 今年不是红海,是死海吧,现在笔试天天做的都要自闭了)。0 大厂 Offer,无实习,有比赛 top全是视频面,每一面都简历面+编程,还是很刺激的,分享一些难点和有趣的题型,题主末流 985 猹硕,做视频分类和目标检测的,真心想进抖音和小姐姐愉快的玩耍,BAT,TMD 提前批除了头条,其他都高冷的不面我,百度最高冷了,上海视觉连笔试通知都没发我,真的不缺人呀,为啥本科 还开设 AI 专业,缺口呢??我都劝师弟师妹转开发了,前天淘宝技术部 hr 问我会不会前端+OPENCV,我。。我也没点前端和 Java 这个技能啊
- 一面
- BN 原理
- dropout,随机选神经元输出 0,下一次的时候,这些神经元权重是重新随机初始化,还是不变?
- n 个数的前 k 大,快排 partition,堆排都行
- two sum(升级版的 three sum 没考啊)
- 二面
- 问我 rcnn 到 frcnn 的进化路程,有什么区别和改进
- C++虚函数,纯虚函数区别? (???我不是投的开发呀,还好这个会。。 )
- Adam 原理
- 已知 rand3 函数,希望生成一个 rand7 函数(有意思)
- 求二叉树哪一个点到其他所有点的路径总和最小,树的重心
- 三面(因为上次面试太晚,三面放在了下周)
- 又是简历吹比,还不怎么提问(我感觉是凉了,就像找女票一样,对方对你完全不感兴趣,吹出花也没用呀)
- 编程就一题:abaaabbbaaab,要求 O(N)算法,求最长子串,包含相同数目的 a 和 b 字符,15 分钟写完动归(自以为已经很快)。升级版 abc 三个字符咋办,还是 on,思考了 6 分钟我说思路,延续前面思路,要按(ab,ac)的差值来哈希和查找,是不是 On 我还得思考下细节,然后估计后面排队同学还很多。。面试官说面试先到这里吧
- 原以为是三面稳经,hr 过半小时说我三面挂了,面试官觉得我编程能力不行???题主 ACM 铜牌虽然不厉害,但前几面编程都答得出来,有本事别出原题啊,前两面都两道编程,但三面就一题,就说我编程能力不行 ,你说我简历差我也就接受了,真的是被打击到了,心态崩了呀,昨天可蓝瘦了,也不知道是不是 HC 不够,宇宙条是要招神仙么,是我菜,实力真不配,总有些题超出了守备范围,那您换一个呗。。多考察考察我呀 T-T
- 数据挖掘
- 一面
- 一面面试官是个做 cv 的, 大概问了
- 卷积层个数计算方式
- 卷积计算复杂度
- softmax 公式
- softmax 的 loss function
- 卷积层的实现
- 总体来说一面面试官人还是比较好, 我不是做 cv 的,他问问题也比较循循善诱, 遇到不会的他也会引导。但就是感觉自己实习项目那么多机器学***数据相关的一点也不提, 有点不开心吧。。不过好在让我过了
- 二面
- 讲一下实习经历
- 然后我实习用到了 xgb, xgb 的 loss func 写一下。。。我写出来了, 面试官又说想看到底是怎么一阶二阶泰勒展开。。。 我说在代码框写的不是很方便,,然后就说了一遍。。感觉这个时候面试官就不是很满意了然后问 xgb 到底是怎么预测的, 我说把每一轮预测的结果加起来, 他说是分类问题,难道第一轮预测为第一类, 第二次预测为第二类, 然后把类别相加吗? 我说每一轮算的都是连续值, 是个得分, 最后把所有的加起来得到概率再分类。 面试官表情尴尬。(有大神来告知我么)
- xgb 和 gbdt 的优势, 答了一大堆。。中间掉线好多次我说道 xgb 里面实现了 rabit 通信框架, 可以支持 MPI 和 yarn, 他就问怎么通信怎么计算的。 我说支持通信框架只是可以用 yarn 来进行资源调度, 并行计算写在框架里的,并行主要是选择特征分类, 把特征分裂后排序之后并行选择。 他问我还有别的吗?我说不知道(有大神来告诉我么)
- 算法题, 有 N 个数字, 从中随机选取 M 个。 我说先把前 M 个都选了, 之后的 N-M个, 每次生成当前数字索引范围的随机数, 比如遍历到第 M+1 的数, 生成 1 - M+1的随机数, 如果小于等于 M 就跟前面响应索引的值交换, 如果不是就抛弃。面试官说不对, 我说可能想不出来, 让面试官提醒下。面试官说第一次选中第一个, 第二个选中的概率就是 M-1/N-1。我说那不能保证一定选中 M 个啊? 面试官说所以还要改进啊。 我顺着面试官的思路说我写不出来了, 面试官说让我回去想, 说今天面试到这里了。
- 然后就挂了。。。。。然后我回去查了一下, 发现那个算法题我第一次说的那种方法就是对的。。。总体来说都面的很难受吧, 头条是我第二想去的公司, 第一想去的蚂蚁金服已经在面试中两周了, 估计是没 hc 凉了。觉得面试很玄学, 也许提前准备了很多, 最后面试也面不上。 有时候又会有点怀疑自己。我知道自己可能跟很多大牛比起来实力很一般, 就是一个普通的中部 985 硕, 没有顶会, 没有数据挖掘 top, 没有 acm 奖牌,自己做算法题可能也没有特别有灵气。但是我也很努力准备了, 刷了算法题, 复习了很多计算机网络和操作系统基础, 努力准备手推算法还有分布式相关的知识点。知道算法岗竞争激烈, 但总是不希望自己被轻易否定的。吐槽完毕
小姐姐负能量有点多哈还有, 有知道上面问题答案的希望告诉我呀
- 由于实习拿了 offer 没去,直接三面,面试官在家里面试的我,面试时间 50 分钟,然后凉了。其实觉得问的都挺简单,下面给出了我的一些答案,可能答案有问题不自知,希望有大佬指点一下。
- 快速排序和归并排序描述一下,优缺点(描述)
- 快速排序:先选定一个基准元素,按照这个基准元素将数组划分,再在被划分的数组上重复上过程,最后可以得到排序结果。
- 归并排序:将数组不断细分成最小的单位,然后每个单位分别排序,排序完以后合并,重复这个过程就得到了排序结果
- 优缺点:归并排序稳定且最高最低时间复杂度都是 nlogn,但是占用额外空间;不稳定,最高时间复杂度 n2,最低时间复杂度 nlgn,不占用额外空间
- 加问快速排序很多重复数字如何优化
- 返回基准元素位置时返回基准元素的最左和最有索引,减少排序次数。
- 希尔排序知道吗?为什么这么操作
- 改良的插入排序。插入排序在数组基本有序的时候可大大降低时间复杂度,希尔排序通过将数组分块后对每块数组进行插入排序,每次排序完成,块数减少一倍,数组也相对变得有序,知道最后对整个数组进行插入排序,则排序完成。
- Hashmap 描述。多线程会发生什么问题
- jdk1.7 时由数组和链表组成;jdk1.8 时将链表改良为链表+红黑树
- 多线程 put 操作可能发生死循环或者元素丢失
- 加问死循环发生原因:
- 多个线程执行 put 操作时同时触发了 rehash 方法,可能会生成环形链
- 加问环形链形成过程(视频面不能画图,表示不好讲,面试官还是要求讲,就随便讲了一下,这里肯定说的很不清楚)
- 红黑树描述
- 节点是红色或者黑色的,红色节点的子节点必须是黑色的,根节点为黑色,叶子节点(Nil 节点)为黑色的。根节点到叶子节点的路径上的黑色节点一样多
- 加问为什么要使用不同颜色的点
- 红黑树是平衡二叉树的变形,由于平衡二叉树插入删除操作复杂特别是如果插入有序的数字时,二红黑树只要满足节点的颜色要求,在插入删除过程中满足红黑树定义要求,就能满足二叉树的相对平衡。
- Springmvc 的流程、handler 如何找到要处理的类(流程简单讲了一下,问知道前端处理器的那个 servlet 叫什么吗?答:是 dispatcherServlet 吗,看面试官反应以为自己错了,后来查了一下好像没错。handler 没答出来)
- 一些简单的项目问题
- Post 和 get 的区别
- Post 用来给服务器传送数据,get 用来从服务端获取数据
- Get 提交直接将请求信息放在 url 地址上会存在安全问题,Get 的长度一般限制在 2kb 左右
- 逻辑题:一个岛上的居民会戴红白帽子两种帽子,每个人只能看到别人带什么帽子,不能知道自己戴什么帽子,并且互相之间不能交流。如果某人知道自己戴红帽子,当晚必须离开岛。有一天岛外来了一个人,说:“你们之中至少有一个人戴了红帽子”,请问之后的几天会发生什么事情?(说出了答案且给出分析过程。让我证明这个结论,不知道是个什么意思)
- 如果由 n 个人戴了红帽子,那么就在第 n 天的时候这些人都离开了
- 算法题:给出一个数字矩阵,寻找一条最长上升路径,每个位置只能向上下左右四个位置移动。 (没太过脑子直接写的代码实现,复杂度太高,面试官要求优化,我说了一下思路,然后就结束了)
- 一分钟以后 hr 告诉我面试结果不满意,能马上告知结果这点还是很佩服的
- 快速排序和归并排序描述一下,优缺点(描述)
- 头条-Data 搜索部(数据挖掘)(牛客内推板块)
- 一面
- 自我介绍
- question1:给定数组返回任意满足(当前数大于左右两个数) 要求时间小于 O(n)。开始想返回随机数,面试官提示小于 O(n)就是 logn 就是二分,想了半天放弃了 QAQ
- question2: 给定 random7 返回 random10。想了半天放弃了
- question3: 蛇形打印,前两天刚做过,写完代码说 n!=m 的情况 改了一下输出没问题
- 问自己优点
- 问说自己为啥前两个题没想出来
- 以为凉了,差点去吃饭
- 二面
- 自我介绍
- 了解 STL 吗 问 map 内部实现 红黑树和 AVL 的区别 为啥是红黑树,有点凌乱
- 问 top n
- 写题:bfs 非递归遍历二叉树,应该是 queue<Tree*>q 写成了 queueq
- 问熟悉 GBDT 吗(挣扎了一下,不会 (这个要好好看看了
- 两面都问平时写啥语言
- 问你都用啥 那说一下 SVM 吧 balabala
- 介绍一下自己会啥 擅长什么(已经懵逼了
- 让我提问,问啥部门,说是搜索部门
- HR 面
- 先确认实习时间保守估计 12.24 原因:1.项目交接 2.项目中期答辩
- 都是学校的项目?时间 4 天?5 天?
- 实习多久?6 个月
- 怎么想保研跨专业?编程感兴趣
- 本科保研踩线
- 大学精力分配比例?地信学业,ACM(负责校赛),学生工作 计算机占一半,学业 1/3
- 为什么当时做学生工作,CS 有学生工作的少
- 锻炼了什么能力?
- 分享一个办的精彩的活动?介绍了四六级讲座
- 对方是否有参加人数要求?对方没要求,我们四级 200+人
- 是否统计都是本学院?
- 为什么参与人数多?
- 办活动背景?学习部应该组织,上一届外联部干
- 负责多少人?20 左右
- 都需要做什么?需要这么多人?
- 为什么觉得精彩?精力充足
- 硕士科研多?科研+海报
- 科研项目做的最好的?DR
- DR 背景?老师横向课题,实验室没接触过,自己积极想做,想做算法相关的
- 你负责的?
- 一共几个人做?师兄做了网页
- 遇到困难?
- 通过什么学习?
- 是否当时看论文?为什么当时没看?着急要,后来看了论文,公开比赛
- 未来想做算法,为什么?本科毕设就挑战一下,开始感兴趣
- 优点什么?勤奋,效率,沟通能力,相处能力
- 缺点?压力大的时候会着急
- 爱好?后期,大一开始,因为代码搁浅了,海报有成就感;视频酷炫
- 如果没问题的话,这周联系
- 头条补招投了安卓,0 安卓经验,不会 java,只会 c++,然后 c++被问崩了
- 一面:比较水,c++基础,不提
- 二面
- 你是搞 c++的,说说 c++的内存模型
- mmap 的全过程,它怎么进行映射?
- 那操作系统层面呢?操作系统怎么管理内存的? 它怎么给程序分配内存的
- stl 的空间配置器是怎样的?既然 stl 是用内存池进行分配,那它怎么回收 map 的内存?
- map 的 clear()后内存会怎样?
- 伙伴系统是怎样的,它的全过程是怎样的?怎么解决它的内存碎片问题?页是什么?页怎么和物理内存建立映射?对应的数据结构是怎样的?缺页过程发生了什么?
- 线程池写过吗?它的大小应该从什么方面考虑?多于线程数量的任务提交到线程池会发生什么?
- 怎么把多余的任务阻塞住?工作队列怎么实现?
- DNS 过程,DNS 劫持是什么?怎么防止?https 和 http 的区别,https 怎么建立安全通道?
- 二面全程没撕过一题代码,直接被问崩了,已自闭
- 上来直接算法题:平衡二叉树判断(敲出两种方法)
- 项目中的难点
- 分布式 session
- 一致性 hash
- 订单过期(RabbitMQ 整体架构)
- 购物车模块(Redis 数据存储)
- 分布式锁
- Zookeeper 一致性协议(ZAB)
- 又来了道算法题:数组的中位数(快速选择)
- select * from tableA whereA.a=?order by A.b 加索引优化
- JD:后端研发实习生-技术中台职位的面试
- 职位描述
- 参与字节跳动技术中台的服务端研发;
- 根据业务功能需求和设计方案进行开发,完成代码的编写和调试工作;
- 参与产品需求分析,设计系统技术方案,核心代码开发和系统调优;
- 参与数据分析及归因监控工作,从业务和技术视角全链路监控并优化中台服务。
- 问项目
- 负载 master-slave 分布式服务器的负载均衡策略;
- 线程池:线程之间的资源分配;如何调度线程;
- 多线程同步:锁;
- 边际情况处理: 主从服务器模式,如果主服务器挂了,如何从从服务器中选择合适的作为另一个主服务器;
- 基础知识 :
- TCP3 次握手如果改成 2 次会怎样?
- TCP 4 次握手改了之后会怎样?
- TCP 如何保证可靠性?丢包会怎样?
- 算法:反转链表?如何按照步长反转链表,即 1->2->3->4->5,步长为 2,反转为2->1->4->3->5;
- 今天面了 AI Lab 机器学习系统实习生 一面,遇到了非常规的面试题,凉凉。
- 聊了聊项目,不涉及技术。
- 让看了段 bash,django 的代码。一年前的项目,没复习,不会。
- 算法题:合并 n 个有序数组
- 开放题:在一个只能传输 0,1 的信道里面,如何传输两个数字。 这个我没做出来,也没搜到答案。
- 感觉这次面试挺奇怪的。职位要求写了“分布式原理”和”机器学习“,我还着重介绍了一下我相关的项目,结果这两个一个没问。非常尴尬。
- 普通的八股题也一个没问。 遇到非常规面试, 真是头大
-
这是第三篇字节面试凉经。这次面的部门非常巧,是收购的我之前实习的一家创业公司,现在变成了字节的一个项
目。字节的面试一直很硬,有些基础问题也没答上来,虽然题目做的还行,结果还是凉了,接
-
下来就是整个面试过程复盘
-
首先是介绍两个比赛,详细问了比赛的一些细节,数据、特征工程、模型
-
有几个印象很深的问题,自己回答的不是很好
- FM 了解么,具体怎么做的,怎么解决权重系数难训练的问题,梯度怎么更新的
- DeepFM 了解么,embedding 层是怎么训练的,结构是什么样的,比赛的 DeepFM是自己写的么(用的 DeepCTR)
- 回归问题有哪些排序指标么
- 推导过哪些公式,能现场推导么
- 推荐系统离线指标有哪些
-
算法题:
-
上来就说,我们先来一道简单的吧,然后最长回文字串,这道题很早之前做过,知道有个马拉车算法,但是想不起来了,就写了一个 n 方的,面试官说可以
-
枚举全排列,光速写完
-
最近公共祖先,我只想到了记录路径求交点,说了思路和时间复杂度,一开始忘记问有没有指向父亲节点的指针
-
以上就是面试的全部内容,时长一个小时,总之就是字节的面试是我面的最硬核的,就是会一直问到底,看你到底掌握到什么程度,如果掌握的不深刻很容易就被问出来了。一般字节的实习面试是一面二面连着面的,面完直接让我走了,估计是凉凉了,进字节真的太难了
-
更新:对了,感觉字节对算法实习生的开发能力要求也比较高,开头问我对 c++了解有多少,多态、继承、模板等了解么,写过的 c++代码量有多少
- 去年这个时候,实验室聚餐,听到师兄说实习对以后找工作非常重要,便开始投简历。投了腾讯优图,旷视,字节跳动,学校附近一个小公司,还有依图。前面几个都没过,最后幸好依图收留了我。现在想想当时真的是个愣头青,论文没有,只是在投,也没刷几道题,就敢投大厂。哈哈哈。在依图做了半年离职。上个月看到学长发腾讯优图的实习生招聘信息,便决定投一投试试。去年面试的公司只记得字节跳动和依图了,加上最近面的优图,分享一下面经。
- 一面
- 问在投的论文
- GBDT 和 XGBOOST 的区别
- L1 正则化和 L2 正则化的区别
- 算法题,动态规划,记不清了,当时做了好久,勉勉强强做对了
- 应该还问了一些问题,忘记了,时间太久远了
- 二面
- 问论文
- 算法题, 判断一棵二叉树是否为平衡二叉树,一开始没写对,面试官提示后让我说了一下思路,没让再写。当时说的也不是最优解
- 算法题, 海量数据 TopK 问题。一般这种问题都是用哈希表分治+堆排序,但是当时不会,所以挂了
- 各位大佬们,请问你们有没有面 字节跳动-安全与风控 算法岗的同学啊,,,,,,下周约了面试,我们来交流一下啊
- 面经如下:(字节效率很快,这点非常喜欢,一面到意向书撑死一周)
- 一面
- 项目
- 一堆操作系统,计算机网路和数据库的题(计算机基础知识,但是很基础)
- 不同算法比较不同(推荐算法)
- 算法题,一个 mid(dfs),一个 hard,,,貌似 leetcode 85
- 一面前面答的贼烂,但是面试官给过了,,可能我算法题硬刚下来了吧。。。。。感谢感谢
- 二面
- 一大堆机器学习的公式推导(都常见的)
- 场景题,反作弊的
- 一个 hard,不是原题,但是有类似题目,题号忘了,,面试用线段树做的
- 二面表现自我感觉还行~
- 三面
- 一个场景题(给了 10 分钟思考,又瞎说了十几分钟)
- 一个 hard 题,确实难啊,艰难的给出了思路,没让写代码,不是原题(或者我没做过。。。)
- 三面就这俩问题
- 已拿意向书,还愿,感谢各位大佬~
- 一面
- CNN 中感受野/权值共享
- Resnet 理解
- Resnet 相比全连接什么区别
- Alexnet/VGG/Densenet/Googlenet
- 什么是梯度消失/爆炸
- RNN/LSTM 解释
- LSTM 怎么缓解梯度消失/Resnet 怎么缓解梯度消失
- 有什么方法能解决梯度消失
- 集成学习
- XGBOOST 理解
- 手撕两道:
- Two sum
- 最长公共子序列(理解成子串-子串手撕一遍,子序列在子串基础上修改)
- 二面:
- 自我介绍
- 项目细扣
- 如何避免过拟合
- LSTM 理解
- XGBOOST 理解/损失函数/正则怎么算
- XGBOOST 与 GBDT 对比/ Random Forest 理解/Boosting 与 Bagging 对比
- 为什么 XGBOOST 在大赛上表现很好/与 GBDT 相比优势
- 手撕两道:
- 岛屿问题
- 编辑距离
- 三面:
- 自我介绍
- TCP 哪一层
- HTTP/HTTPS 区别
- HTTPS 为什么 Security
- 线程与进程
- 锁/悲观锁乐观锁
- 手撕一道:
- LC Hard。题目忘记了,只记得 dfs+dp,撕了 20 多分钟才撕出来。
- 楼主 985 渣硕一枚,计算机专业,春招作死选择了算法方向。。之后就在作死的路上头铁了下去。。。于是开始了求虐之旅,确实因为水平不够,所以在春招到秋招也经历了多次打击。。比如三次面试阿里,第一次挂在二面,第二次挂在一面,第三次挂在四面;再比如腾讯根本不捞简历;再比如华为实习转正被强行换部门;再比如字节跳动面了整整十面。。分别来自春招、提前批、秋招、散招。说起字节的面试,真的是怀疑是不是因为自己本命年的关系,所以导致这么曲折。。下面凭着印象写写面经。。
- 春招一面:
- 算法题:树的子结构
- 问答题:一些算法的基础,还有概率论基础。还有一个朴素贝叶斯如何垃圾邮件分类,
- CNN 如何进行文本分类
- 春招二面:
- 算法题:手写 K-means
- 问答题:问的比较深,SVM 原理,为什么使用对偶,凸集的定义,凸函数定义等等一些最
- 优化方法的问题。
- 春招三面:
- 印象比较深刻的一次面试,像是压力面,本来二面的难度让我觉得应该稳了,结果还是我想太多了哈哈哈。实现声明,本次面试前我从未准备过开发相关的知识。
- 面试官上来第一个问题:“熟悉的语言是什么”,答:“python”。面试官:“说一下有序 map 和无序 map 的区别以及底层实现”,我:“???我只会python”
- 面试官:“啊,好吧,那你知道智能指针底层怎么实现的吗?”我:“啥是智能指针啊?”
- 面试官:“你连这个都不懂啊?智能指针是 XXX,”我:“嗷嗷,这样呀 ”
- 面试官:“那你说说底层实现吧,”我:“........(之前看过 python 的垃圾回收机制就类比的说了一下引用计数,标记清除相关的东西) ”
- 面试官:“还有呢?”我:“.不知道了。。。 ”
- 面试官:“你怎么连这个都不知道啊”,我:“....我平常用 python 比较多,看算法类知识比较多 ”
- 面试官:“啊,我看前面两面算法都面差不多了,也知道你挺了解,我就是想问问前面没问过的”,我:“.... ”
- 后来才知道这是 C++里面比较基础的问题。。。奈何本人确实没接触过。。接下来的面试就在“你怎么连这个都不会啊?你怎么连这个都不懂啊”中度过。。。于是面到一半就想关掉视频,心态爆炸,但还是忍了下来,记得途中写了两道算法题。都秒了,但是还是改变不了面试官对我啥都不懂的印象。。
- 面完十分钟,收到感谢信。
- 然后就到了暑假,就去华为实习了,提前批的面试是在实习过程中开始的,面的是互娱部门的抖音团队,这个战线拉得比较长,前前后后大概三个星期吧,
- 提前批一面 :手写归并排序,算法基础问题,计算机基础问题。
- 提前批二面 :leetcode 中等难度题目两道,算法基础问题。
- 提前批三面:聊聊人生,谈谈理想,结束。
- 总的来看提前批的三面还是很容易的 😂也不知道上次为啥遭遇了地狱三面,等了俩天,hr加了微信,并表示通过,要走了身份证号,说等意向书就行(窝草,当时贼鸡儿开心,想着能进字节的抖音,我的秋招要结束 liao~!~),于是开心的出去嗨了两天,回来后收到hr 微信:嗨有时间嘛,可以聊聊嘛。预感情况不对。。果然 hr 说:“同学不好意思哈,我们这边 offer 审核没有通过,具体原因比较复杂就不告诉你啦,这边建议你着眼于未来的呢亲,如果对我们部门还感兴趣建议秋招继续投递我们部门哦”,我心里:“我信你个大头鬼。。我傻啊还投你们部门。。”。
- 伤感的度过几天后,打起精神来投了字节的秋招,笔试 A 了 4 道,拿到了面试机会
- 秋招一面:算法题是一个链表问题,具体啥不记得,但是记得是 leetcode 上两道题的组合,其他也就是基础问题
- 秋招二面:一个拓扑排序问题,差点没做上。。还好面试官人 nice 提示比较多,记得这一面还问了 SVM 中 SMO 具体的操作以及原理。
- 秋招三面:好像比较轻松。。问了概率题。
- 三面结束后俩天看到官网变成面试已完成,收到一个月内给通知的短信。心里有一丝窃喜,感觉自己表现还不错,因为挺难的算法题也写上来了,于是立了 flag,如果过了的话我就去写面经,题目就叫九面字节跳动!( 也就是因为当时的 flag,才有了今天这篇流水账)事实告诉我们不能乱立 flag。。。等了一个月后。。。收到 hr 电话问愿不愿意调岗,客户端,测试选一个。。想也没想拒绝了,同时也知道自己秋招又凉了。。。。
- 在八月初华为实习结束后,因为和主管沟通的问题(其实就是膨胀要价要高了 ),于是被调剂到了别的部门,但同样是 CBG,也还可以接受。实习结束后, 回学校陆陆续续面了一些厂,比较理想的 AT 没有拿到 offer,其他中厂拿到 offer 的感觉没有华为平台大,故最终选择了华为(华为逼签也是一部分原因哈哈哈),在签约结束后就进入了咸鱼状态,也懒得再投其他厂,面试也都拒掉了,直到前几天字节跳动再次联系了我,让我去面试,当时第一反应就是拒绝(毕竟之前面的太多了),奈何 hr 说这次是直接 leader 面,表现好就可以拿到 offer,表现不好就当和大佬交流交流没啥坏处,我一听也没毛病就去了,面试过程也还算轻松,考察了一些算法基础和项目基础,匆匆三十分钟结束,回去等通知。
- 今天收到了 hr 的 oc,虽然是白菜价,但是也比华为白菜要香很多,而且也是自己想做的方向 ,最终其实还是想问一下,老哥们,华为的 14 级 20k,消费者 bg 协议部门和字节跳动白菜,商业变现部门,你们会选哪个呢
都是算法工程师职位(没想到吧,这其实是个咨询帖)同时也鼓励没 offer 的老哥们加油总归能找到心仪的工作的~!最重要的是不能放弃,说不定下次就是机会呢!
- 字节跳动暑期实习,AI lab 算法岗,base 深圳,已 offer
- 本科双非,长沙某 985 硕士。本科参加了数学竞赛和数学建模竞赛,获省奖以上奖项14次。研究生阶段拿了一个大数据竞赛一等奖。
- 和一般的算法岗面试不一样,问的基本都是数学,没有深度学习那些。 事实证明,我是一个运气选手,如果问深度学习我是过不了的。当然我面试这些题目也是很基础,随便一个非数学专业的大二学生都可以答的比我好,而且我调和级数那里还没证明出来
- 一面的时候,三个题只写出了两个水题,以为挂了,结果上岸了。一面面经已经发过了: 跟一面的时候一样,只问数学题目,不问机器学习相关基础(这个算法岗位是做强化学习的,但是也没问强化学习的基础知识)。
- 这次面试没有自我介绍过程,直接问我题
- y=\sqrt{x^{2}}y= x 2 的可导性。
- 先化简为绝对值函数。定义域为 R。可导要求左导数、右导数存在且相等,所以函数在 x等于 0 处不可导,其余处可导。
- 介绍方向导数和梯度,方向导数和梯度的关系?为什么梯度在机器学习中的优化方法中有效?梯度是向量,方向导数是数量。梯度是各个偏导数组成的一个向量,方向导数是各个偏导数与方向余弦相乘再求和。梯度这个方向的方向导数是最大的 。
- 调和级数的敛散性。
- 我这里比较尴尬,一个方法都没说出来。我只说了证明级数发散,只需要证明级数的余项的极限不为 0。然后我提了一下欧拉常数,但是我不记得欧拉常数与调和级数的关系了。
- 面试官后来还很 nice 的跟我简单说了两个证明调和级数发散的方法。
- 人群中男人色盲的概率为 5%,女人为 0.25%。从男女人数相等的人群中随机选一人,恰好是色盲。求此人是男人的概率。全概率公式一般不会考。面试或者笔试这种一定是考贝叶斯公式。这种题把事件用变量定义好就简单了,分清哪个是条件概率。
- 设“一个人是男人”是事件 A,事件 A 非为“一个人是女人”。“一个人患色盲”为事件B。需要求的是逆概率 P(A|B)。面试官后面问我贝叶斯公式在机器学习里有哪些应用,我只说出了垃圾邮件识别。
- 在网游中,野怪被杀死时,有 p=0.2 的概率掉落一把宝剑。野怪的死亡是独立事件。玩家持续杀死了 10 个野怪,求掉落 4 把宝剑的概率。独立重复试验,二项分布。C(10,4)(p^4)((1-p)^6)。
- 一辆巴士载了 25 人,路经 10 个车站。每个乘客以相同的概率在各个车站下车。如果某个车站有乘客要下车,则大巴在该站停车。每个乘客下车的行为是独立的。记大巴停车次数为 X,求 X 的数学期望(要求通过编程求数学期望)。
- 根据数学期望的定义进行计算,跟一面一样,继续蒙特卡洛模拟。面试官问我,如果乘客变为 50 人,估计一下数学期望会变为多少,应该是接近 10。
- y=\sqrt{x^{2}}y= x 2 的可导性。
- 4 月 10 日 HR 面,zoom 视频面,20 分钟。HR 面之前,我搜了很多关于字节跳动的东西,准备了一页纸,比如看别人分享的字节跳动实习感受,了解字节跳动的企业文化,把字节跳动的字节范的内涵背了又背,追求极致,务实敢为,开放谦逊,坦诚清晰,始终创业,多元兼容。然而这些并没有用上。
- 自我介绍?介绍项目,说一下项目的分工?
- 对前两轮自己面试表现的评价?
- 我说了一下,感觉这个部门很重视数学基础,同时也看重编程能力(我看面经,别人的HR 面基本都是 HR 开头告知应聘者前面的面试评价。只是让我自己评价自己,HR 后面也没说我前面的面试评价)
- 为什么要选择实习?
- 我不读博,肯定实习呀。简单说了下自己的职业规划,想搞技术,同时字节跳动的技术氛围好,字节跳动不讲 title。(说到这里,HR 有点意外,问我我怎么知道不讲 title 的)
- 还面了哪些公司?
- 介绍一下你看过的电影?
- 实习时间?
- 你有什么要问我的?
-
字节也是 4 月投的,前两天才来消息,可能是突然缺人,必须夸一下字节的面试体验和效率,完全无间隔,前一天晚上一面,早上二面,三面(HR),给了口头 offer,终于让我稍微有了守得云开见月明的感觉。
-
一面
- 自我介绍,项目介绍
- lightgbm GBDT xgb,问的超级细,可能持续了 7 8 分钟,XGB 残差怎么用一次和二次梯度求,分裂点怎么求,思想原理是什么。XGB 实际使用中重要的超参数,你们比赛中用的目标函数是什么,为什么 lightgbm 速度更快,其并行计算如何实现(这点没回答上)
- bagging boosting 的区别,谁是更关注方差 ,谁是更关注偏差
- 如何防止过拟合,项目中用过哪些手段
- W2V 的原理 ,两种生成方式,W2V 的思想到底是什么,为什么要这样做,W2V 的缺点,W2V 中所用的 softmax 比起普通 softmax 有何区别,为什么能减少计算量(我并不是搞自然语言的,这一波问的我有点捉襟见肘,只是勉强回答了,面试官很好,我没回答清楚地就给我讲,引导我)
- embeding 的方法 FM FFM deep FM
- attention (毕竟是 attention is all you need 基本都会问)
- 给他讲做的 CTR 比赛,主要问怎么做特征,onehot 特征多了会有什么问题,为什么有时会导致效果下降(我回答的是 onehot 特征占用维度太高,可能会湮没其他一些重要的特征)可能还有一些问题记不起来了,反正真的就是抓住一个点,不停地深入
- 模型的容量问题
- 编程,比较简单的二分法
- 一面 1H35min 可真是太恐怖了,但整体体验很好,面试官会给你讨论,给你讲
-
二面
- 开门见山,一道概率题,真的懵了,先问我 bagging boosting 的区别,我愉快的回答了,然后题就来了,bagging 中随机有放回采样,假如一共有 N 个样本 采样了 N次,得到 N 个采样数据,去重后有 X 个数据 求 E(X),我只列出了暴力计算的方法,是有简单的我没想出来,各位大神知道的可以讲讲
- resnet VGG 介绍 主要特色
- 3.1*1 的卷积核 有什么用
- max pooling 梯度传导
- 如何防止梯度消失,为什么会有梯度消失
- 又是做题,数据结构的,找出一颗完全二叉树最后一个节点,时间复杂度要求 logN 的平方
-
HR 面 5.21
二面 10 分钟后就是 HR 面,问问基本情况,但问的还是很多,从实习的时间,工作的兴趣和期望,自我感觉的优缺点,曾经面临的困难,抗压能力等等吧.HR 小姐姐一来就说她们不会刷人,只要我确定能去就能发 OFFER
-
总结
- 不管怎么说,真能拿到一个已经很高兴了,还是字节的,不要在意身边的“渣硕“轻轻松松就把 offer 拿的就盆满钵满,我们常人就是一次次失败后才有可能拨云见雾,在面试过程中学习也是受益匪浅的!当存九天揽月志,虽败犹能伴群星,多去面一些难的公司,即便去不了也涨了见识,明白自己的差距总比一直当井底之蛙要好多了。最后写的才是最心酸的。拿到了又能如何,过不了导师这一关,永远都是慢慢长夜,不说了,之后要想想怎么和导师斗智斗勇了希望所有人都能找到自己满意的工作!
-
字节抖音推荐
-
一二面
- 介绍之前在字节日常实习做的项目
- 算法
- 给定字符矩阵,单词,判断矩阵里有没有该一条路径组成该单词
- 实现 kmeans
- CART 树,n 个数据 d 维特征,不剪枝,复杂度是?O(NMD), N 是 sample 的大小,M 是 feature 的数量,D 是树的深度。cart 生长时,把所有 feature 内的值都作为分裂候选,并为其计算一个评价指标(信息增益、增益比率、gini 系数等),所以每层是O(NM),D 层的树就是 O(NM*D)
- Word2vec 的原理,分层 softmax 怎么训练?
- Lstm,和 rnn 什么不同?
- 逻辑回归推导
- L1 正则为什么可以稀疏解,从逻辑回归的公式里怎么解释?梯度下降时 L1 总是在大于 0时减去一个正数,小于 0 时减去一个负数,并且增减的量是固定的,因此会得到稀疏解。
- L2 增减的值与 w 本身有关,当其比较小的时候惩罚力度很小,因此只能接近 0 不能达到0.
- 核函数是啥,常用的核函数有哪些?低维空间有时数据判别性很差,当映射到高维空间后更有力于分类,而很多时候都会用到内积,高维内积不好计算甚至不存在,所以引入核函数,可以在低维空间直接计算映射后的内积,而不用对低维向量进行映射。
- 什么样的函数可以作为核函数?K 是有效的核函数 ==> 核函数矩阵 K(所有样例两两计算核函数)是对称半正定的。
- 为什么 svm 可以用核函数,lr 不可以? 理论上可以,在加 L2 正则的逻辑回归上,w 可以表示为输入 x 的加权和,就可以表示成点积的形式,从而使用核函数。而平时不用主要原因是
- 1.逻辑回归本身处理的都是些高维稀疏的问题
- 2.计算时逻辑回归在优化参数时所有样本点都参与了贡献,svm 则只取离分离超平面最近的支持向量样本。导致使用核函数的逻辑回归计算量增大。
- Svm 为什么可以得到稀疏解?
- 推荐系统里怎么防止单一性推荐?或者说怎么提高推荐的多样性,怎么衡量多样性?
- 要以某个真实的指标为准绳去优化多样性,因为多样性难以量化,多样性对不同用户的需求也不一样,所以要在优化多样性的时候看目标指标有无提升。
- 衡量:其他相关指标、硬指标,比如类别分布占比或相似度衡量,用户反馈,每次推荐可以把 item 的向量表示计算距离作为多样性表示
- 做法
- 经验规则:设置规则,比如每 x 次推荐里至少有 y 个种类的内容,对已经推荐的tag 后面减少其比例,接着 abtest 看点击时长有无增加,用户负反馈有无增加。
- 用更多的召回渠道,召回尽可能多样的内容。仅是有可能有效,因为也没改变点击预估的逻辑。
- 建立模型去做,
- 在预测时类别种类比 item 少很多,因此可以获得各种类别组合,训练一个模型,在一次推荐时用这个模型预测我要推荐多少类 item,每类几个,然后再根据点击预估去拿到相应的推荐内容。
- 对 user 历史刷的 item 建模估计 user 对多样性的需求,rerank 的时候考虑进去。
- 了解哪些聚类算法?
-
抖音推荐 3 面:
- 算法题:一个单链表,奇数位升序,偶数位降序,输出排序后的单链表。(写了个归并,拆成两个单链表并且把偶数位做头插翻转过来,再归并到一起。)
- 写一下 lstm 公式,图画一下,讲解下
- 为什么 Ct 用 tanh 激活,tanh 怎么写,导数是啥
- 熟悉什么优化工具,写一下 adam, Adam 为啥好,哪里好
- Sgd 怎么逃离鞍点?
- 对 attention 有哪些了解?有哪些类型的?(s2s,self-attention,multihead,transformer-XL,reformer,gcn)
- 直播推荐里,有些擦边球,色情内容,评论很多,导致被推荐的多,要怎么解决?
- 你的背景是 nlp,对做推荐有什么想法吗?怎么考虑的
-
抖音评论 1,2 面
-
算法题:
- 1.输入二维 0/1 矩阵,输出同大小的,每个位置代表输入矩阵里距离 0 的最近距离(bfs)
- 2.两个有序数组,求 topk(双指针),如果是 m 个数组求 topk 呢?(优先队列,o (klogm))
-
如何构建一个评论色情分类的系统? 数据收集(迭代方式,字典/经验初始化,各种召回方法),模型训练(针对抖音评论的特点要在词表上做些修改。还有数据不平衡的问题。可以引入多任务,同时预测评论点赞、点踩数),模型评测(为什么用 f 值和 auc)
-
BERT 介绍,为什么它好用?(1.数据大 2.网络深 3.双向 4.方便)
-
A/B 实验怎么做?
-
模型太大,线上服务量太大扛不住怎么办?模型剪裁,蒸馏。从评论的场景来说,可以做归一化+cache
-
模型蒸馏是什么?为什么要用蒸馏不直接用标注数据去训练?
-
多语场景下 BERT 有哪些要改进的吗?
-
后面评论组问的基础比较少,都是业务场景的问题,给你一个问题让你想解决方案,尽可能的全面,基本都是开放性的,答的差不多就行。感觉几轮面试表现都比较好,拿到提前批 offer 保底,秋招心态就好多了。
祝大家也都拿到称心如意的 offer 哈,同时帮抖音发个广告,虽然提前批结束了,但是还可以投可以面
-
- 已经第二次一面就挂了,感觉再也没法儿进字节了吧。面试官感觉不是很想面我的样子,接下来是面试问题:
- 自我介绍一下:balabala。然后,“你是转专业的啊,你导师做什么方向的”,就感觉大厂对转专业的充满了恶意,哎。
- xgboost 和 GBDT 的区别,怎么做并行化的
- LSTM 原理是什么,怎么解决梯度消失和梯度爆炸的
- 还有什么解决梯度消失的方法么
- 卷积核有哪些(不知道为什么突然问到 cv 的问题)
- 了解广告系统么
- 有做过数据生成么,比如样本不够怎么办,数据清洗怎么做之类的
- svm 有哪些核函数
- 编程题:
- 交替上升数组
- 二叉树之字形遍历
- 面试后反馈:机器学习和深度学习基础不行,代码还可以
- 最近三个实习面试全凉了,研会主席团也没选上,真是水逆的一周啊
-
楼主是 C9 末流渣硕一枚,上周五刚刚面完了三面,问 HR 状态说面试结果正在定档review 中,也不知道到底能不能拿到宇宙条 offer ToT。 跪求 offer! 跪求 offer! 跪求offer!先说情况:楼主报的应该是算法工程师,好像就是一个大类没有细分。当然楼主想找的方向是现在一抓一大把的地狱难度的 CV 岗。
-
[面试通知] -- 7 月初。接到面试通知的我完全是懵逼的。虽然我很早就知道头条开始了提前批,不过楼主当时还在忙着实习,压根就没时间准备秋招呀,所以也没投。后来一个上海的电话打过来了,说我被实习投递的人才库(没错,实习面试一轮游就凉了。。。)里捞出来了,想给我来个提前批的面试,时间就定在下周一。这等邀请怎么能不答应啊!宇宙条诶!但是留给我准备的时间只有一个周末了,楼主也不敢想别的,赶紧趁周末打开我的 leetcode 把 top100 过了一遍,各种深度学习、机器学习的基础知识也不在话下
-
[一面] 7.8,周一下午
- 按照约定时间,一面准时开始了,面试官是个年轻的帅小伙。问的问题主要都是深度学习、CV 方面的基础:
没有自我介绍,上来就介绍实习的项目。因为我实习中有用过 GAN 生成人脸,所以问我:GAN 的损失函数形式是什么样的?(楼主写出来了,不过忘了写前面的 min、max 目标,面试官表示没关系,知道我是懂的就行了)
- 介绍一下什么是 GAN?
- 有木有试过 StarGAN 之外的方法?(很尴尬的表示,并没有。。)
- GAN 是怎么训练生成器、判决器的?(楼主就说了最原始的 GAN 的交替训练的方法)输入为 LL,卷积核为 kk,还有步长 s 和 padding p,求输出尺寸?(L1 = (L-k+2*p)/s + 1)
- 接上题,求操作的 FLOPs?(FLOPS = kkc1c2L1*L1)过拟合要怎么解决?(减少模型参数、早停、正则化、数据增强、GAN 合成数据、dropout、few shot learning,等等等等)
- 上面自己提到了 few shot,解释一下是什么?(不小心给自己挖了个坑,还好楼主大致懂一点。。)
- 几个激活函数都有什么优缺点(sigmoid, tanh, relu, lrelu 等)
- 概率题:x, y 服从 0-1 均匀分布,求 x+y<1 的概率?x, y, z 服从 0-1 均匀分布,求x+y+z<1 的概率?
- 编程题,LEETCODE 448,要求时间 o(n),空间 o(1)。这题还好,顺利做出来了。
- 反问。
- 总结:一面问的还是比较多且基础的,哪怕问项目也是问你用过的方法比较的基础的问题。所以建议小伙伴们在刷题的同时也不要忘了巩固下基础知识~过两天就接到了二面的通知,然后就继续准备吧。。。
-
[二面] -- 7.11,周四下午
- 二面也是准时开始(楼主运气好好,都没碰过迟到的):
- 自我介绍
- 热身题,买卖股票一次的最大收益,LEETCODE 123,很简单不说了
- 买卖股票两次的最大收益,LEETCODE 123(wc 这题太尴尬了,楼主可能是太紧张想了好久都没想出来,最后在面试官的提(明)示下才实现了出来。果然自己还是太菜啊……以后看见 hard 的题目再也不敢跳过了 ToT)
- 经过编程题已经过了 40 分钟了。。。面试官表示深度学习该问的一面都问过了,就问点c++基础吧:C++的虚函数是什么
- c++的析构函数一定要是虚函数吗
- 最后还是意思性的问了个 DL 问题:BN 的作用。
- 反问。
- 总结:果然宇宙条还是很看重算法功底的,管你什么岗位先把算法题做出来了再说,经过这场面试楼主也深刻认识到了自己算法基础的不足,后面得疯狂巩固起来了。面完二面心里很虚,虽然后面和面试官挺聊得来的,不过算法题表现的不很好啊。。。然而第二天还是接到了三面的通知,真是太感动了 ToT
-
[三面] -- 7.19,周五上午
- 传说中的大佬面 lei 了,问的主要都是项目+开放题。问一些项目细节
- 楼主之前做过超分辨,所以问自己做的超分辨项目有没有什么创新点,超分辨近几年有什么改进。有没看过今年的超分辨 paper
- 2019 年做了啥 CV 的东西(这里要补充说明一下,楼主之前实习网申的时候,还没去实习过,所以当时写的都是研一做的东西,然后顺着这个问题把新作的带实习经历的简历给面试官看了)
- 我在用 StarGAN 合成人脸表情的时候训练有没有遇到什么困难(额感觉面试官都好喜欢问 GAN 方向的问题)
- 开放题:有一个 1000w 的视频库,新来一个视频,我们需要去库里查询是否存在相同视频。存储这么多视频时应该选择什么样的特征,查询要用什么方法。(这个回答的还行,楼主大致说了一下用 LSTM 提特征再哈希的思路,面试官没说什么就过了)
- 开放题:磁盘上有 M 个数组(M 很大),每个数组长度不确定,数组内数值不会重复。现在要求其中 n 个数组的交集。设计算法使这个求交集的速度最快,另外有内存限制。(这题真的雪崩!楼主在看题的时候把交集当成了并集来做,所以思路完全跑偏了。。。后面是快结束的时候面试官一提醒才发现的。。。然后赶紧说了一个两个数组求交集的实现就结束了。。。)
- 反问。(经过上面一轮折磨,楼主已经虚得不行。。。问了一下问题就结束了。)
- 总结:三面比较看重你的 broad view 和发散性思维了,另外审题要仔细啊!!千万不能像楼主一样智障看错了题。。总的来说,三轮面试官都是非常 nice 的,面试时间很准时,处理效率很高,体验很好,自己在面试的时候确实也有一些地方表现得没有自己预期好,不过还是收获了很多,而且通过这三轮面试重新有了找工作的那种状态。希望这个面经能帮助到广大头条的求职者们,一起加油鸭。
Base:北京 岗位:推荐算法工程师
情况: 211本 主EE辅CS,英国硕士CS NLP方向
- 大四接触到深度学习,当时学长和我说深度学习大体分为 CV 和 NLP 两个方向,但是 CV人比较多,所以本渣选择了 NLP 方向。本科没有什么项目经历,在英国作为授课型硕士也只是跟着毕设导师做了实验室的项目。最终简历上有三个项目:两个自己做的+一个实验室的(面试的时候基本对自己做的项目不感兴趣,都是问实验室项目)无竞赛,无 paper。有一个月百度实习经历(CV 方向)大概六月末回的国,适时刚好字节跳动开方提前批,于是急忙投递,结果因为根本没有准备所以一面挂(血的教训。。心仪的公司一定要最后投,不然面试挂了留案底特别伤)。七月找了百度的实习,被派去做了 CV 方向(OCR)。八月末离职备战秋招,基本互联网大厂投了遍,以及 n 多小厂,期间看了很多 dalao 在牛客的面经,有很大的帮助,因此写一下字节跳动的面经回馈一下牛友
- 一面
- 一面的面试官很好说话,很温柔,详细问了问百度的实习经历,问了为什么做的是 CV 以及为什么没留百度,深挖了一些项目的内容(简历上的项目一定要保证写的都是自己做的而且很熟悉!),延伸到了优化器的话题,从 SGD 到 Adam 的各代优化器都很深的问了遍,探讨了为什么 Adam 有时候可能没那么好,怎么解决(这里主要都是我引深出来的,感觉我有一点带面试官的节奏了。实习经历和项目大概聊了半小时,优化器聊了十多分钟,然后面试官觉得聊得够深入了就停了。
- 算法题:合并 K 个排序链表:由合并两个排序链表去归并
- 二面:
- 一面结束后 hr 马上联系我然后约了第二天的二面。二面的难度明显要比一面大很多。
- 基本流程是 聊实习 -- 聊项目 -- 聊传统机器学习方法 -- 聊深度学习方法 -- 聊具体场景应用 -- 算法题
- 传统机器学习方法问了 SVM,CRF 以及聚类(具体问到什么有些忘了,时间有点久)深度学习方法让我自己说从 DNN 到 BERT 的发展,中间会根据我说的打断我引深问一些相关知识;有没有自己实现过优化器比如 SGD 或者 Adagrad(没有)具体场景应用是由词向量引出的,首先问了词向量负采样的细节,数学原理,然后问大规模的用户导致维度爆炸怎么处理(没答好-,-工业界经验太弱了);问了让我自己设计一个推荐系统怎么做(不会,因为我的硕士方向是 NLP,不会推荐系统,面试官表示你面试前应该做好准备,我回答说我确实准备了很多 NLP 的东西,但是昨天才知道咱们是做推荐方向所以时间来不及了,面试官表示理解)
- 算法:字符串的全排列,问了时间复杂度(O(n*n!)),以及详细的时间复杂度推导(n是怎么来的,n!是怎么来的),怎么优化(DFS 剪枝)。
- 三面
- 二面过后一小时 hr 来电约了一周后的三面。一周的时间我恶补了推荐系统的知识,了解了常用的协同过滤,隐变量分解等常用方法。
- 三面上来就是一道算法题:求无序数组的不连续递增子序列。手撕了 O(n**2)的解法,然后自己提出可以有 O(nlogn)的解法,面试官点头,大概讲了一下二分的思路,面试官表示思路没问题让我自己回去写写(说挺好玩的一题)
- 没聊项目和实习,让我设计一个系统来筛选抖音中的低俗视频(从视频帧,图片,文字三方面来提取特征 balabala)中间聊了很多细碎的知识点记不太清了。。
- 最后问了我实习时候项目的评价指标,我说用召回率来评估,从而引申到我都了解什么评估指标。说了 recall,precision,f1-score 以及 AUC详细聊了聊 AUC,以及:那你可以自己实现 AUC 吗?(现场手撕实现 AUC 的计算)
- 两天后 hr 通知三面通过,流程走完就发意向书。
- 心得:对于字节跳动的校招包括实习(8 月投了字节的算法实习不过被一面挂了,手撕 dp没做出来),给我最大的感觉就是字节跳动是一个很注重基础的公司,他不会要求你有竞赛有 paper 有多么强的工业界能力,但是基础一定要好,至少对于算法工程师来说现场手撕code 的时候 bug free 是必须的,因为面试官不会留太长的时间给你 debug,除非能够精准定位 bug 并快速解决,不然凉的几率很大(别问我为什么知道的,都是教训)。另外就是字节的面试官都很好(我遇见的都很好),与他们聊得时候要把他们当成朋友来相处,不要当成面试,要当成和朋友的一次聊天,不卑不亢。要敢于反驳,敢于提出不同的观点。(但是要友好交流 hhh 不是吵架)
- 心路历程:我的秋招到这里基本就结束了,拿到了心仪大厂的心仪 offer 已经是一本满足了。回想这几个月,也有心态爆炸的时候,有过怀疑自己的时候,尤其在某乎上看今年算法灰飞烟灭,加上牛客上也有一些类似的言论,一度想过放弃。但是都咬咬牙坚持下来了,希望大家在也都可以怀揣梦想,不负韶华,砥砺前行,我们都会拿到自己心仪的 offer 的!!!最后,我一开始的面试是自谦的态度,比较不自信,有一些唯唯诺诺,我感觉这也是我秋招初期挂了很多一面的原因,后来经过复盘,思想由“为什么是我”转变成了“为什么不能是我”,整个人感觉升华了,从那以后一路披荆斩 棘,拿下了快手百度字节跳动以及若干小厂的算法 offer,希望大家面试的时候一定要自信要自信要自信!!!如果面试的时候对自己都不自信怎么让面试官信任你能胜任岗位呢!!! 给爷冲
- 在某大厂做算法一年,本来安安稳稳还没想过跳槽,某天接到了猎头的电话说字节在招数据挖掘工程师,择日不如撞日那就去试一试呗。
- 一面
- 问贝叶斯网络的原理。
- 一些统计学的原理比如 t-test, AUC curve 的意义是啥,为什么要用 AUC 去衡量机器学习模型的好坏。
- 问了一道题:假设现在有一个函数 random(), n 为未知数,1/n 的概率返回 0,2/n 的概率返回 1,写一个 newRandom(),让返回 0,1 的概率各为 1/2。medium
- 二面
- 问了 adaboost 的原理,模型的权重以及数据的权重各自有什么意义,写出 adaboost的伪代码。
- CART 树的原理,和 ID3 以及 C4.5 有什么区别,回归树与分类树有什么区别。
- 写出逻辑回归反向传播的伪代码。
- 题:现在有一个每行每列递增的 2D 数列,比如[[1,2,3,4], [2,3,4,5], [4,5,6,7]],在 O(nm)的时间复杂度返回最小的 k 个数。hard。
- 三面:主要面 C 语言基础知识。
- 实现 memcpy
- 如何在 main 函数之外之行一个函数。
- 这样声明变量有没有问题:int a[10000000].
- static 修饰符有什么用?如果不加会出现什么后果?
- 四面:主要考察机器学习。
- 你知道哪几种 normlize 的方法?请着重介绍一种(BatchNormalization).这个方法在深度学习网络中有什么用?为什么可以加速模型收敛?
- 你知道哪些时间序列预测,举一个例子,写出伪代码(写了 HMM)。
- RNN 如何防止梯度爆炸(LSTM 原理)。
- 题目:有两个数列,将两个数列排序,但是自己数列里面的数字不能和自己数列里面的相比较(快速排序变种)。hard。
- 五面:HR 面,聊薪资,聊人生,聊理想。
- 总体难度较大,要多刷题。成功涨薪 40%,美滋滋。上班不打卡,有 10%月薪的大小周加班费,免费三餐自助,地铁 30 分钟有 1000 房补,顶级福利,满足。祝各位拿到心仪的 offer!
- 个人情况:一般 985 的高年级老博士,本硕方向自动化(coding 课程只学过 C 语言),博士转行到CV 方向。有图像增强方向顶会和顶刊各一篇,相关 CCF 会议 3 篇,博士期间有 CV 项目经验(物姿测量方向),不是小白但离大佬还很远。总之就是我对各种 coding 算法和数据结构完全不懂,投递岗位与研究方向密切相关。
- 面试前准备:这是我第一次找工作,之前本科也没有学过数据结构之类的课程,所以基本全天候准备基础的排序算法,数据结构,DFS 这些。leetcode 也就刷了不到 20 道题,每轮面试前都报着要挂了的心态去的。。。学术方向因为一直持续看着文章,所以没有刻意准备。
- 一面,1h30min:
- 考官一上来就说我们先来编程吧(直接被 KO 的感觉),问我熟悉什么语言,我说python,他就让我用 python 在 15min 内 写一个单通道的图像卷积(带 padding( 当时我心里就很多问号,准备了那么多算法编程结果你居然让我写这个。。。)。虽然我并没有准备,但卷积对于用深度学习做图像增强的人来说再熟悉不过了,所以我就用最笨的四重循环写了(因为现场没想到好办法在卷积前先 padding 图像)。写完后他问我自己觉得有没有什么问题,我说可能下标会有些小错误(事后看由于平时 tensor 用多了,求 numpy 的大小应该用 shape,结果我写成 size 了)
- 接下来面试官就让我一遍文章一篇文章的讲自己的做法和启发点,中间有我没讲明白的地方,他就会继续深问下去(50 分钟)。由于之前准备过华为的面试,工作也都是自己一点点憋出来的,所以这块的回答应该没啥问题
- 最后就是反问啦,可能前面时间有点久,感觉面试官有点着急了,很多问题就说后面的面试官会回答我的(我当时还以为是找借口要拒了我呢)
- 二面,1h10min:
- 一面抽到了卷积的编程题,看着面经上基本大多数字节的算法岗每一轮都会有不少 coding和数学概率问题,瞬间估计二面要被虐了,又拼命准备 coding 和经典的数学面试题。结果二面完全没有问我任何 coding 问题,上来还是让我介绍我的文章,基本把一面的介绍重复了一遍(30min)。然后他就这感兴趣的超分和去模糊方向问了我一些文章中非常细节的问题(30min),这期间讲到相关内容时,他也顺便问了我几个问题,答出来的问题我记不住了,只能写下当时没有答上来的几个问题:
- L1 和 L2 做 loss 的优缺点,为什么 L1 的做正则项时稀疏性更好(稀疏性这里我没答出来)。
- 小波变换和傅里叶变化的区别(我有用深度小波网络的工作,但我没答出来具体有啥区别。。。菜)
- 反卷积相比其他上采样层(pixelshuffle)的缺点,棋盘格现象怎么产生的(棋盘格形成原因我没答出来)
- 三面,1h20min:
- 上一面有三个细节问题没有答出来,但面试考官没有太在意,所以就让我继续面试了~这一面后来听说是部门的主管,所以这更多在问我一些框架性和扩展性的问题:上来还是先花了 30 分钟介绍了自己的科研,然后他问了下他感兴趣的部分。
- 然后他问我对自己目前的工作有没有什么改进想法。因为我很多文章都是会议完了后改的期刊,所以关于改进之前也想了不少,所以比较顺利的回答出来了,也说了一些改进的细节实现和实验结果。
- 最后他给我介绍了下抖音目前着重的算法和方向,问我对他们现在的方向有没有觉得可以改进的内容。
- HR 面,1h:
- 基本和大家的都一样,只不过针对我是博士,他告诉我工作性质可能和在学校科研不一样,问我有没有心理预期。最后 HR 面结束后第二天就给 offer 了
- 总结
- 我三轮技术面的的考官都比较严肃,但人都挺好,没在提问上为难我,大家没有看到漂亮的小姐姐面试官也不用紧张~
- 我的面试完全没有涉及到一般的编程问题,反而是一些相关细节问题自己没有准备而没回答上来。
- 面试中讨论相关工作时,我采取主动出击的方式,感觉他话题稍微转向后,我会主动介绍我在他所关心的领域也做了哪些研究,尝试了哪些想法。
- 学术这方面确实是需要日积月累,短期的准备很容易就会被看出来自己对于领域了解的不全面(比如做图像/视频增强的,应该对于超分,去模糊,去噪,去雾,HDR 甚至图像translation 等问题都应该有一个比较深的了解),希望各位还不急着找工作的同学们能坚持努力。
- 编程还是挺重要的,今年找工作不易,如果大家有时间还是应该做完全准备,别学我一样走钢丝~
- 题主一般本科,计算机专业,想进大厂,发面经攒人品求 offer 面试字节跳动 ailab
- 一面
- 问了问项目和科研
- 一道算法题,大概就是简单的 dp
- 二面
- 还是问项目和科研(基本上复述了一遍)
- 一道算法提,就是数组中求最大的 k 个值
- HR 面实际上只有不到 10min,就问问了可以实习的时间和大三课程忙不忙啥的,问我可否早点开始实习,但是我实在课程繁重呀,已Offer
- 这两个月从牛客上学到了很多,回馈一波。 马上 HR 面了,攒点人品,求 Offer QAQ。三轮面时间都很长(一面 45min 二面 80min 三面 60min)主要涉及的问题有项目、C++、图形学和编程题,大概还记得下面这些。
- 项目
- 项目的目的
- 项目的创新性
- 你的职责
- 项目细节,具体每个部分怎么实现的,用了哪些技术
- C++:
- 重载和重写
- 参数传递时,传值、传引用和传指针的区别
- 指针和引用的区别
- 函数返回时,返回值、返回引用和返回指针的区别
- vector 和 list 的区别
- hash 的实现
- 右值引用
- lambda 表达式
- 虚函数,可以 inline 吗
- 图形学:
- Phong 模型,如果能量不守恒了怎么办
- 渲染管线
- 延迟渲染和前向渲染的区别,Tile-Based Rendering
- MRT
- FrameBuffer
- Z fighting
- 光线与三角形求交
- 你所理解的 PBR
- 抗锯齿技术(MSAA TAA 等等)
- OpenGL 中 Blend 方式
- 渲染半透明物体,次序无关的半透明( Depth Peeling 和 Per-Pixel Linked Lists)
- uniform varying attribute 变量的区别
- 如何表示旋转,欧拉角、旋转矩阵和四元数的比较
- 编程题:
- 撸 shared_ptr
- 找二叉树最近公共祖先
- 删除链表 A 中出现在链表 B 的元素
- 大三,打算找一个实习体验一下,之前投了阿里暑期实习,两面被拒,后来又被字节捞起来了,NLP 算法实习生(应该是日常实习)感觉我个人水平在众多面试者中也就一般,本科生,无 paper,能收到 offer 真的超级惊喜了之前一直在牛客看各种面经,感觉挺有帮助的,现在收到 offer 了,发一下面经,感恩
- 一面
- 项目经历(感觉可能和面试官方向不大一样,所以基本上就是我在说,面试官打断问一些细节)
- 说一下 Bert 的嵌入层,然后就是各种关于 Bert 的细节问题
- attention 和 self-attention
- word2vec 负采样
- 逻辑回归
- 两道算法题:
- 1.输出幂集(比较简单,给了两种方法,迅速的过了)
- 2.给一个无序数组,输出最小的不在数组中的正数(开始没想出来,面试官提示了一下才有了思路)
- 一面之后感觉有戏,过了一个小时等来了 HR 电话,约了二面(三天之后)
- 二面
- 项目经历(面试官问了好多关于怎么落地的问题)
- Bert 的各种问题(position embedding,transformer 什么的)
- SVM
- XgBoost(这个不太会,只含含糊糊的说了大概理解,然后面试官就问了一下是不是不太了解统计机器学习,只好承认不是很了解,只知道最基础的大概,然后面试官就特别友善的开始问深度学习方面的问题)
- Text-CNN,LSTM,word2vec
- 一道算法题:
- 1.一个模拟题,简单写了一个 DFS
- 二面之后感觉有点悬,然后几个小时之后竟然接到了电话,HR 面
- HR 面
- 问了一下可以开始工作的时间,比赛的获奖情况,怎么平衡实验室和实习之间的精力分配
- 一面(7.10)
- 问项目
- gdbt, xgb, lightgbm 区别
- xgb 类别特征怎么处理
- lr 和 fm 区别
- lr 特征工程做到极致是否和 fm 一样
- lr 中有重复特征对结果有什么影响
- 编程题:硬币组合,二叉树转双向链表
- 智力题:疯狗问题(网上搜一下有题目和解答)
- 二面(7.16)
- 问项目,还着重问了怎么再优化
- xgb 相关知识
- svm 和 lr 区别
- 二阶多项式核 SVM 和 FM 有什么区别
- 核函数是什么以及作用
- 推荐模型有哪些讲一讲
- wide&deep 中 wide 部分和 deep 部分的作用
- dnn,lr,gdbt 使用场景
- 编程题:一个由 01 组成的矩阵,问其中由 1 组成的矩形的个数
- 三面(7.23)
- 问项目,扣细节
- 编程题:
- 给一个数组,长度是 N,里面的大小也是 0~N,用 O(n)的时间,O(1)的空间复杂度统计里面数字的个数
- 有一个日志文件,每一行是一个时间戳,统计每一行上下在时间范围为 n 的日志的行数
- 意向书(7.31)
- 楼主是社招,今天面完三面,从面试官的表情感觉自己凉了。前两面的面试官都很 nice,问的问题也相对基础,基本都答上了三面面试官标准的理工男有点严肃,而且是编程算法全能(汗颜),问了很多又偏又细的问题,应该凉了。面试前几天从早上七八点复习到夜里十二点多,临阵磨枪毕竟不行,功夫还是要下到平时啊。不说废话了,下面回馈牛油分享一下面试题目。
- 一面、二面
- 一面二面连着一起面的,有部分题记不住了,不过都是比较基础的简单题目。不过我还是犯了很多弱智错误了。。。
- 算法:找第 K 大的数(快排)
- 算法:从 n 个数字的数组中任取 m 个为一个组合,返回所有组合,顺序不一样的算一个组合(递归遍历+回溯)
- LR 损失,推导,并且求导
- L1、L2 的区别, L1 为什么图像是菱形。我说菱形可以用取点值画出来,面试官问怎么取点,我就有点懵住了,面完才想起来菱形应该是 |x| + |y| = 1 的函数图像
- 梯度下降系列算法有哪些:我有点蒙住了,后来才想起来应该问问 momentum adam 之类的算不算
- xgb 介绍一下
- 你知道有哪些损失函数?
- FM 与 LR 对比一下
- softmax 与 二分类 比有什么特点。
- 三面
- 然后三面就比较恐怖了,面试官很严肃,而且问的很细,有的题还很偏
- 看过什么论文
- 看过哪些开源项目
- 看过哪些开源框架的源码?看过 tensorflow 源码没?
- 看过 xgboost 源码没?
- 开源项目一般就训练个模型吧,就很少量的代码。看过什么大的工程的源码吗?没看过源码别问了 QAQ
- 让你学 C++ 你认为你多久可以上手?
- 算法:一个排好序的数组 arr 中,可能有重复数字,给定一个数 target,求 arr[i] + arr[j] = target (i < j) 的对数。
- 提了两个方法:
- 一个字典记录出现过的数字和对应的索引列表(因为可能有重复,所以是列表)。然后一边遍历一边查询字典中是否出现了 target - arr[i],如果有则计数。
- 双指针。但是有重复的数很麻烦,我考虑了一般的重复数情况,和两个重复数之和恰好为 target 的情况。但是面试官说还有别的情况,我就想不出来了,然后面试官说先到这吧。。。
- auc 介绍一下,给出计算公式
- xgb 怎么并行运算(除了自带的并行找特征分裂点,还说了一般模型的按数据和按特征并行)但是面试官一直追问详细的并行方法。。。
- xgb 与 LR 各自的优缺点
- LR 为什么更容易并行
- 有哪些常见的模型优化算法
- adam 公式写一下(同时介绍了 adam 是 momentum 和 RMSprop 的结合)
- RMSprop 为什么比 adgrad 好?(答:利用了系数维护梯度平方,不是简单求和)
- 为什么 adagrad 简单求和不好?
- GMM 介绍一下,损失函数写一下
- EM 算法介绍一下
- 进程线程的区别?进程和线程相比有什么好处?
- 用户态和内核态
- 总结
- 总体来说一面二面问的比较基础,也比较顺利,三面不知道是不是压力面,但是看出了面试官很有实力,问的也很细,确实这样才能区分应聘者。
- 本来还以为三面是问一些场景题,还准备了一道,结果没用上。。。
- 视频架构—实习一面
- 字节一面大概 1 个小时左右,面试体验很好,效率很高,面试官很会照顾应届生。
- 开场环节
- Q1:自我介绍(1 分钟左右)
- Q2:项目经历介绍(言简意赅)
- 提问环节
- Q1:手撕矩阵相乘。
- A1:初场预热吧,程序没问题,边界条件考虑的不全面。
- Q2、FFmpeg 熟悉程度?
- A2:简单介绍了 FFmpeg 常用的库以及相关的命令。
- Q3、了解 CUDA 吗?
- A3:线程模型和内存模型。
- Q4、研究过 h264,h265 和 h266 吗?写过解码器吗?
- A4:主要研究 h265。
- Q5、用过机器学习吗?用过 Python 吗?写过 shell 脚本吗?
- A5:做过情绪识别,用 python 写过后台系统和识别程序。
- Q6、了解 Linux 吗?
- A6:基于 Linux 做过 SLAM 相关的项目。
- 互动环节
- Q1、项目组主要做哪方面业务?
- Q2、实习生能够接触的多大的业务量?
- Q3、组内视频架构是否基于开源项目,基于什么开源?
- 视频架构—实习二面
- 开场环节
- Q1:自我介绍(1 分钟左右)
- Q2:项目经历介绍(言简意赅)
- 提问环节
- Q1:重点聊了全景直播系统的项目,面试官很感兴趣。
- A1:背景,主要贡献以及成果。
- Q2:知道 CUDA Stream 吗?
- A2:CUDA Stream 没了解过,然后说了 CUDA 程序的原理、线程模型和内存模型。
- Q3:进程和线程的关系?线程的通信方式?
- A3:进程分配独立的系统资源,线程共享进程的资源。互斥锁、信号量、共享内存、事件等等。
- Q4:单核 CPU 中的多线程是否需要线程锁?
- A4:需要,CPU 中线程是以时隙为单位交替执行的。
- Q5:播放器的原理。
- A5:以 MP4 为例,分为音频流和视频流,重点介绍了视频流的数据结构,NALU,RBPS,SODB。先获取参数集信息初始化解码器,再解析视频数据。
- Q6:I 帧和 IDR 帧的区别?
- A6:I 帧是指只包含帧内编码的图像;IDR 帧首先是 I 帧,其次其后置图像可以独立解码。
- Q7:FFmpeg 的使用。PTS 和 DTS 的区别?音视频同步的原理?
- A7:PTS 和 DTS 的含义以及 B 帧。
- Q8:HEVC 中的并行加速方法。
- A8:Tile 并行处理工具集和波前并行处理(WWP)。
- Q9:感知编码项目。
- A9:速率控制方式 CBR、VBR。
- Q10:手撕编程题:和大于 N 的最小连续数组?
- A10:动态规划的解决思路。
- 三、视频架构—实习三面
- 开场环节
- Q1:自我介绍(1 分钟左右)
- Q2:项目经历介绍(言简意赅)
- 提问环节
- Q1:编程题:输出数组中位数,第 k 个元素为前 k 个数的中位数。
- A1:数据结构大顶堆和小顶堆。
- 四、视频架构—提前批直通车终面
- 开场环节
- Q1:自我介绍(1 分钟左右)
- Q2:项目经历介绍(言简意赅)
- 互动环节
- Q1:闲聊。
- 先来结论:自己水平不够, 面试官也是真的恶心本人菜鸡一个.约的 10 点面试 ,面试官先迟到个 5 分钟,穿着背心就来面试了,还是睡眼惺忪的状态。
- 自我介绍
- 开始问业务问题:bert 为什么 scale product,transformer 里 encoder 的什么部分输入给 decoder, MLM 为什么 mask 一部分保留一部分, albert,roberta, electra 做了什么改进。我答的不好,论文看得不够多
- 开始做题:自己实现 sqrt 函数,结果保留 5 位小数 我问他函数输入的问题他都显得很不屑, 甚至会笑一下再回答我
- 用二分写完了让我用更快的方法写,我说不会了,他说牛顿法知道么, 我这里只记得优化方法里牛顿法要用到二阶导,写不出来了
- 下一题:10 亿个数,内存只有 1M,如何让这 10 亿个数有序
- 不会了, 没学过 bucket sort,随便说了一个,他又笑了,反问我你自己觉得对么,答:不知
- 他说你本科算法应该学过桶排,我说没有, 他说你算法课用的应该是清华出版社的书吧,我也没好意思说不是
- 反问:有什么想问我的 答:没有
- 20min 面试结束。后续向 hr 反应了情况。面试了这么多次,头一次有笑我的面试官 真是醉了之前本科也面过字节,那个面试官还挺 nice 的,哎