前言:若需获取本文全部的手书版原稿资料,扫码关注公众号,回复: 2021算法秋招 即可获取。
原创不易,转载请告知并注明出处!扫码关注公众号【AI机器学习与知识图谱】,定期发布知识图谱,自然语言处理、机器学习等知识,添加微信号【17865190919】进讨论群,加好友时备注来自CSDN。
正值中秋和十一双节假期,祝大家假期吃好玩好休息好。今年秋招也已进行大半,对于技术岗同学来说感觉也就剩个十月的捡漏环节,当然也可以硬钢一波春招但感觉压力比秋招得大得多。秋招已经拿到offer的同学可能已经在假期躺平,还没有满意offer的同学趁着假期还可以蓄力一波,在十月份再从大佬手里捡宝。哈哈,那也在双节期间祝大家秋招毕业双双顺利。
今年算法岗秋招的压力总体下来感觉比往届压力要大一些,毕竟疫情原因,各个公司的小日子也都不好过,尤其做CV算法的同学,简直太难了,说多了那就是秋招前转岗吧。确实没有调侃,身边好几个做CV的同学在面了几轮算法岗位后果断选择后端开发,庆幸的是因为底子好最终也都拿到满意的offer。下面主要分享一下键人的秋招面经以及对互联网公司的看法,主要来自牛客,脉脉以及各大水群。紧急备注:键人指用键盘打字的人也就是本文作者。
先简单介绍一下键人背景,也给看面经的同学一个参考。希望对十月和明年春招的同学有些帮助,当然对于找实习面试的同学来说也是一样,毕竟面试嘛,都是一个套路。键人本科985硕士Top2,本科期间主要做开发没太接触过算法,当然此算法指的是算法工程师名称中的算法,而非数据结构书中的算法。研究生方向NLP,开始学习机器学习和深度学习相关算法。秋招前有过五段实习经历,分别是作业帮,滴滴AI Lab,百度研究研究,必示科技和蚂蚁金服人工智能部,其中有三段实习经历时长是六个月以上,两段实习经历是三个月以上。之所以提实习时间也就是因为面试官也会较为关注你的实习时长,最好不要每段实习时间都特别短。其他就是两个专利一个创新国奖,一篇EMNLP Accept-Findings(后来才中的,而且只是Findings)。
在贴出秋招面经之前,还BB一下实习面试和秋招面试经历让键人感觉非常重要的两点吧。一个就是简历一定要好好做,非常重要,相信能感受到此非常真的非常。第二个就是coding,现在各个公司的面试每一面基本都有coding,就算你个人能力再强论文再多coding不行那也拜拜,你可以试想一下面试总共一个小时,面试官基本会留出半小时让你coding,你不会于是你和面试官大眼瞪小眼半小时,得多尴尬。所以剑指offer不刷完你就去面试那就是对面试官不尊重哈哈,剑指offer刷完就去刷leetcode吧。当然在精不在多,多总结。下面就正经贴出各个互联网公司的面经以及给每个公司贴一个标签吧,当然键人仅仅代表个人观点的看法。
关键词: 涨薪。涨薪不可能的,这辈子都不可能涨薪的,除非晋升。字节跳动今年反复复反鞭尸可真不是闹着玩的,牛客贴里一篇尸横片野。为啥这么深刻,因为键人也被反复鞭尸了。
字节提前批第一轮(三轮技术面连着面了三个小时)
字节提前批一面
1、聊项目及项目中的算法
2、解释Bert, Bert好在哪里
3、解释HAN模型,为什么在你这个项目上好用
4、算法题: 给定一个矩阵里面只包含0和1两种数字,给出每个单元距离最近的0的距离,上下左右都算作相邻,相邻的距离为1
字节提前批二面
1、聊项目及项目中的算法
2、Hierarchical classification算法为什么好
3、介绍了词向量预训练模型Word2vec\Glove\Fasttext\Elmo\Bert\Flair,各自特点和区别
4、Word2vec模型结构
5、Hierarchical Softmax原理
6、算法题: 一个无序数组,数字代表挡板的高度,挡板没有厚度最多可以盛多少水,如[3, 1, 2] 输出:4
字节提前批三面
1、聊项目及项目中的算法
2、Bert模型结构,为什么好
3、Fasttext模型为什么比word2vec快,隐层怎么处理的
4、算法题:(1)S1, S2两个整数数组 已经从大到小排序。 输出最大的K个数, 时间复杂度: 通过k/2的思想, 直到把k为到1为止 , (2) S1, S2,…, Sx整数数组 已经从大到小排序。 输出最大的K个数, 时间复杂度
这三轮面试是在7月时面的,三轮面试是连着面的,总共面了三个小时,面完我的感觉是还不错,以为大概率过了,但自我评价和面试官评价总是不一致,最终通知三面挂了,hr给的理由一二面面试评价很好,但三面面试官给的评价是: 代码写的太慢了(当时还是很伤心的,连续面了我三个小时,从上午十点半面到下午一点半,中午饭都没吃,还指望我三面时脑子还有多灵光,哈哈,附图)
字节抖音-教育业务提前批第二轮
字节一面 8月9号 14:00-15:00
1、聊项目及项目中的算法
2、Word2vec的负采样和分层softmax介绍,负采样的负样本是如何采样的,分层softmax的细节以及树的节点是什么
3、在预料中有些词比较稀疏又想学好的情况下,使用word2vec时如何选用cbow/skipgram,hs,nl
4、ELMO模型和Bert模型的比较,position embedding|sentence embedding|mask embedding如何拼接的,position embedding细节
5、Transformer中为什么要除以根号dk,为什么能加快收敛速度,为什么加了根号
6、BN和LN的区别,以及BN一般怎么用,LSTM中有没有用BN
7、优化函数有哪些,比较他们的优缺点
8、CNN中给定输入数据维度[c,w,h],卷积核[k,k],则输出维度,如何padding=p,输出维度是什么
9、算法题: 给定一个可包含重复数字的序列,返回所有不重复的全排列
字节二面 8月13号 10:00
1、聊项目及项目中的算法
2、数据不均衡有什么解决方式,从数据,模型选择,以及损失函数选择角度
3、word2vec,glove,fasttext算法比较,Elmo和Bert比较
4、self-attention公式,Attention机制
5、一个小木棒拆成三段,能组成三角形的概率
6、算法题: 求二叉树的宽度
字节三面 8月25号 09:30-10:30 (之所以这么晚是因为所在实习公司正转正答辩因此一直和字节hr推迟面试时间)
1、聊项目及项目中的算法
2、算法题: “abcccbda”->“ada” 去除字符串的重复字符
字节四面 9月4号 15:00-16:00
1、聊项目及项目中的算法
2、应该是个交叉面,面试官对我介绍的项目不是特别理解
字节五面 9月7号 17:00-16:00
1、聊项目及项目中的算法,对项目中的算法提出相关问题
2、五面不是在牛客上面的,而是字节约的 电话面试,面试官很牛,应该是个老大( 因为期间透漏某厂的p9是他认识的朋友)
五面技术面后感觉那不用多说了,感觉不像是会收到普通offer的样子呀,哈哈,结果几天后收到感谢信,问了HR给的理由是: 和我们的岗位要求不是很符合,哦哦好吧。
关键词: 网吧。脉脉上都说快手办公环境及其乱,像网吧。哈哈当然脉脉上就没有好公司。
快手今年最大的感觉就是疯狂养鱼,好吧上面的字节也好不到哪里去。好吧可能就键人被养鱼了,养了一个月挂了。不说了贴面经吧。
快手一二面 8月5号 14:00-16:00
1、介绍项目,结合着项目问了相关算法
2、介绍一下自己在数据清洗这一块有什么心得方法
3、评估两个句子的相似度,有什么方法
4、Bert的Position Embedding是怎么处理的
5、Pytorch实现把一个Tensor中大于0的数字都置为0
6、实现编辑距离,O(n)空间复杂度
快手二面
1、介绍项目,结合项目聊了相关算法
2、在实际图业务数据中CompGCN算法的相关问题
3、编程题: 求树中两个节点的最近公共父节点,时间复杂度
4、在实际的业务数据中,现在有一个文件不断保存业务过来的流式数据,如何从文件中等可能的取出想要的某个数据,回答了挺久但好像都不是他想要的回答
5、提问: 对我有什么建议?
快手三面 8月8月11号 15:30
1、介绍了实习时的项目
2、介绍了快手算法部门
3、让提问问题
快手HR面 8月14号 15:30,在HR面后的一个月流程终止
1、 问性格等相关问题
关键词: 厕所。好吧,得说pdd面试没有留下什么深刻印象,只有厕所。但拼多多钱多多呀。
拼多多一面 8月8日 14:00
1、算法题一道: 现有一组会议起止时间,会议的时间信息[[s1,e1], [s2,e2],…],总共同时需要多少会议室,例:[[0,30], [5,10], [15,20]], res=2
2、聊了实习时的项目,意图识别和实体链接
拼多多二面 8月23号 17:00
1、聊了简历中的项目
2、算法题: 二叉树的后序遍历
3、概率题: 10W个人有一个人生病,检测无病的1%假阳性,有病一定检测出,现有一个人检测有病,则真实有病的概率
拼多多HR面 8月27号 14:00
1、介绍一个自己觉得最出色的项目
2、闲聊了很多无关紧要的东西(两周左右给结果)
拼多多加面 9月8号 20:00
1、介绍了图相关的项目
2、算法题: 一套扑克牌52张,随机发N张牌,判断N张牌张有没有同花顺
关键词: 专业。百度面试官给人整体的感觉,百度目前技术方面还可以的部门大搜,feed,凤巢,NLP部。百度今年20年的宣传片真心好看,李彦宏的个人魅力太强了,真的帅。
百度一面 8月9号 19:00
1、介绍实习时的项目
2、Bert的word piece对于中文词表的一个好处,词表变小也可防止OOV
3、Bert中用的LN,LN和BN有什么区别,为什么Bert用LN
3、在模型训练的时候有什么技巧和经验,比如loss不收敛等情况
4、算法题: 实现前缀树的插入,查找以及某一个前缀的所有词查找
百度二面 8月24号 19:00
1、介绍了实习的工作,重点介绍了图相关算法
2、业务题: 医美相关query搜索到相关结果,如果从搜索的结果中抽出有用的信息
3、算法题: 一个人从家往公司走,只有一条路径,有东西南北四个方向,现在求这个人往东南走的最远的距离
百度三面 8月26号 16:00
1、介绍了简历中的项目
2、开放题: 广告系统设计,图对广告的点击率是印象很大的,因此如果从知识图谱的角度考虑这个问题
3、其他offer及秋招进展等相关问题
关键词: sp多。京东今年人均sp,价格还是很高的,但3天offer考虑期限可还行。你只有三天的时间考虑是否和东哥做兄弟。
京东一面 8月13号 14:00
1、聊简历中的项目,以及项目中算法的介绍
2、算法题1: 求二叉搜索树中第k个大的节点
3、算法题2: 实现编辑距离
京东二面 8月24号 17:00
1、聊了项目,以及图表征相关相关的工作
2、算法题1: 二叉树中最近公共父节点
3、算法题2: 最长上升子序列
京东HR面 9月11号 11:00
1、 聊人生
关键词: 十一两周假。不得不说,猿辅导这十一两周假期可真的是太秀了,钱多不加班,希望不是吹出来的。
猿辅导一面 8月9号 10:00
1、介绍简历中的项目
2、算法题:实现一个平均值池化的函数,原始数据为mn,池化大小为xy,考虑步长为
3、算法题:给n个单链表,均为从小到大排序,返回一个合并后的顺序单链表
猿辅导二面 8月24号 11:00
1、介绍了简历中的项目
2、算法题: 数组A=[1,2,3,5,8,9]升序,数组B是数组A将一个元素替换为任意数字后得到,先给一个target,target不等于B中替换的元素,找出target在B中的位置
关键词: 965。清华实验室办公,工作舒服。
讯飞一面 8月13号 18:30
1、聊了简历中的项目,问了一些算法细节
讯飞二面 8月26号 14:00
1、聊了简历中的项目,问秋招情况
讯飞终面 9月25日 14:00
1、 聊项目
关键词: 难。面试的难度确实不低,所以有时候不要认为公司小面试就会简单,这个还是随机的,面试难度和面试官的性格关系较大。
作业帮一面 8月6号 14:00
1、聊了简历中的项目
2、算法题: 某个学校有AB两个班,期末考试后学校打算对个班的成绩进行合并(成绩已经按班排好序了,正序),请写出快速合并的方法。
3、算法题: 某个学校有AB两个班,期末考试后学校打算按成绩重新分班(成绩已经按班排好序了),成绩好的到A班,成绩差的到B班,A班最多只能比B班多1个学生,但不能比B班人数少,你有什么最快的方法找到哪些人到A班,哪些人到B班,找到分割点即可
作业帮二面 8月13号 17:00
1、算法题: 线段数组覆盖
2、算法题: 平面上N个矩形求面积并集
3、聊简历中的项目
4、Xgboost和GDBT的区别
5、如果解决过拟合的问题
作业帮HR面 8月25号 14:45
1、在选择公司上更加看重什么
关键词: 慢慢慢。在有内推人催的情况下,每一面之间都隔了大八个月,绝了。北斗挂转正常批,前两面北斗面试,三面转正常批。
美团一面 8月7日 17:00
1、聊了简历中的项目
美团二面 8月14号 11:30
1、聊了简历中的项目
2、算法题: 用迭代实现二叉树的前序遍历,并测试
美团三面 9月8号 16:00
1、聊了简历中的项目
关键词: 暑期实习。如果确实是想来阿里最好走暑期实习转正,因为阿里大多数秋招名额都是给暑期实习的,秋招招的人要少很多。
阿里一面(两小时)
1、算法题 Leetcode139 单词拆分
2、算法题对算数表达式求值,如给定字符串’1+((2+3)4+(4+2))-5(2+1)’,求算数表达式结果
3、聊简历
4、偏差和方差的区别
5、介绍一些传统机器学习的分类体系
6、Bert和Elmo在工程中存在的一些Trick
阿里二面(四十分钟)
1、聊简历(40分钟)
阿里三面(三十分钟)
1、聊简历(30分钟)
阿里HR面(二十分钟)
1、简单介绍一下实习项目
2、以往实习经历的体验和收获
3、自己性格的优缺点
4、对工作地点和入职时间的确认
腾讯(未拿到面试资格):因为暑期实习通过选择没有去,导致系统一直以为我是已录用,错过了提前批和正式批,哭。
最后贴出一些常考的算法面试题,基本面试也就这些内容,希望对找工作的人有帮助。
1、AUC值,PR曲线,ROC曲线
2、交叉熵和最大似然估计的关系推导
3、Kmeans原理和实现
4、GDBT、Xgboost、Lightgbm原理和区别
5、Dropout在训练和测试时的区别
6、随机森林,随机性体现在哪里
7、Transformer的实现细节
8、CRF和HMM
9、Word2vec Hierarchical Softmax原理
10、BERT模型架构,怎么预训练,怎么feature based/fine-tune
11、逻辑回归原理公式和损失函数,以及LR推导
12、LSTM和GRU门机制
13、GBDT原理。追问:负梯度的概念是什么,为什么用负梯度
14、GBDT 叶节点权重怎么算
15、GBDT 单调性约束怎么实现的
16、能否用LR 或者 SVM 做GBDT基模型
17、RF 原理讲一下,为什么能防止过拟合
18、机器学习如何调参
19、Dropout实现上的细节, 代码实现
20、BN细节,Dropout和BN之间的区别
21、Bert最新的发展,都是为了解决什么问题
22、Attention原理以及实现Attention
23、cnn模型并行和数据并行有什么区别
24、softmax公式及求导
25、交叉熵,相对熵,为什么损失函数用交叉熵
26、10亿个数,内存只有1M,如何让这10亿个数有序
27、模型训练为什么要引入偏差和方差
28、如何解决过拟合的问题
29、朴素贝叶斯为什么朴素naïve
30、One-hot的作用为什么不直接用数字表示
31、LR明明是分类模型为什么叫回归
32、梯度下降如何并行化
33、LR中L1/L2正则项是啥,哪个好,为什么L1正则稀疏性
34、写出全概率公式&贝叶斯公司并对比
35、SVM推导以及如何解决多分类问题
36、分层分类在实际问题中如何解决
37、决策树和随机森林的区别是什么
38、Kmeans初始点除了随机选择之外的方法
最后,祝大家双节吃好玩好休息好,也祝大家秋招毕业顺利!