23届秋招算法岗面经分享
写在前面,楼主是23届硕士,秋招过程中在牛客上收获了很多宝贵的经验,也认识了很多热情的小伙伴,现在马上24届就要开始秋招了,这里我也来分享下自己的面经回馈牛客吧。
大家如果有什么想问的尽管在评论区留言,也可以向我私信,我都会尽量回复的~也祝大家都能有满意的offer~
技术面基本流程
- 自我介绍(两分钟足够了)
- 讲论文/项目/比赛/实习经历(要有层次,建议讲的过程中可以适当和面试官进行互动)
- 基础知识(你自身研究领域/机器学习/深度学习/编程语言,一般来说,如果你实习和论文很丰富就不会涉及基础知识了)
- coding(面试时讲究的是快准,要足够熟悉,否则一紧张最基础的都可能写不出来)
- 反问
背景
lz是9本C9硕,有两段个人感觉含金量不高的算法实习,一篇很水的论文,力扣代码刷了六七百道,对于各种题型中的高频题目刷了很多遍,面试代码基本上都写出来了,笔试就看运气了。
因为一些个人原因没怎么参加秋招,以下大部分面试基本上都是秋招补录和春招时期,所以存在一个公司面两次的情况。
360-广告
一面
- 实习内容
- 二分类建模过程
- mse和交叉熵用于分类的区别
- 假如随着迭代的过程,模型结构越来越复杂,特征越来越多,但是效果一段时间后下降了,请问是什么原因,该怎么解决
- 过拟合怎么解决?
- 怎么进行特征选择?
- 两道题:最长上升子序列(求出具体序列)、背包问题lc322
二面
- 随便闲聊了下,问了下实验室做的东西,本来一开始说要写题,结果也没写
hr面
- 常规问题,HR说要十一月中旬才有结果。。。
百度-NLP强化学习
一面
- 论文、实习
- 进程和线程区别
- GNN和GCN区别
- yolo和FasterRCNN区别
- 代码:最大子数组和
二面
- 论文
- 实习,讲完了啥也没问。
- 剪绳子。
- 没反问
三面
- 问了下对我这个领域应用难的看法;
- 做research还是业务,选择哪个方向
- 反问
腾讯-cdg广告
一面
- 实习内容
- 介绍精排
- LR为什么用交叉熵
- 还有一些基础记不清问的啥的
- 代码题二选一,好像是全排列?
二面
面试官没安排好。又是一面的面试官,于是临时拉了个人面。。。只是大概问了简历和一些问题,最后一道很简单的题。lc448。
最想去的地方挂了,唉😔
美团-内容理解
一面
- 论文、实习
- 了解CV还是搜推多?讲一下DIN DIEN
- 介绍一下attention、transformer
- 代码:二叉树层序遍历
二面
- 论文
- GNN和graphsage区别
- mind和DIN区别
- 代码:重排链表
hr面
- 半小时,常规问题,记不清了。。。
- 期望薪资报高了?后来给我加面了
加面-四面
- 论文和实习
- 一道代码,很简单的二分查找
字节-电商广告
一面
- 论文
- 常规八股:bn、resnet、dropout、
- 了解什么cv模型,讲一下senet,
- 过拟合欠拟合,
- 了解什么搜推广模型,讲一下DIN,
- 代码:给定正整数数组nums,求积小于k的连续子数组的个数。例如nums=[10, 5, 2, 4, 1], k=100
二面
- 论文实习
- 代码:斐波那契额数列变体,f(n)=f(n-1)+2f(n-2)+3f(n-3),(开始出的没有这些系数,我说了下思路后面试官问我是不是写过,就改了下系数),要求时间复杂度小于O(n),其实就是矩阵快速幂写法
三面-未面
HR二面当天说通过了,结果过了一天说没有hc了,给我转到隔壁部门了
字节-非闭环广告
一面
- 论文、实习
- 怎么衡量召回效果
- 增加一路召回后,怎么衡量这一路的效率(性能和成本)?从召回本身的roi怎么评估?
- 代码题:lc68
估计是对我经历没啥兴趣,但看我代码写出来了,又继续问八股了。。。
- 介绍DIN及其中的激活函数、din中有个过拟合的设计介绍一下,这么设计的优点
- 直接学习不平衡的数据,这毕竟是一个真实分布,会有问题吗,从机器学习本身的原理上来说,或者说不处理是为了解决一个什么问题、可以从梯度下降的角度思考一下
- 过拟合的方法(提到了bn)
- bn为什么能过拟合,怎么用bn解决过拟合,也就是怎么调bn
- attention,LHUC(Learn Hidden Unit Contribution)
- 会sql、hadoop吗
反问建议和评价:了解的东西比较多,包括很多东西说的整体上也是对的,但是不能想当然,要把更多更细节的东西展现出来,算法具体哪一步有用。
另外说我召回评估这块没讲好,我说实习组里权限没字节这么大,面试官就说组里的限制不影响你个人的思考,可以秀一下你自己的思考(好吧,确实面试官比我厉害)
最后结果也不出意料,挂了
字节-tiktok推荐-实习
找不到工作。。。只能试试实习了,当积累面经了
一面
- 实习
- dropout、过拟合解决方法
- 论文
- 了解什么backbone?提到了mobilenet、shufflenet、senet、vit相关的
- 讲一下senet
- 代码:pytorch实现senet、找第k大的数(面试官看我写的很快,说背的很熟啊,哈哈哈)
- 反问
二面
- 问了论文和实习,没八股。
- 代码题:找每一层最左边的节点,无反问
三面
- 一上来就说面试时间大概45min,先考核代码和数学能力,然后有时间就问下项目
- 两道代码:斐波那契额数列快速幂版,rand3实现rand7(调用次数期望值怎么计算,具体计算过程)
- 后面问了下实习最深刻的印象、为什么去这些实习、几月份答辩
还以为能过呢,结果后来问了下hr才发现当晚面完秒挂。。。
蚂蚁-商家开放技术部
一面
- 论文(面试官竟然了解我这个领域的一些论文,我很激动的和他探讨了下目前的研究现状)
- 实习
- 代码:编辑距离
不明白为什么挂了,后来找人问了下面评,说是基础不行,可是并没有问任何基础八股问题啊??
阿里-大淘宝
一面
面试官给我的感觉是技术比较强,实习和项目一点没问
1.线上线下效果不一致怎么排查?怎么进行特征选择?假设明确问题是特征泄露,假设问题出在100个特征,该怎么找出导致效果不好的特征?
2.了解BN吗,参数量是多少,有什么用,训练时和测试时的差异,测试时该怎么做,训练时用滑动平均还是单纯用单个batch数据进行bn?
3.两阶段的训练模型,类似stacking,第一阶段输出作为第二阶段输入,假设第一阶段训练得到的数据分布不太稳定,或者说和第二阶段的不一致,该怎么解决这个问题
- 比如说,旁边组同学模型的输出会作为你的模型的输入,他的模型每天都会更新,这就导致这个输入分布一直在发生变化,这个时候你的模型就需要一定的适应时间,最终的输出根据你的模型决定,这个时候该怎么做,保证你的模型输出尽可能准确
4.最近有跟进什么最新的论文吗,有什么想法让你眼前一亮,讲一讲
5.代码题:给定一个数组,要求将其打散。滑动窗口内(大小为4)不能有元素重复,即模拟用户看到的一个展示页面没有重复,
- 如果窗口内发现重复元素,则往后探测一个合适的元素与当前元素交换。尽可能不改变相对顺序,
- 如果不能打散,就把剩下的数全部添加到结果中
输入:[1,2,3,1,3,4,5,6]
输出:[1,2,3,4,1,5,3,6]
二面
- 问了论文,也没讲全就被打断了,感觉面试官不在意
- auc物理含义
- 假设已知auc值,现在新加一批打分为0的负样本,auc值怎么变化?我开始说变大,他说不对,然后我就说不变,面试官还是说不对,叫我回去再想(面完复盘觉得应该就是变大?)
- sigmoid激活函数为什么造成梯度消失?(我说输入值太大或太小会导致落入梯度为0处,面试官说不对)
- 代码题,实现set(i,index),get(i),setall(val) O(1)时间复杂度。(期间面试官还掉线了,但是我看的是代码界面,没关注会议界面,后面才发现我讲了半天他都没听到)
- 问我有哪些offer
百度-商业化
一面
- 论文和实习
- 代码:求两个数组的交集(如果是有序的呢?)、最大子数组和、pyspark题:求一个月内连续登录三天的用户(大概说了下思路,面试官说不是很重要,就没写了)
- 讲一下xgboost,过拟合设计
- 梯度消失、梯度爆炸怎么解决
- CNN的特点
二面
- 实习
- 一道很简单的概率题
- 然后三道题:
- 怎么判断n是否能被7整除,不能用除法和求余(二分);
- 验证完全二叉搜索树(lc958);
- 两个1GB的文件,每一行存了一个单词,每个单词小于16kb,现在内存1MB,磁盘500G,求两者的交集并输入到C(分治+哈希即可)
4.如果用户输入了一个有错的query,怎么进行纠错,怎么衡量纠错完的质量
三面
- 闲聊,对自己5-10年规划,方向选择等等问题
- 实习最大的成长,讲一下实习,做了哪些优化,实习的组那边怎么样
- 论文创新点
- 开放性问题:百度搜索结果页广告,和谷歌广告,从用户和广告主角度看怎么样?其实谷歌广告多很多,那为什么给用户的感觉是百度更多广告,且体验更不好,可以做哪些优化
知乎-推荐算法
一面
- python基础:深拷贝、浅拷贝、多线程、生成器迭代器
- 分类和回归常用loss、优化器、激活函数区别
- 聊实习
- 代码题:lc213
- 介绍一下WDL,各自作用,去掉Wide可以吗
- 介绍一下召回排序链路,哪一个最重要
二面
- 随便聊聊论文
- 了解排序算法吗,时间复杂度,python排序库函数原理是什么
- 了解重混排吗,介绍一下
- 代码:检验二叉搜索树
后来面完和二面ld聊了很久,ld人很好诚意很足,可惜最后还是没去
快手-ytech推荐算法
一面
- 自我介绍,先写两道题,两个栈实现队列、二叉树根节点到叶子节点的路径(自己建树)
- 写代码时间有点长,后面没多少时间了,就问了下实习和论文,有点赶,叫我挑重要的说
- 然后八股,问了个梯度消失、梯度爆炸咋办。
二面
- 问实习和代码问了好久,感觉确实是比较有水平的,拷打了很久我的💩论文
- 代码题:删除数组中重复的数字
- 反问:面试官好能讲。。。。
三面
被拷打了实习,聊什么是自监督,自监督的做法、为什么有用,最新的趋势是什么
假设面试官是个从来不懂计算机的外行人,该怎么解释自监督的原理和做法?
- 从有监督、到无监督怎么做的,一步一步说的。举猫狗的例子,然后自监督是否能应用到这个任务中?然后我举了个文本生成的例子:完形填空,模型怎么设计,输入输出是什么(其实就是word2vec的原理)。讲了很多,讲完这部分面试就到四十多分钟了,还给面试官画了图。
b站-搜索
一面
- 实习项目、论文
- 冷启动怎么做、线上配额等等
- 介绍一下transformer、BERT、GPT
- 介绍一下FM、WDL、DIN
- 代码题:移掉k位数字,lc402
二面
- 自我介绍、论文、实习
- 两道题:lc141、lc40
三面
- 论文、实习,然后引申问了些问题
- 无代码
美团-外卖推荐
后来春招又投了,结果二面完和我说之前拒过就不能发offer了
一面
- 讲一下研究生期间做的这个领域
- 线上流式学习怎么做
- 交叉熵公式,能不能log内外反过来
- 蒸馏loss形式、梯度推导
- 讲一下实习。
- 线上线下怎么评估召回结果,透出率?
- 了解什么模型?DIN激活函数怎么做的,为什么有用,attention的输入是什么
- cv nlp这块了解什么,transformer的decoder结构讲一下,有动手实现过吗
- 代码:lc97
二面
- 论文
- 假设有个主场景(很多数据),另一个小样本场景(比如抢购场景),两个场景实际上是有一些差距的(比如抢购场景折扣大、有自身的特效),那怎么用增量学习来解决这个问题呢(提到了PPNet)
- 抢购场景用户数量少,用PPNet怎么对少样本进行学习呢
- 抢购场景都是一些新商品,也存在主场景中,但是价格不同,库存不同,导致其ctr cvr和主场景不一样,也就是数据分布不一样,这种情况怎么处理。而且抢购场景售卖时间短,通过数据积累和特征的方法是做不了商品推荐的
- 如何评价知识蒸馏中student和teacher的差异性和共性
- 假如在召回中,用召回模型蒸馏粗排模型,如何评价蒸馏模型的效果,从知识蒸馏角度没有独特指标是吗
- 实习怎么构建的图网络
- 平时通过什么方式学习新知识,
- 对搜广推哪个模块比较熟悉,
- 代码:给定一个数组,对每个元素分别找到其左边、右边第一个比它小的数,对每个数返回一个索引对。
商汤-大模型
一面
- 论文,实习
- bn作用,ln作用
- 怎么判断链表是否有环,慢指针最多走多少步(假设有n个节点,最多走n步)
二面
(顶着38 39度高烧面试,但其实面完感觉人更舒服了一点)
- 检测中的增量学习难点
- 检测中怎么进行蒸馏
- cnn和transformer区别
- 在cnn和transformer之间进行蒸馏的难点
- 讲一下self-attention,具体怎么计算
- softmax运算过程,有什么问题(溢出),怎么解决
- bn和ln区别,bn具体怎么计算,训练和测试时差别
三面
- 两道题,快速幂、lc528
- 反问的时候面试官信号太差了,一直断断续续,几个回答一个没听明白,又不好意思叫他再说一遍。。
hr面-电话面
lazada-用户增长
一面-没开视频
- 论文、实习
- auc效果提升,但是gauc效果不变甚至下降是为什么?
- MMoE中很多expert gate的权重变为0怎么解决?比如只有对某个expert是激活态,其他都是0,那其他expert可能压根学不到信息,该怎么办
- 代码:岛屿数量、接雨水
- 反问(面试官很热情的和我介绍,当时心里还以为过了)
两个八股答的一般吧。。哎,挂了,这也是我最想去的地方。。。
快手-社科推荐
一面
- 自我介绍
- 代码题:求2的根号,精确到小数点后四位。要求二分法、梯度下降法、牛顿法,写完问还了解其他优化方法吗
- 知识蒸馏目前的做法?讲一下,有什么优缺点,讲了很久很细。
- 知识蒸馏loss?温度系数
- 了解什么推荐内容?把整个链路说了一下
- 探索和利用怎么做?讲一下汤普森采样,期望和方差对应什么参数
- 冷启动怎么做?PPNet具体做法?
- 实习
- 论文
二面
- 实习项目,讲了四十来分钟,一步一步写伪代码和过程
- 反问
三面
- 实习
- 论文
- 知识蒸馏在cv nlp和推荐中的区别
- 代码:lc148,我用归并排序实现,写完又问我快排怎么实现?
四面
- 实习,各种问题
- 找二叉搜索树中最接近target的节点(先写了bfs,然后写dfs)
hr面
- 一些常规问题
小红书-信息流广告
一面
- 代码:快排、最大乘积数组
- 论文、实习
二面
- 论文、实习经历
- 实习组内推荐系统最大缺陷是什么,或者做的不好的地方有哪些,该怎么改进
HR通知说过了,结果不知道为什么一直拖着不约三面。。。。后来我也懒得管了
阿里UC-推荐算法
一面
- 论文和实习大概讲了下
- 代码:(1)合并区间(2)实现树(3)求树的最大直径
- 数学题:m个红球,n个蓝球, 有序的选7次,求可选次数,m、n > 7
- 1)同色球可以区分;2)同色球不可区分;3)蓝球不可连续选
二面
- 本科课程,数据结构,了解什么排序,时间复杂度各是多少
- 研究生课程,介绍一下模型,FM、WDL、DIN,youtube召回模型,优缺点
- 实习,实习收获
hr面
- 常规问题,忘了
后来没接到HR电话,也打不回去。只能找约面的联系人,说帮我询问一下,结果一看官网流程就给我立马挂了。。。。果然不缺人
滴滴网约车mpt
一面
- 论文、实习
- 线上线下分布不一致是为什么,怎么解决
- 了解什么激活函数,sigmoid特点,relu呢?怎么改进
- L1L2正则化为什么有用
- auc曲线,怎么画
- 权重初始化
- spark和hive区别(mapreduce)
- 怎么找多个数中的第k大数,时间复杂度(口述)
- 代码:复制带random指针的链表,lc138
二面
- 实习
- 代码:找中位数
- 反问(面试时间不长)
三面
- 论文、实习
- 排序有什么指标?ndcg怎么计算的,其中的d是什么
- 怎么理解偏差和方差,怎么减小方差,bn为什么能减小,正则化是减小还是增大偏差
- 代码题:最小路径和,O(1)空间复杂度做法
四面
- 还是技术面,忘记记录了
hr面
- 常规问题。忘了