过完年以来好像就一直在准备暑假实习的事情,投了不少简历,面试了(和待面试)很多公司,积累了不少面经。虽然面经都在牛客发过,但总信不过把自己的东西放在别人的网站上,这里纯当做个备份吧。
卡牛科技
面试流程非常快,基本一天一个流程。面试官和 HR 也很好,主要围绕项目做一些扩展。公司主要算法业务为广告推荐,最近新引入了电商,做商品推荐。实习生可以住公司统一安排的二人间公寓。
一面
- 介绍比赛项目,前排用的什么方案
- 机器学习方法和深度学习方法的应用场景
- 为什么使用 lightgbm 模型,优缺点
- 简述 word2vec 的技巧
- transformer在序列模型中大放异彩,你认为他和传统的rnn模型相比强在哪里?
- 工程实践问题,项目中类别分布不平衡怎么办,负样本多怎么办
- 如果使用了下采样破坏了真实分布,如何在上线之后将预测的概率拉回真实的分布
二面
- 介绍比赛流程
- 对冷门商品的解决方法
- 如何保证召回的多样性
- 如何推荐新上架商品
- 模型推荐购买过的商品怎么处理
- lightgbm 与 xgboost 区别
- 广告反欺诈中如果给 GPS 信息怎么处理
蚂蚁金服—支付宝—广告算法
阿里好多部门在过完年之后就开始在各大群里发 jd,声势十分浩大。群里有人发了支付宝部门的 jd,说是有学长直推,而且方向和我很匹配,就去联系了一下学长,学长很 nice,帮我改简历,提了很多建议。阿里支持预先面,也是我第一次大厂面试,总共两轮技术面,本来有的交叉面被取消了。
一面
- 映象比较深刻的比赛
- 在 kdd cup 竞赛中负责内容
- 介绍改进的itemcf
- 用户 embedding 和商品 embedding 不在一个特征空间,怎么计算相似性
- 有没有考虑把用户和商品的关系建为异构图
- 后处理如何打压热门商品
- 介绍 kdd cup 第一名的方案
- 介绍竞赛广告反欺诈的比赛
二面
二面应该是个领导,约的会议室快到时间了,所以问的比较简单,了解了一下竞赛项目和到岗时间就没了。
字节跳动—商业变现—广告算法
本来想把字节放在后面投的,所以只在系统里填了简历,没有投岗位,但 HR 加微信问我要不要试试他们部门,所以就阴差阳错开始了,总共三轮技术面。
一面
算法题:leetcode 排序矩阵查找,leetcode 102 二叉树的层序遍历
- 介绍一个你认为做的最好的比赛
- ANN用的什么工具,介绍一下原理
- 为什么选择Annoy
- 还知道其他ANN算法吗?介绍了一下局部敏感hash
- 做用户商品交互特征的时候,你知道业界是怎么做的?扯了一下DIN模型的和目标商品的attention做法
- lightgbm和xgboost的区别
- 排序阶段你知道业界是怎么做的?说了一下点击率模型:deepfm,nfm,wide & deep,dcn,deepcrossing
- 介绍一下word2vec
- 介绍一下transformer
- bert的两种预训练方式
- 为什么要用mask?说了padding mask和sequence mask
- 为什么要sequence mask?防止信息穿越
二面
算法题:求从左上角到右下角的最小开销。给定一个二维数组arr[i][j],数组中每个点表示经过该点的开销,求从左上角为起点,右下角为终点的最小开销,在每个点时只能往右或者往下走,同时中途可能会有障碍,即有些点不能走,obs[i][j]=1时表示(i, j)不能走。dp和dp状态压缩。
- 介绍一个比赛
- ANN用的什么工具,介绍一下原理
- 如何提高冷门商品的推荐效果的
- 了不了解大数据框架
- 说一下你熟悉的linux命令
- 一个文件每行一个数字,用命令统计所有数的平均值和数字个数
- 逻辑回归损失函数和求导
- 介绍一下你了解的优化器和各自的优缺点
- Adam和Adagrad的区别
三面
算法题:有一个长度为n的数组,求一个数k,k的取值区间为[1, n-1],使得数组的前k个数和后n-k个数的方差和最小。要求化简方差公式,达到计算子序列方差的时间复杂度为O(n)。解出来后又要求空间复杂度为常数级别。
- 写逻辑回归的logloss损失函数
- 逻辑回归损失函数可以用mse吗(从梯度角度)
- 逻辑回归建模,如果只有9个正样本,一个负样本,那么有一列特征,这个特征对于的权重是正还是负
- 介绍认为做的最好的项目
- 项目中如何缓解曝光偏差的
- Embedding ANN召回用的什么工具
快手-社区科学部-推荐算法
快手是先统一面试,技术面结束后,HR 联系才知道具体的小组。快手的面试风格感觉和字节很像,先做两道算法题。一面先做题,第二题卡了好久才做完,所以剩下的时间不多,面试官也没多问,就简单了解了一下竞赛项目。二面也是先做题,基础问的不多,也问到了“逻辑回归损失函数可以用mse吗”,大部分时间都在和我讨论 kdd cup 的项目流程是否合理和为什么要这么做。快手总共两轮技术面,隔了大概两周才有 HR 沟通后续。
腾讯-应用宝-推荐算法
投的腾讯微视,被应用宝捞了。
一面
- 介绍一个最有把握的比赛
- 介绍比赛中itemcf具体做法
- 在itemcf中如何引入时间间隔信息和位置间隔信息
- 基于商品属性embedding的召回这么做的
- Annoy的原理
- 基于w2v的ANN怎么做的
- w2v的原理
- w2v的loss函数
- loss函数还有哪些
- 如何解决冷启动问题
- 如何评价召回的效果
- 如何把召回的信息引入到排序
- GBDT,xgboost,lightgbm改进的过程
- 简单推导xgboost
- 构建一棵树分裂特征怎么选择
- 计算分裂增益的方法有哪些
- LSTM的门机制
- LSTM相较于RNN的优势
- transformer的机制
- 推荐里面深度模型的了解
- NN怎么达到泛化性
- 如何保证的稀疏性
- L1正则为什么可以达到模型的稀疏性
二面
- 比赛分工
- embedding存在之前没有出现过id怎么办
- w2v的样本怎么构造
- 有没有过滤低频id
- cbow 与 skip-gram 的区别和优缺点
- 多任务学习有哪些结构
- 多个召回怎么合并的
- 多个召回分数之间是可比的吗
- 各个召回的权重是怎么选取的
- 推荐系统里面是如何考虑冷门商品
- 新增一路召回,在排序阶段需要做什么改进
- 树模型对离散特征怎么处理的
- 树模型怎么决定一个叶子结点是否要分裂
- xgboost正则化项和什么有关
三面
做了三道算法题:leetcode 53.最大子序和,leetcode 75.颜色分类,leetcode 442.数组中重复的数据
四面
- 介绍项目
- 算法题:剑指 Offer 60.n个骰子的点数
百度
应该是百度的实习专场,三轮技术连着面。
一面
算法题:leetcode 70.爬楼梯
- 介绍竞赛项目
- 竞赛数据规模
- ANN中用户的embedding怎么得到的
- w2v的召回具体怎么做的
- ANN的工具用的啥
- 基于深度的召回怎么做的
- 排序阶段的特征有哪些
- 后打压怎么做的
二面
算法题:假设现在有很多海岛,有些海岛之间有桥连接,你已知海岛连接情况。 ① 我现在想从到 A岛 去 B岛,问是否能通过陆路到达(过桥) ②如果可以,最少需要过几次桥 ③输出一条最短的路径 (P.S. 最好可以写一个非递归的形式)
- 介绍竞赛
- 评估标准是啥
- 哪些特征比较有用
- 多路召回的分数为什么要相加
- 有没有分析 bad case
- 优化思路
- 讲一下推荐的方法
- 一个全连接层有多少参数
- 介绍 attention
三面(手百搜索部门)
- 介绍研究方向
- 论文中 embedding 效果的评价方法和指标
- 为什么选择数据挖掘这个方向
- 对于实习的目标
- 反问部门业务和技术栈
美团-外卖-搜索算法
一面
- 介绍竞赛
- 工程挑战有哪些
- 介绍transformer
- 介绍self-attention
- 算法题:Leetcode 8. 字符串转换整数 (atoi),考虑科学计数法
二面
算法题:合并两个有序数组并去重
- 介绍竞赛
- 如何提高冷门商品的推荐效果
- 为什么能缓解冷门商品的召回
- 怎么评价冷门商品的推荐效果
- 排序特征如何对冷门商品做倾向的
- 根据点击次数提权,整体效果会下降吗
- 如何平衡全量商品和冷门商品的指标
- 如何使用点击序列的
- 为什么使用lightgbm
- lightgbm,xgboost的原理
- 如何训练embedding
- 概率题:有两个无限大且不透明的箱子,100个白球和100个黑球。100个白球和100个黑球可以任意放置在两个箱子里,求能摸到黑球的最大概率
拼多多-搜索广告算法
一面
算法题:leetcode 687. 最长同值路径
- 介绍竞赛
- itemcf 的改进点
- 如何提高冷门商品的推荐效果
- 基于深度学习的召回怎么做的
- 现在来看,方案有哪些改进的点
二面
算法题:leetcode 322. 零钱兑换
- 介绍竞赛
- 对稀疏特征有没有做什么处理
- 介绍基于商品属性的向量召回
- 哪一种召回效果最好
- itemcf 如何改进的
- 介绍学校研究方向
三面
- 介绍竞赛
- 数据规模
- 如何提高冷门商品的推荐效果
- 介绍比赛的指标
- 排序任务为什么要建模为二分类
- 为什么不直接排序而需要先召回
- 如何构造分类样本
- 有没有了解前排方案