【面小易-面经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或者天池等大数据相关的比赛上做的一些项目,这些项目都会成为面试时宝贵的话题和亮眼的经历。

总结

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

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

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

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

相关文章
|
3月前
|
机器学习/深度学习 算法
【机器学习】过拟合和欠拟合怎么判断,如何解决?(面试回答)
本文介绍了如何通过观察训练误差和验证误差来判断模型是否出现过拟合或欠拟合,并提供了相应的解决方案,包括增加数据、调整模型复杂度、使用正则化技术等。
304 1
|
26天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
30天前
|
监控 架构师 Java
从蚂蚁金服面试题窥探STW机制
在Java虚拟机(JVM)中,垃圾回收(GC)是一个至关重要的机制,它负责自动管理内存的分配和释放。然而,垃圾回收过程并非没有代价,其中最为显著的一个影响就是STW(Stop-The-World)机制。STW机制是指在垃圾回收过程中,JVM会暂停所有应用线程的执行,以确保垃圾回收器能够正确地遍历和回收对象。这一机制虽然保证了垃圾回收的安全性和准确性,但也可能对应用程序的性能产生显著影响。
28 2
|
3月前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
89 4
|
3月前
|
机器学习/深度学习 算法 Python
【机器学习】面试问答:决策树如何进行剪枝?剪枝的方法有哪些?
文章讨论了决策树的剪枝技术,包括预剪枝和后剪枝的概念、方法以及各自的优缺点。
58 2
|
3月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
72 3
|
3月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
145 2
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
9天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
11天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
35 4