美团面试三次后,我还是没拿到 Offer
这是我第三次写美团的面经了,第一次参加美团面试是一面挂,第二次参加是二面挂,第三次是挂在了三面。
第一次面试面经: https://www.nowcoder.com/discuss/939658
第二次面试面经:https://www.nowcoder.com/discuss/961775
投递岗位 NLP 算法工程师
一面 5 月 26 日
上次面试是 5 月 10 日,过了一周后没消息,感觉应该是又挂了,当时抱着试试的心态又投了一个 NLP 相关的岗位,其实当时已经没有报多大希望了,因为美团的暑期实习截止日期是 5 月 26 日,而且当时也拿到了其他公司的实习 Offer,接到面试通知的时候就想着再面一次吧,积累下经验。这次面试的部门好像是美团地图相关的。
1. 首先进行自我介绍
2. 介绍下第一个项目,用到的数据,面临的问题,怎么解决的等等
3. 项目中预训练模型的是啥? BERT
4. 项目中数据稀疏时怎么解决的?
5. 项目中数据增强后数据怎么样?
6. 介绍下 BERT,12 层 Transformer Encoder, 以及 MASK Loss, NSP (next sentence prediction),以及中间的自注意力机制,layernorm
7. Roberta 和 BERT 的区别? 去掉了 NSP 任务,动态 MASK,更大的 batch size,更大的训练语料
8. BERT 原生 MASK 是如何实现的? 对于每个词,以 15 % 的概率确定是否 mask,如果要 mask 的话,80% 的概率进行 mask,10% 的概率随机替换成另一个词,10% 的概率保持不变。
9. 为啥要用三种方式实现 MASK,正常情况下应该 100% MASK?让模型时刻保持学习能力
10. 项目中 mask 是如何实现的
11. BERT-base 的参数量体现在哪些模块,110M 的参数量是如何算的?
12. layernorm 和 batchnorm 的差别。layernorm 不受 padding 的影响
13. transformer 用到的激活函数,和 relu,sigmoid 的区别
14. 代码一般用啥语言,平常用的深度学习框架,Python, PyTorch
15. 编程题
- 求连续子数组的最大和
- 求连续子数组的最大和对应的最长区间(题目保证结果唯一)
相较第一题,难度有点提升,需要维度两个指针来记录子数组的开始、结束区间。不过也不难。
反问:自然语言的应用场景,地图数据
二面 5 月 31 日
1. 自我介绍
2. 介绍第一个项目,简历上第一个项目是 NLP 相关的,第二个是推荐相关的。面试官主要在问第一个项目
3. 项目中分类模型 loss 是怎么计算的
4. 介绍下第二个项目,推荐相关的,用的是 movielines 数据集,特征的构建方式
5. 介绍下 deepfm, 解决特征交叉
6. 介绍下 GBDT
7. boosting 和 bagging 的区别
8. 随机森林的特征是如何取得?
9. GBDT 和 XGboost 的区别,lightgbm 等等
10. 相似电影推荐如何训练电影的 embedding,node2vec,类似于 CBOW 和 skip-gram
11. 之前实习过吗?研究生主要做什么
12. 编程题
- 用快速选择排序选择数组的第 K 大元素。
之前面百度二面的时候,也是这道题,当时因为参数传错了,一直没调试出来,挂了后印象挺深的。
这次又遇到,结果写的时候,第一遍快排的partition 函数写错了,大概调试了5分钟左右,调试出来了,结果提交后,发现超时了。。。,十组样例,过了 7 组。
心里想着这也没法改进了呀,本来面试官都要作罢,要结束面试了,但是我想着之前改进快排的方法中有一种是在选主元的时候,采用三数取中法,用五分钟的时间改进了下,提交后过了。
反问:主要的业务,地图 POI 数据挖掘
三面 5 月 31 日
面试结束后,没过几分钟就通知面试过了,约了当天晚上的三面。第一次美团走到三面
1. 自我介绍
2. 第一个项目介绍
介绍完之后,面试官大约有一分钟没说话,不知道他是没理解还是怎么着,让我也是很尴尬。。。面试官说没有理解优化的思路,又给面试官解释了一阵子。前后大概用了半个多小时,感觉面试官最终也没有理解。有点无奈。
3. nlp 训练的时候,一个 batch 设置一个 padding 长度还是整个训练数据设置一个 padding 长度有影响吗?效果上有差别吗?对训练结果有影响吗?
4. dropout 在训练和测试的时候是怎么实现的?
5. 有没有什么倾向,比如说希望做什么样的工作?
6. 关于实习的时间,什么时候能来线下,能实习多长时间?
7. 现在手里有其他的 Offer 吗?
8. 反问
这次很幸运进入到了三面,但是还是没有拿到 Offer,感觉三面的面试官一直没有理解我做的项目。虽然也尝试解释了,但觉得沟通起来还是不是很流畅。而且后来面试官问的那两个问题,回答的也不是很好。还有就是最后的反问环节,实在不知道问啥了,前两轮基本上业务,技术栈也都问了,但要是反问环节不问的话是不是又觉得对他们公司不感兴趣,有点苦恼。
总体觉得吧,还是要提前把自己的项目用一段话给概括好,不用非常详细,但是要比较通俗易懂,全面。我面试了这么多次,写总结的时候发现每次介绍的都不太一样。这个在秋招的时候要提前准备好。
最后的话,感觉面试真的很看运气,因为不可控的因素太多了,一定要扩大基数,多去尝试不同的公司,虽然美团面试了 3 次也没有拿到 Offer,但感觉下来收获还是很大的。发现了很多自己的知识盲点,虽然也知道,但真的给他人解释的时候,还是会被问的答不上来。
暑期实习求职结束了,真正的秋招还没开始,希望春招踩得这些坑都能成为秋招的财富。
#面试复盘#