实习面经分享(腾讯/字节/阿里/美团)

从1月初开始准备实习(刷题+面经),经历了最初的忐忑到如今几近尘埃落定,期间得到了不少身边朋友的帮助,也从牛友的面经中学到了不少,因此也想分享一下个人的面试经历,希望对大家有所帮助。

基本情况

  • 硕转博(协同过滤/图方向),有项目(协同过滤推荐及强化学习相关),无论文(全部在投)
  • leetcode 400+。(1月开始。top100+腾讯50+剑指offer+面试金典+每日打卡)
  • 面试的全是推荐/广告相关算法岗
  • 3月初开始投递简历,截至目前:
    • 腾讯(PCG):oc
    • 阿里妈妈(搜索广告):oc
    • 字节AI-lab:oc
    • 美团平台:oc
--------------------------------------
至4.15全部更新完毕,感谢小伙伴们的支持

腾讯(PCG)

腾讯投的最晚但是最早开始面试,一面时准备不够充分,好多答的都不好,不过也查漏补缺了很多东西。二面面试官很nice,很会引导,体验很棒。

一面 3.10 (50min)

  • 自我介绍
  • 论文及项目
  • 强化学习排序怎么实现的,除了这种还有没有其他方案
  • 项目中Graph Embedding怎么学的
    • 线上更新周期怎么样
    • 用来做什么(预训练,CF召回)
    • 其他召回算法有什么。
    • 召回算法的选择。
    • 召回方式(多路,Embedding)
  • 算法题:两种宝石,可替换指定次数,求最大子串长度(双指针+记录变化点)
  • 反问

