过完年以来好像就一直在准备暑假实习的事情,投了不少简历,面试了(和待面试)很多公司,积累了不少面经。虽然面经都在牛客发过,但总信不过把自己的东西放在别人的网站上,这里纯当做个备份吧。

卡牛科技

面试流程非常快,基本一天一个流程。面试官和 HR 也很好,主要围绕项目做一些扩展。公司主要算法业务为广告推荐,最近新引入了电商,做商品推荐。实习生可以住公司统一安排的二人间公寓。

一面

  1. 介绍比赛项目,前排用的什么方案
  2. 机器学习方法和深度学习方法的应用场景
  3. 为什么使用 lightgbm 模型,优缺点
  4. 简述 word2vec 的技巧
  5. transformer在序列模型中大放异彩,你认为他和传统的rnn模型相比强在哪里?
  6. 工程实践问题,项目中类别分布不平衡怎么办,负样本多怎么办
  7. 如果使用了下采样破坏了真实分布,如何在上线之后将预测的概率拉回真实的分布

二面

  1. 介绍比赛流程
  2. 对冷门商品的解决方法
  3. 如何保证召回的多样性
  4. 如何推荐新上架商品
  5. 模型推荐购买过的商品怎么处理
  6. lightgbm 与 xgboost 区别
  7. 广告反欺诈中如果给 GPS 信息怎么处理

蚂蚁金服—支付宝—广告算法

阿里好多部门在过完年之后就开始在各大群里发 jd,声势十分浩大。群里有人发了支付宝部门的 jd,说是有学长直推,而且方向和我很匹配,就去联系了一下学长,学长很 nice,帮我改简历,提了很多建议。阿里支持预先面,也是我第一次大厂面试,总共两轮技术面,本来有的交叉面被取消了。

一面

  1. 映象比较深刻的比赛
  2. 在 kdd cup 竞赛中负责内容
  3. 介绍改进的itemcf
  4. 用户 embedding 和商品 embedding 不在一个特征空间,怎么计算相似性
  5. 有没有考虑把用户和商品的关系建为异构图
  6. 后处理如何打压热门商品
  7. 介绍 kdd cup 第一名的方案
  8. 介绍竞赛广告反欺诈的比赛

二面

二面应该是个领导,约的会议室快到时间了,所以问的比较简单,了解了一下竞赛项目和到岗时间就没了。

字节跳动—商业变现—广告算法

本来想把字节放在后面投的,所以只在系统里填了简历,没有投岗位,但 HR 加微信问我要不要试试他们部门,所以就阴差阳错开始了,总共三轮技术面。

一面

算法题:leetcode 排序矩阵查找,leetcode 102 二叉树的层序遍历

  1. 介绍一个你认为做的最好的比赛
  2. ANN用的什么工具,介绍一下原理
  3. 为什么选择Annoy
  4. 还知道其他ANN算法吗?介绍了一下局部敏感hash
  5. 做用户商品交互特征的时候,你知道业界是怎么做的?扯了一下DIN模型的和目标商品的attention做法
  6. lightgbm和xgboost的区别
  7. 排序阶段你知道业界是怎么做的?说了一下点击率模型:deepfm,nfm,wide & deep,dcn,deepcrossing
  8. 介绍一下word2vec
  9. 介绍一下transformer
  10. bert的两种预训练方式
  11. 为什么要用mask?说了padding mask和sequence mask
  12. 为什么要sequence mask?防止信息穿越

二面

算法题:求从左上角到右下角的最小开销。给定一个二维数组arr[i][j],数组中每个点表示经过该点的开销,求从左上角为起点,右下角为终点的最小开销,在每个点时只能往右或者往下走,同时中途可能会有障碍,即有些点不能走,obs[i][j]=1时表示(i, j)不能走。dp和dp状态压缩。

  1. 介绍一个比赛
  2. ANN用的什么工具,介绍一下原理
  3. 如何提高冷门商品的推荐效果的
  4. 了不了解大数据框架
  5. 说一下你熟悉的linux命令
  6. 一个文件每行一个数字,用命令统计所有数的平均值和数字个数
  7. 逻辑回归损失函数和求导
  8. 介绍一下你了解的优化器和各自的优缺点
  9. Adam和Adagrad的区别

三面

算法题:有一个长度为n的数组,求一个数k,k的取值区间为[1, n-1],使得数组的前k个数和后n-k个数的方差和最小。要求化简方差公式,达到计算子序列方差的时间复杂度为O(n)。解出来后又要求空间复杂度为常数级别。

  1. 写逻辑回归的logloss损失函数
  2. 逻辑回归损失函数可以用mse吗(从梯度角度)
  3. 逻辑回归建模,如果只有9个正样本,一个负样本,那么有一列特征,这个特征对于的权重是正还是负
  4. 介绍认为做的最好的项目
  5. 项目中如何缓解曝光偏差的
  6. Embedding ANN召回用的什么工具

快手-社区科学部-推荐算法

快手是先统一面试,技术面结束后,HR 联系才知道具体的小组。快手的面试风格感觉和字节很像,先做两道算法题。一面先做题,第二题卡了好久才做完,所以剩下的时间不多,面试官也没多问,就简单了解了一下竞赛项目。二面也是先做题,基础问的不多,也问到了“逻辑回归损失函数可以用mse吗”,大部分时间都在和我讨论 kdd cup 的项目流程是否合理和为什么要这么做。快手总共两轮技术面,隔了大概两周才有 HR 沟通后续。

