您的位置:首页 > 职场人生

国内互联网公司算法&机器学习岗(阿里星)面试总结

2016-02-21 19:57 1336 查看
从2015年8月到2015年10月,花了3个月时间找工作,先后通过内推参加了美团、阿里蚂蚁金服、京东、腾讯、今日头条、Growing IO、微软这7个公司的面试,同时参加了网易游戏、LinkedI In中国这2个公司的笔试,拿到比较优质的offer是京东Star和阿里星2个Offer。应聘的岗位要么是算法工程师,要么是机器学习与数据挖掘岗,企业叫法不同,工作实质都是利用机器学习与特征工程去解决业务问题。整个求职过程是一个和互联网企业双向了解,接收面试反馈后不断思考、调整职业规划与重复完善知识体系的过程,本文通过介绍我个人的求职过程,向后来者揭示国内互联网企业对算法&机器学习岗的要求、面试过程、薪资状况,也分享一些个人在这个过程中积累起来的见闻、经验。

本文分为三个部分,笔试&面试、经验心得、题目汇总。笔试&面试部分介绍各个公司的内推时间点、内推形式、我个人的笔试&面试情况,对了,还有不涉及保密协议的一些薪资情况;经验心得部分简单介绍简历、内推、面试的一些体会,对了,还有一些捷径;题目汇总部分包括我个人3个月求职过程中遇到的题目,分为笔试题、编程题、机器学习&数据挖掘问题、解决方案类题目。


笔试&面试

美团公司-猫眼电影部门。美团在2015年8月初开始接收内推。猫眼电影今年刚单独拆分出来,部门内缺少算法工程师负责机器学习类的工作,所以面试不难,你懂模型、能搞业务就没问题,编程题简单。薪资为15薪,月薪分为13K、15K、16.5K三档,后2档为special offer,16.5档可以谈薪水,没期权股票,没北京户口。

阿里蚂蚁金服-安全&服务与数据事业群-数据智能部。阿里集团2014年上市,将包括支付宝在内的金融业务剥离单独成立为蚂蚁金服。数据智能部刚成立,战略定位颇似蚂蚁的数据中枢,用于为各个部门产出数据智能。我因为参加阿里的移动推荐竞赛获得亚军,有专场面试的机会。在专场面试中表现神勇,连面4面+CTO面+HR总监面,获得阿里星。阿里的面试等级为B+,A-,A,A+,A+可以被面试官推到CTO处进行交叉面,面过了就是阿里星。今年阿里的薪资分为AB档,B档薪资有8K、10K两档,A档我知道的有16K一档,定级都是P5。阿里星年薪(此处马赛克)。

京东-数字营销业务部。京东8月底开始内推。数字营销业务部2014年成立,一年实现100多亿的营收,赚了大钱,公司因此开始重视技术。在NLP Job上看到相关内推,顺手发了封邮件,第2周的周一就被安排面试,面完2轮面试官给了special offer面试机会。最终的面试流程是2轮技术面+1轮HR面+1轮交叉面+1轮VP面,按照校招宣讲的说法这个是京东Star的流程。京东今年的年薪有19.5W、21.5W、26.5W三档,26.5W档的薪资可以谈,最高可谈到40W左右。数字营销部门有5个左右的户口,需要按照简历情况、面试反馈排队。

腾讯-TEG。7月底到阿根廷参加IJCAI会议时,碰到TEG的部门老大,在微信上把简历给了他。但部门老大自然不把这种校招内推的事放心上,到了9月初才被安排面试。面了2轮,算法题比较简单,但要求bug free,其他时间都在聊模型、数据挖掘比赛、实习项目。第二轮面试聊了很久,比较有意思,面试官给我分析了我拿到和可能拿到的offer。腾讯月薪我知道的有13K,15K,18K三档,18K是腾讯大咖档。腾讯加班多的部门年终在4个月以上,LOL部门几十个月年终。北京户口概率比较大。

今日头条-推荐组。今日头条算是一家国内少有的技术驱动的公司,目前是C轮。头条的笔试出的比较有水平,所以会比较看重笔试。我在面头条时心态不好,先是拒绝参加笔试,而后以比较高的姿态和HR、面试官沟通。所以头条的面试在第三轮时就中断了。头条面试的编程题不难,但对模型、推荐系统、项目线上经验等考察得比较深入。了解到的offer是月薪23K,加2000股票,没有户口。

Growing IO-机器学习组。Growing IO是原Linked In商务分析部门总监张溪梦先生回国创立以提供数据分析为主,一键埋点为技术壁垒的Start up公司,目前仍在天使轮,进去的话工号排在十几。面了5面,部门leader2面+交叉面1面+co-founder面+CEO面。面试是按照社招的标准走的,leader面对机器学习考察得比较全面、深入,其他面就是聊聊天,画画饼。底薪一般,期权较多,无北京户口。团队里都是比较资深的工程师,但机器学习业务不多。