二面 3.12 (50min)

  • 自我介绍
  • 论文及项目(聊了图网络的发展,论文的motivation和实现细节)
  • CF的特点:
    • 优点:快,不需要上下文特征
    • 缺点:冷启动(所以要结合图)
  • 长尾问题怎么处理
  • CF和DSSM的区别 ?(不是很了解DSSM,答不清楚)
  • LR推导(代码复现(train, loss, predict)【搞不定,基于推导写了伪代码,勉强过】
  • MF的实现,有哪些优化方式(特征值【必须是方阵】,SVD【不适合稀疏场景,复杂度高】,SGD;)梯度怎么求;怎么让MF训练的更快(没搞懂,答的是控制lr,顺便说了一下lr的调参要点)?
  • 算法题:给一个graph,求其中三角的个数(clique的最小单位)(做社交网络的部门所以问图相关的)【类似lc1761】

HR面 3.16 (20min)

  • 自我介绍及项目
  • 个人三个性格优点
  • 缺点
  • 对未来的规划
  • 实习及转正base地点
  • 实习时长(一周五天,有点恐怖)

云证 3.18

OC 3.19

阿里妈妈(广告算法团队)

  • 群里加的师兄帮忙内推,人很nice,帮忙看简历还鼓励了不少。
  • 整个面试流程下来感觉阿里很注重基础,而且基本围绕简历考察已掌握的知识。

一面 3.12(90min)

  • 算法2道:(括号匹配 + 找出无序数组中topK最大有序子序列)
  • 概率2(没准备,全跪)
  • 聊简历,项目细节
  • 反问了部门的主要业务有哪些

二面 3.16 (45min)

  • 自我介绍
  • 聊项目及论文细节
  • 算法题*3
    • 题1:二叉树最下层最左节点
    • 题2:大数乘法
    • 题3:丑数
  • 反问
    • 来实习能接触到哪些项目
    • 学习资源

三面 3.24 (37min)

刚起床就突击电话面。。感觉答得一般般😭
  • 开放问题:关于广告投放的问题。建模实现。大概记得问了这几个问题:
    • 如何构建sample
    • 如何建模
    • 输出是怎样的
    • loss用什么
    • 为什么用交叉熵做分类问题
  • 问了下项目和论文。
  • 反问

HR面 4.13 (30min)

  • 自我介绍
  • 简单询问了项目中的一些问题
  • 过去对你影响最大的一件事
  • 保研/考研
  • 实习时间
  • 是否考虑转正
  • 其他offer情况

OC 4.15

字节AI lab

面试节奏紧凑,效率很高。很注重项目中的具体细节。

一面 3.14 (40min)

  • 自我介绍(面试官确认了下个人研究方向)
  • 项目,Graph Embedding怎么做的(讲了论文的内容)
  • 召回和排序的区别(特征使用数量、效率、模型复杂度等角度阐述)
  • DeepFM与FM
  • 知识图谱学习得到的Graph Embedding是用于召回还是排序(召回)(1.有噪声;2.因为对于传统观点的召回来说,精准并不是最重要的目标,找出和用户兴趣有一定程度相关性但是又具备泛化性能的物品是召回侧的重点,所以可能知识图谱的模式更适合将知识图谱放在召回侧。)
  • 讲一下项目中用到的强化学习。(A2C,讲了原理,实现细节)
  • 算法题:
    • 快排代码(讲了下如何使得最坏情况也能O(nlogn)
    • n * m 矩阵给定左上角和右下角求面积(O(1))【CV中经常用到】。
  • 概率:A、B是两个服从0-1均匀分布的随机变量。求E[max(A,B)]。
  • 反问:部门业务方向做哪些,有没有结合图谱(个人想做这方向)

二面 3.14 (50min)

  • 自我介绍
  • 协同过滤的演化(共现矩阵(itemCF, userCF) →MF(泛化)→NCF(高阶交互;非线性)→Graph Embedding (图结构)
  • MF如何泛化(特征提取,从SVD为例讲了一下,感觉一般满意;同时类比了深度学习中过拟合和泛化的情况,感觉还行)
  • 两篇论文
  • 算法题:
    • 题1:lc 1420\. 生成数组;想到dp没写出递推公式,卒
    • 题2:最长上升子序列;写了贪心+二分(O(nlogn))。
  • 无反问:估计是第一题想太久没时间了

三面 3.17 (37min)

  • 自我介绍
  • 论文细节及项目
  • 项目中的特征工程用到了哪些
  • deepFM相关:
    • 的模型结构是怎么样的(Wide & Deep -> DeepFM角度讲)
    • 权重参数共享吗、如何预训练?
    • 输入的embedding包括哪些?分别怎么处理?
  • FM和FFM(参数量,特征交互)
  • word2vec具体怎么做的(skip-gram,CBOW,学习目标是权重参数矩阵;loss是交叉熵,负采样、层级softmax)
  • 你印象最深的近几年的一些推荐方面的成果。聊了CF方面的新成果。
  • 其他的推荐模型了解吗。(双塔,CTR方面讲了DIN)
  • 过拟合怎么处理。(5种)
  • 比较一下GCN和GAT。(从复杂度、效果上等作了比较,感觉答的一般)
  • 比较一下传统的Embedding方法和Graph Embedding。(真实数据也是图结构,冷启动,交互更丰富)
  • 交叉熵损失函数
  • 算法题:给定一个arr,和最小间隔k,找出满足最小间隔k的a,b两个数使得a+b值最大。(我的解法,存储每个点的leftmax和rightmax,然后一轮循环求最大;感觉空间复杂度还可以优化)
  • 无反问*2
  • 面试结束后不久通知HR面

HR面 3.18 (15min)

  • 自我介绍
  • 兴趣爱好
  • 介绍一下学习过程中对你影响最大的一件事
  • 对未来的规划
  • 考虑转正吗
  • 有什么长期坚持的事情
  • 有无其它offer

OC 3.18

美团平台

一面 3.17 (35min)

  • 自我介绍
  • 算法:
    • 快排
    • 链表每k个翻转一次
  • Graph Embedding 方法:randomwalk, node2vec, GCN, GAT,过平滑等问题
  • 论文:实现细节,参数怎么调整,应用情况
  • 反问:业务

二面 3.19 (1h10min)

  • 自我介绍
  • 选一个项目做介绍:
    • 用了哪些特征
    • 数据预处理怎么做的
    • 特征怎么学的
    • RL怎么应用?reward如何定义?
  • 冷启动怎么解决
  • 聊论文
  • 算法:
    • 加油站良好出发点问题(时间O(n), 空间O(1))
    • 做项目最大收益问题
  • 反问:如果来不了实习怎么办?(不会拉黑。。);貌似只有两轮技术面

OC 3.25


#实习##面经##阿里巴巴##腾讯##美团##字节跳动##算法工程师#
全部评论
我懂了。。其实面试除了算法题猜不到,基本上问的理论知识都是从简历里衍生出来的,所以复习是有针对性的
2 回复 分享
发布于 2021-03-20 00:08
想问一下,快排怎么做可以使最坏情况下的时间复杂度仍然是O(nlogn)呢。
1 回复 分享
发布于 2021-03-18 17:36
字节三面那个原题没找到,可以用大小为k-1的滑动窗口+单调队列
点赞 回复 分享
发布于 2022-03-25 16:19
这。。。面试好快啊
点赞 回复 分享
发布于 2021-03-22 14:06
美团上来就是一个leetcode hard,看起来是没hc了😂
点赞 回复 分享
发布于 2021-03-19 09:22
大佬你是博士要毕业了吗?
点赞 回复 分享
发布于 2021-03-18 20:00
百度大佬你投的那个部门
点赞 回复 分享
发布于 2021-03-18 18:46
大佬现在拿到了哪些offer啊?
点赞 回复 分享
发布于 2021-03-18 17:45

相关推荐

03-21 19:40
已编辑
华中科技大学
2.26暑期第四面,淘天某部门研发工程师C/C++,提前约好了时间并告知是电话面,下午快六点面完后晚上八点多就接到电话约了二面,一面面试官听声音感觉很年轻,面了大概40min1. 自我介绍,然后开始逐个聊项目细节2. 问websocket协议+消息格式的封装3. 问第一个项目能支撑到多少的并发、单个事务的延迟是多少4. 问不能支持更高并发的瓶颈是什么5. 项目中访问的服务商API实测延迟是多少6. 问第二个项目中的关键设计,简历上写到的一些功能是如何去实现的7. 第三个项目涉及到grpc和pb,问技术选型的考量8. grpc作为一个类似二进制的RPC框架,底层是什么原理?比如说协议设计、封装格式等等方面9. 接下来开始聊实习,细说实习内容,顺便问了一下了不了解当时用的一些仪器的原理,我没答上来,面试官说实习四个月都没有好奇底层原理想把它弄明白嘛(是的没错)10. 对于k8s的了解大概是什么程度11. 给了一道算法题,思考后说怎么做+时间空间复杂度:有n个点的有向无环图,邻接矩阵为d[i][j],数值范围是1到10e9,如果d[i][j]为0的话就说明i到j没有边,求满足点1到点n的路径长度为17的倍数这个约束条件的最短路径(不知道为什么电话面要做算法,听题目听了好久想了一会儿做出来了,用二维动态规划,不过时间复杂度好像答错了,面试官说回去再想一想)12. 反问环节:问了一下业务和base这次面试还是比较简单的,感谢善良的面试官小哥哥虽然二面后还在泡着#淘天##面经##C++##牛客AI配图神器#
查看12道真题和解析
点赞 评论 收藏
分享
一句话总结:客户端复杂度不如后端一根毛。愿世上再无坑人的客户端招聘1.以前做客户端开发,那可需要实打实的技术。要搭建复杂的项目框架,像搭建一座高楼一样,从底层开始,一步都不能错。处理网络请求时,得考虑各种网络状况,确保数据准确、及时地传输。数据存储也是个大难题,要选择合适的存储方式,优化存储结构,提高数据读写效率但现在有了Cursor,只要输入简单的需求描述,它就能生成代码框架,还能帮忙处理网络请求和数据存储的代码。很多原本需要深入思考和复杂操作的工作,瞬间变得简单。这就导致,原本体现开发者技术价值的工作,变得没什么技术含量,很多人都能借助工具完成。2.对于想从事客户端开发的人来说,现在的就业环境变得更严峻了。企业在招聘时,会考虑既然借助Cursor很多人都能完成工作,那对开发者技术水平的要求可能就会降低。这就导致大量非专业出身,或者技术水平一般的人涌入这个行业,竞争变得异常激烈。 对于有经验、技术好的客户端开发者来说,他们的优势也很难在求职中凸显出来。因为企业可能更看重成本,既然普通开发者借助工具也能完成工作,为什么要花高价聘请技术高手呢?3.在职业发展方面,Cursor的出现也让客户端开发者的成长空间受到限制。以往,开发者通过解决复杂的技术难题,积累经验,提升自己的技术水平,从而获得晋升机会。但现在,很多难题都能被Cursor轻松解决,开发者失去了锻炼和成长的机会。而且,随着Cursor等工具的普及,企业可能会减少对客户端开发者的岗位需求,甚至可能将一些客户端开发工作外包给低成本的团队或个人。这就导致客户端开发者在公司内部的晋升机会减少,职业发展前景变得黯淡。#牛客AI配图神器#
点赞 评论 收藏
分享
评论
22
153
分享

创作者周榜

更多
牛客网
牛客企业服务