腾讯-应用宝-推荐算法

投的腾讯微视,被应用宝捞了。

一面

  1. 介绍一个最有把握的比赛
  2. 介绍比赛中itemcf具体做法
  3. 在itemcf中如何引入时间间隔信息和位置间隔信息
  4. 基于商品属性embedding的召回这么做的
  5. Annoy的原理
  6. 基于w2v的ANN怎么做的
  7. w2v的原理
  8. w2v的loss函数
  9. loss函数还有哪些
  10. 如何解决冷启动问题
  11. 如何评价召回的效果
  12. 如何把召回的信息引入到排序
  13. GBDT,xgboost,lightgbm改进的过程
  14. 简单推导xgboost
  15. 构建一棵树分裂特征怎么选择
  16. 计算分裂增益的方法有哪些
  17. LSTM的门机制
  18. LSTM相较于RNN的优势
  19. transformer的机制
  20. 推荐里面深度模型的了解
  21. NN怎么达到泛化性
  22. 如何保证的稀疏性
  23. L1正则为什么可以达到模型的稀疏性

二面

  1. 比赛分工
  2. embedding存在之前没有出现过id怎么办
  3. w2v的样本怎么构造
  4. 有没有过滤低频id
  5. cbow 与 skip-gram 的区别和优缺点
  6. 多任务学习有哪些结构
  7. 多个召回怎么合并的
  8. 多个召回分数之间是可比的吗
  9. 各个召回的权重是怎么选取的
  10. 推荐系统里面是如何考虑冷门商品
  11. 新增一路召回,在排序阶段需要做什么改进
  12. 树模型对离散特征怎么处理的
  13. 树模型怎么决定一个叶子结点是否要分裂
  14. xgboost正则化项和什么有关

三面

做了三道算法题:leetcode 53.最大子序和,leetcode 75.颜色分类,leetcode 442.数组中重复的数据

四面

  1. 介绍项目
  2. 算法题:剑指 Offer 60.n个骰子的点数

百度

应该是百度的实习专场,三轮技术连着面。

一面

算法题:leetcode 70.爬楼梯

  1. 介绍竞赛项目
  2. 竞赛数据规模
  3. ANN中用户的embedding怎么得到的
  4. w2v的召回具体怎么做的
  5. ANN的工具用的啥
  6. 基于深度的召回怎么做的
  7. 排序阶段的特征有哪些
  8. 后打压怎么做的

二面

算法题:假设现在有很多海岛,有些海岛之间有桥连接,你已知海岛连接情况。 ① 我现在想从到 A岛 去 B岛,问是否能通过陆路到达(过桥) ②如果可以,最少需要过几次桥 ③输出一条最短的路径 (P.S. 最好可以写一个非递归的形式)

  1. 介绍竞赛
  2. 评估标准是啥
  3. 哪些特征比较有用
  4. 多路召回的分数为什么要相加
  5. 有没有分析 bad case
  6. 优化思路
  7. 讲一下推荐的方法
  8. 一个全连接层有多少参数
  9. 介绍 attention

三面(手百搜索部门)

  1. 介绍研究方向
  2. 论文中 embedding 效果的评价方法和指标
  3. 为什么选择数据挖掘这个方向
  4. 对于实习的目标
  5. 反问部门业务和技术栈

美团-外卖-搜索算法

一面

  1. 介绍竞赛
  2. 工程挑战有哪些
  3. 介绍transformer
  4. 介绍self-attention
  5. 算法题:Leetcode 8. 字符串转换整数 (atoi),考虑科学计数法

二面

算法题:合并两个有序数组并去重

  1. 介绍竞赛
  2. 如何提高冷门商品的推荐效果
  3. 为什么能缓解冷门商品的召回
  4. 怎么评价冷门商品的推荐效果
  5. 排序特征如何对冷门商品做倾向的
  6. 根据点击次数提权,整体效果会下降吗
  7. 如何平衡全量商品和冷门商品的指标
  8. 如何使用点击序列的
  9. 为什么使用lightgbm
  10. lightgbm,xgboost的原理
  11. 如何训练embedding
  12. 概率题:有两个无限大且不透明的箱子,100个白球和100个黑球。100个白球和100个黑球可以任意放置在两个箱子里,求能摸到黑球的最大概率

拼多多-搜索广告算法

一面

算法题:leetcode 687. 最长同值路径

  1. 介绍竞赛
  2. itemcf 的改进点
  3. 如何提高冷门商品的推荐效果
  4. 基于深度学习的召回怎么做的
  5. 现在来看,方案有哪些改进的点

二面

算法题:leetcode 322. 零钱兑换

  1. 介绍竞赛
  2. 对稀疏特征有没有做什么处理
  3. 介绍基于商品属性的向量召回
  4. 哪一种召回效果最好
  5. itemcf 如何改进的
  6. 介绍学校研究方向

三面

  1. 介绍竞赛
  2. 数据规模
  3. 如何提高冷门商品的推荐效果
  4. 介绍比赛的指标
  5. 排序任务为什么要建模为二分类
  6. 为什么不直接排序而需要先召回
  7. 如何构造分类样本
  8. 有没有了解前排方案