算法岗面试整理 | 腾讯、字节、美团、阿里

南楼画角 提交于 2020-11-26 14:46:54

(给机器学习算法与Python实战加星标,提升AI技能)

文末赠书福利


作者  | 阿毛冲冲冲
来源  | 牛客网,见『阅读原文』处
整理  | NewBeeNLP,本文仅供学术交流,如有侵权,请留言联系

写在前面

三月面试了好几轮,写个帖子记录一下问过的问题,为接下来的其他公司的面试查漏补缺一下,也给大家一些准备的方向。

腾讯

一面(凉)

  • 自我介绍
  • 问做过的项目,同时在过程中穿插用过的模型的问题,比如
    • word2vec两个模型的损失函数是什么
    • cbow和skipgram的比较,为什么skipgram会更好,哪个的计算复杂度高
    • 为什么使用随机森林
    • 决策树的分裂方式是什么,根据什么变量来决定分裂变量
  • 手撕代码
    • 给一个数N,k,每一轮可以进行两种操作的其中一种:①所有的数拆分成两个更小的数;②所有的数-1。已知拆分操作只能进行k次,问 最少需要多少次把所有数都消去
  • 给一串数列,这串数列有正有负,但是总和为0。每个数xi代表一个村庄,正的表示村庄想卖出xi份水果,负的表示想买入xi份水果。两相邻村庄间的距离是相同的,单位距离运送一份水果的运费均相同,每份都是k。问,把每个村庄的需求和供给都解决掉需要的最少运送费是多少?

这是第一次面试,凉得很彻底,因为很多算法细节都没有好好复习,而且代码写的也不够整洁快速

字节tiktok海外版(南亚组?)

一面

一个很年轻的小哥哥,人也很好

  • word2vec两个模型的损失函数是什么
  • cbow和skipgram的比较,为什么skipgram会更好,哪个的计算复杂度高
  • 开放性问题:在视频推荐这个领域能不能用上embedding的思想,如果可以,要怎么构建和训练模型。
    • 这个问题我没答上来,然后面试官给了提示,说有用户观看视频的一系列记录和搜索记录blabla,但我还是没想出来。正确的打开方式是用word2vec的方法训练出一套视频的embedding和用户的embedding,详情可以搜索一下youtubeNet这篇论文,https://zhuanlan.zhihu.com/p/97365203知乎上也有解释。看完之后受益匪浅吧
  • 手撕代码
    • 一个是二分查找,很简单的
    • 一个是给定一个数组,输出所有他的全排列组合,leetcode原题 permutation

然后小哥让我回去安静等消息,一度以为我凉了,过来一周问了hr有二面

字节二面

感觉面试官对于要不要实习生不太在意(捂脸 可能因为不太缺人吧 二面面试官直接问机器学习问题的

  • 解释一下过拟合和欠拟合,怎么发现过拟合问题,怎么解决过拟合
  • 你说到正则化问题,正则化有哪几种方式
  • 正则化这两种方式的区别和公式分别是什么
  • 你说l1会使得特征系数稀疏化,为什么呢(岭回归和lasso回归的区别)
  • 你说到lasso回归有特征选择的作用,有哪些特征选择的方式
  • 有哪些常用的降维方式
  • 手撕代码
    • 判断链表有没有环;判断链表的环的起点
    • 给定n个区间[a,b], 找到最小的区间[x,y],使得n个区间都至少包含一个数落在这个[x,y]中(不会啊救命)

然后面试官就让我等答复了(我以为差不多凉了吧,然后三面面试官进入聊天室,我只能继续了23333。其实二面有很多答不上来的问题,所以当时真的内心是拒绝的,心态在崩溃边缘

字节三面

三面面试官让你直接开始讲讲你最熟悉或者最拿手的一个项目

  • 这个面试官挺有批判精神的,他会指出你这个项目中的实验设置的不足,比如你词向量的优劣如果用情感分析的结果来进行评估的话,情感分析这个任务的选择合适吗,为什么?用lstm模型来评估两个词向量的优劣时,调参怎么调才合理?
  • 词向量的训练原理和参数更新的细节
  • 词向量怎么用到神经网络里面
  • 手撕代码:
    • 两个有序数组的中位数(不要用O(N)的暴力算法,要用二分的思想)
    • 找出一个正整数数组中,没出现过的最小的正整数(不能先排序,要用比排序时间复杂度更优的方法)

两题都没撕出来,还是太菜了 自此字节抖音凉了

美团

美团的笔试还是做的挺差的,五题只做了两题,两题都只有27%。。

一面

  • word2vec
  • 训练过程训练原理
  • 训练的损失函数
  • 我看到你做多分类情感分析多分类问题的损失函数是什么
  • Soft max的计算公式是什么?为什么使用指数函数?
  • LSTM的信息传递机制是什么?他和RNN相比有什么优势。
  • Bert
  • 他和普通的Word2Vec模型相比优势在哪里
  • 他为什么会有这样的优势(优势,指的是他能生成语境化的向量
  • Bert中的 transformer
  • attention multihead attention
  • 注意力机制的运行过程是什么样的?
  • 注意力机制中对于每一个词的分数会进行标准化,请问这一步的目的是什么
  • 你刚刚提到batch normalization
  • BN的作用是什么?它有四个公式,每一个公式分别是什么,有什么各自的作用
  • 我对于每一个Batch 都计算出来了他对应的均值跟方差这些,它们相互独立的吗?还是会相互影响。
  • 我看你大多数是自然语言处理的事件,你有做过计算机视觉相关的任务吗?回答:有机器学习课上尝试手写卷积神经网络的代码
  • 卷积神经网络的权重是怎么更新的,平均池化和最大持化的反向传播是怎么运作的?
  • 没有手撕代码,但是让我直接实现kmeans的伪代码,不用编译

总结来说,美团一面问的都很基础的深度学习问题,都答出来了,因为准备过,所以说的时候比较有自信,然后挺流畅的。面试官就说觉得我基础知识挺扎实的挺好的(这个小哥人很nice,也是第一个这么夸我的面试官,挺受鼓舞的,很谢谢他

二面

大部分问题和一面的很接近,但是面试官好像是一面面试官的老大,会从更多维度来问你

  • word2vec训练过程的最后一步有什么办法可以优化softmax的计算,我没答上来,他就告诉我说是指数函数的计算会用查表来近似代替
  • 你大部分用的神经网络都是比较浅层的,有没有试过更深的神经网络
  • 有做过图像方面的深度学习项目吗
  • 有没有在实践中应用过transformer

最后面试官的评价是基础知识比较好,但是实践经历和业界场景有差距emmm,然后面试才刚刚开始,没这么快能给你答复(好的我知道我是备胎了55555 美团是我很想去的公司,我面试的部门是做美团外卖的推荐广告业务的,在他们场景中会用到很多的深度学习的模型(图像+nlp)来提取特征和做推荐预估, 而且关注了美团的技术博客,他们做的很多东西我都觉得和自己做过的项目很match。

字节企业应用(EA)团队

一面:

这个部门做的业务感觉是开发内部应用来支持公司内部其他团队的,我记得面试官说的一个是给法务部的做一些文本的提取、分类应用?

问的问题不是很难,和美团的那几个问题很类似,都是围绕word2vec的训练原理,bert的原理和word2vec的区别,xgb和gbdt的区别之类的,比较基础
给了两道概率题给思路:

  • 1-7的随机数等概率生成器,怎么等概率的生成1-5的整数
  • 掷色子掷出六个不同的面的次数的期望
  • 手撕代码:-leetcode的hard:最大矩形问题,面试官很仁慈没有让我用优化的dp或者其他方法做,直接让我写暴力解法的代码,他大概看了一下就说就这样吧

然后第二天hr就给我打电话约下一轮面试了

二面

  • 面试官很随和,上来就问了一些general的问题,一个是可以实习的时长,一个是以后的职业规划是什么。
  • 然后问简历里面你最拿手/熟悉的项目是哪一个,问了一下那个项目现在如果要发论文的方向,我说这个是一个应用型的项目,没有发论文的打算。
  • 问了一下我c++的一个实现配对堆的算法。。。我竟然给忘了。
  • 问了一个算法题,leetcode编辑距离,很快就写出来了。共享屏幕在自己的ide上实现的。问了算法的复杂度,再问能不能优化时间或者空间复杂度,我说可以,可以改成一维数组。
  • 然后问了一道数学题,十个红球十个白球,无放回抽出10个然后红球互不相邻的可能性。没想好,不过具体思想就是一红一白相间地摆好先,然后再在白球红球之间插入白球,面试官说时间关系就先这样了,但是很接近了。
  • 最后面试官评价说我应该平时刷题刷很多吧(拼命点头

过了一天半收到了三面通知,是hr面啦

hr面

  • hr很和善,先问我为什么能五月开始实习,不用上学吗,我说我(美硕)四月底就放假了,所以有四个多月能回国实习。
  • 然后问我投日常实习动机是啥,我说争取转正offer和积累经验。
  • 然后问为啥选头条捏,我说了一堆很土的理由,什么梦寐以求的公司啦,面试官面试表现很专业,岗位很匹配,大公司能有更好的成长啦blablabla
  • 然后就问我有什么要问的
  • 问了这岗位能不能转正,她说转正概率和校招实习是一样的,会公平对待所有实习生,主要看你实习的产出能不能做出贡献。而且转正也还需要三轮技术面+一轮hr面
  • 问了EA部门未来的发展方向,好像2b业务现在是国内互联网市场上比较大的一块地盘,是字节未来想要攻坚的方向blablabla
  • 最后问了后续流程,周一给答复

阿里蚂蚁

一面

面我的是多方安全团队,问了很久他们做的东西,具体还是不太懂,大概意思就是法规限制了我们获取的数据规模和维度,要用有限的数据进行风险评估(比如银行贷款啊之类的)

  • 问了我们硕士是授课型还是论文型,问了我们现在专业学习的东西和机器学习相关的部分有哪些,
  • 然后问了我做词向量的项目,问优化方向之类的,有没有根据文本特征做定制化的算法调整
  • 然后问了xgboost和randomforest的区别。什么场景表现会更好之类的。
  • 然后问了一道逻辑题:两个人抽100个球,你是先手,每次两个人只能取1-6个球,问怎么抽才能使得你是最后一个把球抽完的
  • 问了一道挺基础的算法:找出有序数组中位数,想优化时间复杂度。
  • 感觉不是很匹配,面试官的意思是想要的是那种潜力型,会融合很多算法,开发新算法的人才,我太菜了


福利时间:


爱学习的土豪可以直接买↑↑↑


本次联合【电子工业出版社】为大家带来前阿里高级开发工程师创作的《机器学习算法框架实战:Java和Python实现》,一共2本。



   
   
赠书方式一: 后台回复【 888 抽奖 1

   
   
赠书方式二:添加我的微信,朋友圈 1
扫描二维码添加好友↓

推荐阅读

(点击标题可跳转阅读)

迁移学习:迈向真正的人工智能

集成学习:一种先进的机器学习方法

NumPy库入门教程:基础知识总结

玩机器学习,再也不缺数据集了

人工智能最全学习路线!36本书,上车!

23个Python爬虫开源项目代码,已开源


老铁,三连支持一下,好吗?↓↓↓

本文分享自微信公众号 - 机器学习算法与Python实战(tjxj666)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!