飞扬 中南大学·2022届
APP 内打开
分享
15
89

小米内推-搜索推荐算法岗一面,二面,三面面经

楼主非科班出身,一名小小的研究生(非985),数不清多少次的内推,没有一次给了面试机会,终于在8月30下午接到小米内推的预约周五,今天(9月1号)面试的电话。刚刚结束了小米的一面,遂写下此面经,攒点人品。话不多说,我们开始。


一面:

1.自我介绍(一般套路)

我介绍了自己的研究方向,自己读研期间的项目以及实习经历。

2.介绍下你简历里面令你印象深刻的项目,为什么?

我说了一个实习经历,原因是真实场景,会遇到各种以前没见过的问题,balabala。。。

(期间会打断我,不断的问实习的时候做的事情,什么特征选择,特征的维度,用户和物品的数量)。

3.(开始问算法)说说线性回归,我结合逻辑回归基本讲了一下原理

4.问了xgboost(我实习的时候用过xgboost,所以写在简历上),问特征维度是1600,你一般建多少颗树,数的深度你怎么设置,以及其他的参数怎么设置?

我说我当时设置100颗树(具体我也忘了。。。因为当时实习的时候是leader把参数设置好让我去跑的),树的深度我回答50(回答完我就后悔了),面试官问:数的深度是50,你算算有多少结点(自己挖了个坑啊2^50-1,自己笑笑说可能记错了。。。尴尬)。

5.你了解JVM的参数设置吗,比如现在频繁出现GC,你应该怎么做?我说出现GC可能是内存不够用,可以考虑把堆内存调大一点。

6.延伸第五个问题,你怎么调整内存中新生代和老年代的内存大小?(其实我内心是奔溃的)我说新生代和老年代的比例不是固定的嘛?1:2.。。。(好吧,我对这块不熟悉)然后就过了。。。

7.HashMap和Hashtable和Map的区别我从线程安全和是否容许null来回答的。

8.然后又问,Hashtable的线程安全你知道是怎么实现的嘛?说真的,这题我真不知道怎么回答,我只是说了加了synchronized关键字。

9.你和我说说sparkRDD吧 然后我从两大类的算子大致说了下RDD。

10.说了一个场景:现在我用spark跑一个逻辑回归模型程序,发现数据倾斜了,你怎么解决?

我说首先分析是否算子方面写的不合理,然后说如果是数据方面的原因,可以考虑对数据进行预处理,然后单独去处理这部分的会导致倾斜的数据。(中间打断了我一次,说,如果在跑程序的过程中,如果是数据出现的问题,你会停止然后重新做?我好直接说:会。。。不知道回答的对不对。。。估计是不是想考我rdd方面的知识,奈何不太熟悉)。

11.问我有什么想问的?

整个过程40分钟左右中间电话还断了一次,我问完两个问题,然后面试就结束了,都没说后面还有没有面试了,留下我一脸蒙蔽,心想挂了吧,回去写个面经吧。

还有其他的问题我就记不起来了,原因是,我在写面经的过程中,二面的电话来了,接下来是二面的面经。

===================================================================================================

二面:

1.自我介绍

我将刚刚那一套又说了一遍。。。实在不知道还有什么好说的。

2.说一下xgboost

我简单说了一下原理。

3.给我介绍下,推荐方面有那些算法

我大致将两类的推荐算法都说了。

4.我看你简历上写了fm,那你和我说说fm吧

我也简单说了下fm的思想。

5.现在给你一亿的用户,和一亿的物品,你怎么去做推荐?

说实话,当时听到这个问题的时候,我内心是拒绝的,心想:我在研究所里最多用的也不过是几万的用户几十万的物品,一亿你存心为难我吧。硬着头皮说,既然数据量这么大的话,是否可以先进行数据预处理,然后利用spark去做?我当时用的是问号,其实是希望面试官回答我的这个问题,结果他直接过了。。。

6.然后问我项目的事情,问我实习的项目,推荐系统的流程(当时我在实习的时候也是做得推荐)?

我将整个推荐的流程说了一遍,从数据的处理到数据的应用。

7.你在实习的时候,在召回的步骤用的协同过滤和ALS会不会出现一些效果不好的情况,然后你怎么分析的?

这个问题,我并没有回答,因为我确实没有参与召回策略那一块。只好说我没有参与,然后转向说目前业界这些基本的算法应该还是很好用的。

整个过程大概是15分钟,很短,结果二面面试官跟我说,你在我这儿ok,我来问问其他的同事,如果有三面,等会再联系你。