微软-Ads。2015年7月开始在微软小冰组实习,9月中旬开始转正面试,转到Ads部门。微软的转正面试是2轮技术面+1轮AA面,2轮技术面1轮positive就可以AA面。如果非实习生则需要2轮技术面都positive。另外,微软有预科生计划,转正只需要presentation,无需面试。转正面试的编程题相对较难,对模型、项目的考察较为深入。微软今年大幅扩招,还涨薪。21万左右Base,10%~20% Bonus,一些股票,28万左右的Package。MSRA的Base是28万,40万左右的Package。

网易游戏、LinkedIn中国。在9月中和10月初参加了这2个公司的笔试,2个公司的笔试都比较切合业务,与SQL语句相关。网易的笔试做了340分,但没被通知面试LinkedIn中国的笔试接近满分,但已经10月多,已经开始参加数据挖掘竞赛,没什么面试状态就没去面试。LinkedIn中国的Package在30万+,网易游戏看学校给钱。


经验心得

国内互联网公司和国外FLAGS的面试有很大不同,前者重视项目、实习经验、专业积累,后者看重的是你聪不聪明与编程题刷得多不多。在求职开始的时候心里得有个谱,合理分配时间、精力,并理性看待自己挂了笔试或面试。

简历讲究简单粗暴有逼格,简历包含联系方式、教育背景、实习经历、项目介绍、牛逼的荣誉、岗位相关的技能就好,谓之简单粗暴,有逼格则指的是实习、项目多用数字量化描述,省去叙事的过程,结果导向。还有一点经验,可以适当装逼,但不能装逼得超过可掌控范围。

投简历的时候,多走内推渠道,省去大部分笔试或者电话面试,不吃力又讨好。内推渠道有以下几种,我按照靠谱程度排个序:1) 总监以下的内部技术员工 2) HR 3)总监以上的高管 4)北邮人论坛 5)Linked In 6)知乎 7)NLP job 8)微信公众号。1)和2)是比较靠谱的,3)~7)只能作为备胎。还有一个非主流但很有效的捷径是参加企业举办的比赛并取得好名次。

面试时要抓住提问环节问一些实质性的问题,比如具体的技术问题、部门组织架构、部门战略地位、以后的工作团队、对个人的定位、KPI怎样给出等,尤以部门组织架构、战略地位、团队这类大又可说的问题最佳。京东面试官给我讲了百度架构部门的痛点,在之后的面试中我就经常和面试官聊关于架构部门和业务部门的话题,学到很多,大局观也慢慢改善。

在精力允许的情况下多面,多拿offer,一方面涨见识、谈资,一方面在谈理想公司的offer时能争取到更好的薪资待遇。


题目汇总

笔试题

在互联网分析中,通常会关注用户的【第N日激活率】来衡量用户质量。用户的第N日激活指的是用户在注册的第N天登录网站或App,即算为该用户的第N日激活。第N日激活率指的是某日注册用户在第N天激活的数量除以该日所有注册用户数量

“赤兔”是领英中国针对中国职场人士推出的一款本土化的社交应用。如果你是领英中国的数据分析师,你会从哪些方面和维度来设计各项指标,给产品的设计和运营提供数据上的支持?请给出具体的维度和指标,并说明原因。

网易游戏的一道笔试题是给定一条包含3个join的SQL语句,要求写代码模拟实现SQL的功能。

编程题

最少时间复杂度求数组中第k大的数,写code

去除字符串S1中的字符使得最终的字符串S2不包含’ab’和’c’,写code

长度为N的序列Sequence=abc….Z,问有多少不同的二叉树形态中序遍历是这个,写递推公式

给定整数n和m,问能不能找出整数x,使得x以后的所有整数都可以由整数n和m组合而成

中序遍历二叉树,利用O(1)空间统计遍历的每个节点的层次,写bug free的code

排序二叉树转双向链表

一个运算序列只有+、*、数字,计算运算序列的结果

机器学习&数据挖掘问题

L1和L2正则项 >> 它们间的比较

各个模型的Loss function,牛顿学习法、SGD如何训练

介绍LR、RF、GBDT ,分析它们的优缺点,是否写过它们的分布式代码

介绍SVD、SVD++

是否了解线性加权、bagging、boosting、cascade等模型融合方式

推荐系统的冷启动问题如何解决

是否了解A/B Test以及A/B Test结果的置信度

特征工程经验

是否了解mutual infomation、chi-square、LR前后向、树模型等特征选择方式

解决方案类题目

为今日头条设计一个热门评论系统,支持实时更新

给定淘宝上同类目同价格范围的两个商品A和B,如何利用淘宝已有的用户、商品数据、搜索数据、评论数据、用户行为数据等所有能拿到的数据进行建模,判断A和B统计平均性价比高低。统计平均性价比的衡量标准是大量曝光,购买者多则高。

