年底了,技术群组织了一场算法岗技术&面试讨论会,邀请了一些同学分享他们的面试经历(含实习),讨论会会定期召开。
如果你想加入我们的讨论群或者希望要更详细的资料,文末加入。
喜欢本文记得收藏、关注、点赞。
文章目录
快手
面试岗位:推荐算法岗
一面
自我介绍
对推荐系统的了解:背景,前景,架构,方法
项目拷打:特征构建,模型选择,评价指标
论文拷打:背景,模型,评价指标
八股(都是从项目和论文中找的点):SVM原理及其推导,LR原理及其推导,XGBoost原理及其推导,XGBoost处理缺失值的方法,模型过拟合的处理方法,
手写:数组中前k个最小的数(类快排)
二面
自我介绍
手写:求x的平方根,但要求保留3位小数(先用以0.001为步长的方式ac了,然后让我用梯度下降和牛顿法来求解)
竞赛项目拷打
八股:贝叶斯超参数优化原理,几个boosting模型的特点和差异,欧氏距离和余弦距离的区别
三面
自我介绍
项目论文这些跟一面二面问的差不多
手写:把数组排列成最小的数(又没写出来,我真的是leetcode农民,找不到工作是活该哦)
360
面试岗位:推荐算法岗(实习)
感谢这次面试&技术交流讨论会,收获很多,认识了这么多优秀的同学,我的情况是这样的,一面二面说都过了,上周四说准备hr面,现在还没收到邮件,打电话过去问说帮我看看,招聘网站显示“hr面试:排序中”。我感觉可能寄了,这年头好难啊。
自我介绍
学校:悉尼新南威尔士大学
专业:计算机类
岗位:360推荐算法岗(实习)
一面:
面试官是我的mentor,就面了十分钟,说我的背景有些薄弱,但是实习没问题。。。
算法题不用写,就问了我怎么遍历树,深度优先要怎么写,广度优先怎么写
交叉熵原理
transformer 代码细节,embedding相乘之前要干嘛?我当时听不太懂,可能问的是padding吧
没细问项目和实习
问了一些学校和毕业的基本情况
二面
我以为我都挂了,结果有二面。二面面试官面了一个多小时,
算法题考了快乐数,考了tensorflow,手写将大于0.5的概率转成1,其余为0
深挖了项目和实习
项目中因为有xgboost和lgb,有auc,有DIN,所以都问了,然后也发散问了冷启动怎么处理等等
最后面试官还给了学习建议,然后说了很多360转正的福利,我感觉收获很多。
三天后打电话通知准备hr面,说这两天会有邮件,到现在都还没。。。。
今天入职,万事大吉。
作业帮
个人情况说明
- 岗位:作业帮-广告推荐算法-日常实习
- 学校:北京交通大学
- 专业:计算机类
面试题
自我介绍
两篇论文分别介绍(推荐和社交网络)
有没有考虑过结合推荐和社交网络的方向
推荐系统的双塔召回模型,Wide&Deep排序模型的原理
Attention和Transformer的原理
Adam优化器的原理
激活函数sigmoid和Relu的特点和区别
介绍了目前做的时间序列预测的项
问的时间序列预测的模型架构和指标
sigmoid函数和softmax函数的区别
多头注意力机制里的QKV,缩放
手撕:快速排序算法
手撕:最长公共子序列(leetcode才开始没多久,后果自负)
反问
探探
岗位:推荐算法岗(日常实习)
一面
-
对推荐算法大概有多少了解
-
kaggle比赛用了什么模型,做了什么优化
-
你是如何把几个模型的分数做融合的
-
如果这个权重也作为一个变量参与到训练,这种方式和你手动调参相比会有什么样的差异呢
这题我回答的是串行训练会更多耗时,但是参数精度会提高效果会更好,但是总觉得还是没答到点子上 -
随机森林的具体运行过程
-
如何判断过拟合和欠拟合,怎么解决
-
如何解决梯度消失和梯度爆炸
-
如果有梯度消失或者梯度爆炸,你发现你的神经网络已经很深了,你是要继续加深还是减少呢,为什么要这么做
这题我回答的是减少,因为梯度消失问题和梯度爆炸问题一般会随着网络层数的增加变得越来越明显
手撕(自有IDE)
- 无重复字符的最长子串,lc原题。
- 判断输入的数据将会被插入哪个桶,一道二分,类似于搜索插入位置,lc改编。
二面
-
说一下LR里面正则项的原理是什么?为什么加了正则项就能去过拟合呢
-
一方面你要学这个参数,一方面你又限制学,不是矛盾的吗?
-
cross validation,带有cross validation的训练步骤说一下
注意cross validation调的是超参,当时嘴瓢了 -
Kaggle竞赛规模,说一下你用的trick,为什么这个trick能work?
-
你对cnn这个模型本身有什么了解?为什么传统的mlp在图像上没有什么效果呢?
-
说一下对transformer的认知和理解
手撕(自有IDE)
题目:给定两列,都是user_id,每一行都是一个好友关系,输入一个user_id,找出跟这个用户共同好友数最多的那个人
快手
- 岗位:推荐算法岗
- 大学:Cornell University
- 专业:数学类
一面
感觉已经是小组leader面
前半个小时讨论实习项目,但反馈说做的项目对比快手的短视频推荐像玩具。。听到这个感觉已经挂了。
算法题:1. 手写transforner; 2.寻找两个有序数组的中位数(hard?没写出来)。
二面
前半个小时还是讨论实习项目,这次讨论的比较温和,基本没有答不上的
算法题:
寻找长度为N,只包含1~N-1的数组中重复过一次的那个数,时间O(n) 空间O(1)
在有序有重复数组中查找第一个k的下标,不符合则返回第一个>k的下标
字符串去掉空格
前两道只做出来1.5,第三题时间不够没写。面完第二天通知通过,约三面
三面
面试官说是两年前从湾区回国,感觉级别很高?
同样,前半小时讨论实习项目,多了一些原理上的延伸
算法题:
在底部高度不规则的正方形水池中,判断水面高度为t时是否能从左上角游到右下角
寻找最小的t以满足能游到右下角
反馈说前两面面评不错,后续还有没有技术面不清楚
hr面
先介绍了下实习项目,然后hr具体介绍了下部门负责内容与合作模式,然后就聊了下个人选offer看中的点。最后问了下其他公司的流程,留美/回国的选择,美国这边的流程和手续等。
反问流程推进相关,还是笼统的说要统一排序
最后加了hr微信。估计因为是三面面试官反馈评级比较高?
加面(五面)
应该是+2级别?负责召回与排序模型
先自我介绍,然后就没有像面试一样问问题了。聊了些硕士项目的细节,之后主要面试官就开始多方面对比其他公司,安利快手,持续了大概半小时。最后说“希望你能加入快手”。。。所以算是leader的leader给了个口头oc么
小红书
一共是三轮技术面+HRBP面,整个面试体验很好,官网投完简历两天就面试了,结果出的也很快,几轮的面试官人都很nice。
一面
首先是做自我介绍,这个可以提前准备一下
介绍简历中写的论文,讲的过程中面试官会提一些问题,问的蛮中肯的,也提了一些建议,沟通很愉快。会问下做的东西在工业界有没有一些应用场景,可以发散的聊一聊
问了下之前在美团实习主要是做些什么,有什么收获或者感想
召回常用的一些方法,FM,DCN等推荐相关的知识
写代码,一道工程模拟题,实现一个类和三个函数,分析时间空间复杂度,然后优化
提问环节
二面
自我介绍完做了二十分钟的产品调研,就是对小红书的一些使用体验,以及对小红书的推荐系统有没有一些使用感想之类的
介绍论文,这里跟一面基本一样
聊一聊推荐系统知识,对推荐系统的掌握程度。如实说了,在学校没有做过推荐相关的项目,看过王喆老师的《深度学习推荐系统》和B站上王树森老师的推荐系统视频。然后就让我介绍了下常见的算法模型,协同过滤、矩阵分解,FM,DCN的原理以及优缺点,最后问了一下Wide&Deep模型的原理。
推荐系统怎么做新用户冷启动
推荐系统中的一些带bias的场景怎么debias
写一道代码题,三角形中最小路径之和
提问环节
三面
自我介绍以及介绍论文
推荐系统中debias的方法,比较开放性的讨论
多任务学习中推荐系统中的应用
给了一个场景,让设计一个推荐系统架构,然后分析存在哪些问题。
多任务学习的参数共享及不共享参数各自的优缺点,然后从这两个角度分别去设计模型,包含特征交叉,embedding之类的。
一道代码题,只写出了最简单版本,分析时空复杂度,然后有优化的思路,代码没写出来,结束了看了下是leetcode hard题。
提问环节
HRBP面
问了下什么时候开始使用小红书的,觉得小红书的推荐搜索做的怎么样
问了在美团实习的收获感想之类的
对推荐这个岗位的了解,以及为什么选择推荐
介绍了小红书有哪些部门
过两天就收到了offer,整个面试过程很和谐,很多问题都是在讨论,回答不上来的话面试官会帮着分析和引导,base上海新天地。
美团
岗位:搜索推荐算法岗
一面
- 先自我介绍
- 简要阐述实习内容
- 具体介绍一下每一个模块、然后自己负责的主要内容;
- 双塔模型、hard样本构建;
- 对于双塔模型该如何优化、使用什么损失函数;
- 有哪些评价模型性能的指标、具体说说每个指标;
- DIN模型&WDL主要区别、模型选型、分析原因;
- 描述DIN的Attention机制,是如何实现的、输入、输出是什么;
- 工作规划
- 手撕代码:最长无重复子序列 (做完)
二面
- 自我介绍
- 介绍一下在公司做的项目
- 构建物料池是怎么做的,还有用在什么地方
- 用到什么技术构建物料池
- 比如年龄这种连续进行分桶离散会有哪些缺点、训练中会如何使用
- 在线推荐和离线推荐有什么不同
- 分类、回归用到的损失函数有哪些
- 模型判断的指标有哪些?说一下什么是准确率
- 在公司训练个性化推荐模型模型用了分类还是回归
- 基于内容推荐用到的bert模型有没有进行自己在架构上的调整
- 用户画像池是怎样构建的、如何使用
- 对于一些兴趣特别广泛的用户,该如何处理他们的特征输入
- 有没有用过spark和hadoop
快手
岗位:推荐算法岗(实习)
一面
1.自我介绍
2.代码:top K
3.代码:给一个链表,只反转从left到right内的元素,其余不变
4.问实习项目,没有挖的很深。
5.讲一讲序列建模的模型
6.为什么self-attention可以堆叠多层,有什么作用
7.多头有什么作用?如果想让不同头之间有交互,可以怎么做
8.讲一讲多目标优化,MMoE怎么设计?如果权重为1,0,0这样全部集中在某一个专家上该怎么办?
9.多目标:CGC
10.如何解决跷跷板现象
11.介绍一下神经网络的优化器有哪些
12.怎么样做特征选择
13.反问
二面(三天后)
1.自我介绍
2.想走哪个方向?答搜广推
3.介绍一下推荐算法的链路流程。
4.深挖项目经历:背景、特征选取和样本选择、用了什么模型、怎么评估、序列建模是怎么做的、有没有特征选择、效果怎么样。这部分较为深入,花了25min+。
5.介绍一下神经网络是怎么更新的。答方向传播。为什么比正向传播好?
6.介绍一下神经网络的初始化方法。
7.代码:数组分页。比如将数组[1,2,3,4,9,6,2,2,2,6,7]分为每3个一个子数组即[[1,2,3],[4,9,6],[2,2,6],[2,7]],要求每个子数组内最多有两个重复数值。在构造下一个数组时,优先使用上次没用上的重复值。用队列
8.时间复杂度、空间复杂度
9.如果是子数组长度为4,其余不变,还能用队列吗。
10.反问
三面(五天后)
1.自我介绍
2.你更看重实习,还是科研?对你哪个收获最大?
3.深挖项目经历(25min)
4.深挖论文经历(15min)
5.发散:聊了聊论文的技术能不能用在推荐场景上,比如online learning的情况下,这个技术有没有使用价值。
6.讲一讲你了解的序列建模方法?
7.本来要写题,后来面试官说之前写的3道已经够了。问了解transformer吗?写一个transformer的伪代码?
8.说一下怎么写的?如果要改成多头该怎么写?
9.反问
hr面(一天后)
1.hr介绍
2.自我介绍
3.在过去的实习经历中,讲一讲自己不喜欢的部分?
4.导师是否允许你长时间实习?
5.打算实习多久,什么时候入职
6.反问
技术交流
技术要学会分享、交流,不建议闭门造车。一个人走的很快、一堆人可以走的更远。
各大厂面试资料、数据、技术交流提升, 均可加知识星球交流群获取,群友已超过2000人,添加时切记的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、添加微信号:mlc2060,备注:来自 获取推荐资料
方式②、微信搜索公众号:机器学习社区,后台回复:推荐资料