【面试招聘】据说这里有一份关于BAT的 “宝藏级” 面试记录终于可以看了!...
文章来源于海边的拾遗者,作者守着光的
写在前面
作者是研二的学弟,实力强悍的清北大佬一枚,研究方向与求职方向高度一致,为图机器学习/推荐系统,学弟本人非常有自己的想法,不光优秀还极其自律,不光收割了BAT,还尝试了难度较大的一些外企。话不多说,马上就献上这一份“珍藏版”面试记录,内容详实,有一定的门槛,具有很高的含金量。如下仅为部分面经,墙裂欢迎各互联网大佬来撩!(可通过联系小编,具体方法为点击文章顶部左上方“海边的拾遗者“进行关注,并在页面右上角选择”星标“公众号,然后在页面右下角点击“联系小编”即可联系到大佬!)
蚂蚁金服|AILab
一面
自我介绍。
介绍实习的工作,问了一些具体内容。
了解哪些GNN, GAT和GCN的区别,如果图很稠密的话,对GAT有什么影响。
两道easy的算法题,BST和二分。
问我会不会一些传统的机器学习方法,比如xgboost, gbdt。
深度学习优化器的区别,Adam和SGD。
Transformer的结构, positional embedding等。
面试完以后面试官说他挺满意的,介绍了下部门,说主要做图理论算法的。但是我当时比较想做应用业务,所以就让面试官就把我推荐到了他们经常合作的另一个部门了。
二面
到了蚂蚁第二个部门继续面试的流程。
自我介绍。
介绍下以前的工作。
讲下graph embedding的发展历史,有哪些有代表性的模型,都讲讲。
给了两个蚂蚁的场景题,让我设计解决办法,说思路。
反问。
总共不到半个小时,聊的感觉挺好的。面试体验很好。
三面
晚上10点多面的。。。。,自我介绍完后简单问了问项目和基础的ML问题,大概10分钟。
阿里妈妈
由于阿里只能最终在系统上选择一个进行投递,我选了蚂蚁,所以阿里妈妈这儿就停止了。
自我介绍。
问了python语言的一些属性,list和tuple的区别。dict里key能否是list,如果自己改造的list可不可以作为dict的key。dict除了用hash实现还可以用什么实现。生成器,迭代器,装饰器。
代码题:一个随机序列,找第k小的元素。最好的方法应该用quickselect,时间复杂度是O(n)。quickselect在之后边面别的公司的时候也被问了好多次,也算因祸得福了。
聊了聊项目。
问xgboost, gbdt原理及区别。
反问。
字节跳动
一面30min
自我介绍。
直接两道算法题:1.判断t2是不是t1的子树(说了暴力算法,面试官说还有更快的。。。被搞蒙了,结果发现他想要的就是暴力递归。最后面试官说我代码有问题,我说没问题,他检查了下说奥是他搞错了。。。>.<紧张) 2.编辑距离,没让写代码,说了下思路。就结束了。
二面50min
自我介绍。
只聊了聊几个实习经历的工作,细节问了问。Focal loss公式。
一道概率题:给一个木棍,切两刀,问可以组成三角形的概率。有点紧张,想了1分钟说了个错的答案。面试官就提示想想有几个变量?画到二维平面上?就想了到用线性规划,然后就做出来了,1/4。
代码题:随机数组找第k大的元素。说了两种,1是用heap,2是quickselect。第二个更快,复杂度是O(n), 然后把第二种的code写了下,讲了讲。
三面30min
自我介绍。
聊了聊,介绍了3段实习经历。
代码题:类似leetcode岛屿连通的那道题。
HR面30min
聊天。
微软|STCA
一面30min
自我介绍。
代码题:1.链表排序 2.subarray sum equals k。半个小时写完code后开始聊项目。
讲了实习时候做的工作。连带着相关细节数据集的采集,idea怎么做的等等。
深度学习的相关知识,过拟合,cnn,rnn,lstm,激活函数,梯度消失梯度爆炸,batch normalization, adam 等等问了问。
对面向对象熟悉不,有没有什么经验?
二面30min
自我介绍。
代码题:给一个doc和一个摘要, 去查找doc里匹配摘要的位置(起始,结束)。能匹配多少就输出多少。比如doc是abc, 摘要是ba,那么b和a都是在doc里有所匹配的。如果可以匹配多个,则返回最长匹配。
一开始没理解题意,问师姐怎么划分摘要里的句子,用句号?后来明白了不需要划分,就硬匹配就行。面试官提示我建立一个倒排表,记录doc里每个字符出现的位置,才终于明白了。coding了一下讲了讲,算法就过了。面试官说ok,coding没问题算法就这样吧。
介绍实习经历。简单聊了聊实习做的东西,大概十分钟。整个面试体验挺好的。
美团
一面40min
自我介绍。
上来先介绍实习经历,项目。做法,细节,创新点都有问。从我做的东西出发,问了一些深度学习的问题,比如学习率,优化器,BN, LN, 梯度消失爆炸,过拟合,正则化的方法等。如果训练的时候不同batch之间loss差别很大可能是什么原因?当emebdding size特别大的时候怎么办?
后边做了一道非常简单的题。给一堆学生,按成绩排序。
问了python的语言特性,*args, **kwargs, yield,生成器,迭代器,python的垃圾回收机制。知不知道python多线程。python构造函数是啥?
二面40min
面试官看起来略微严肃,问了很多问题,问的很细。
自我介绍。
聊项目,基础。
还有一些发散性的问题。比如怎么由用户的外卖信息对用户作其他方面的推荐(比如旅游)。
代码题:求topk小的数。
Amazon|SDE
一面
自我介绍。
介绍项目。
代码题:1.minstack 2.system design的题目,是最基础的LRU。但是当时没做过,靠着面试官提示,半个小时最后终于把思路说对了,没时间写代码了。
二面
介绍项目。
代码题:给一个list,里边有一些time,比如23:59, 14:00, 让你返回里边最小的时间间隔。在面试官的指引下,最后把时间复杂度降到了O(n),因为实际上可能的time只有1440个。
这题回头看挺简单的,唉,但当时面试的时候自己好菜,就得靠面试官提示才到了最全,最优解。最后面试官说我potential还不错,他后边还要面很多人。等通知吧。
因为是SDE岗,感觉面试官倾向于聊计算机基础,比如网络,数据库之类的。。。
腾讯|WXG
一面
自我介绍。
写一个堆(好久不写了,都忘了堆了。。。写了40min才写完,发的那个在线coding的地方写代码会有重影眼花了都。。。,写的有一点小问题,被check了一下,不过应该还ok)。
问深度学习基础。上来问我为什么要引入激活函数。我说是为了非线性。他说错,根本原因是为了scale输出值防止梯度爆炸。我???然后问我sigmoid是非线性的吗,我说是啊非线性的。他说不,sigmoid,tanh都是线性的,relu才是非线性的。 我蒙蔽了,他又跟我讲一开始引入sigmoid为了scale值, 防止梯度爆炸/消失,balaba。。。我无语了只能同意他了。。
问batch size有什么用?大的batch有什么优点?
问基于字和基于词的nlp方法有试过吗,哪个好?
BTE听说过吗,我以为他问的BCE,又仔细问了一遍,确定没听错是BTE。不知道,后来查了下也没查出来是啥。莫非想说bert?但他是一个一个字母读的,我也没听到r啊。。。。
问nlp里decoder出来unknown词怎么办。我说decoder的softmax那里应该把unknown mask掉的,就不会输出这个了。如果非要输出,就再训练一个模型学一下这个unknown应该是啥。他说ok吧。。。
然后时间差不多快到了,就问我有啥问他的。我说有做推荐搜索的吗,对话这个方向可能不是很match,我不了解。他说也有做推荐搜索相关的,简单介绍了下。然后就结束了。。。
二面
刚开始自我介绍我说想做推荐搜索的,和对话系统不太匹配,面试官就把简历给HR推到比较合适的组了。
自我介绍。
问了一个python的函数默认参数的问题。答错了,面试官让我打开命令行自己跑一下,然后给出解释,并且改成这个函数应该想达到的效果。然后连着调用两次append_list('one'),append_list('one'),问两次返回啥。应该['one'], ['one', 'one']。函数如下:
def append_list(new_item, a_list = []):a_list.append(new_item)return a_list
但是其实这个函数的功能是想两次都返回['one'],所以我改成了:
def append_list(*args):if len(args) == 1:return [args[0]]args[1].append(args[0])return args[1]
代码题:找到两个list相交的点。
接下来半个小时主要针对我之前的工作聊了聊,包括一些细节。
最后问了一个发散的问题。对于一个搜索query,如果这个query很长,里边很多没用的词,那么怎么提高搜索的准确度呢?我主要从模型上讲了讲,可以build一个模型来确定query里每个词的重要度,用cbow/self-attention之类的模型。
最后面试官介绍了下他们团队,感觉不错,接下来等通知后续安排。
三面
自我介绍。
介绍项目。
GNN发展史,GNN为什么可以work,GNN的数学原理。
self-attention的深层次原理是什么(不懂。。。),为什么work?
代码题:一个单调栈的题,比较简单,他那边测了下test过了,然后就结束了。
HR面
自我介绍。
问我你的缺点是什么?结果被追着问了好久,第一次有hr面要翻车的感觉。
不过好在hr最后说今天是腾讯提前批的最后一天,应该一会儿你就能看到状态更新,下周会发offer,看来是通过了。晚上11点多收到了短信说恭喜通过了所有面试,具体offer沟通下周进行。
快手
一面40min
自我介绍。
机器学习/深度学习基础,问了好多,有一些不会。
聊了聊项目,面试官对我做的方向不是太了解。
代码题:带重复元素的sorted array里寻找最左端的target。
二面1h
一面通过了马上就开始二面,感觉这轮的面试官特别聪明有活力。感觉这轮主要考coding。
自我介绍。
问了一些python的基础,list, tuple, dict, generator, derocator之类的。
代码题:1.zigzag打印二叉树 2.给两个等长字符串,输出两个字符串之间的个数 3.给第三个字符串,求两字符串中间不包含第三个字符串的个数(leetcode上周周赛最后一题。。。太难了)不会做。就把第三个字符串简化为字符,和面试官讨论了一下。
Apple|Maps
一面20min
自我介绍。
简单介绍了下简历项目,说接下来还有一轮过项目一轮coding。等通知
但是后边没消息了,应该是今年疫情的缘故,HC取消了吧。
总结
整个春招过程可以说经历地非常快了,体验也还可以,有失也有得,后面的路走一步看一步了。小编觉得优秀的人本质都是非常相似的,向优秀的人看齐才是正确的姿势,但是更优秀的人更努力的例子不值得我们更加努力学习吗。最后祝大家面试顺利,一起加油!欢迎大家来交流~
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群请扫码进群:
【面试招聘】据说这里有一份关于BAT的 “宝藏级” 面试记录终于可以看了!...相关推荐
- 吐血整理 | 据说这里有一份关于BAT的 “宝藏级” 面试记录终于可以看了!
这里是归辰的面经杂货铺,你想要的都有- 写在前面 作者是研二的学弟,实力强悍的清北大佬一枚,研究方向与求职方向高度一致,为图机器学习/推荐系统,学弟本人非常有自己的想法,不光优秀还极其自律,不光收割了 ...
- 阿里巴巴python招聘_作为应届生,我在阿里巴巴的成功面试经历!
我找工作时是2019年. 那一年,BAT大量缩招,就业形势严峻,互联网寒冬消息蔓延. 最终我经过激烈角逐拼下了几个大厂offer,回顾往事,觉得分享出来,也许对你能有所借鉴. 1.简历 这一年的7月初 ...
- 【面试招聘】聊聊秋招中的面试技巧
秋招的序幕已经拉开,很多公司都已经开启了秋招的进程,甚至有些互联网大厂的秋招都已经开始将近一个月的时间了,我在前面的文章中也写了很多关于秋招准备和一些技术面试相关的文章,那么今天我们从另外一个角度来聊 ...
- 【Django 开发】面试招聘信息网站(用户登录注册投在线递简历)
该文章收录专栏 -Django从(图文并茂轻松上手教程)专栏-!! ??内容: [Djang | 增删改查]学生系统案例 [Django | 项目搭建]快速搭建自己的项目 [Django | alla ...
- 送你一份价值10W的非专业的面试技巧
点赞收藏,以防遗忘 本文[程序大视界]已收录,关注免费领取互联网大厂学习资料,添加博主好友进群学习交流,欢迎留言和评论,一起交流共同进步. 目录 [一]前言 [二]准备阶段 2.1 面试核心 2.2 ...
- 可能是一份最适合你的后端面试指南(部分内容前端同样适用)| 掘金技术征文...
本文系掘金首发,禁止转载哦! 如果觉得文章内容不错的话,欢迎为我转身,啊!不对,是给我一个赞!点赞之后会有惊喜哦! 看本文之前,推荐给大家一个阿里云双11活动,真的非常非常非常推荐,对于新人阿里云真的 ...
- 我投了100多份Java简历,结果一个面试机会都没有,惨
今天给大家聊聊咱们平时最关心的一个问题,那就是平时你写的简历为啥投出去以后都没人看!老是石沉大海!在 boss 直聘上投出去了几百份简历,大量的已读,结果就是没人理你?是不是很多兄弟都碰到过? 没关系 ...
- 【面试招聘】程序员面试完全指南
春季是求职的黄金时期,借这时机分享下程序员面试相关的感悟. 本文立意不仅于面试技巧,而贵在通过梳理面试过程,帮助大家系统地完善技能树,找到更有发展前景的工作平台.一场完整的面试通常包括:简历准备.笔试 ...
- 【面试招聘】聊聊求职过程中的技术面试
2020年的下半年开始了,很多大学都已经放了暑假,开始准备去找实习工作了,很多2021年毕业的同学也开始了秋招的进程,而对于一些社招人员,疫情结束,年终奖拿完,也开始准备跳槽.最近一段时间,无论是实习 ...
最新文章
- java怎么复制动态数组_Java 数组排序复制等操作(Java Arraycopy)
- Visual C# 2010 实现资源管理器
- 分析android动画模块
- 结对-贪吃蛇-测试过程
- java泛型编程_Java编程泛型限定代码分享
- java获取本地mac地址
- 算法学习(二)快速排序(上)
- python des加密文件_python DES3 加密解密
- Python - PyCharm部分快捷键
- 物联网、RISC-V、OS应用、边缘AI蓄势待发...
- mac 思科 链路聚合_思科交换机配置链路聚合的方法
- SOTIF-雨雪雾行驶场景下交通参与者视觉检测及识别
- 魔众视频管理系统 v3.4.0 常规优化 系统界面升级
- Android之NDK环境配置+JNI开发+so文件编译
- mac快捷键修改跟windows一样_如何把Windows按键改成苹果按键
- ps和sketch常用快捷键总结
- html斜线背景,PS斜线底纹如何制作?
- SaltStacks三:写法和高级状态
- 【字符识别】模板匹配(区域生长法)字母+数字识别【含Matlab源码 1214期】
- python绘制太阳系模型_制作一个太阳系模型
热门文章
- UVA - 12166 Equilibrium Mobile
- Java文件下载详解
- UITextView实现图文混排效果
- 浏览器上网 (Safari Chrome)
- EasyUI-datagrid-自动合并单元格(转)
- Entity Framework 5.0基础系列
- NSIS:判断并安装.NET Framework的例子(转载)
- 转载:矩阵的掩膜操作实现图像对比度调整
- Ubuntu16.04+ROS+ORB-SLAM2测试(转载)
- Anaconda简介及其下载 安装 配置 使用 卸载