====================================================================================================

三面:

接到三面的电话,我还特意找了一个清净的地方,结果说要电脑,要写代码,我只好回到办公室。

1.你给我写一下链表的反转

我还特意问了下,时间复杂度和空间复杂度有什么要求?面试官说没有,这个还是很好写的,看过左神书的应该都会写这个,然后写了一个最优的。

2.你还有没有其他的方式来实现这个?

我说递归(说完我就后悔了。。。),面试官说你写一个递归的版本吧,好在网速不稳定页面刷不出来,然后就没写了,让我口述了一下。

说完,来了一句其实就是考考你递归。。。

3.你一般用java是吧,你对GC熟悉吗,给我说说GC的有几个算法并说下原理

我说了标记-清除,标记-整理,还有一个死活想不起来名字,然后说还有一个的原理是这样的,但我忘了叫什么名字。。。

4.JVM内存是怎么划分的?

答了堆内存从物理上可以分为年轻代和老年代

5.年轻代是否可以继续划分?

答了Eden区和Survivor区,然后两个的比例。

6.这个比例是固定的嘛?是否可以调整?

这个问题,我不知道,我记得是固定的8:1:1。。。然后问:这个比例可以调整吗?我没遇到过。。。

7.什么时候会触发年轻代的GC?

中间还有几个问题我忘了。。。

后面聊推荐,因为我的研究方向是推荐,所以聊天推荐的话还行,感觉和三面的面试官后面的时间不像面试,倒是像在交流。面完,同屋子里说,还以为你和谁讨论问题。。。

三面大概一个小时。

总结下:

1.无论结果怎么样,至少是秋招的第一场面试,对我这个内推好几家没有一家回复的人来说是一种安慰,感谢。

2.面试官貌似很在意你解决实际问题的能力,所以投机器学习或者数据挖掘的童鞋们,感觉要多模拟下实际的场景。

3.第一次写面经,写的不好,请大家指正。

发布时间:2020年07月21日
用户头像
我来说两句…
共 15 条评论
零纪年〃微蓝一抹淡笑 西安交通大学·2022届
感觉你这边问的挺广的,除了算法以外还问了不少Java,Spark的知识点,另外那个一亿用户一亿商品做推荐的话,有一种思路是先对用户、商品分别做个聚类,然后对聚类的结果再进行推荐操作,不知道有没有更好的想法,或者说实际工业操作中的方法是怎么样的?
2020年08月19日 回复
万金油 华南理工大学·2022届
楼主好厉害,小米菜鸟都没有面试的资格,心疼。
2020年08月05日 回复
园长 杭州电子科技大学·2022届
额,后天也是面这个岗位,我是cv转推荐,看楼主面试问的问题,我感觉我要凉了。。。
2020年08月01日 回复
空心_ 中南财经政法大学·2022届
楼主你好,请问小米搜索推荐算法岗是属于哪个部门,是人工智能与云平台还是信息流呢。谢谢。
2020年07月22日 回复
broccoli 华中农业大学·2022届
亲,求问内推资源?你是怎么内推的?在线等。。。
2020年08月05日 回复
ZERO 华南农业大学·2022届
spark数据倾斜,需要定位造成数据倾斜的算子把。
2020年08月19日 回复
不懂爱恨的因果 上海交通大学·2022届
楼主,看你面经里面面试官问得问题,你已经很牛逼了啊,你是不是内推的都是超牛逼的公司啊,不然怎么会全部不给面试机会?
2020年08月10日 回复
扰男人肺Demon / 乱女人心Demon / 南京审计大学·2022届
感觉小米有戏啊。。。
2020年08月12日 回复
一口一个酥饼🍪 武汉大学·2022届
厉害!
2020年08月11日 回复
寂静城° 昆士兰大学·2022届
兄弟你们的内推码从哪里得到的?
2020年08月11日 回复
小白听听 澳大利亚国立大学·2022届
你是怎么内推的呀,求内推方式
2020年08月09日 回复
iOSer小猪 香港大学·2022届
一亿的问题怎么推荐呢?筛选后再推?
2020年08月09日 回复
白仪520 宁波大学·2022届
记得楼主之前说面过搜狗,如何呢
2020年08月03日 回复
胡晓波 杭州电子科技大学·2022届
楼主三面之后有通知吗
2020年08月01日 回复
涅槃 江西师范大学·2022届
一面和二面隔了多久?我在等二面
2020年07月30日 回复