有n个elements和1个Compare(A, B)函数,用Compare函数作为排序算法中的比较算子给elements排序。Compare函数有p的可能比较错。排序完取Top m个元素,本来就在Top m并被正确分在Top m的元素个数是x。问x的数学期望。

读到最后,希望能对你有所帮助。


阿里巴巴研发工程师Java 面经

作者:成长ing

一面:

1. 自我介绍

2. 问:看过什么书?

3. 问:最近有开发过并发的吗?

4. 问:那知道线程安全吗?

5. 问:程序中是如何实现并发的?

6. 问:如何选择使用哪一个,有什么区别?

7. 问:HashMap线程安全吗?

8. 问:Hashmap的底层是怎么实现的?

9. 问:ConcorrentHashMap安全吗?

10. 问:是如何实现的?

11. 问:是用怎样的锁?

12. 问:如果Key值放置的是object对象,需要怎么做?

13. 问:String有重写Object的hashcode和toString吗?

14. 问:如果重写equals不重写hashcode会出现什么问题?

15. 问:String 为什么要重写这两个方法?

16. 问:100000个数找出最小或最大的10个?

17. 问:堆排序是稳定的吗?

18. 问:稳定和不稳定会导致什么问题?

19. 问:那如果你定义一个类,包括学号,姓名,分数,如何把这个对象作为key要重写equals和hashcode吗

20. 问:知道TCP、IP的连接过程吗?我问是三次握手吗?

21. 问:如果只有两次会怎样?

22. 问:那两次服务端会怎样?

23. 问:如果客户端不断的发送请求连接会怎样?

24. 问:那怎么知道连接是恶意的呢?可能是正常连接?

25. 问:如果多个客户端多个请求连接,但是都只是两次会客户端会怎样?

26. 问:用过SYNGLA。。吗?什么鬼东西,听不清楚,就说没用过。

27. 问:你刚刚说你最近在研究1.8吗?

28. 问:说一说Java内存模型?我问是内存分区吗?

29. 问:说说堆的分区?

30. 问:打算留在广州吗?还是杭州。

31. 问:打算读研还是毕业工作?

32. 问:为什么不读研?

33. 问:有什么问题要反问吗?问哪里做得好和做得不好的?

二面:

1. 没有自我介绍,直接进入正题

2. 问:一堆数字里面继续去重,要怎么处理?

3. 问:hashset怎么实现?底层是hashmap

4. 问:因为别人知道源码怎么实现的,故意构造相同的hash的字符串进行攻击,怎么处理?

5. 问:那jdk7怎么办?

6. 问:如果要去除后还要有序?

7. 问:对线程安全怎么看?

8. 问:为什么要实现内存模型?

9. 问:如何让线程安全?

10. 问:如果要你做一个防火墙,有10万个黑名单,有可能会增长达20万个,一个数据包过来,如何匹配?

11. 问:数据库的实现比自己实现B树快?

12. 问:二分查找复杂度是?

13. 问:GET和POST的区别?

14. 问:用面向过程可以实现面向对象吗?

15. 问:那是不是不能面向对象?

三面:

一道题:两个小时

//IP地址库查找,自定义内存中的数据结构,需要考虑性能最优,内存最少。

//精确编写该类的实现并且包括单元测试程序。

//编译环境为标准Java。

public class IpLib{

//第一个接口

/* file 为IP地址库文件,格式为每行一个点分十进制的IP,上亿条。 需要判断IP格式是否正确,且IP需要去重 */

bool LoadIpLibFile( String file);

//第二个接口

/* 输入一个点分十进制的IP,若该IP在内存数据结构中,返回true,否则返回 false */

bool Find( String ip);



我当时想到的方法 创建1亿个元素的long数组,然后将每一个读入的IP用正则判断无误后转为 long 放入数组中,然后用快速排序排序,对输入的IP转long进行二分查找。当然去重操作是做不到的

四面:

一道题:四个小时

考察学习能力:

阅读 RFC2616 文档,即 HTTP/1.1 规范,输入某个网址,利用 Java 的 Socket 发送 HTTP请求,特别要求能够解码 chunked 编码,观察文档中的伪代码实现,自己用Java代码实现,将解析后的整个html文档输出到控制台上,不要求关注太多细节。(就是不允许用httpclient的jar包,自行实现这个jar包类似的功能)

五面:

1. 问:为什么选择后台?

2. 问:之前填写意向的时候说是去UC的移动事业群,说说你对手游的理解

3. 问:谈谈对阿里云的理解?后来说如果前面面试官没介绍过就不用说了

4. 问:说说对安全的理解?

5. 问:准备往哪个方向?大数据,云计算?

6. 问:看你填了之前去过某个XX公司兼职过,平时是干什么的?

7. 问:开发的项目是负责什么?是成员吗

8. 问:那两个人负责,你是主导还是配合?

9. 问:当初为什么选择去XX公司?

10. 问:为什么不考研?

具体看我是怎么答的:
https://zebinlin.github.io/tags/#interview
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: