【面小易-面经04】蚂蚁金服机器学习实习生内推面试总结

简介: 又到了“金九银十”的招聘季,各位小伙伴们是不是也在忙着准备面试呢找工作呢?在接下来的一段时间里,面小易会为大家分享各种面试经验哦!请持续关注我。和前几篇面试Java或者C++研发工程师的小伙伴不同,今天分享的这位同学面试的是蚂蚁金服的机器学习实习生岗位,让我们一起来看看他的面试经验吧。

“我是面小易,机智又聪明。面试不眨眼,Offer不手软。”我面小易又来啦,今天要和大家一起分享的是一位面试支付宝机器学习算法工程师的小伙伴的面试经历,虽然他的面试之路最终止步于二面,但是相信他两次面试的经验还是值得大家学习和借鉴的。对于阿里巴巴内部的数据类岗位,究竟会问哪些问题,有什么样的要求呢?一起来看看吧!

以下为正文
我投递的是蚂蚁金服的机器学习实习岗,但是无奈自身实在太菜,最终止步于技术二面,然而我觉得还是需要写下这段经历用来自我总结。

个人情况:华科某工科学院在读硕士,本科211,本硕都不是计算机相关专业。之前在牛客网上找人内推,方向是机器学习算法工程师。然而,一位同学直接给我推到支付宝去了。

第一轮面试

完成简历之后等待了大约四五天,面试官就约时间进行了第一轮面试。

第一轮面试问的基本上都是基础的数据结构。题目是假设有一个巨大的网页,里面有众多词汇,现在已经对网页的词汇进行了分词。求如何随机获得网页中的K个词。题目本身并不是很难,只不过我没有反应过来。刚开始我给出了个两次查找的方法,先遍历整个网页获得词数N,然后利用词数N生成K个词数0-N-1之间的随机数加入到集合中A,排序集合A,再次遍历这个网页,集合A中的元素对应词的Index,然后将对应索引的词取出来,返回。面试官说这个要两次遍历,且K可能很大,时间复杂度开销有些高,希望我一次遍历完成。我提出保存N个词,然后通过随机访问选择词汇,而面试官说这个方法的空间复杂度过大。

最后我提出,用Hash表保存N个词,其中共有P个不重复的词,统计这P个词的词频。然后遍历Hash表,累加词频,通过词频间隔来表示定位词汇。可以用二分查找树或者直接二分查找实现。然后就是写代码,在一个代码测试系统上。应该还有更好的算法,但是我就想不到了。

面小易说:和之前分享的面向Java或者C++研发岗位的经验不同,机器学习算法工程师更多地需要了解大数据的算法,而且这些算法的时间和空间复杂度都需要能够很好地考虑进来,因此我们如果想要投递这样的岗位,那么对于算法优化上必须要有较深入的了解。

第二轮面试

大概又过了四五天,面试官就约时间准备了第二轮面试。

这轮面试主要问的是项目。但是我这些还都没有准备,因为当时就是跟风投的简历,自己心里面还没B数,所以项目没什么技术含量,有两次天池大数据的比赛,基本上就是洗数据+XGBOOST,所以只能跟面试官尬聊…

最后问了一个问题,我还没有找到答案。问题大概是:对于一个图片检索引擎,有爬虫从网上获取图片,计算一个MD5码存储图片,然后该系统可以通过MD5码获取到存储的图片。面试官问我这个系统应该如何设计。我最后给出了用文件存储多个(10W个)图片的二进制码(按照图片加入顺序),然后散列保存图片MD5码和图片的加入顺序id,然后id找到文件,再从文件中找到图片的二进制数据,返回图片。最后我自己也觉得这样做挺不靠谱的,最后问问题的时候也就问了面试官,然后他跟我讲,这在Facebook图片检索系统和非关系数据库中经常用到,回头我查到了再补吧。

面小易说:对于想要投递机器学习方向的同学们而言,有一个亮眼的项目是非常重要的,这个项目可以是实际项目,也可以是在Kaggle或者天池等大数据相关的比赛上做的一些项目,这些项目都会成为面试时宝贵的话题和亮眼的经历。

总结

然后最让我伤心的是,下午三点面完了。晚上回来更新面试状态就变成了已回绝,这说明面试官挂了电话就把我挂了。

从这次面试中我认识到了:

  • 第一,基础很重要,手写代码很正常。
  • 第二,项目经历要准备好,不要因为项目太简单或者什么的就略过,要从细节上去谈,不要陷入尬聊的窘境。
  • 第三,准备好机器学习的理论知识,很多东西背下来和真正理解还是不一样的。

面小易说:虽然这位同学没有进入第三轮技术面试,但是他前两轮的面试经验已经给我们很大启发了。也正如他总结的内容一样,对于算法工程师而言,编码能力也很重要,而项目上也需要有能够让面试官认可的内容,需要有自己的想法和思路。此外,对于目前火热的机器学习而言,不能只能够照本宣科,需要自己有更加深入的理解,这样才能在工作中更加灵活地应用。

相关文章
|
14天前
|
机器学习/深度学习 算法
【机器学习】过拟合和欠拟合怎么判断,如何解决?(面试回答)
本文介绍了如何通过观察训练误差和验证误差来判断模型是否出现过拟合或欠拟合,并提供了相应的解决方案,包括增加数据、调整模型复杂度、使用正则化技术等。
35 1
|
14天前
|
机器学习/深度学习 自然语言处理
【机器学习】如何进行中文命名实体识别?(面试回答)
中文命名实体识别的基本概念、分类、识别思想、实体标注方法以及常见的识别方法,包括基于规则、基于统计和基于深度学习的方法。
27 1
【机器学习】如何进行中文命名实体识别?(面试回答)
|
14天前
|
机器学习/深度学习
【机器学习】如何判断函数凸或非凸?(面试回答)
文章介绍了如何判断函数是凸函数还是非凸函数,包括凸函数的定义、几何意义、判定方法(一元函数通过二阶导数判断,多元函数通过Hessian矩阵的正定性判断),以及凸优化的概念和一些经典的凸优化问题。
27 1
【机器学习】如何判断函数凸或非凸?(面试回答)
|
14天前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
29 4
|
14天前
|
机器学习/深度学习 算法 Python
【机器学习】面试问答:决策树如何进行剪枝?剪枝的方法有哪些?
文章讨论了决策树的剪枝技术,包括预剪枝和后剪枝的概念、方法以及各自的优缺点。
29 2
|
14天前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
28 3
|
14天前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
27 2
|
14天前
|
机器学习/深度学习 算法
【机器学习】解释对偶的概念及SVM中的对偶算法?(面试回答)
解释了对偶的概念,指出对偶性在优化问题中的重要性,尤其是在强对偶性成立时可以提供主问题的最优下界,并且详细阐述了支持向量机(SVM)中对偶算法的应用,包括如何将原始的最大间隔优化问题转换为对偶问题来求解。
26 2
|
14天前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
23 1
|
14天前
|
机器学习/深度学习 算法 数据挖掘